BESS studies

Three studies for battery energy storage at the point of connection: an early design check, sizing the battery for a busbar P/Q target, and a charge-discharge reversal in the time domain.

BESS Preliminary Design App menu: Simulate → BESS Studies → BESS Preliminary Design

pandapower

Guided early-design workflow for a utility-scale BESS at an HV point of connection. Enter a short set of project parameters, generate the plant single-line diagram, run predefined load-flow cases, check ratings, and compare plant P/Q capability at the POC with the grid-code Q band from the entered power factor. Aimed at pre-sales / solution-manager checks before detailed engineering.

Where to find it

Simulate → BESS Studies → BESS Preliminary Design.

When to use

  • Establish an initial HV-connected BESS configuration from POC P, power factor, voltages, and equipment ratings
  • Verify PCS, transformer, cable, and Battery DC Pmax ratings against named load-flow cases
  • Check P/Q capability at the POC at Umin / Unom / Umax, including internal losses and auxiliary load
  • See whether plant Q at full active power — rated discharge and rated charge — covers the required U–Q band from the entered power factor
  • See which element limits Q at each envelope point, and how OLTC tap moves internal voltages

How to run

  1. Open a blank diagram or the Utility-scale BESS (HV POC) template.
  2. Click Simulate → BESS Studies → BESS Preliminary Design.
  3. Enter POC active power Pn and the grid-code power factor. Q at the POC is Q = Pn × tan(acos(PF)) unless you tick Specify Q directly.
  4. Set PCS count and ratings, HV/MV transformer and OLTC, MV cables, string transformers (two-winding or optional three-winding skid), and auxiliary load. PCS MVA, Pmax, transformers, and cable kA are auto-sized from Pn, PF, unit count, Umin, aux, and topology until you type in a field. A typed rating is kept as entered (including in later sessions). Use Reset ratings to auto-size to hand every rating back to the auto-sizer. An amber note lists any entered rating below the auto-sized one, with the shortfall in %. Auto-sizing is deliberately conservative (margin for losses and for Q at Umin), so a plant a few per cent under it often still passes — the note is a pointer, not a verdict; the run decides. The note calls out separately a PCS whose MVA is below its own Pmax, because that nameplate clips P and is not a margin question. Set Plant voltage min/max (default 0.90–1.10 pu) for named-case pass/fail; this is separate from POC Umin/Umax. Optionally tick Tap position sweep. Wizard values are stored in the browser and on the POC bus so the next open keeps your last setup.
  5. Click Generate / Update SLD. The wizard hides so you can inspect the diagram; use the restore chip to return. Existing plant cells are updated in place (tagged bessPlantRole). PCS charge/discharge Pmax written to the diagram cannot exceed that unit’s MVA (a converter cannot pass more MW than Sn).
  6. Click Run Study. A progress log shows named cases, rating checks, and the P/Q envelope (and the tap sweep if you enabled it).
  7. Review the results (KPIs, named cases, P/Q and U–Q charts). Open Chart options to edit title, axis labels, and min/max scaling. Use + / − or the mouse wheel to zoom a characteristic, drag to pan, and Reset view to show the full envelope. Maximize the results window, or Maximize on each chart, for presenting. Click a named-case row or a point on the P/Q or U–Q chart to fill the SLD result boxes with that load-flow; click a limiter or bus name to select it on the canvas. Clicking outside the window or Minimize parks the dialog (it does not close). Export PDF Summary also minimizes the window, then opens the report metadata dialog.

Plant topology

External Grid → POC (HV bus, contractual grid connection) → optional HV cable → optional BESS_HV bus at the plant site → HV/MV transformer (OLTC) → MV collection bus → auxiliary load + N strings.

Untick Include HV/MV transformer when the POC is already at MV (about 11–33 kV). The external grid then connects directly to the collection bus, named POC_MV at the MV voltage. The HV transformer, OLTC, tap sweep, and HV cable are omitted. Named cases and the P/Q envelope use that MV bus as the POC.

