- Home
- Documentation
- Elements
Elements
Use this catalog to see which palette elements work with pandapower and OpenDSS. Click a name to open its parameter reference. Build the diagram first, then run a study from Simulation.
- Available — The element maps to a native object in that engine.
- Indirect — No native object; similar behaviour is possible with other elements (see the note in parentheses).
- Not available — That engine cannot represent this element. Electrisim warns if such elements are on the diagram when you pick that engine.
| Element | Pandapower | OpenDSS |
|---|---|---|
| Bus | ✅ Available | ✅ Available |
| Line | ✅ Available | ✅ Available |
| Load | ✅ Available | ✅ Available |
| Generator | ✅ Available | ✅ Available |
| Static Generator | ✅ Available | 🟡 no direct element (can be implemented by setting the Generator parameters) |
| Wind Turbine | ✅ Available (as Static Generator / sgen; P from power curve) | ✅ Available (as Generator; P from power curve) |
| Wind Turbine Controller (steady-state) | ✅ Available (Pref for load flow) | ✅ Available (Pref for load flow; not an OpenDSS control object) |
| Wind Turbine Controller (dynamic) | ✅ Stored for time-domain (not applied in snapshot LF) | ✅ Stored for time-domain (not applied in snapshot LF) |
| Park Controller (steady-state) | ✅ Available (station Q/V/PF/tanφ via BinarySearchControl) | ❌ Not Available |
| RegControl | ❌ Not Available | ✅ Available |
| CapControl | ❌ Not Available | ✅ Available |
| StorageController | ❌ Not Available | ✅ Available |
| Asymmetric Static Generator | ✅ Available | 🟡 no direct element (can be implemented by setting the Generator parameters) |
| External Grid | ✅ Available | ✅ Available (Vsource) |
| Transformer | ✅ Available | ✅ Available |
| Capacitor (shunt capacitor bank) | ✅ Available | ✅ Available |
| Shunt Reactor | ✅ Available | ✅ Available (Reactor) |
| Impedance | ✅ Available | ✅ Available |
| Storage | ✅ Available | ✅ Available |
| Protection relay | 🟡 annotation only (visual element, not simulated) | 🟡 annotation only (visual element, not simulated) |
| Fuse | 🟡 annotation only (visual element, not simulated) | 🟡 annotation only (visual element, not simulated) |
| Thyristor-Controlled Series Capacitor (TCSC) | ✅ Available | ❌ Not Available |
| Switch | ✅ Available | ✅ Available |
| Three Winding Transformer | ✅ Available | ✅ Available (Transformer with 3 windings) |
| Asymmetric Load | ✅ Available | 🟡 no direct element (can be implemented by setting the parameters of Load) |
| Motor | ✅ Available | 🟡 no direct element (can be implemented by setting the parameters of Load) |
| Ward | ✅ Available | 🟡 no direct element (can be implemented by modelling PQ+shunt) |
| Extended Ward | ✅ Available | 🟡 no direct element (can be implemented by modelling PV+PQ+shunt) |
| DC line | ✅ Available | ❌ Not Available |
| Voltage Source Converter (VSC) | ✅ Available | ❌ Not Available |
| Static Var Compensator (SVC) | ✅ Available | 🟡 no direct element (can be implemented by modelling Capacitor + Reactor+CapControl) |
| Static Synchronous Compensator STATCOM (SSC) | ✅ Available | 🟡 no direct element (can be implemented by modelling Generator+InvControl) |
| DC Bus | ✅ Available | ❌ Not Available |
| Load DC | ✅ Available | ❌ Not Available |
| Source DC | ✅ Available | ❌ Not Available |
| Back-to-Back Voltage Source Converter (B2B VSC) | ✅ Available | ❌ Not Available |
| BESS AC Block (composite) | 🟡 composite (Bus + Transformer + Storage — all native in pandapower) | 🟡 composite (Bus + Transformer + Storage — all native in OpenDSS) |
| Load 1ph | ❌ Not Available | ✅ Available |
| Source 1ph | ❌ Not Available | ✅ Available |
| Generator 1ph | ❌ Not Available | ✅ Available |
| Line 1ph | ❌ Not Available | ✅ Available |
| Transformer 1ph | ❌ Not Available | ✅ Available |
| PVSystem | 🟡 no direct element (can be approximated using a Static Generator) | ✅ Available |
| Unified power flow controller (UPFC) | 🟡 no direct element (can be implemented by modelling SSC + VSC or DC line) | 🟡 no direct element (approximate with VSC, Generator+InvControl, or series elements) |
Below you will find detailed information about each element, including all configurable parameters, their data types, value ranges, the corresponding OpenDSS property names, and which simulation types use each parameter.
Element Details
This is the parameter lexicon: names match the Electrisim element dialogs. For how to run a study, go back to Simulation. In the parameter tables, the Simulation Types column uses the following abbreviations:
Simulation type abbreviations:
- PF — Power Flow (Load Flow)
- SC — Short Circuit
- OPF — Optimal Power Flow
- MS — Motor Starting
- Harmonics — Harmonic Analysis (OpenDSS)
Parameter importance:
- 🔴 Required — must be specified for the simulation to run
- 🟡 Recommended — important for accurate results
- 🟢 Optional — enhances functionality but has sensible defaults
Bus
pandapower OpenDSS
A bus is a connection point (node / busbar). Every other element must attach to at least one bus. Load-flow results show voltage magnitude and angle here — so set rated voltage (vn_kv) correctly before you run anything. The same result box also shows net bus P and Q; see On-diagram busbar results for the sign convention and how several generators or BESS units on one busbar are aggregated.
Documentation References: 📘 pandapower Bus 📗 OpenDSS Documentation
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | User-defined name for the bus (optional). Used in result summaries and tables (e.g. OpenDSS harmonic analysis) so you can identify nodes by project labels, not only internal IDs. | string | - | Bus name | 🔴 PF, SC, OPF, Harmonics |
| vn_kv | Rated voltage in kV | float | > 0 | kVBase | 🔴 PF, SC, OPF |
| type | Bus type (b = busbar, n = node, m = muff) | string | b, n, m | - | 🟡 PF, SC, OPF |
| max_vm_pu | Maximum voltage magnitude in per unit — enforced as net.bus.max_vm_pu in AC OPF (pandapower). Set on the Bus dialog OPF tab; new buses default to 1.1 p.u. |
float | > 0 | - | 🔴 OPF |
| min_vm_pu | Minimum voltage magnitude in per unit — enforced as net.bus.min_vm_pu in AC OPF (pandapower). Set on the Bus dialog OPF tab; new buses default to 0.9 p.u. |
float | > 0 | - | 🔴 OPF |
| in_service | Specifies if the bus is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
OPF note: Bus min_vm_pu / max_vm_pu are sent to the pandapower backend with each study. If limits are missing or inconsistent (e.g. max ≤ min) on a bus, Electrisim substitutes a wide 0.8–1.2 p.u. band for that bus only so AC OPF can converge on stressed networks.
Line
pandapower OpenDSS
Draw a Line as an edge between two buses (it is not a palette shape). Enter length and impedance, or keep the defaults for a first test. Use this for cables and overhead lines; use Impedance when you only have R and X between two buses.
UI defaults on drop: length_km 1, type cs (cable), endtemp_degree 250 °C, zero-sequence r0_ohm_per_km/x0_ohm_per_km 0.1 Ω/km, parallel 1, df 1.
Documentation References: 📘 pandapower Line 📗 OpenDSS Line
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the line | string | - | name | 🔴 PF, SC, OPF |
| from_bus | Starting bus | integer | - | Bus1 | 🔴 PF, SC, OPF |
| to_bus | Ending bus | integer | - | Bus2 | 🔴 PF, SC, OPF |
| length_km | Line length in kilometers | float | > 0 | Length | 🔴 PF, SC, OPF |
| r_ohm_per_km | Resistance per kilometer (Ω/km) | float | ≥ 0 | R1 | 🔴 PF, SC, OPF |
| x_ohm_per_km | Reactance per kilometer (Ω/km) | float | ≥ 0 | X1 | 🔴 PF, SC, OPF |
| c_nf_per_km | Capacitance per kilometer (nF/km) | float | ≥ 0 | C1 | 🟡 PF, SC, OPF |
| g_us_per_km | Dielectric conductance per kilometer (μS/km) | float | ≥ 0 | - | 🟡 PF, SC, OPF |
| max_i_ka | Maximum thermal current (kA) | float | > 0 | normamps | 🔴 PF, OPF |
| r0_ohm_per_km | Zero-sequence resistance per kilometer (Ω/km) | float | ≥ 0 | R0 | 🟡 SC |
| x0_ohm_per_km | Zero-sequence reactance per kilometer (Ω/km) | float | ≥ 0 | X0 | 🟡 SC |
| c0_nf_per_km | Zero-sequence capacitance per kilometer (nF/km) | float | ≥ 0 | C0 | 🟡 SC |
| type | Type of line ("ol" for overhead, "cs" for cable) | string | ol, cs | - | 🟡 PF, SC, OPF |
| parallel | Number of parallel lines | integer | ≥ 1 | - | 🟢 PF, SC, OPF |
| df | Derating factor (applies to max_i_ka) | float | 0-1 | - | 🟢 PF, SC, OPF |
| max_loading_percent | Optional maximum thermal loading in percent of rating for AC OPF only (pandapower line.max_loading_percent). Use 0 or leave unset for no OPF thermal limit on this branch. Edit on the line dialog OPF tab or in the Component Data grid (Line tab). |
float | ≥ 0 | - | 🔴 OPF |
| endtemp_degree | End temperature of the line in °C (used for temperature-dependent resistance correction in short-circuit calculations) | float | > 0 | - | 🟢 SC |
| in_service | Specifies if the line is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Load
pandapower OpenDSS
A load is demand at a bus (P and Q). Use constant power unless you have a reason for constant current or impedance. This is the usual way to model customers, motors-as-PQ, and plant auxiliaries.
Documentation References: 📘 pandapower Load 📗 OpenDSS Load
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the load | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the load is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| p_mw | Active power consumption in MW | float | - | kW | 🔴 PF, SC, OPF |
| q_mvar | Reactive power consumption in Mvar | float | - | kvar | 🟡 PF, SC, OPF |
| const_z_percent | Percentage of constant impedance load | float | 0-100 | %Z | 🟢 PF, SC, OPF |
| const_i_percent | Percentage of constant current load | float | 0-100 | %I | 🟢 PF, SC, OPF |
| sn_mva | Rated apparent power in MVA | float | > 0 | kVA | 🟡 PF, SC, OPF |
| scaling | Scaling factor for power values | float | > 0 | - | 🟡 PF, SC, OPF |
| type | Connection type: "wye" (wye/star) or "delta" | string | wye, delta | conn | 🟡 PF, SC, OPF |
| in_service | Specifies if the load is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Harmonic Parameters (OpenDSS):
These parameters are used when running harmonic analysis with the OpenDSS engine. They define how the load injects harmonic currents and how the harmonic-frequency impedance of the load is represented. See also the Harmonic Analysis section for spectrum modes and workflow.
| Parameter | Description | Type | Value Range | OpenDSS Property | Simulation Types |
|---|---|---|---|---|---|
| spectrum | Harmonic current spectrum selection from the Harmonic tab: Default uses OpenDSS built-in defaultload; Linear uses a defined decaying spectrum (approximately 100/h % magnitude on odd orders 3,5,7,11,13); Custom uses spectrum_csv; None disables harmonic injection from this load. |
string | defaultload, Linear, custom, none | spectrum | 🟡 Harmonics |
| spectrum_csv | One row per harmonic: order, magnitude_percent, angle_deg (comma-separated). Used when spectrum mode is Custom. Magnitudes are in percent of fundamental current. |
string (CSV) | - | New Spectrum.* + spectrum | 🟢 Harmonics |
| pctSeriesRL | Percent of load modeled as series R–L branch for harmonics (OpenDSS %SeriesRL). 100% is typical for many studies; lower values emphasize the parallel branch. See EPRI Harmonics Load Modeling. |
float | 0–100 | %SeriesRL | 🟡 Harmonics |
| conn | Wye or delta connection for the harmonic load model (can differ from the load flow connection type type when you need a specific harmonic representation). |
string | wye, delta | conn | 🟡 Harmonics |
| puXharm | Per-unit reactance of the load at harmonic frequency when the series R–L model is used; leave 0 to let OpenDSS derive behavior from %SeriesRL and XRharm. |
float | ≥ 0 | puXharm | 🟢 Harmonics |
| XRharm | X/R ratio for the harmonic branch (often taken in the 3–7 range for equipment studies). | float | > 0 | XRharm | 🟢 Harmonics |
Motor
pandapower OpenDSS
An asynchronous motor. Use it when you need locked-rotor inrush for Motor Starting or a motor contribution in short-circuit. In OpenDSS it is mapped through a Load equivalent, not a native motor object.
Documentation References: 📘 pandapower Motor 📗 OpenDSS Motor
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the motor | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the motor is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| pn_mech_mw | Rated mechanical power in MW | float | > 0 | HP (converted) | 🔴 PF, SC, OPF |
| vn_kv | Rated voltage in kV | float | > 0 | kV | 🔴 PF, SC, OPF |
| cos_phi | Power factor (lagging) | float | 0-1 | pf | 🟡 PF, SC, OPF |
| efficiency_percent | Efficiency in percent at current loading | float | 0-100 | %Eff | 🟡 PF, SC, OPF |
| efficiency_n_percent | Rated efficiency in percent at nominal conditions | float | 0-100 | %EffRated | 🟢 PF, SC, OPF |
| loading_percent | Current loading in percent of rated power | float | 0-100 | %LoadMW | 🟡 PF, SC, OPF |
| scaling | Scaling factor for power | float | > 0 | - | 🟡 PF, SC, OPF |
| lrc_pu | Locked rotor current in per unit for short-circuit and motor starting | float | > 0 | LRC | 🔴 SC, MS |
| rx | R/X ratio for short-circuit / locked-rotor impedance | float | ≥ 0 | R/X | 🔴 SC, MS |
| Hm | Inertia constant (s) for dynamic motor starting (ANDES Motor3) | float | > 0 | - | 🟢 MS (dynamic) |
| tm_c1 / tm_c2 / tm_c3 | Mechanical load torque coefficients for dynamic starting | float | - | - | 🟢 MS (dynamic) |
| in_service | Specifies if the motor is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF, MS |
Asymmetric Load
pandapower OpenDSS
Asymmetric loads allow modeling of unbalanced three-phase loads where each phase can have different power consumption. This is particularly useful for distribution network analysis.
Documentation References: 📘 pandapower Asymmetric Load 📗 OpenDSS Load
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the asymmetric load | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the load is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| p_a_mw, p_b_mw, p_c_mw | Active power per phase in MW (phases A, B, C) | float | - | kW (per phase) | 🔴 PF, SC, OPF |
| q_a_mvar, q_b_mvar, q_c_mvar | Reactive power per phase in Mvar (phases A, B, C) | float | - | kvar (per phase) | 🟡 PF, SC, OPF |
| sn_mva | Rated apparent power in MVA | float | > 0 | kVA | 🟡 PF, SC, OPF |
| scaling | Scaling factor for power values | float | > 0 | - | 🟡 PF, SC, OPF |
| type | Connection type (wye or delta) | string | wye, delta | conn | 🟡 PF, SC, OPF |
| in_service | Specifies if the load is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Static Generator
pandapower OpenDSS
Static generators represent generators with static (PQ) behavior — for example photovoltaic systems or small generation units. For wind turbines with an editable P–v power curve, prefer the dedicated Wind Turbine element. In OpenDSS, a static generator is a Generator with Model=1 (constant kW and kvar), not a voltage-controlled Model=3 bus. Both static generators and wind turbines can be selected in Grid Code Compliance (P-Q).
Documentation References: 📘 pandapower Static Generator 📗 OpenDSS Generator
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the static generator | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the generator is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| p_mw | Active power generation in MW | float | - | kW | 🔴 PF, SC, OPF |
| q_mvar | Reactive power generation in Mvar | float | - | kvar | 🟡 PF, SC, OPF |
| sn_mva | Rated apparent power in MVA | float | > 0 | kVA | 🟡 PF, SC, OPF |
| type | Type of generator (e.g., PV, wind, CHP) | string | - | - | 🟡 PF, SC, OPF |
| controllable | Whether the generator is controllable | boolean | True/False | - | 🔴 OPF |
| scaling | Scaling factor for power | float | > 0 | - | 🟡 PF, SC, OPF |
| k | Factor for short-circuit calculation (typically 1.1) | float | > 0 | - | 🟡 SC |
| rx | R/X ratio for short-circuit impedance | float | ≥ 0 | R/X | 🔴 SC |
| generator_type | Generator type for short-circuit (current_source, async, doubly_fed) | string | - | - | 🟡 SC |
| lrc_pu | Locked rotor current in per unit for short-circuit | float | > 0 | LRC | 🟡 SC |
| max_ik_ka | Maximum short-circuit current in kA | float | > 0 | - | 🟡 SC |
| current_source | Whether generator acts as current source for short-circuit | boolean | True/False | - | 🟡 SC |
| kappa | Factor for peak short-circuit current (typically 1.5) | float | > 0 | - | 🟡 SC |
| in_service | Specifies if the generator is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Wind Turbine
pandapower OpenDSS
A dedicated wind generation element based on the Static Generator model. Active power for load flow is always derived from a wind power curve P(v) and the configured wind speed — you do not set p_mw independently. Changing wind speed (in the element dialog or in Component Data) updates P [MW] immediately from the curve.
How load flow uses it: Electrisim interpolates the curve at the current wind speed (linear segments or constant/stepwise between knots) and sends the resulting p_mw to the engine. In pandapower this is a Static Generator (sgen). In OpenDSS it is a Generator with Model=1 (constant kW and kvar — a PQ injection, matching pandapower sgen), not Model=3 (constant kW / constant kV). Vminpu is kept wide so collector undervoltage does not convert the unit to constant-Z and collapse P. Reactive power and other Static Generator parameters (ratings, ANDES dynamics kind, and the shared short-circuit fields k, R/X, and generator type) work the same way as on a Static Generator. Wind turbines also have fault-specific Ik" currents and a negative-sequence impedance; see Short circuit (IEC 60909) below. Wind turbines can be selected together with static generators in Grid Code Compliance (P-Q).
Do you need a Wind Turbine Controller? For a normal snapshot load flow, no — the turbine already computes P from its own curve and speed. Use a Wind Turbine Controller (steady-state) only if you want a separate Pref override (controller wind speed or controller curve). Use a Wind Turbine Controller (dynamic) for averaging / gradient limiting in time-domain studies.
Palette: Sources (or Electrical abstract sources) → Wind Turbine. A worked example is File → New → offshore wind farm 1 GW (rev 6; 100 km export).
Documentation References: 📘 pandapower Static Generator 📗 OpenDSS Generator
Wind-specific parameters
In addition to the usual Static Generator fields, the Wind Turbine dialog provides:
| Parameter | Description | Type | Value Range | Simulation Types |
|---|---|---|---|---|
| wind_speed_ms | Hub-height wind speed used with the power curve to set active power. Editing this value recalculates p_mw from the curve in the Power tab and in Component Data. |
float | ≥ 0 m/s | 🔴 PF |
| wind_power_curve_json | Editable P(v) table (wind speed [m/s] vs active power [MW]), edited via table + live plot in the Power tab. Built-in templates: 2.5 MW onshore, 3.3 MW onshore, 15 MW offshore (replace with OEM data for project work). | JSON array | points {v_ms, p_mw} |
🔴 PF |
| wind_curve_approx | Interpolation between table knots | string | linear or constant |
🔴 PF |
| p_mw | Active power from the curve at wind_speed_ms (read-only; updated automatically when speed, curve, or interpolation changes; also overwritten before each load flow) |
float | — | 🔴 PF, SC, OPF |
| q_setpoint_mode | Load-flow Q: manual uses q_mvar; capacitive_max uses Qmax from the capability curve (overexcited / injects Q); inductive_max uses Qmin (underexcited / absorbs Q). Requires Use Q capability curve. |
string | manual, capacitive_max, inductive_max |
🔴 PF |
Default dynamics plant kind is WIND for ANDES studies when renewable/IBR models are used.
Short circuit (IEC 60909)
On the Short Circuit tab a full-size converter (generator_type = current_source) is a current source. pandapower injects
Ik = k · Sn / (√3 · U)
When the Ik" field for the fault being solved is greater than 0, and rated power and reference voltage are greater than 0, Electrisim sets
k = Ik" · √3 · Uref / Sn
Uref is Ik" reference voltage. Leave that box empty to use the voltage of the bus the turbine is connected to. The same k is correct on either side of the unit transformer, because the per-unit current does not change with the voltage ratio. R/X is used only for async and async_doubly_fed. A current_source ignores it.
If Ik" for that fault is 0, a Current Ratio k greater than 0 is used. If that is also 0, k stays 1.1, so older diagrams keep the previous contribution. A minimum short-circuit case contributes no converter current. Compare Ik" with the result ikss: the converter current does not decay between the initial and steady-state values. Peak current still uses the existing kappa path.
r2 and x2 are the negative-sequence impedance in per unit of Sn. They are applied only for two-phase and single-phase faults, as a shunt on the negative-sequence network. Three-phase faults are unchanged. Bus ikss, and the peak and thermal currents on that bus, include this shunt. Branch currents stay on pandapower’s assumption that negative-sequence impedance equals positive-sequence impedance, plus the fault-specific converter current. With x2 = 1 pu the machine branch is large beside a normal grid impedance, so the correction shows up mainly for a fault at a weak turbine bus. ANSI/IEEE C37 does not use these Ik" fields.
| Parameter | Description | Type | Default | Simulation Types |
|---|---|---|---|---|
| ikss_3ph_ka | Initial symmetrical short-circuit current contribution for a three-phase fault, in kA at sc_ref_vn_kv. |
float | 0.0866 kA | 🟡 SC |
| ikss_2ph_ka | Contribution for a two-phase fault, in kA at the same reference voltage. Default is half of the three-phase value. | float | 0.0433 kA | 🟡 SC |
| ikss_1ph_ka | Contribution for a single-phase fault, in kA at the same reference voltage. | float | 0.0433 kA | 🟡 SC |
| sc_ref_vn_kv | Voltage the Ik" currents are referred to. Usually the high-voltage side of the unit transformer. Empty uses the connected bus voltage. | float | 30 kV | 🟡 SC |
| r2_pu | Negative-sequence resistance in per unit of Sn. | float | 0 | 🟡 SC |
| x2_pu | Negative-sequence reactance in per unit of Sn. Set to 0 to keep negative sequence equal to positive sequence. | float | 1 | 🟡 SC |
A new turbine, and a turbine whose Short Circuit Ik" fields were never filled, opens with these defaults. At 4.5 MVA and 30 kV the three-phase default is about k = 1.0 and the unbalanced defaults are about k = 0.5. Change Ik", reference voltage, or Sn on the Rating tab when the machine is different. Blank Ik" fields on an older diagram still fall back to k = 1.1.
Q capability (voltage-dependent, P and U)
The Wind Turbine Q capability tab defines reactive limits Qmin/Qmax as a function of both active power P and terminal voltage U (voltage-dependent Q limits). Enable Use Q capability curve so load flow applies the limits (pandapower enforce_q_lims and optional capacitive/inductive Q setpoint).
Configuration: choose limits in p.u. of Sn or MW/Mvar, optionally Consider voltage dependent limits, and scale min/max with the Operational Limits factors (%). Use a built-in template (below) or paste OEM matrices.
Axes: rows are voltage levels [p.u.]; columns are P-setpoints (p.u. or MW). Two matrices hold Qmax (overexcited / capacitive — the plant injects Q) and Qmin (underexcited / inductive — the plant absorbs Q) at every (U, P) knot. The P–Q plot shows one envelope per voltage.
Load flow: the engine bilinearly interpolates Q(P, U). Before bus voltages exist, U = 1.0 p.u. is used. After a voltage solution (and in the Park Controller), the terminal vm_pu is used. A flattened U=1.0 slice is also stored as the 1D P–Q table for pandapower’s native characteristic.
Built-in Q capability templates (stored in p.u. of Sn; confirm against OEM data):
- FRC WTG P–U (voltage-dependent) — PowerFactory type Fully Rated Converter WTG 2.5MW 50Hz: Q vs P and U. Default for new turbines (Q = 0 at P = 0; about ±0.44 p.u. Q at U = 1.0 and moderate P; Qmax shrinks at high voltage while Qmin stays near −0.44 p.u.).
- ±0.95 PF vs P (1D, U = 1.0 p.u.) — |Q| ≈ P·tan(arccos(0.95)) at each P; single voltage row. Same shape as the Static Generator 15 MW template, scaled to this turbine Sn.
- 15 MW offshore 1·Un chart (1D) — digitized manufacturer-style P–Q envelope at 1.0 p.u. voltage (asymmetric import/export).
Asymmetric Static Generator
pandapower OpenDSS
Asymmetric static generators allow modeling of unbalanced generation where each phase can produce different power levels.
Documentation References: 📘 pandapower Asymmetric Static Generator 📗 OpenDSS Generator
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the asymmetric generator | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the generator is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| p_a_mw, p_b_mw, p_c_mw | Active power per phase in MW (phases A, B, C) | float | - | kW (per phase) | 🔴 PF, SC, OPF |
| q_a_mvar, q_b_mvar, q_c_mvar | Reactive power per phase in Mvar (phases A, B, C) | float | - | kvar (per phase) | 🟡 PF, SC, OPF |
| type | Connection type (wye or delta) | string | wye, delta | conn | 🟡 PF, SC, OPF |
| in_service | Specifies if the generator is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
External Grid
pandapower OpenDSS
The external grid represents the connection to a higher voltage level or an infinite bus. It serves as the slack bus in power flow calculations and provides the voltage reference.
Short Circuit tab
Double-click the External Grid and open the Short Circuit tab. Positive-sequence strength is s_sc_max_mva / s_sc_min_mva with R/X ratios rx_max / rx_min. Zero-sequence ratios are required for IEC 60909 single-phase faults:
- Maximum case: Max R0/X0 Ratio (
r0x0_max) and Max X0/X Ratio (x0x_max). - Minimum case: Min R0/X0 Ratio (
r0x0_min) and Min X0/X Ratio (x0x_min). Three-phase and two-phase minimum studies do not use these columns; single-phase minimum does.
If min zero-sequence ratios are omitted on an older diagram, Electrisim reuses the corresponding max ratios. Typical pandapower example values when no utility data is available: R0/X0 = 0.1, X0/X = 1.0. Related study: Short Circuit.
Documentation References: 📘 pandapower External Grid 📗 OpenDSS Vsource
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the external grid | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the external grid is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| vm_pu | Voltage magnitude setpoint in per unit | float | > 0 | pu (Vsource) | 🔴 PF, SC, OPF |
| va_degree | Voltage angle in degrees | float | -360 to 360 | angle | 🟡 PF, SC, OPF |
| s_sc_max_mva | Maximum short-circuit apparent power in MVA | float | > 0 | MVAsc3 | 🔴 SC |
| s_sc_min_mva | Minimum short-circuit apparent power in MVA | float | > 0 | MVAsc1 | 🟡 SC |
| rx_max | Maximum R/X ratio for positive sequence short-circuit | float | ≥ 0 | R1/X1 | 🔴 SC |
| rx_min | Minimum R/X ratio for positive sequence short-circuit | float | ≥ 0 | R1/X1 | 🟡 SC |
| r0x0_max | Max R0/X0 Ratio on the Short Circuit tab. Zero-sequence R0/X0 for IEC 60909 single-phase maximum short-circuit. | float | ≥ 0 | R0/X0 | 🟡 SC |
| x0x_max | Max X0/X Ratio on the Short Circuit tab. Zero- to positive-sequence reactance ratio (X0/X1) for IEC 60909 single-phase maximum short-circuit. Typical value 1.0. | float | ≥ 0 | X0/X1 | 🟡 SC |
| r0x0_min | Min R0/X0 Ratio on the Short Circuit tab. Zero-sequence R0/X0 for IEC 60909 single-phase minimum short-circuit. Required by pandapower for that case; if omitted, Electrisim copies r0x0_max. |
float | ≥ 0 | R0/X0 | 🟡 SC |
| x0x_min | Min X0/X Ratio on the Short Circuit tab. Zero- to positive-sequence reactance ratio (X0/X1) for IEC 60909 single-phase minimum short-circuit. Required by pandapower for that case; if omitted, Electrisim copies x0x_max. Typical value 1.0. |
float | ≥ 0 | X0/X1 | 🟡 SC |
| spectrum | Harmonic voltage spectrum for OpenDSS harmonic analysis (e.g., "defaultvsource") | string | defaultvsource, none, custom | spectrum (Vsource) | 🟡 Harmonics |
| cost_per_unit_by_currency | Cost per unit for economic analysis (in selected currency) | float | ≥ 0 | - | 🟢 Economic |
| in_service | Specifies if the external grid is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Transformer
pandapower OpenDSS
Transformers connect different voltage levels in the network. They can be equipped with tap changers for voltage regulation.
Schematic Labels: Each transformer terminal can display a custom label on the canvas symbol (e.g. "HV", "LV"). These labels are purely cosmetic — they help identify which winding connects to which bus on the schematic, but do not affect simulation parameters or solver data. Edit them in the Schematic tab of the transformer dialog. Changes appear immediately on the canvas.
Documentation References: 📘 pandapower Transformer 📗 OpenDSS Transformer
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the transformer | string | - | name | 🔴 PF, SC, OPF |
| term_label_0 | Schematic label for port 0 (HV bus / first connection). Display only — shown on the canvas symbol near the HV terminal pin. Does not affect simulation. | string | any text | - | - |
| term_label_1 | Schematic label for port 1 (LV bus / second connection). Display only — shown on the canvas symbol near the LV terminal pin. Does not affect simulation. | string | any text | - | - |
| hv_bus | High voltage bus | integer | - | Bus (winding 1) | 🔴 PF, SC, OPF |
| lv_bus | Low voltage bus | integer | - | Bus (winding 2) | 🔴 PF, SC, OPF |
| sn_mva | Rated apparent power in MVA | float | > 0 | kVA | 🔴 PF, SC, OPF |
| vn_hv_kv | Rated high voltage in kV | float | > 0 | kV (winding 1) | 🔴 PF, SC, OPF |
| vn_lv_kv | Rated low voltage in kV | float | > 0 | kV (winding 2) | 🔴 PF, SC, OPF |
| vk_percent | Short-circuit voltage in percent | float | > 0 | %Z | 🔴 PF, SC, OPF |
| vkr_percent | Real part of short-circuit voltage in percent | float | ≥ 0 | %R | 🔴 PF, SC, OPF |
| pfe_kw | Iron losses in kW | float | ≥ 0 | %noload | 🟡 PF, SC, OPF |
| i0_percent | No-load current in percent | float | ≥ 0 | %imag | 🟡 PF, SC, OPF |
| parallel | Number of parallel transformers | integer | ≥ 1 | - | 🟢 PF, SC, OPF |
| shift_degree | Phase shift angle in degrees | float | -360 to 360 | Wdg (angle) | 🟢 PF, SC, OPF |
| vector_group | Vector group designation (e.g., "Dyn11", "Yyn0"). App default: Dyn |
string | - | Wdg (conn) | 🟢 PF, SC, OPF |
| tap_side | Side with tap changer ("hv" or "lv") | string | hv, lv | Wdg (tap side) | 🔴 OPF |
| tap_pos | Current tap position | integer | - | tap | 🟡 OPF |
| tap_neutral | Neutral tap position | integer | - | - | 🟢 OPF |
| tap_min | Minimum tap position | integer | - | MinTap | 🔴 OPF |
| tap_max | Maximum tap position | integer | - | MaxTap | 🔴 OPF |
| tap_step_percent | Voltage change per tap step in percent | float | - | %RperTap | 🔴 OPF |
| tap_step_degree | Phase angle change per tap step in degrees | float | - | - | 🟢 OPF |
| tap_changer_type | Type of tap changer: "Ratio" (default) adjusts voltage magnitude only, "Symmetrical" distributes tap change to both windings (new in pandapower 3.0+) | string | Ratio, Symmetrical | - | 🟢 PF, SC, OPF |
| discrete_tap_control | Enable Discrete Tap Control for this transformer (requires Include controller on the Pandapower Load Flow dialog) | boolean | True/False | - | 🟢 PF |
| control_side | Which bus voltage is monitored by the controller ("lv" or "hv") | string | lv, hv | lv | 🟢 PF |
| vm_lower_pu | Lower voltage limit for Discrete Tap Control | float | 0.9 - 1.1 (typical) | 0.99 | 🟢 PF |
| vm_upper_pu | Upper voltage limit for Discrete Tap Control | float | 0.9 - 1.1 (typical) | 1.01 | 🟢 PF |
| vk0_percent | Zero-sequence short-circuit voltage in percent | float | > 0 | %Z0 | 🟡 SC |
| vkr0_percent | Real part of zero-sequence short-circuit voltage in percent | float | ≥ 0 | %R0 | 🟡 SC |
| mag0_percent | Zero-sequence magnetizing current in percent | float | ≥ 0 | - | 🟢 SC |
| mag0_rx | Zero-sequence magnetizing R/X ratio | float | ≥ 0 | - | 🟢 SC |
| si0_hv_partial | Zero-sequence short-circuit impedance distribution (HV side) | float | 0-1 | - | 🟡 SC |
| max_loading_percent | Optional maximum loading (% of rating) for AC OPF (pandapower trafo.max_loading_percent). 0 = no limit. OPF tab. |
float | ≥ 0 | - | 🔴 OPF |
| in_service | Specifies if the transformer is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Three Winding Transformer
pandapower OpenDSS
Three winding transformers have three separate windings, typically connecting three different voltage levels at one location.
Schematic Labels: Each of the three terminals can display a custom label on the canvas symbol (e.g. "HV", "MV", "LV"). These labels are purely cosmetic — they help identify which winding connects to which bus on the schematic, but do not affect simulation parameters or solver data. Edit them in the Schematic tab of the transformer dialog. Changes appear immediately on the canvas.
For the solver, Electrisim maps the three connected buses to HV / MV / LV by bus voltage (vn_kv): highest, middle, then lowest. If two buses share the same voltage, the original connection order is used as a tie-break so the mapping stays stable between runs.
Documentation References: 📘 pandapower Three Winding Transformer 📗 OpenDSS Transformer
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types | Dialog tab |
|---|---|---|---|---|---|---|
| name | Name of the three winding transformer | string | - | name | 🔴 PF, SC, OPF | Load Flow |
| term_label_0 | Schematic label for port 0 (HV bus / first connection). Display only — shown on the canvas symbol near the HV terminal pin. Does not affect simulation. | string | any text | - | - | Schematic |
| term_label_1 | Schematic label for port 1 (MV bus / second connection). Display only — shown on the canvas symbol near the MV terminal pin. Does not affect simulation. | string | any text | - | - | Schematic |
| term_label_2 | Schematic label for port 2 (LV bus / third connection). Display only — shown on the canvas symbol near the LV terminal pin. Does not affect simulation. | string | any text | - | - | Schematic |
| hv_bus | High voltage bus | integer | - | - | 🔴 PF, SC, OPF | |
| mv_bus | Medium voltage bus | integer | - | - | 🔴 PF, SC, OPF | |
| lv_bus | Low voltage bus | integer | - | - | 🔴 PF, SC, OPF | |
| sn_hv_mva, sn_mv_mva, sn_lv_mva | Rated power per winding in MVA | float | > 0 | - | 🔴 PF, SC, OPF | |
| vn_hv_kv, vn_mv_kv, vn_lv_kv | Rated voltage per winding in kV | float | > 0 | - | 🔴 PF, SC, OPF | |
| vk_hv_percent, vk_mv_percent, vk_lv_percent | Short-circuit voltages in percent | float | > 0 | %Z (Wdg 1-2, 2-3, 3-1) | 🔴 PF, SC, OPF | |
| vkr_hv_percent, vkr_mv_percent, vkr_lv_percent | Real part of short-circuit voltages in percent | float | ≥ 0 | %R (Wdg 1-2, 2-3, 3-1) | 🔴 PF, SC, OPF | |
| pfe_kw | Iron losses in kW | float | ≥ 0 | %noload | 🟡 PF, SC, OPF | |
| i0_percent | No-load current in percent | float | ≥ 0 | %imag | 🟡 PF, SC, OPF | |
| shift_mv_degree | Phase shift angle for MV winding in degrees | float | -360 to 360 | Wdg 2 angle | 🟢 PF, SC, OPF | |
| shift_lv_degree | Phase shift angle for LV winding in degrees | float | -360 to 360 | Wdg 3 angle | 🟢 PF, SC, OPF | |
| vector_group | Vector group designation (e.g., "YNyn0d5"). App default: Dyn (2W); configure per winding for 3W |
string | - | Wdg (conn) | 🟢 PF, SC, OPF | |
| tap_side | Winding with tap changer ("hv", "mv", or "lv") | string | hv, mv, lv | Wdg (tap side) | 🔴 OPF | |
| tap_pos | Current tap position | integer | - | tap | 🟡 OPF | |
| tap_neutral | Neutral tap position | integer | - | - | 🟢 OPF | |
| tap_min | Minimum tap position | integer | - | MinTap | 🔴 OPF | |
| tap_max | Maximum tap position | integer | - | MaxTap | 🔴 OPF | |
| tap_step_percent | Voltage change per tap step in percent | float | - | %RperTap | 🔴 OPF | |
| tap_changer_type | Type of tap changer: "Ratio" (default) adjusts voltage magnitude only, "Symmetrical" distributes tap change to both windings (new in pandapower 3.0+) | string | Ratio, Symmetrical | - | 🟢 PF, SC, OPF | |
| vk0_hv_percent, vk0_mv_percent, vk0_lv_percent | Zero-sequence short-circuit voltages in percent | float | > 0 | %Z0 (Wdg pairs) | 🟡 SC | |
| vkr0_hv_percent, vkr0_mv_percent, vkr0_lv_percent | Real part of zero-sequence short-circuit voltages in percent | float | ≥ 0 | %R0 (Wdg pairs) | 🟡 SC | |
| max_loading_percent | Optional maximum loading (% of rating) for AC OPF (pandapower trafo3w.max_loading_percent). 0 = no limit. OPF tab. |
float | ≥ 0 | - | 🔴 OPF | |
| in_service | Specifies if the transformer is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Generator
pandapower OpenDSS
Generators represent synchronous generators with dynamic behavior. They are typically used for large power plants and have voltage control capabilities. For North American short-circuit studies, set ANSI machine type on the generator (used by ANSI/IEEE C37, beta).
Documentation References: 📘 pandapower Generator 📗 OpenDSS Generator
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the generator | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the generator is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| p_mw | Active power setpoint in MW | float | - | kW | 🔴 OPF |
| vm_pu | Voltage magnitude setpoint in per unit | float | > 0 | kV (model=3) | 🔴 PF, SC, OPF |
| sn_mva | Rated apparent power in MVA | float | > 0 | kVA | 🟡 PF, SC, OPF |
| min_q_mvar | Minimum reactive power in Mvar | float | - | kvarmin | 🔴 OPF |
| max_q_mvar | Maximum reactive power in Mvar | float | - | kvarmax | 🔴 OPF |
| scaling | Scaling factor for power | float | > 0 | - | 🟢 PF, SC, OPF |
| slack | Whether this is the slack generator | boolean | True/False | - | 🟡 PF, SC, OPF |
| vn_kv | Rated voltage in kV | float | > 0 | kV | 🔴 SC |
| xdss_pu | Subtransient reactance in per unit for short-circuit | float | > 0 | Xd'' | 🔴 SC |
| rdss_ohm | Subtransient resistance in Ohm for short-circuit | float | ≥ 0 | - | 🟡 SC |
| ansi_machine_type | Rotating-machine class for ANSI/IEEE C37 reactance multipliers (turbo, hydro with amortisseur, hydro, synchronous motor). Used only when Short Circuit is run with the ANSI/IEEE C37 (beta) tick. See ANSI/IEEE C37. | string | turbo, hydro_amortisseur, hydro, sync_motor | - | 🟡 SC (ANSI) |
| cos_phi | Rated power factor (cosine phi) | float | 0-1 | pf | 🟡 SC |
| pg_percent | Generator participation factor in percent for power dispatch | float | 0-100 | - | 🟡 OPF |
| in_service | Specifies if the generator is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Harmonic Parameters (OpenDSS):
| Parameter | Description | Type | OpenDSS Property | Simulation Types |
|---|---|---|---|---|
| spectrum | Harmonic current injection spectrum name (e.g., "defaultgen") | string | spectrum | 🟡 Harmonics |
| Xdpp | Sub-transient reactance for harmonic model (per unit) | float | Xd'' | 🟢 Harmonics |
| XRdp | X/R ratio at sub-transient frequency for harmonic model | float | XRdp | 🟢 Harmonics |
| dyn_machine_model | ANDES machine model for TDS/EIG (GENROU or GENCLS). Empty numeric dynamics fields use textbook defaults. | string | — | 🔴 TDS, EIG |
| dyn_M / dyn_H | Inertia M (=2H) or H in seconds (Dynamics tab) | float | — | 🟡 TDS, EIG |
| dyn_xd, dyn_xq, dyn_xd1, … | Machine reactances and time constants (Dynamics tab). Leave empty for GENROU defaults. | float | — | 🟡 TDS, EIG |
| dyn_exciter_model | Exciter: EXDC2, SEXS, or NONE | string | — | 🟡 TDS, EIG |
| dyn_governor_model | Governor: TGOV1, IEEEG1, IEESGO, GAST, HYGOV, or NONE | string | — | 🟡 TDS, EIG |
| dyn_exciter_model | Exciter: EXDC2, SEXS, IEEEX1, ESDC2A, EXST1, ESST1A, AC8B, or NONE | string | — | 🟡 TDS, EIG |
| dyn_pss_model | PSS: IEEEST or NONE | string | — | 🟡 TDS, EIG |
Dynamics tab: Open the Generator dialog → Dynamics to set machine, exciter, governor, and optional PSS parameters for Transient Stability and Eigenvalue Analysis. If fields are left empty, Electrisim applies GENROU + EXDC2 + TGOV1 defaults and lists them in the results as defaults_applied. Static Generators support renewable plant kinds (IBR / Wind / PVD1 / ESD1) with REGCA1–REPCA1 and related ANDES models.
Slack concept by framework
The slack parameter in Electrisim applies to Pandapower load flow only. OpenDSS handles the slack bus differently:
| Framework | Slack concept |
|---|---|
| Pandapower | slack=True on a generator marks it as the slack bus |
| OpenDSS | Vsource is the slack; Generator has no slack flag |
For OpenDSS load flow, the slack role is handled by Vsource elements (External Grid), not by the Generator object.
Capacitor & Shunt Reactor
pandapower OpenDSS
Electrisim provides two separate shunt elements for reactive power compensation: a Capacitor (capacitor bank for leading reactive power) and a Shunt Reactor (inductive shunt for lagging reactive power). Both appear as separate components in the element palette and have dedicated dialog forms. Internally, both map to the pandapower shunt element, while in OpenDSS they map to the Capacitor and Reactor elements respectively.
Documentation References: 📘 pandapower Shunt 📗 OpenDSS Capacitor 📗 OpenDSS Reactor
Capacitor Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the capacitor | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the capacitor is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| q_mvar | Reactive power output in Mvar (positive = capacitive) | float | > 0 | kvar | 🔴 PF, SC, OPF |
| vn_kv | Rated voltage in kV | float | > 0 | kV | 🟡 PF, SC, OPF |
| loss_factor | Loss factor (tan delta) of the capacitor | float | ≥ 0 | - | 🟢 PF, SC, OPF |
| step | Current active step (for switched capacitor banks) | integer | ≥ 1 | numsteps | 🟡 PF, SC, OPF |
| max_step | Maximum number of steps in the capacitor bank | integer | ≥ 1 | numsteps | 🟢 PF, SC, OPF |
| in_service | Specifies if the capacitor is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Shunt Reactor Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the shunt reactor | string | - | name | 🔴 PF, SC, OPF |
| bus | Bus the reactor is connected to | integer | - | Bus1 | 🔴 PF, SC, OPF |
| q_mvar | Reactive power in Mvar (negative = inductive/absorbing) | float | < 0 | kvar (Reactor) | 🔴 PF, SC, OPF |
| p_mw | Active power losses in MW (usually small) | float | ≥ 0 | - | 🟡 PF, SC, OPF |
| vn_kv | Rated voltage in kV | float | > 0 | kV | 🟡 PF, SC, OPF |
| in_service | Specifies if the reactor is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
| step | Current shunt step position (integer steps). Used with max_step and, when the characteristic table is off, scales the base P/Q from the Power tab. |
float / int | 0 … max_step |
— | 🟡 PF, SC, OPF |
| max_step | Maximum shunt step. Defines the upper range of valid steps; use with the characteristic table and with Fill steps 0…max step in the shunt dialog. | float / int | ≥ 0 | — | 🟡 PF, SC, OPF |
| step_dependency_table | If enabled, P and Q at v = 1.0 p.u. for each step come from the shunt characteristic table (not from a single P/Q times step). Sent to pandapower as step_dependency_table with a shunt_characteristic_table block. OpenDSS applies the same table when creating the Reactor. |
boolean | True/False | kvar at the selected step (Reactor) | 🟢 PF (pandapower and OpenDSS) |
| shunt_characteristic_table_json | JSON array of rows { "step", "p_mw", "q_mvar" }: reactive (and loss) shunt power at 1.0 p.u. for that step. Should include every step you use, typically 0 through max_step. Both engines use the same JSON. |
string (JSON) | — | — | 🟢 PF (pandapower and OpenDSS) |
| discrete_shunt_control | Move the shunt step so the bus voltage at the shunt tracks vm_set_pu. Pandapower uses DiscreteShuntController. OpenDSS iterates the same step table after each snapshot solve. Mutually exclusive with Line P → shunt step: turning this on shadows that control in the shunt dialog. For pandapower load flow, enable Shunt reactor tap changer under Include controller. For Grid Code Compliance (P-Q), enable Shunt reactor control. |
boolean | True/False | — | 🟢 PF (pandapower controlled run; OpenDSS snapshot) |
| vm_set_pu | Voltage setpoint (p.u.) for discrete shunt control. | float | typ. 0.9–1.1 | — | 🟢 PF (pandapower and OpenDSS) |
| shunt_control_increment | How many step positions the controller may change per iteration. | integer | ≥ 1 | — | 🟢 PF (pandapower and OpenDSS) |
| shunt_control_tol | Voltage band (p.u.) around vm_set_pu where no action is taken. |
float | ≥ 0 | — | 🟢 PF (pandapower and OpenDSS) |
| shunt_reset_at_init | If set, the controller may reset the shunt step at init (pandapower reset_at_init). |
boolean | True/False | — | 🟢 PF (pandapower) |
| line_flow_step_control | Set shunt step from active-power bands on a reference line (variable shunt reactor / VSR). Mutually exclusive with discrete shunt control: turning this on shadows that control in the shunt dialog. Enable Shunt reactor tap changer under Include controller so pandapower load flow applies the lookup; enable Shunt reactor control in Grid Code Compliance (P-Q). OpenDSS snapshot load flow applies the same bands after the solve. | boolean | True/False | — | 🟢 PF (pandapower controlled run; OpenDSS snapshot) |
| line_flow_reference_line_id | Diagram cell of the line whose P is compared with the band table. | string (cell id) | — | — | 🟢 PF (pandapower and OpenDSS) |
| line_flow_step_table_json | JSON array of bands { "p_mw_min", "p_mw_max", "step" }. The last band includes the upper bound. Combined with line_flow_p_use_abs and line_flow_p_reference (p_from_mw or p_to_mw). |
string (JSON) | — | — | 🟢 PF (pandapower and OpenDSS) |
How shunt reactor parameters work together
The dialog is organised in three tabs. The relationship between “static” shunt data and “control” is:
- Power tab — base P and Q. Here you set
p_mwandq_mvaras the reference shunt power at 1.0 p.u. If you do not use a step characteristic table, the network model uses this pair together with step and max_step (equivalent shunt scaling with the step number). - Electrical tab —
vn_kv. Shunt equipment rating; it must be consistent with the bus you connect to. It does not, by itself, turn control on or off. - Control tab — steps and the optional table.
stepandmax_stepdefine the discrete positions of the shunt.max_stepis the top step index you model (e.g. if steps are 0, 1, …, N, setmax_step = N).- If Shunt characteristic table (step-dependent P/Q) is off, P and Q at the operating point follow the base values on the Power tab, combined with
step. - If that option is on, you must fill the table so each step has its own
p_mwandq_mvarat 1.0 p.u. Pandapower stores this asshunt_characteristic_table; OpenDSS applies the same rows to the Reactor. The dialog’s Fill steps 0…max step usesmax_stepto create empty rows you can complete.
- Control tab — discrete shunt (voltage) control. This is a different option from the characteristic table (you can enable the table together with this controller, or use either alone). The table defines what P and Q are at each
step; Discrete shunt control changesstepso the shunt bus voltage moves towardvm_set_pu. When the table and this controller are both on, the controller only updatesstep; the injections at that step still follow the table. It cannot be combined with Line P → shunt step: turning this on shadows that block, and turning that one on shadows this block. For pandapower load flow, tick Shunt reactor tap changer under Include controller. For Grid Code Compliance (P-Q), tick Shunt reactor control in that study dialog. OpenDSS snapshot load flow runs the same loop when the option is enabled on the shunt. - Control tab — Line P → shunt step. A separate lookup: the solver reads P on a reference line and sets
stepfrom the band table (typical VSR behaviour). Only one step controller is active. While this option is on, discrete voltage control is shadowed, and while discrete voltage control is on, this block is shadowed. If an older element still has both flags stored, opening the dialog keeps voltage control and unticks the line-power lookup; that choice is written to the element when you apply. This mode is also gated by Shunt reactor tap changer on pandapower load flow, and by Shunt reactor control in Grid Code Compliance (P-Q); OpenDSS snapshot applies it after the solve.
Summary. Use the Power tab for a simple fixed or step-scaled shunt; add the characteristic table when each step has different P/Q at 1 p.u.; use discrete shunt control for a voltage target, or Line P → shunt step for flow-based VSR tap. Those two controllers are alternatives: the shunt dialog shadows the one that is not selected. If a table and a controller are both enabled, the table provides the per-step model and the controller selects the step. All of these are properties of the shunt on the single-line diagram; the pandapower load-flow dialog or Grid Code Compliance (P-Q) turns controller execution on or off for the run.
Impedance
pandapower OpenDSS
A branch between two buses defined only by R and X (not a physical line type). Use it for a coupling, a simplified equivalent, or a connection that is not a cable or overhead line.
Documentation References: 📘 pandapower Impedance 📗 OpenDSS Documentation
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the impedance | string | - | name | 🔴 PF, SC, OPF |
| from_bus | Starting bus | integer | - | Bus1 | 🔴 PF, SC, OPF |
| to_bus | Ending bus | integer | - | Bus2 | 🔴 PF, SC, OPF |
| rft_pu | Resistance in per unit | float | ≥ 0 | R (converted to ohms) | 🔴 PF, SC, OPF |
| xft_pu | Reactance in per unit | float | - | X (converted to ohms) | 🔴 PF, SC, OPF |
| sn_mva | Rated apparent power for per unit calculation in MVA | float | > 0 | - | 🟡 PF, SC, OPF |
| in_service | Specifies if the impedance is in service | boolean | True/False | enabled | 🟡 PF, SC, OPF |
Ward
pandapower OpenDSS
A Ward equivalent stands in for a neighbouring network you do not want to draw in full: a constant-power plus constant-impedance injection at one bus. Prefer this over inventing dummy lines when you only have a reduced-network equivalent.
Documentation References: 📘 pandapower Ward 📗 OpenDSS Documentation
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the ward equivalent | string | - | - | 🔴 PF, SC, OPF |
| bus | Bus the ward is connected to | integer | - | - | 🔴 PF, SC, OPF |
| ps_mw | Active power of the constant power component in MW | float | - | PQ Load (kW) | 🔴 PF, SC, OPF |
| qs_mvar | Reactive power of the constant power component in Mvar | float | - | PQ Load (kvar) | 🔴 PF, SC, OPF |
| pz_mw | Active power of the constant impedance component in MW | float | - | Shunt (equiv.) | 🔴 PF, SC, OPF |
| qz_mvar | Reactive power of the constant impedance component in Mvar | float | - | Shunt (equiv.) | 🔴 PF, SC, OPF |
| in_service | Specifies if the ward is in service | boolean | True/False | - | 🟡 PF, SC, OPF |
Extended Ward
pandapower OpenDSS
Like a Ward equivalent, plus an internal bus and impedance so the voltage response of the reduced network is more accurate. Use it when a plain Ward model is too crude at the boundary bus.
Documentation References: 📘 pandapower Extended Ward 📗 OpenDSS Documentation
Parameters:
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the extended ward | string | - | - | 🔴 PF, SC, OPF |
| bus | External bus | integer | - | - | 🔴 PF, SC, OPF |
| ps_mw | Active power of constant power component in MW | float | - | PQ Load (kW) | 🔴 PF, SC, OPF |
| qs_mvar | Reactive power of constant power component in Mvar | float | - | PQ Load (kvar) | 🔴 PF, SC, OPF |
| pz_mw | Active power of impedance component in MW | float | - | Shunt (equiv.) | 🔴 PF, SC, OPF |
| qz_mvar | Reactive power of impedance component in Mvar | float | - | Shunt (equiv.) | 🔴 PF, SC, OPF |
| r_ohm | Internal resistance in Ohm | float | ≥ 0 | - | 🔴 PF, SC, OPF |
| x_ohm | Internal reactance in Ohm | float | - | - | 🔴 PF, SC, OPF |
| vm_pu | Internal bus voltage magnitude in per unit | float | > 0 | PV Gen (equiv.) | 🔴 PF, SC, OPF |
| in_service | Specifies if the extended ward is in service | boolean | True/False | - | 🟡 PF, SC, OPF |
Storage
pandapower OpenDSS
Storage elements represent battery energy storage systems (BESS) or other energy storage technologies that can both consume and generate power. Electrisim uses a unified Storage element that maps to both pandapower and OpenDSS. Dialog tabs: Power, Energy, Configuration, Optimization (OPF), Q capability (PCS P–Q envelope), OpenDSS Parameters, Inverter Control, and Economic.
Documentation References: 📘 pandapower Storage 📗 OpenDSS Storage 📗 OpenDSS Storage Properties
Parameters (Power & Energy)
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| name | Name of the storage | string | - | name | 🔴 PF, OPF |
| bus | Bus the storage is connected to | integer | - | Bus1 | 🔴 PF, OPF |
| p_mw | Active power in MW (positive = charging/consuming, negative = discharging/generating). OpenDSS sign is converted automatically. After load flow, the storage result box shows this P; the connected busbar shows the sum of all devices on that bus (see busbar result boxes). | float | - | kW, kWRated (Storage) | 🔴 PF, OPF |
| q_mvar | Reactive power in Mvar when Q setpoint mode is manual (positive = absorbing, negative = supplying). For curve-based Q, use Q setpoint mode or the dispatch-reversal inject/absorb options. |
float | - | kvar (Storage) | 🟡 PF, OPF |
| q_setpoint_mode | Load-flow Q when Use Q capability curve is on: manual uses q_mvar; capacitive_max uses Qmax (absorb); inductive_max uses Qmin (inject). Dispatch reversal can also command inject/absorb max from the same envelope. |
string | manual, capacitive_max, inductive_max | — | 🟡 PF |
| max_e_mwh | Maximum energy capacity in MWh (rated storage capacity) | float | > 0 | kWhrated | 🔴 OPF |
| min_e_mwh | Minimum energy to keep in reserve (MWh). Maps to OpenDSS %reserve = (min_e_mwh / max_e_mwh) × 100. When min_e_mwh ≥ max_e_mwh, %reserve is not applied. | float | ≥ 0 | %reserve | 🔴 OPF |
| soc_percent | State of charge in percent (0–100) | float | 0-100 | %stored | 🟡 OPF |
Parameters (Configuration)
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| sn_mva | Nominal / inverter rating in MVA. Maps to OpenDSS kVA. Used as kWRated when p_mw = 0. Together with P this is the kVA circle √(P²+Q²) ≤ Sn. A vendor D-shape, leftover Q at rated P, STATCOM Q at idle, voltage derate, and P vs Q priority need the Q capability tab and watt priority — kW and kVA alone are not a full PCS model. | float | > 0 | kVA (Storage) | 🟡 PF, OPF |
| conn | Winding connection type (wye or delta) | string | wye, delta | conn | 🟡 PF (OpenDSS) |
| phases | Number of electrical phases (1–3) | integer | 1–3 | phases | 🟡 PF (OpenDSS) |
| scaling | Scaling factor for p_mw and q_mvar (pandapower only) | float | > 0 | - | 🟡 PF, OPF |
| type | Optional string to classify the storage (e.g., Li-Ion, Flow). Informational only. | string | - | - | 🟡 PF, OPF |
| in_service | Specifies if the storage is in service | boolean | True/False | enabled | 🟡 PF, OPF |
Parameters (Optimization – pandapower OPF)
| Parameter | Description | Type | Value Range | OpenDSS Equivalent | Simulation Types |
|---|---|---|---|---|---|
| controllable | Whether the storage is controllable by the Optimal Power Flow. Must be true to use OPF limits. | boolean | True/False | - | 🟡 OPF |
| max_p_mw | Maximum active power injection for OPF (MW) | float | - | - | 🟡 OPF |
| min_p_mw | Minimum active power injection for OPF (MW) | float | - | - | 🟡 OPF |
| max_q_mvar | Maximum reactive power injection for OPF (MVar) | float | - | - | 🟡 OPF |
| min_q_mvar | Minimum reactive power injection for OPF (MVar) | float | - | - | 🟡 OPF |
Parameters (OpenDSS-specific)
These parameters apply when using OpenDSS for load flow, harmonics, or time-series simulations. They control the built-in inverter model, dispatch logic, and losses.
| Parameter | Description | Type | Value Range | OpenDSS Property | Simulation Types |
|---|---|---|---|---|---|
| state | Initial operational state. Set automatically from p_mw sign when p_mw ≠ 0; use IDLING when p_mw = 0. | string | IDLING, CHARGING, DISCHARGING | State | 🟡 PF (OpenDSS) |
| disp_mode | Dispatch mode: DEFAULT (loadshape triggers), FOLLOW (output follows loadshape), EXTERNAL (StorageController), LOADLEVEL, PRICE. | string | DEFAULT, FOLLOW, EXTERNAL, LOADLEVEL, PRICE | DispMode | 🟡 PF (OpenDSS) |
| pct_charge | Charging rate as percent of rated kW. Default = 100. | float | 0–200 | %Charge | 🟡 PF (OpenDSS) |
| pct_discharge | Discharge rate as percent of rated kW. Default = 100. | float | 0–200 | %Discharge | 🟡 PF (OpenDSS) |
| pct_eff_charge | Charging efficiency (%). Default = 90. | float | 0–100 | %EffCharge | 🟡 PF (OpenDSS) |
| pct_eff_discharge | Discharging efficiency (%). Default = 90. Round-trip ≈ pct_eff_charge × pct_eff_discharge. | float | 0–100 | %EffDischarge | 🟡 PF (OpenDSS) |
| pct_idling_kw | Percent of rated kW consumed as active power while idling (auxiliary loads, cooling). Default = 1. | float | 0–100 | %IdlingkW | 🟡 PF (OpenDSS) |
| pct_idling_kvar | Percent of rated kW consumed as reactive power while idling. Default = 0. | float | 0–100 | %Idlingkvar | 🟡 PF (OpenDSS) |
| discharge_trigger | Loadshape level that triggers DISCHARGING. 0 = disabled. | float | 0–2 | DischargeTrigger | 🟡 PF (OpenDSS) |
| charge_trigger | Loadshape level below which CHARGING is triggered. 0 = disabled. | float | 0–2 | ChargeTrigger | 🟡 PF (OpenDSS) |
| time_charge_trig | Time of day (fractional hours, e.g. 2.0 = 2 AM) when storage automatically starts charging. -1 disables. Default = 2.0. | float | -1–24 | TimeChargeTrig | 🟡 PF (OpenDSS) |
| spectrum | Harmonic current injection spectrum for OpenDSS harmonic analysis. "default" is the built-in inverter spectrum. | string | default, defaultgen, defaultload, pwm6, none | spectrum | 🟡 Harmonics (OpenDSS) |
Q capability (PCS P–Q envelope)
The Q capability tab is the four-quadrant PCS envelope (not the wind-turbine ±0.95 PF triangle). Enable Use Q capability curve so load flow, OpenDSS kvarMax/kvarMaxAbs, OpenDER NP_Q_MAX_*, and BESS Dispatch Reversal apply Qmin/Qmax at the operating P.
kW + kVA is only the inverter circle √(P²+Q²) ≤ Sn. That is enough for a first check at unity PF (for example 45 MW on 50 MVA leaves about 22 MVAr of unused Q). It is not a full PCS model when you need a vendor D-shape, leftover Q at rated P, STATCOM Q at idle, voltage dependence of the envelope, or a rule for what is clipped at Sn (P vs Q).
Chart: P from −Pmax (discharge) to +Pmax (charge). Built-in PCS circle is Q = ±√(Sn²−P²) with a vertical cut at Pmax (full Q at P = 0). PCS D-shape holds Q at 0.9·Sn until the current circle binds. Custom is a vendor JSON table. Ratings come from Configuration sn_mva and OPF charge/discharge Pmax when set.
| Parameter | Description | Type | Value Range | Simulation Types |
|---|---|---|---|---|
| reactive_capability_curve | Use Q capability curve. Enforce Qmin/Qmax vs P. Off = kVA circle from sn_mva only (plus watt priority if on). |
boolean | True/False (default False) | 🟡 PF, dispatch reversal |
| q_cap_voltage_dependent | Voltage-dependent Q envelope. Scale Qmin/Qmax with terminal voltage (capability vs U). Full Q at 1.00 pu; reduced toward 0.88 / 1.10 pu (already scaled at 0.98 / 1.02). This is not Volt-VAR droop (that is Inverter Control). | boolean | True/False (default False) | 🟡 PF, dispatch reversal |
| q_capability_preset | PCS envelope: pcs_circle (typical BESS), pcs_d_shape (flat Q then circle), or custom (edit JSON). |
string | pcs_circle, pcs_d_shape, custom | 🟡 PF, dispatch reversal |
| curve_style | Interpolation of custom JSON knots. | string | straightLineYValues, constantYValue | 🟡 PF |
| q_capability_curve_json | Points {p_mw, q_min_mvar, q_max_mvar}. Four-quadrant when P spans negative (discharge) to positive (charge). |
JSON array | — | 🟡 PF, dispatch reversal |
Inverter Control
OpenDSS InvControl (and OpenDER on dispatch reversal) pick the Q setpoint inside the envelope. Watt priority chooses which axis is sacrificed when √(P²+Q²) would exceed Sn.
| Parameter | Description | Type | Value Range | OpenDSS Property | Simulation Types |
|---|---|---|---|---|---|
| inv_control_mode | NONE, Fixed Q, Fixed PF, Volt-VAR, Volt-Watt, Watt-PF, Watt-VAR. Dispatch reversal with OpenDER disables native InvControl and maps these modes into OpenDER. | string | NONE, FIXEDQ, FIXED_PF, VOLTVAR, … | InvControl Mode | 🟡 PF (OpenDSS), dispatch reversal |
| pf / pf_q_mode | Discharge PF (P < 0). Lagging = absorb Q; leading = inject Q. Enter 0.85–1.0, not a negative PF. | float / string | 0.85–1.0; lagging, leading | pf | 🟡 PF (OpenDSS), dispatch reversal |
| pf_charge / pf_charge_q_mode | Charge PF (P > 0). Same Q-direction convention as discharge PF. | float / string | 0.85–1.0; lagging, leading | pf (charge) | 🟡 PF (OpenDSS), dispatch reversal |
| watt_priority | When hypot(P, Q) would exceed sn_mva: on = keep P and clip Q (typical FCR / energy dispatch); off = keep Q and clip P. |
boolean | True/False (default False) | WattPriority | 🟡 PF, dispatch reversal |
| vv_xarray / vv_yarray | Volt-VAR droop (control), IEEE 1547 preset available. Distinct from the voltage-dependent capability envelope. | string | pu V / pu Q points | InvControl vvc_* | 🟡 PF (OpenDSS), dispatch reversal |
OpenDSS Implementation Notes
The following implementation details ensure consistent results between Pandapower and OpenDSS for storage elements:
- Power dispatch: Both
kWRated(inverter capacity) andkW(requested dispatch power) are set explicitly. The state (DISCHARGING/CHARGING/IDLING) is derived from the sign ofp_mw. - Reactive power convention: Pandapower uses load convention (positive = absorbing). OpenDSS Storage uses generator convention (positive = supplying). The conversion is applied automatically.
- Reserve handling: When
min_e_mwh≥max_e_mwh, the OpenDSS%reserveparameter is not set. This prevents blocking discharge in snapshot power flow when the reserve would otherwise lock 100% of stored energy. - Connection and phases: The
conn(wye/delta) andphases(1–3) parameters are passed to OpenDSS for correct modeling of single-phase or delta-connected storage. - Inverter model: OpenDSS Storage includes a built-in inverter model with efficiency, idling losses, and dispatch modes. Pandapower uses a simpler PQ-bus model; time-domain SOC updates require custom scripting.
- P–Q envelope: When Use Q capability curve is on, Electrisim interpolates Qmin/Qmax at the operating P (PCS circle or custom JSON) and maps them to OpenDSS
kvarMax/kvarMaxAbs. Optional voltage derate scales that band. Watt priority keeps P and clips Q at Sn (or the reverse if off).
BESS AC Block
pandapower OpenDSS
The BESS AC Block is a composite element available in the Storage palette (next to the Storage element). When you drag and drop it onto the canvas, it automatically creates and connects a complete Battery Energy Storage System (BESS) AC interconnection setup in a single step.
The block includes:
- BESS BUSBAR 1 — MV busbar rated at 33 kV (high-voltage side)
- Step-up Transformer — HV: 33 kV, LV: 690 V, connecting the MV and LV busbars
- BESS BUSBAR 2 — LV busbar rated at 0.69 kV (low-voltage side)
- Storage — Battery storage element (includes built-in inverter model) connected to the LV busbar
All four elements are pre-wired with correct connection points. Result placeholders for load flow and short-circuit analysis appear automatically for each busbar, the transformer, and the storage unit. You can connect the BESS AC block to your existing network by linking BESS BUSBAR 1 to your MV grid (e.g., 33 kV).
If you attach more than one Storage unit to the same LV busbar (BESS BUSBAR 2), load-flow P on that busbar is the net of those units — for example two units discharging at 1.75 MW each give −3.5 MW on the 0.69 kV bus, not −7 MW. The transformer LV/HV flows follow the same net. Details: On-diagram busbar results.
Documentation References: 📗 Storage 📗 OpenDSS Transformer 📗 Storage Properties
Note: The BESS AC Block is a composite palette template (MV bus, step-up transformer, LV bus, and Storage). It is not a separate backend element type — both pandapower and OpenDSS receive the four connected standard elements. Default drop values: MV bus 33 kV, LV bus 0.69 kV, transformer 33/0.69 kV, 1 MVA. You can modify all parameters to match your project.
Last updated: October 2026