Tick HV cable between grid POC and plant substation when the POC is at the DSO substation and the transformer sits at the customer site. Named cases and the P/Q envelope still refer to POC_HV; the voltage profile and rating table include the HV line and BESS_HV when present.

Each string: MV cable → MV/LV transformer → LV bus(es) → PCS inverter (the Storage element) → DC bus → battery rack. Optional three-winding skid: one MV winding and two 690 V windings, with 2 or 4 inverters per winding.

Main inputs

Input Description
Active power at POC / Pn Agreed POC active power. Named-case P setpoints are capped at this value (split across PCS units).
Grid-code power factor Default 0.95. Sets required |Q| at the POC: |Q| = Pn × tan(acos(PF)).
Reactive power at POC Filled from Pn and PF. Edit only if Specify Q directly is checked.
Umin / Unom / Umax POC voltage levels (pu) for named cases, the P/Q envelope, and the inner U–Q band at full active power. Defaults 0.95 / 1.00 / 1.05 pu. These are the study operating voltages at the grid, not the plant voltage pass band.
Plant voltage min / max Voltage allowance used for named-case pass/fail and SLD result-box colours. Default 0.90–1.10 pu, matching typical bus dialog min/max. Raise the max (for example 1.10 pu) if LV/MV buses may sit above the POC Umax of 1.05 pu.
Tap position sweep Optional. Off by default. When enabled, the study sweeps the HV/MV OLTC at rated discharge. In the results window the table is collapsed under Tap position impact.
PCS / Storage Unit count, MVA, charge/discharge Pmax, LV voltage. PCS, transformer, Pmax, and cable ratings auto-size from Pn, PF, unit count, Umin, aux, and two- versus three-winding topology so the PF |Q| rectangle still fits at Umin (for 50 MW, PF 0.95, 4 units this is about 21.3 MVA / 14.85 MW per PCS). Changing those drivers updates only the rating fields you have not typed in. A typed value is used exactly as entered and remembered in the saved draft. Reset ratings to auto-size clears those typed flags. Optional P–Q capability curve instead of a circular Sn limit.
Battery DC Pmax Tighter of PCS Pmax and this value is applied as the AC Storage P limit and listed in the rating table. It does not supply reactive power — Q comes from the PCS MVA circle. Matching Battery DC Pmax to PCS MW/MVA closes the converter circle at P = Sn; leftover Q at the POC is then transformer, cable, and aux, not the battery. Generate SLD places a PCS inverter, DC bus, and battery rack (Source DC) per string. Those DC elements are shown on the diagram; the AC load-flow does not solve a coupled DC network (isolated DC islands are not compatible with this plant model in pandapower 3.2).
HV cable to BESS site Optional. Inserts HV_Cable and bus BESS_HV between POC_HV and the plant HV/MV transformer. Length, R/X, and thermal kA (auto-sized from plant MVA and HV voltage like MV cables). Use when the agreed POC is not co-located with the BESS substation.
HV/MV transformer On by default. Rating, vk, OLTC tap range and voltage band. Untick Include HV/MV transformer for a direct MV POC (about 11–33 kV): the external grid connects to POC_MV and there is no HV transformer.
MV cables and string transformers Length, R/X, thermal rating; two-winding or three-winding skid (2 or 4 PCS per LV winding). String transformer MVA and cable kA default from the selected topology (one PCS per two-winding trafo, or all PCS on the skid for three-winding).
Auxiliary load P and Q on the MV collection bus (included in POC achieved P/Q).

What the study computes

  • Requested vs achieved P/Q at the POC — auxiliaries and internal losses included. POC sign is export-positive (P > 0 into the grid, Q > 0 capacitive).
  • Named load-flow cases at Umin, Unom, and Umax: twelve requested POC corners (export/import × capacitive/inductive at Pn and the entered PF), plus rated discharge and rated charge at unity PF — 18 screening load-flows, listed in the results table. |P| at the POC is capped at the Pn you entered. When OLTC is enabled, DiscreteTapControl runs during these load-flows.
  • Voltage profile through the plant and a rating table (worst-case loading vs nameplate for PCS, Battery DC Pmax, transformers, cables).
  • SLD result boxes filled from the selected named case (default Unom_Export_Capacitive): bus voltages, branch loading, transformer currents and tap, storage P/Q, aux P/Q, battery DC. POC and external-grid boxes stay export-positive and show the case name. Green / amber / red by voltage and loading limits.
  • P/Q capability envelope at the POC — a separate sweep from the 18 named cases: plant Qmax (capacitive, solid) and Qmin (inductive, dashed) vs the grid-code |Q| rectangle from the entered PF (grey band), from −Pn to +Pn (the contracted POC rating, not plant Pmax after losses). Default step is 25% Pn (9 P-points including 0) × two Q sides × three voltages ≈ 54 envelope nodes. Each node is one Qmax or Qmin operating point. When the PCS fleet can hold more than Pn, the sweep is carried past ±Pn with three more P points per direction, up to the plant P limit (per unit, the tighter of PCS MVA and Pmax / Battery DC Pmax) — up to 90 nodes, and a longer run. The Qmax and Qmin branches are then joined at the highest |P| by a dotted edge labelled “PCS P limit”, which closes the capability area. That edge is where the converter MVA circle is truncated by Pmax, so it is a real boundary, not a drawing shortcut: at the PCS the leftover Q is √(Sn² − Pmax²). That term is zero when a unit’s Pmax reaches its MVA, which is the “full circle” shape at the converter. The chart is at the POC, so a few Mvar of transformer, cable, and auxiliary Q usually remain even then — typically on the order of vk × S²/Sn for each transformer stage (a few Mvar on a ~25 MW plant, PF ≈ 0.99). That residual is not from the battery and cannot be cancelled by raising Battery DC Pmax: reactive power comes from the inverter, and at P = Sn the inverter has none left. To have Q headroom at full P, size PCS MVA above Pmax (the auto-sizer does this so the PF |Q| band still fits at Umin). A small reduction in P also frees √(Sn² − P²) and can bring POC Q to zero. Auto-sized ratings put MVA above Pmax, so with them the envelope always ends in a flat edge rather than a closed circle. Rated Charge/Discharge named cases are unity PF (PCS Q = 0) and sit inside the envelope, not on the Qmax/Qmin curves. The results window shows a COMPLIANT / NON-COMPLIANT badge, a KPI, and a per-voltage table: the plant is compliant when Qmax/Qmin cover that |Q| rectangle at Umin, Unom, and Umax. Charts are labelled with Pn, |Q|/Pn, PF corners, and import/export. Chart options lets you edit the title, axis labels, scaling, switch to P/Pn vs Q/Pn, and use grid-code axes (Q horizontal, P vertical). Wider gaps on the inductive (dashed) side are from the load-flow (absorbing Q drops plant voltage), not from axis scaling. Named cases are overlaid as squares (PF corners) and diamonds (rated P at PF = 1); click a circle, square, or diamond to open that load-flow on the SLD.
  • U–Q at full P (±Pn) — plant Qmax / Qmin at full active power versus POC voltage: filled markers at rated discharge (P = +Pn), open rings (white interior, coloured outline) at rated charge (P = −Pn). The chart legend shows a sample of each. The inner rectangle is Umin–Umax at the required |Q|/Pn from the grid-code power factor (|Q|/Pn = tan(acos(PF)); 0.95 → about 0.329). The hatched outer band is the plant voltage allowance (default 0.90–1.10 pu). Axis ticks include 0.90 / 0.95 / 0.96 / 1.04 / 1.05 / 1.10 and ±|Q|/Pn. The results window shows a COMPLIANT / NON-COMPLIANT badge, a KPI, and a per-voltage table with separate discharge and charge columns; the verdict needs both directions to cover the band. Wide markers mean the PCS MVA is large relative to Pn — at full P the Q headroom is √(Sn² − Pn²), so a PCS sized close to Pn gives a narrow U–Q plot. Click a marker to open that capacitive or inductive load-flow at that voltage.
  • Tap-position sweep — optional (wizard checkbox). HV/MV voltages and available Qmax/Qmin at each OLTC tap (rated discharge). Shown collapsed in the results window. n/a means the plant is already overloaded at Q = 0.
  • PDF summary — engineering report of the study results, including the U–Q at full P verdict. Export minimizes the results window so the diagram stays visible.

Results window

KPIs at the top include named-case pass/fail counts, requested POC target met, P/Q envelope, and U–Q at full P.

The Named load-flow cases table lists P/Q at the POC, losses, OLTC tap after that case, pass/fail, and the limiting element. Pass/Fail reports thermal and voltage limits only — it is not a check that the case reached Pn, so a Rated Discharge delivering 22.9 MW against a 23.5 MW Pn still passes when nothing is overloaded (the difference is losses and auxiliaries). Delivery of the requested POC P/Q is the separate POC target met KPI for the 12 target cases. Voltage pass/fail uses the plant voltage min/max you entered (default 0.90–1.10 pu), not POC Umin/Umax. Click any row to paint that load-flow onto the diagram result boxes (voltages, loadings, P/Q, tap), including LV buses. The selected row stays highlighted. Click a limiter or bus name to select that element.

Click a named-case marker on the P/Q capability envelope at POC (square = PF corner, diamond = rated P at unity PF) or a marker on U–Q at full P to open that named load-flow. Hover an envelope vertex for its P/Q/U; those nodes are the capability sweep, not the 18 named cases. The pointer becomes a hand on a named-case hit; the selected point is ringed. The results window parks so you can read the SLD boxes (use the restore chip to return).

  • P/Q chart — 18 named cases are plotted at their achieved POC P/Q. The 12 PF corners are squares (4 corners × Umin/Unom/Umax); the 6 Rated Charge/Discharge points are diamonds near the P axis (PCS Q = 0). The three voltages of one corner land on almost the same P/Q, so they are drawn concentric at different sizes (blue Umin smallest, green Unom, red Umax largest) at their exact P/Q — no marker is shifted off the ±Pn lines. Click the ring you want. Envelope circles are the 25% Pn Qmax/Qmin sweep, not the named cases.
  • U–Q chart — filled markers are Qmax / Qmin at rated discharge (P = +Pn); open rings are the same at rated charge (P = −Pn). Qmax is capacitive, Qmin inductive (for example Umin_Export_Inductive, Umin_Import_Inductive). Charge and discharge sit at slightly different Q when losses differ; if they coincide, the open ring is drawn on top of the filled marker.

Clicking outside the results window, or Minimize, parks the dialog so you can inspect the SLD and come back. Maximize fills the screen with the results window; each of P/Q capability envelope at POC and U–Q at full P also has its own Maximize for a full-screen chart (Restore or Esc returns). On both charts, + / − or the mouse wheel zoom toward the pointer, drag pans, and Reset view restores the full characteristic. Chart clicks work in the full-screen chart view as well. Close dismisses the study results.

If the requested POC P/Q was delivered but named cases still fail thermal or voltage limits, a note points to the limiter column (often an undersized MV cable). If every named case fails on PCS apparent power with Q near zero and the rating table shows PCS MVA smaller than PCS MW (for example 9.3 MVA / 14.8 MW), a leftover typed PCS rating is smaller than the auto-sized nameplate — use Reset ratings to auto-size, then Generate / Update SLD and re-run.

Sign convention

  • Storage (diagram / pandapower): p_mw > 0 = charge, p_mw < 0 = discharge.
  • POC results: export-positive. P > 0 delivers into the grid; Q > 0 is capacitive.

Notes

  • This is a preliminary load-flow module, not a substitute for detailed protection, short-circuit, or dynamic studies.
  • Battery DC Pmax is enforced as an AC Storage P cap and shown in the rating table. The battery does not provide Q; leftover Q at P = Sn is from transformers, cables, and aux. The SLD shows a PCS inverter, DC bus, and battery rack per string; the DC elements are not solved with the AC load-flow.
  • Re-run the study after editing any diagram parameter; you do not need to regenerate the SLD unless the topology changed.
  • U–Q at full P uses grid-code Pn and the entered PF (not a lower net P at the PCC). Default PF 0.95 is |Q|/Pn ≈ 0.329 at Umin, Unom, and Umax, checked at both rated discharge and rated charge.
  • Equipment ratings in the wizard are auto-sized from Pn, PF, unit count, Umin, aux, and string topology only until you type in a field. A value you enter is written to the diagram by Generate / Update SLD exactly as entered, and stays through later edits of the POC inputs and later sessions (saved in the browser and on the POC bus). Reset ratings to auto-size clears every typed-rating flag and refills the fields. An amber note names any entered rating below what this POC needs. PCS charge/discharge Pmax on the SLD cannot exceed that unit’s MVA.
  • The P/Q grey rectangle is drawn at the contracted POC Pn you entered. Plant envelope P after losses may fall short of +Pn on export or slightly exceed |Pn| on import; that is not a shifted axis. The envelope curve itself runs past ±Pn up to the plant P limit to close the capability area; U–Q at full P and the compliance verdicts still read the ±Pn points, not those closing points. Chart P is net P at the POC: N × unit MW at the PCS is not the same MW at the POC. Auxiliary load plus transformer and cable losses make the export tip lower (hover shows dispatch vs P_POC).
  • Leftover Q at the export/import tip: if PCS Pmax or Battery DC Pmax is below Sn, the PCS still has √(Sn² − Pmax²). If Pmax = Sn, the converters have no Q left; a few Mvar at the POC are then magnetizing and leakage Q in the HV/MV and string transformers (about vk × S²/Sn each) plus aux and cable X — not a battery shortfall. The battery cannot compensate that Q. To cancel it, either size Sn above Pmax so the inverters can inject/absorb vars at full P, or drop P slightly so √(Sn² − P²) covers the transformer Q. Grid-code PF 0.95 (|Q|/Pn ≈ 0.329) is far larger than this residual (often |Q|/P ≈ 0.12, PF ≈ 0.99), so it is not a compliance issue by itself.
  • The amber wizard note compares entered ratings with the auto-sized ones. Because auto-sizing carries margin, a rating under it is a caution, not a prediction — a study can be COMPLIANT with the note showing.
  • Plant voltage min/max is the named-case allowance. POC Umin/Umax remain the study voltages for envelope and U–Q compliance.

Related: Storage; Storage Q capability; Three Winding Transformer; Battery Sizing; Grid Code Compliance (P-Q).

Battery (BESS) sizing — POC busbar P/Q targets App menu: Battery Sizing for Busbar Requirements

pandapower

This study sizes the electrical P/Q the BESS must provide so the point of coupling (POC) bus meets a target P (MW) and Q (Mvar). It answers “how hard must the battery work for this schedule?” — not switchgear ampacity. Overview: BESS sizing guide.

Where to find it

Simulate → Battery Sizing for Busbar Requirements (pandapower).

Not physical busbar rating

Electrisim does not compute switchgear or busbar conductor ratings (thermal withstand, IEC 61439). Use a separate equipment study for ampacity.

When to use

  • BESS P/Q needed to meet a POC schedule
  • Comparing load-supply, export, and reactive-support targets

How to run

  1. Model the POC bus, grid connection, and the BESS (Storage or BESS AC Block).
  2. Click Simulate → Battery Sizing for Busbar Requirements.
  3. Set the POC bus and target P/Q, then run.
  4. Read the required BESS P and Q and whether the target was reached.
How the sizing loop works

An Electrisim proportional controller adjusts BESS P and Q, running load flow each iteration, until the POC P/Q is within tolerance (or the iteration limit is hit). The first guess includes a small loss overhead.

Dialog parameters

Parameter Description Type Value Range Default
Storage Selection Select the Battery/Storage element in the network to be sized dropdown Available storage elements -
POC Busbar Point of Coupling busbar where target P/Q should be achieved (typically connected to external grid) dropdown Available busbars -
Calculation Mode Select between "Single Target at POC" or "Multiple Scenarios" radio single, multiple single
Target P (MW) Target active power at POC in MW
Positive = consumption from grid, Negative = generation to grid
number Any real number 10.0
Target Q (Mvar) Target reactive power at POC in Mvar
Positive = inductive (lagging), Negative = capacitive (leading)
number Any real number 5.0
Convergence Tolerance Convergence criterion in MW/Mvar - algorithm stops when both P and Q errors are below this value number > 0 0.001
Max Iterations Maximum number of control loop iterations before stopping integer 1-200 50
Proportional Gain (P) Proportional gain for active power control loop number > 0 0.5
Proportional Gain (Q) Proportional gain for reactive power control loop number > 0 0.5
Frequency System frequency (50 Hz or 60 Hz) radio 50, 60 50 Hz
Algorithm Power flow algorithm to use radio nr, iwamoto_nr, bfsw Newton-Raphson (nr)

Multiple Scenarios Mode

When selecting "Multiple Scenarios" mode, you can evaluate five different operational scenarios simultaneously. Each scenario has editable target P and Q values:

Scenario Default P (MW) Default Q (Mvar) Typical Use Case
Load Supply 15.0 8.0 BESS supplying load demand with inductive reactive power
Power Export -20.0 -5.0 BESS exporting power to grid with capacitive reactive power
Reactive Support 0.0 10.0 BESS providing only reactive power support (voltage regulation)
Capacitive Support 5.0 -8.0 BESS providing active power and capacitive reactive power
Balanced 10.0 5.0 Balanced active and reactive power scenario

All scenario values are editable before running the calculation. The results show the required BESS power for each scenario separately, allowing you to determine the maximum BESS capacity needed across all scenarios.

Output Results

For each scenario (or single target), the results include:

Output Parameter Description Unit
Required BESS Power (P) Active power output required from BESS
Negative = discharging (generation), Positive = charging (consumption)
MW
Required BESS Power (Q) Reactive power output required from BESS
Positive = inductive, Negative = capacitive
Mvar
Apparent Power (S) Total apparent power required: S = √(P² + Q²) MVA
Achieved P at POC Actual active power achieved at Point of Coupling after BESS control MW
Achieved Q at POC Actual reactive power achieved at Point of Coupling after BESS control Mvar
Error P Difference between target and achieved active power at POC MW
Error Q Difference between target and achieved reactive power at POC Mvar
Converged Whether the algorithm converged within tolerance Yes/No
Iterations Number of control loop iterations performed integer

API payloads and result extraction

The browser POSTs the diagram JSON plus a sibling object bess_sizing_params with typ: "BessSizingPandaPower", carrying storageId, pocBusbarId, targets, tolerances, gains, frequency, algorithm, and optional scenarios when running multi-case mode.

Single target response (JSON): bess_p_mw, bess_q_mvar, bess_s_mva, achieved_p_mw, achieved_q_mvar, error_p_mw, error_q_mvar, converged, iterations, or an error string when sizing cannot proceed.

Multiple scenarios response: { "calculationMode": "multiple", "scenarios": [ ... ] } where each scenario echoes the input targets and the same numeric keys as the single-mode payload.

Visualization (Multiple Scenarios Only)

When running multiple scenarios, the results include two visualization plots:

  1. POC P–Q (Target vs Achieved) Plot: Shows a scatter plot comparing target and achieved P/Q values at the Point of Coupling. Blue circles represent target values, green circles represent achieved values. Dashed lines connect target-achieved pairs for each scenario.
  2. Required BESS P–Q Plot: Shows a scatter plot of the required BESS active and reactive power for each scenario. Green circles represent the calculated BESS requirements.

Both plots include grid lines, axis labels, and scenario name annotations for easy identification.

Algorithm Details

The sizing algorithm implements a proportional controller with the following characteristics:

  • Initial Guess: initial_p = -target_p_mw × 1.05 and initial_q = -target_q_mvar × 1.05. The negative sign accounts for the fact that BESS must discharge (negative P from BESS perspective) to supply positive power at POC, and the 1.05 factor accounts for losses.
  • Control Loop: Uses proportional control with damping factor of 0.5 to prevent oscillations:
    • delta_p = -kp_p × error_p × damping
    • delta_q = -kp_q × error_q × damping
  • Sign Convention:
    • At POC: Positive P = consumption from grid, Negative P = generation to grid
    • For BESS: Negative P = discharging (generation), Positive P = charging (consumption)
  • Convergence: Algorithm converges when |error_p| < tolerance AND |error_q| < tolerance

Limitations and Considerations

Important Notes:

  • The algorithm may not converge if the target P/Q values are outside the BESS capability limits
  • Network losses are automatically accounted for in the calculation
  • For time-series analysis (state-of-charge tracking), additional energy capacity parameters are required
  • This sizing calculation is for steady-state power flow and does not consider dynamic behavior
  • If convergence fails, try increasing max iterations, adjusting proportional gains, or checking if targets are feasible

Technical References

Based on: pandapower control framework with custom BESS control controller implementation.

Algorithm Type: Iterative proportional control with Newton-Raphson power flow solver.

Documentation References: 📘 pandapower Control Documentation 📘 pandapower Storage Element

Related studies: BESS Dispatch Reversal; BESS Preliminary Design; Storage Q capability.

BESS Dispatch Reversal App menu: Simulate → BESS Studies → BESS Dispatch Reversal

OpenDSS

Time-domain P-step (charge ↔ discharge) on a selected Storage unit, co-simulated with OpenDSS. Use it to check POC voltage during FCR / primary-market reversals (for example +45 MW → −45 MW in 10 s). Plots are V(t), P(t), and Q(t). Sign convention matches Storage: +P charge, −P discharge; +Q absorb, −Q inject.

Where to find it

Simulate → BESS Studies → BESS Dispatch Reversal (also on the frequency-study menu).

When to use

  • Voltage overshoot / undershoot while active power reverses through P = 0
  • Whether the PCS P–Q envelope, watt priority, or voltage-dependent Q changes the Q(t) and V(t) traces
  • IEEE 1547-style inverter dynamics (OpenDER) versus a snapshot OpenDSS-only ramp

How to run

  1. Configure the Storage: ratings (sn_mva, Pmax), Q capability, and Inverter Control (PF / Volt-VAR / watt priority).
  2. Click Simulate → BESS Studies → BESS Dispatch Reversal.
  3. Select the Storage and the POC bus (plant HV / grid connection — not the External Grid slack bus).
  4. Set start/end P, hold and ramp times, voltage limits (default 0.98–1.02 pu), and Q source (below).
  5. Choose OpenDER + OpenDSS (IEEE 1547 inverter, recommended) or OpenDSS only.

Reactive power during the ramp

The Storage Use Q capability curve and Voltage-dependent Q envelope checkboxes define the PCS envelope. They change V(t)/Q(t) only when Q is taken from that envelope, or when a non-unity PF / Volt-VAR setpoint hits the limit. Unity PF with inverter Q stays at Q ≈ 0.

Q source What is dispatched
Storage inverter settings Fixed PF, manual q_mvar, or OpenDER Volt-VAR. Envelope only clips Q.
Q capability — inject max Q = Qmin from the P–Q curve at the current P (and U if voltage-dependent). Default when the curve is enabled. Use this to see the envelope on the Q plot.
Q capability — absorb max Q = Qmax from the curve (absorb).

Results show dashed Qmin/Qmax on the Q(t) chart. P command is thick dashed orange under the BESS P trace. Choose the plant HV POC; a slack/source bus stays almost flat at 1.0 pu.

Related: Storage, Battery Sizing, BESS Preliminary Design. OpenDER: EPRI OpenDER.

Last updated: October 2026

Electrisim on YouTube · Frontend on GitHub