Docs: Load Flow, Short Circuit, Arc Flash
发布时间:2026-09-16 | 浏览:1
Electrisim is a free, open-source web app for power system analysis. You draw a single-line diagram in the browser, set parameters in dialogs, and run studies from the Simulate menu. Nothing needs to be installed, and you do not need to write scripts to get results on the diagram.
This page is the in-app reference. Start with First Steps if you are new, then pick a study under Simulation . Parameter tables for each network element are in Elements .
Prefer a video walkthrough? See the Tutorials page. Technical solver options that Electrisim does not expose are in the engine documentation at the end of this page.
Build a tiny network, run load flow, and read voltages on the diagram. That is the loop you will reuse for every other study.
Open the app — Go to app.electrisim.com and create or open a project.
Place two buses — From the palette, drop two Bus elements. Set the rated voltage ( vn_kv ) on each, for example 20 kV.
Add a grid connection — Connect an External Grid to the first bus. This is the slack / voltage source.
Add a load — Connect a Load to the second bus and enter P and Q (MW / Mvar).
Draw a line — Draw a Line between the two buses (an edge, not a palette shape). Check length and impedance, or leave the defaults for a first test.
Run load flow — Click Simulate → Load Flow . Leave the pandapower tab and defaults, then click Run .
Read the result — Voltage, angle, and net P/Q appear on the buses (see busbar result boxes ). Line loading appears on the line. The Network Health Dashboard summarises the same solve.
Every study starts from the toolbar Simulate button. Choose the analysis, set a few options, click Run . Results paint onto the diagram; most studies also open a results dialog.
Where to go next
Step-by-step videos and worked examples: Tutorials .
Click Simulate in the toolbar, pick a study, set the dialog options, and click Run . Results appear on the diagram and, for most studies, in a results window.
Start with Load Flow unless you already know you need a specialist study. After a successful load flow you also get the Network Health Dashboard , line current vs distance , Engineering Report (PDF) , and Scenario Compare — these reuse the same solve; they are not extra analysis types.
Load Flow and Short Circuit dialogs have Pandapower and OpenDSS tabs. Use pandapower for balanced transmission-style models and IEC 60909, or tick ANSI/IEEE C37 (beta) on the Pandapower Short Circuit tab for North American duties. Use OpenDSS for unbalanced feeders, harmonics, Monte Carlo, and DG screening. Transient Stability and Eigenvalue Analysis use ANDES only.
Everyday network checks
Confirm voltages, loadings, and what happens if equipment is out.
Protection and safety
Fault levels, arc-flash incident energy, and device grading.
Need at least one synchronous Generator with dynamics data.
Distribution (OpenDSS)
Unbalanced feeders, DER, and harmonics. Use the OpenDSS tab or the dedicated Simulate entries.
Economics and grid code
Connection studies and project cost from the same diagram.
pandapower — Power flow, OPF, short-circuit (IEC 60909 and ANSI/IEEE C37 beta), arc flash (IEEE 1584), motor starting (steady-state), protection coordination, contingency analysis, tap/shunt controllers (via Load Flow Include controller ), time-series, economic analysis, grid-code P-Q and V-Q studies, BESS preliminary design, and battery sizing. See pandapower documentation .
OpenDSS — Unbalanced multi-phase power flow (Snapshot, Daily, Yearly, Dutycycle, Monte Carlo M1/M2/M3), InvControl on PV/Storage, Controls (RegControl / CapControl / StorageController), Wind Turbine Pref, DG interconnection screening, BESS Dispatch Reversal (OpenDSS, optionally with OpenDER), fault studies, and harmonic analysis. See OpenDSS documentation .
ANDES — Transient stability (time-domain), eigenvalue analysis (small-signal), and dynamic motor starting. See Transient Stability and Eigenvalue Analysis .
Park Controller is pandapower-only and is not gated by the tap/shunt Include controller checkboxes. Harmonic analysis, Monte Carlo, InvControl, RegControl/CapControl/StorageController, DG Interconnection Screening, and BESS Dispatch Reversal use OpenDSS. OPF, protection, contingency, time-series, economic analysis, Grid Code Compliance (P-Q) , Grid Code Compliance (V-Q) , BESS Preliminary Design , and Battery Sizing use pandapower only.
Load Flow (Power Flow)
pandapower OpenDSS
Load Flow (power flow) computes steady-state voltages, currents, and power flows on your diagram. Run this first; most other studies assume a network that already solves.
Simulate → Load Flow . Use the Pandapower tab for balanced networks, or the OpenDSS tab for unbalanced feeders and time-varying modes.
Check that bus voltages stay inside a sensible band
See line and transformer loading and system losses
Test a dispatch or load change before running short-circuit or OPF
Build a connected network with a slack ( External Grid or slack generator).
Click Simulate → Load Flow and pick an engine tab.
Keep the defaults for a first run, then click Run .
Read voltages and loadings on the diagram. The Network Health Dashboard opens after a successful solve.
What you will see
Bus voltage (pu and angle), line and transformer loading, and P/Q at generators, loads, and the external grid. You can then export a PDF report, compare two runs, or plot line current vs distance — those tools reuse this solve.
Pandapower offers Newton-Raphson (default), Iwamoto, Backward Forward Sweep, Gauss-Seidel, FDBX, and FDXB. OpenDSS supports snapshot, daily, yearly, dutycycle, and Monte Carlo modes. The solver iterates the power-balance equations until the mismatch is below the tolerance. Heavily compensated cable networks (for example a large offshore farm with OLTCs and variable shunt reactors) may need more than a single Newton run — see solver fallback .
Dialog parameters (Pandapower)
Maps to pandapower enforce_q_lims (bool, default False ) — respect generator reactive power limits in the load flow.
If Yes , the reactive power limits in net.gen.max_q_mvar / min_q_mvar and net.sgen.max_q_mvar / min_q_mvar are respected. If generator reactive power capability curves are defined, the corresponding min and max Q limits overwrite (internally) the default values from the max_q_mvar / min_q_mvar parameters.
For gen elements, pandapower runs a second load flow when reactive power limits are violated at any generator, so run time can increase if reactive power must be curtailed.
Note: enforce_q_lims only applies to gen elements when the algorithm is Newton-Raphson ( algorithm="nr" ).
Include controller (Pandapower)
The Load Flow dialog (Pandapower tab) has three independent checkboxes under Include controller . Tick only the families you want to move during that run. Grid Code Compliance (P-Q) uses its own Two-winding transformer tap changer , Three-winding transformer tap changer , Shunt reactor control , and Shunt on/off options instead.
Two-winding transformer tap changer — pandapower DiscreteTapControl on two-winding transformers that have discrete tap control enabled in the transformer dialog.
Three-winding transformer tap changer — the same, for three-winding transformers.
Shunt reactor tap changer — pandapower DiscreteShuntController (voltage / target step) and Line P→shunt step lookup from the shunt Control tab. Both shunt modes require this checkbox; they no longer run from the shunt dialog alone.
Park Controller is a separate diagram element with its own enable toggle. It is not gated by these three checkboxes.
Discrete Tap Control (DiscreteTapControl)
For pandapower load flow only, you can model discrete OLTC/NLTC behaviour with pandapower’s DiscreteTapControl controller:
Open the Transformer or Three Winding Transformer dialog for each unit that should regulate voltage.
Enable discrete tap control , choose control side , and set vm_lower_pu / vm_upper_pu (deadband).
Run Load Flow , stay on the Pandapower tab, and tick the matching Include controller checkbox (two-winding and/or three-winding).
Electrisim sends discrete tap settings and the matching run_control_trafo2w / run_control_trafo3w flags to the backend; the solver may change tap_pos within tap_min … tap_max to keep the controlled bus inside the band.
Seeing the tap position after the run: For transformers that used DiscreteTapControl, the on-diagram transformer result box shows the tap position after the controlled load flow (and initial → final if it moved). If you export Pandapower results to a text file, the transformer table includes a Tap (control) column and a DISCRETE TAP CONTROL (summary) section. The JSON API also returns a tap_control_results array (tap limits, controlled-side voltage, band, etc.) for tooling or future UI.
Solver fallback (Pandapower)
If the requested algorithm does not converge, the backend retries a short sequence of more robust settings rather than failing after the first Newton-Raphson divergence. Typical later plans:
Same algorithm and initialisation, but without transformer/shunt controllers (setpoints restored to the values from the diagram).
More Newton iterations (e.g. 50).
Flat start with a higher iteration limit.
Iwamoto Newton-Raphson (step-size multiplier) with a flat start — intended for ill-conditioned, heavily compensated cases that plain Newton overshoots.
If a fallback plan succeeds, results are still shown on the diagram. When controllers were dropped to obtain a solution, Electrisim shows an alert with the plan that worked and the failed attempts. Treat those voltages and flows as a diagnostic solve, then either relax tap/shunt targets, check data, or run again with controllers off on purpose.
The JSON result may include controller_fallback_warning with the same text (see Advanced notes in exported results).
Dialog parameters (OpenDSS)
Snapshot OpenDSS load flow uses the same shunt characteristic table , discrete voltage control , and Line P→shunt step settings as pandapower (see Capacitor & Shunt Reactor ). After each solve, Electrisim may iterate shunt steps until the voltage or line-P band is met.
Generator models: Static generators and wind turbines are created as OpenDSS Generator Model=1 (constant kW and kvar). Synchronous / voltage-controlled generators use Model=3 (constant kW / constant kV), matching pandapower gen as a PV bus. Do not expect a wind turbine to hold 1.0 pu at its terminal in OpenDSS — that would be Model=3.
If the requested algorithm does not produce a usable solution, OpenDSS retries a short sequence of snapshot plans (more iterations, Newton, and a wider generator Vminpu so P is not converted to constant-Z). If no plan converges, the error message suggests trying Algorithm=Newton in the dialog or comparing with pandapower on the same case.
Values are written onto the diagram. The table below lists the quantities for export and for the health dashboard.
When the matching Include controller checkbox is on, transformer result labels show the final tap position (and initial→final if it moved). Exported results include a Tap (control) column and a DISCRETE TAP CONTROL (summary) section; the JSON API returns tap_control_results and, when used, shunt_control_results . There is no separate results dialog only for tap or shunt control.
On-diagram busbar results
After a successful pandapower load flow, each busbar result box shows voltage ( U[pu] , U[kV] , U[deg] ) and the net power at that bus ( P[MW] , Q[MVar] , PF , Q/P ).
Sign convention (same as pandapower res_bus ): negative P means net generation at the bus (power injected by generators or discharging Storage / BESS); positive P means net load (consumption, including charging storage).
What P on the busbar is: the net injection of devices connected to that bus — loads, generators, static generators, storage, shunts — including units behind a closed bus–switch. Several machines on the same busbar are summed once . They are not added again from the transformer or line that carries the same power away.
Example — two BESS on one LV busbar:
BESS1: P = −1.750 MW (discharging)
BESS2: P = −1.750 MW (discharging)
Busbar P = −3.500 MW (not −7.000 MW)
Each storage result box still shows 1.750 MW. The upstream transformer or line should carry about 3.5 MW (plus losses). If a busbar label ever looks like twice the connected generation, compare it with the individual device boxes and the upstream branch — the branch and the device boxes are the solved load flow; the busbar P is only an aggregation of those injections.
On a pass-through bus with no local generation or load, the box shows through-power on the incident lines or transformers so the label is not a bare zero. Slack / external-grid buses show the net injection at the reference bus (consistent with the External Grid box, opposite sign).
Related: Bus , Storage , BESS AC Block .
Post–load-flow results and tools
The features below are part of the Load Flow workflow. They do not run a separate simulation; they interpret, visualise, compare, or export the output of the most recent successful load flow solve (Pandapower or OpenDSS).
Network Health Dashboard
After a successful load flow run (Pandapower or OpenDSS), Electrisim opens the Network Health Dashboard : a floating, draggable summary panel computed entirely in the browser from the simulation JSON. It complements the usual on-diagram result boxes by aggregating KPIs at system level.
Health score (0–100) — composite status from convergence-quality signals, voltage band compliance, thermal headroom on lines/transformers, and relative losses versus generation.
KPI cards — total generation and total load (with hover tooltips listing how each category contributed: synchronous and static generators, asymmetric static generators, PV systems where applicable, storage charge/discharge, and external-grid import/export split).
Top loaded equipment — horizontal bars for the five highest line or transformer loadings; click a row to scroll to and select that element on the schematic.
Voltage profile — small histogram of bus voltages (about 0.85–1.15 pu) with band colouring consistent with diagram colour rules.
Critical issues — ranked list of overloads and bus voltages outside normal bands; click to focus the corresponding shape on the canvas.
Highlight Hot Spots — briefly flashes each issue location in sequence.
Copy Summary — copies a plain-text snapshot of the headline numbers for email or reporting.
Save as Baseline — stores the latest run snapshot and pins it so later runs can be compared.
Compare to Baseline — opens the Scenario Compare panel (see below) against the pinned baseline.
Line current vs km… — opens a characteristic plot of branch current magnitude (or signed scalar) versus cumulative distance along a simple chain of AC lines; see Line current vs distance .
Closing the panel or running another simulation replaces it automatically when the next run completes. For auditing, expand the collapsible group [Network Health] … in the browser developer console after a run to see the same generation and load breakdowns logged as structured lists.
Line current vs distance along a path
After a successful pandapower or OpenDSS load flow, the Network Health Dashboard includes Line current vs km… . It builds a staircase chart of current (kA) against cumulative route length (km) for a simple path made only of AC Line segments: consecutive lines with no branching (every intermediate bus along the traced set must have degree two in terms of those selected edges). Branching paths, meshes, DC lines, and transformers in series are outside this tool's intended use; for mixed equipment, inspect per-element results on the diagram instead.
Run load flow and open the Network Health Dashboard when it appears.
On the canvas, select the line edges that form your route (multi-select).
Click Line current vs km… . Electrisim orders segments by connectivity, uses each line's length_km from the diagram, and takes branch currents from the solver output ( i_from_ka / i_to_ka ), matching diagram orientation to from/to.
What you get: a coloured staircase plot with segment bands, junction markers at cumulative kilometres, a legend, and an HTML table (segment length, km from/to, current at each end, and change along the segment). You can switch between absolute |I| and a signed scalar along the path.
Scale and spikes: optional Amplify plateau relaxes the vertical axis when a single segment would otherwise flatten the rest of the profile (one dominant outlier is dropped only for axis limits). Values that fall outside the displayed Y range are still listed in the table and shown on the chart as orange triangle markers at the correct kilometre with a short explanation in the tooltip.
Prerequisite: results for the latest run must be available in the session (normally automatic after load flow).
Engineering Report (PDF)
After a successful load flow (Pandapower or OpenDSS), you can download a multi-page PDF built in the browser from the same result data the Network Health Dashboard uses. The report is for handover: cover page with project fields, executive summary, single-line diagram pages (overview plus zoomed detail tiles on large schematics), voltage and loading sections, issues, and tables by element type.
In the Load Flow dialog, tick Export PDF Engineering Report (Pandapower or OpenDSS tab) before you run; the file is offered when the run finishes.
Or open the Network Health Dashboard after a run and click Export Report .
Project name, engineer, company, and notes are stored in the browser for the next export if you choose to remember them.
Scope: load-flow results only. The PDF does not replace dedicated short-circuit or OPF study packs.
Scenario Compare
After two load flow solves on the same project (same engine: Pandapower with Pandapower, or OpenDSS with OpenDSS), Electrisim can compare the current result against a pinned baseline without juggling two tabs or spreadsheets. Comparison is computed in your browser using the same KPI logic as the Network Health Dashboard .
Each successful load flow saves a lightweight snapshot locally (typically the last ten non-baseline runs are kept).
Open the dashboard after the run you want as reference and click Save as Baseline ; that pins one snapshot.
Change the model, run load flow again, open the dashboard, and click Compare to Baseline . You get KPI deltas (generation, load, losses, score, violations, voltage extremes, max loading), top bus voltage movers, top branch loading movers, band migrations (good to warn or overload style changes), and a list of elements that appear only in one run.
Highlight Differences places small coloured labels on the live single-line diagram next to matched elements so you see where magnitude or status shifted; clear them from the same panel.
With a baseline pinned, an extra Comparison vs Baseline page can be appended to the Engineering Report (PDF) when you export.
Limits: Baselines live in this browser profile only — not on the cloud and not shared with other users or devices. Comparing Pandapower output to OpenDSS output in one step is outside the intended scope.
Algorithm Details
Newton-Raphson Method (Default): This is the most widely used power flow algorithm, providing fast convergence for well-conditioned networks. It linearizes the power balance equations using the Jacobian matrix and iteratively solves for voltage corrections.
Other Algorithms:
Iwamoto: Enhanced Newton-Raphson with improved convergence for ill-conditioned systems
Backward Forward Sweep: Suitable for radial distribution networks
Gauss-Seidel: Simpler iterative method, slower convergence but more robust for some cases
FDBX/FDXB: Fast decoupled variants for transmission networks
Limitations and Considerations
Important Notes:
Load flow assumes balanced three-phase conditions (single-phase equivalent)
The network must have at least one external grid (slack bus) to provide power balance
Convergence may fail if the network is too heavily loaded or has numerical issues
Some algorithms may not be suitable for all network topologies (e.g., BFSW for radial networks only)
On-diagram busbar P/Q is the net injection of devices on that bus (several BESS or generators are summed once). It is not a second load-flow solve; upstream transformer and line flows are the calculated branch power. See Busbar result boxes .
The Network Health Dashboard is a read-only interpretation of the solver output it receives; totals follow the JSON returned by the backend (including asymmetric static generators, storages and PV elements when present).
The Engineering Report PDF uses the same KPI logic as the dashboard and the same diagram snapshot as the editor; it is generated client-side and depends on a normal browser session (cached script and network access for the PDF libraries).
Scenario Compare snapshots and pinned baselines are stored locally (IndexedDB with a fallback if storage is unavailable); clearing site data removes them.
Technical References
Based on: pandapower Power Flow Documentation and OpenDSS.
Algorithm Type: Iterative solution of power balance equations using various numerical methods.
Documentation References: 📘 pandapower Power Flow 📘 pandapower runpp() 📗 OpenDSS Power Flow
pandapower OpenDSS
There is no separate Simulate → Controller Simulation command anymore. Enable tap and shunt control on the equipment, then run Load Flow .
Discrete transformer tap and shunt step controls are exercised by running Load Flow :
Pandapower: enable the matching Include controller checkbox (two-winding tap, three-winding tap, and/or shunt), together with the settings on each transformer or shunt.
OpenDSS snapshot: discrete shunt voltage control and Line P→shunt step run from the same shunt dialog (no extra Include-controller tick). Transformer DiscreteTapControl remains pandapower-only.
Grid Code Compliance (P-Q) does not use these Load Flow checkboxes. Enable two-winding / three-winding tap, shunt reactor control, and shunt on/off in that study’s own dialog.
Technical reference: pandapower Controller / run_control .
If you bookmarked this page previously as “Controller Simulation,” use Load Flow with “Include controller” instead.
pandapower OpenDSS ANSI/IEEE C37
Short Circuit calculates fault currents on the network so you can size breakers, check withstand, and feed protection studies. Two engine tabs are available and are not interchangeable: Pandapower can run IEC 60909 or ANSI/IEEE C37 (beta) (tick boxes on that tab); OpenDSS runs a native Thévenin fault study.
Simulate → Short Circuit . Pick Pandapower (then tick IEC 60909 or ANSI/IEEE C37) or OpenDSS before you run.
Breaker and fuse interrupting ratings
Relay pickup and protection coordination
Grid-code style IEC 60909 studies (Pandapower tab, IEC 60909 tick)
North American / Canadian projects requiring ANSI/IEEE C37 duties (Pandapower tab, ANSI/IEEE C37 tick — currently beta ; default 60 Hz, prefault 1.0 pu)
Confirm the diagram already solves in Load Flow with the same engine you will use for faults.
Click Simulate → Short Circuit and choose the engine tab. On Pandapower, tick IEC 60909 or ANSI/IEEE C37 (beta).
Set fault type (3-phase, 2-phase, or 1-phase) and case (maximum or minimum). For IEC 60909 single-phase minimum , fill the External Grid Short Circuit tab, including min zero-sequence ratios.
Read currents on the buses and branches. Use those values for Arc Flash if you need incident energy next.
IEC 60909 (Pandapower) uses the IEC voltage factor and correction factors. ANSI/IEEE C37 (beta) uses prefault voltage (no IEC c-factor) and C37.010/C37.13/UL 489/C37.013 multiplying factors. OpenDSS is a generic Thévenin fault study. Compare numbers only within the same method, and size breakers to the same standard as the calculation.
The study uses sequence impedances, applies a fault impedance at the chosen location, builds a Thévenin equivalent, computes the fault current for the selected fault type, and distributes branch contributions through the network.
Pandapower — IEC 60909 — IEC 60909 via pandapower short-circuit calculation. Use for balanced three-phase networks and grid-code style studies.
Pandapower — ANSI/IEEE C37 (beta) — Three networks (1/2-cycle, interrupting, 30-cycle) with IEEE C37.010-style multiplying factors. Does not call pandapower IEC calc_sc . Outputs I 1/2 sym , I 1/2 peak , I int , I 30 , X/R per bus, plus line and transformer currents (also written onto diagram result boxes), and breaker duty checks when Switch ratings are entered. Verify against utility requirements before using results for equipment ratings.
OpenDSS tab — native OpenDSS fault study. Computes symmetrical, peak, and thermal currents per bus. Assumptions differ from the pandapower path.
ANSI/IEEE C37 (North America / Canada) — beta
ANSI/IEEE C37 short circuit is in beta . Use results for engineering review. Verify against utility or consultant practice before applying them to equipment ratings.
On the Pandapower tab, tick ANSI/IEEE C37 when the project or utility requires ANSI/IEEE C37 short-circuit duties (typical in Canada and the United States). This is not IEC 60909 with a different label.
The study follows the North American three-network method used in IEEE C37.010 (and described in IEEE Std 141, the Red Book). Electrisim builds three separate impedance networks from the same diagram:
First-cycle (½-cycle) — subtransient machine reactances. Momentary / close-and-latch basis.
Interrupting — contact parting time (default 3 cycles). Transient reactances; motors reduced or removed per ANSI practice.
30-cycle — steady-state network (induction motors out).
Prefault voltage is applied directly (default 1.00 pu). There is no IEC voltage factor c and no IEC K G / K T correction factors. Asymmetry uses the calculated fault-point X/R : first-cycle peak from a fully offset wave, interrupting duty from the remaining DC component at contact parting (compared with the C37.010 X/R = 17 test circuit for symmetrically rated HV breakers), and extra first-cycle derating for LV devices when system X/R exceeds the C37.13 (6.6) or UL 489 (4.9) test circuit.
Set generator ANSI machine type (turbo, hydro, etc.) and Switch interrupting / momentary ratings on the Short Circuit tab for duty comparison. Device class can be auto (from voltage) or C37.010 / C37.13 / UL 489 / C37.013.
IEC 60909 vs ANSI/IEEE C37
Currents are written to diagram result boxes on buses, lines, and transformers, and listed in the ANSI results dialog (and optional TXT export).
ANSI input parameters
ANSI limitations (beta): do not mix ANSI currents with IEC-rated equipment. Single-phase line/transformer currents are not published. Arc flash still uses the IEC 60909 path. Spot-check a few duties against your C37.010 tables or a known hand calc before relying on ratings.
Electrisim supports three types of short circuit faults:
Three-Phase Fault (3ph): Symmetrical fault affecting all three phases. Typically produces the highest fault current. Used for symmetrical interrupting capacity rating.
Two-Phase Fault (2ph): Fault between two phases. Produces lower fault current than three-phase. Used for phase-to-phase protection.
Single-Phase Fault (1ph): Fault between one phase and neutral/ground. Includes zero-sequence impedance of the network and of the External Grid . Critical for ground-fault protection and neutral sizing. IEC 60909 maximum uses r0x0_max / x0x_max ; minimum uses r0x0_min / x0x_min .
Input Parameters (IEC 60909)
These fields appear when IEC 60909 is ticked on the Pandapower tab. For ANSI parameters see ANSI/IEEE C37 above.
Calculation Cases (IEC 60909)
According to DIN/IEC EN 60909, different calculation cases are used:
Maximum Case (Ik"): Highest fault current (typically for breaker sizing). Assumes maximum generation, minimum impedances, voltage = 1.1 pu (c max ). External Grid uses s_sc_max_mva , rx_max , and for 1-phase faults r0x0_max / x0x_max .
Minimum Case (Ik'): Lowest fault current (typically for protection coordination). Assumes minimum generation, maximum impedances, voltage = 0.9 pu (c min ). External Grid uses s_sc_min_mva , rx_min , and for 1-phase faults r0x0_min / x0x_min .
Single-phase minimum (IEC 60909): pandapower builds the external-grid zero-sequence impedance from r0x0_min and x0x_min . Set them on the External Grid dialog Short Circuit tab (Min R0/X0 Ratio, Min X0/X Ratio). If they were never stored on an older diagram, Electrisim copies the matching maximum ratios so the study can still run. Typical values when the utility does not give separate min data: R0/X0 ≈ 0.1, X0/X ≈ 1.0. Also set s_sc_min_mva > 0. See External Grid .
Output Results (IEC 60909)
The IEC 60909 analysis provides detailed fault current information:
Algorithm Details (IEC 60909)
The IEC path follows DIN/IEC EN 60909:
Voltage Factor (c): c max = 1.1 for maximum case, c min = 0.9 for minimum case (low voltage)
Impedance Correction: Generator and transformer impedances are corrected according to the standard
Far-from-Generator Approximation: Used when fault is far from generators (symmetrical current decays quickly)
Near-to-Generator: Special handling when fault is close to generators (asynchronous contribution)
Solution Method: Matrix inversion or LU factorization of network admittance matrix
Limitations and Considerations
Important Notes:
Calculations assume balanced pre-fault conditions and symmetrical source impedances
Fault resistance/reactance can be specified but arc fault modeling may require additional considerations
Results are based on steady-state fault analysis - dynamic transients are approximated
Motor contributions to fault current may require special modeling
Grounding system impedance significantly affects single-phase fault currents. For IEC 60909 1-phase faults, the External Grid zero-sequence ratios ( r0x0_max / x0x_max or r0x0_min / x0x_min ) must be set for the selected case.
Results are valid for the specified fault location - multiple fault locations require separate calculations
Protection device characteristics (opening time, arcing) are not modeled in the base calculation
Short Circuit based on OpenDSS
In addition to Pandapower IEC 60909 and ANSI/IEEE C37 (beta), Electrisim offers short circuit calculation based on OpenDSS . In the Short Circuit dialog, select the OpenDSS tab to run a conventional fault study using the Open-Source Distribution System Simulator.
OpenDSS fault study ( Solve Mode=FaultStudy ) computes for every bus:
Initial symmetrical short-circuit current (I'' k , ikss) in kA
Peak short-circuit current (i p , ip) in kA
Thermal short-circuit current (I th , ith) in kA
Positive-sequence short-circuit resistance (R k , rk_ohm) and reactance (X k , xk_ohm) in ohms
Fault type (e.g. 3-phase) and frequency can be set in the OpenDSS tab. Results are shown on the diagram at each busbar. This option uses the same network model as OpenDSS load flow (buses, lines, loads, generators, external grid).
OpenDSS references: Fault Studies , Fault Study Mode , Bus.Isc() .
Technical References
Based on: pandapower Short-Circuit and DIN/IEC EN 60909 (Pandapower IEC); IEEE C37.010 / C37.13 / UL 489 / C37.013 and IEEE Std 141 three-network method (Pandapower ANSI/IEEE C37, beta); OpenDSS Fault Studies (OpenDSS).
Algorithm Type: Pandapower IEC: symmetrical components with impedance-based fault calculation following IEC 60909. Pandapower ANSI: three impedance networks plus X/R multiplying factors (does not call IEC calc_sc ). OpenDSS: conventional fault study with Thévenin equivalent and open-circuit voltage per bus.
Documentation References: 📘 pandapower Short-Circuit 📘 Running a Short-Circuit Calculation 📗 OpenDSS Fault Studies
Standards: IEC 60909: Short-circuit currents in three-phase a.c. systems (Pandapower IEC); IEEE C37.010, IEEE C37.13, UL 489, IEEE C37.013, IEEE Std 141 (Pandapower ANSI, beta).
Arc Flash Analysis (IEEE 1584)
Arc Flash estimates thermal hazard at each bus: Electrisim runs a 3-phase maximum short-circuit (IEC 60909), then IEEE 1584-2018 for arcing current, incident energy, arc-flash boundary, and an NFPA 70E–style PPE category. Results are painted on the diagram.
Simulate → Arc Flash (IEEE 1584) . Requires an active subscription.
PPE selection from incident energy
Arc-flash boundary for labelling and approach
Comparing LV feeder hazard (for example MCC vs a remote panel)
Build the network and confirm short-circuit data (source impedances, transformer ratings) is filled in.
Click Simulate → Arc Flash (IEEE 1584) .
Set working distance, electrode configuration, and clearing times, then run.
Read incident energy, AFB, and PPE category on each applicable bus.
How it is calculated
Short circuit: 3-phase max fault currents (I kss ) are calculated for all buses.
Arcing current (I arc ): IEEE 1584-2018 converts bolted fault current to arcing current using electrode configuration, gap, and voltage.
Reduced arcing current: I arc-min is evaluated (variation factor); both clearing times are considered and the worst-case energy is kept.
Incident energy (IE): Energy at the working distance in cal/cm², including enclosure correction factor where applicable.
Arc-flash boundary (AFB): Distance where IE equals 1.2 cal/cm².
PPE category: Mapped from IE using NFPA 70E thresholds (Cat 0–4 / Dangerous).
Voltage range and methods
208 V – 15 kV: IEEE 1584-2018 empirical model (verified open-source coefficients via arcflash-calc ).
Above 15 kV: Ralph Lee method; the result box is tagged method: RalphLee so HV estimates are not confused with IEEE 1584 LV/MV results.
Below 0.208 kV: Bus is skipped as outside the IEEE 1584 applicability range.
Input Parameters
Electrode configurations
VCB — Vertical conductors in a metal box (typical switchgear / MCC)
VCBB — Vertical conductors terminated in an insulating barrier inside a box
HCB — Horizontal conductors in a metal box (often higher IE)
VOA — Vertical conductors in open air
HOA — Horizontal conductors in open air
Each bus result box typically shows:
Import the industrial example arc_flash_industrial_demo.py (File → Import) to see a clear LV gradient: short cables (MCC Near) show higher IE / PPE than long feeders (Panel Far). Buses at 20 kV are labeled with the Ralph Lee method.
Limitations and Considerations
Important notes:
Clearing times are user inputs — Electrisim does not yet read relay/fuse TCC curves automatically for this study
Electrode configuration and enclosure dimensions are global for the run (same settings applied to all buses)
IEEE 1584 applicability limits (voltage, I bf , gap) are enforced with clamping/warnings where needed
Ralph Lee results above 15 kV are conservative estimates, not IEEE 1584 PPE labels
Always apply engineering judgment and site-specific PPE programs (NFPA 70E / local standards)
Technical References
Based on: IEEE Std 1584-2018 (Guide for Performing Arc-Flash Hazard Calculations); short-circuit currents from pandapower short-circuit ; calculation library arcflash-calc (IEEE 1584-2018 implementation).
Related: Short Circuit documentation · IEEE 1584 standard
Motor Starting Analysis
pandapower ANDES
Motor Starting checks voltage dip and loading when asynchronous motors start. Use the steady-state study for three snapshots (before / locked-rotor / after), or the dynamic study for a time-domain startup. Methods include DOL, soft-start, star-delta, autotransformer, and reactor.
Simulate → Motor Starting . Requires a subscription. Each motor needs locked-rotor current, R/X, and rated voltage set in the Motor dialog.
Voltage dip vs a limit (for example 10–15%) during DOL or soft-start
Comparing starter methods in steady-state
Start time and voltage recovery in dynamic mode
Place Motor elements and fill locked-rotor data.
Click Simulate → Motor Starting .
Choose steady-state or dynamic, the motors to start, and the starter method.
Run and review bus dip, branch loading, and (in dynamic mode) the time plots.
Steady-state (pandapower)
Before: motors to start are taken out of service; AC load flow gives pre-start voltages.
During: each starting motor is replaced by a locked-rotor PQ load. Starting current is \(I_{lr} = lrc\_pu \cdot I_n\), scaled by method factor \(k_m\) (DOL = 1, soft-start = \(I_{limit}/lrc\), star-delta = 1/3, autotransformer = \(tap^2\), reactor = \(1/(1+x_r)\)).
After: motors return at their loading; post-start voltages are computed.
Checks: dip % vs limit on every bus; branch loading during start vs thermal limit.
Dynamic (ANDES)
Network is mapped to ANDES; selected motors become Motor3 devices with u=0 .
A Toggle connects each motor at \(t_{start}\).
TDS returns bus voltage, motor current, slip, and torque vs time; start time is when slip falls below threshold.
Soft-start in dynamic mode is approximated by scaling motor Sn so initial current ≈ \(I_{limit}\).
Input Parameters
SLD boxes: bus V before/during/after and dip % (green PASS / red FAIL); motor I start and method
Results dialog: tables for motors, buses, branches; CSV download; Chart.js plots for dynamic mode
Summary: worst dip, voltage/thermal fail counts
Limitations and Considerations
Important notes:
Steady-state locked-rotor model is a snapshot, not a full torque–speed acceleration curve
Dynamic soft-start is an approximation (Sn scaling), not a thyristor softstarter controller model
Star-delta / autotransformer / reactor factors apply exactly in steady-state; dynamic mode uses DOL (or approx. soft-start)
No vendor-specific DSL controllers, synchronous-motor excitation start, or variable rotor resistance
Dynamic mode requires a network suitable for ANDES (synchronous generator / slack as for Transient Stability)
Technical References
Based on: pandapower load flow and motor element ( lrc_pu , rx ); ANDES Motor3 + Toggle for time-domain startup. Typical study outputs include voltage drop before/during/after start, start time, and grid loading.
Related: Motor element · Short Circuit · Transient Stability (ANDES)
Transient Stability (ANDES Time-Domain Simulation)
Transient Stability shows how the network responds over time to a bus fault or line trip: rotor swings, voltage recovery, and whether machines stay in synchronism.
Simulate → Transient Stability (ANDES) . Requires a subscription. You need at least one Generator with dynamics. An External Grid alone is not enough.
Synchronism after a fault (speed and angle swings)
Comparing clearing times and fault locations
Voltage recovery after a clear or line trip
Place a synchronous Generator and fill the Dynamics tab (defaults are applied if fields are empty).
Click Simulate → Transient Stability (ANDES) .
Set end time, optional fault bus and clear times, and optional line outage.
Run and inspect generator speed/angle and bus voltage vs time.
Electrisim serialises the diagram (buses, lines, transformers, loads, generators) to the backend.
The backend builds an ANDES system: static models (Bus, Line, PQ, PV/Slack) plus dynamic models (GENROU or GENCLS, exciters, governors).
Missing Dynamics-tab fields receive textbook defaults (reported in the result).
Optional disturbances from the study dialog: bus fault (apply/clear times) and/or a line outage at a given time.
PFlow.run() establishes the operating point; TDS.run() integrates to tf .
Results return as time series: generator ω , δ , bus voltages, and an approximate system frequency from mean ω .
Input Parameters
Multi-series charts: generator speed ω (pu), rotor angle δ (rad), bus voltage (pu), mean frequency (Hz)
Summary: tf , point count, generator/bus counts, event settings
List of applied dynamic defaults and mapping warnings (e.g. skipped DC lines, static generators)
CSV export of the time series
Requirements & Limitations (MVP)
At least one synchronous Generator ; mark one generator as slack (or include an External Grid plus generators)
Static generators are not modelled as SynGen in this MVP (warned in results)
Three-winding transformers and DC lines are skipped
Full ANDES model catalogue (100+ models) is not exposed — GENROU/GENCLS, EXDC2/SEXS, TGOV1 only
Technical References
Based on: ANDES PFlow + TDS. Demo model: transient_stability_two_machine_demo.py (File → Import).
Related: Eigenvalue Analysis · Generator Dynamics tab · Motor Starting (dynamic)
Eigenvalue Analysis (ANDES Small-Signal Stability)
Eigenvalue analysis linearises the system around the current operating point and plots modes in the complex plane: damping and oscillation frequency. Negative real parts are stable; positive real parts grow.
Simulate → Eigenvalue Analysis (ANDES) . Same requirement as Transient Stability: at least one Generator with dynamics.
Small-signal stability at the current dispatch
Poorly damped local or inter-area modes
Effect of inertia, droop, or exciter gains (Generator Dynamics tab)
Use the same dynamic network as for transient stability (no fault is required).
Click Simulate → Eigenvalue Analysis (ANDES) .
Run and inspect the s-plane plot, damping ratios, and optional participation factors.
Build the ANDES system as for time-domain simulation (no fault or line-trip disturbances).
Run power flow, then the eigenvalue study.
Return all eigenvalues plus the least-damped oscillatory modes (frequency and damping ratio).
Optionally include participation factors for the top modes.
Input Parameters
Stability verdict: stable , marginally_stable , or unstable
Counts: positive / zero / negative eigenvalues
s-plane scatter plot and table of σ, ω, f (Hz), damping ratio ζ
Participation factors for highlighted modes (when available)
Technical References
Based on: ANDES eigenvalue tutorial .
Related: Transient Stability · Generator Dynamics tab
Protection Coordination Study
Protection coordination checks whether devices operate in the right order for a chosen fault. Electrisim runs IEC 60909 short-circuit, then evaluates fuses and overcurrent (and related) devices. You get trip or melt times, complete time-current (TCC) curves, and miscoordination warnings.
Simulate → Protection Coordination . Devices are assigned on the Protection tab of each Switch .
Fuse melt and relay trip times for a fault at a bus or along a line
Time-current grading between upstream and downstream devices (complete OCR TCC for DTOC, IDMT, and IDTOC)
A first miscoordination screen on a radial feeder
Fuse; OCR DTOC / IDMT / IDTOC (IEC and IEEE/ANSI); earth-fault OCR; directional OCR; differential (87) and distance (21). Fuse currents near transformers follow pandapower short-circuit limits.
Place switches on lines, transformers, or bus connections in your diagram (switches are required for protection assignment).
Open each switch’s dialog → Protection tab. Choose Fuse (library or custom I–t curve) or OC relay (DTOC, IDMT, or IDTOC). For OCR, set subtype, inverse curve, trip times, and automatic or manual pickup currents (manual values are in amperes).
Click Simulate → Protection Coordination .
In the dialog, choose fault location ( along a line or at a busbar ), fault type (3ph / 2ph / 1ph), and case (max / min). Configure grading defaults on the Grading tab if switches leave fields empty.
Review the results dialog: short-circuit summary, tripping table (including melting time for fuses), complete I–t / TCC chart, and miscoordination list. Optionally export a .txt report.
Fault location modes
Dialog parameters
These fields are sent as ProtectionCoordinationPandaPower in the POST body together with network elements.
Switch protection settings
Per-switch parameters are configured on the Switch dialog Protection tab (see also Switch ):
Fuse — library type (e.g. Siemens NH-2 series) or custom JSON curve ( t_min , t_total , x_min , x_total ) plus rated current.
OC relay — DTOC, IDMT, or IDTOC; IEC or IEEE inverse curve; TMS, grading delay, instantaneous and backup trip times; automatic or manual pickup currents in amperes. See Overcurrent relays (OCR) .
Earth-fault OCR (50N/51N) , directional OCR (67) , differential (87) , and distance (21) — configured on the same tab; 87 and 21 use Electrisim evaluators on the short-circuit results.
At least one switch with a protection device assigned is required; otherwise the study returns an error.
Overcurrent relays (OCR)
Assign Overcurrent Relay (OCR) on the Switch Protection tab. Subtype, curve, times, and pickups are taken from that switch; empty timing fields inherit the study Grading tab defaults.
Time grading — auto uses pandapower topological grading. manual uses the per-switch times from the Switch dialog ( t_g , t_gg , tms , t_grade ). Manual grading is supported for DTOC, IDMT, and IDTOC, including a complete IDTOC TCC.
Pickup current — auto derives pickups from line ratings and the overload / CT / safety factors. manual uses I_s_a , I_g_a , and I_gg_a in amperes (not kA).
Inverse curves — IEC 60255: standard, very, extremely, and long inverse (native pandapower OCRelay). IEEE C37.112 moderately / very / extremely inverse are evaluated by Electrisim from the same short-circuit results; trip times and TCC points are still returned.
Evaluating engine — each relay is reported once, and the settings table shows whether it was solved by pandapower or the Electrisim evaluator . Electrisim takes over when pandapower cannot build the relay — most often because pandapower’s topological time grading requires every closed switch to sit on a line, so bus-bus ties or transformer switches make it fail. The reason is listed under Evaluation notes in the results dialog and in the .txt report.
Short-circuit summary — e.g. Ikss at the fault bus (kA).
Tripping table — per switch: device type, tripped/melted flag, activation current ( activation_parameter_value , kA), trip/melt time ( trip_melt_time_s , s).
Time-current chart — log-log TCC (Chart.js): complete relay/fuse characteristic (inverse segment and definite-time steps for IDTOC/DTOC) plus fault trip points.
Miscoordination warnings — pairs of devices whose trip times are closer than the grading margin ( t_diff ).
Export — optional .txt download with the same summary fields.
Prerequisites and tips
Valid network topology with external grid (or slack) and in-service switches on protected branches.
For results comparable to pandapower fuse examples, match fuse types per feeder, avoid duplicate fuses on both ends of the same line unless intended, and align external-grid short-circuit strength ( s_sc_max_mva ) with your reference case.
OCR relays require matplotlib in the backend environment ( pip install matplotlib ).
Primary path is short-circuit based; overload ( scenario=pp ) is optional when enabled in the study dialog. For motor-start voltage dip studies, use Motor Starting Analysis .
IEEE inverse curves, earth-fault OCR, directional OCR, differential (87), and distance (21) use Electrisim evaluators on SC results (not native pandapower device classes). DTOC, IDMT, and IDTOC with IEC curves use pandapower OCRelay where the network allows it, otherwise the Electrisim evaluator with the same Switch dialog settings.
Line-end duplicate switches report identical branch currents by design.
Subscription required in the cloud app (same gating as other premium analyses).
Technical references
pandapower v3.3.2 — Protection · Short-circuit (IEC 60909)
DG Interconnection Screening (OpenDSS)
Screens a proposed DER ( PVSystem , Storage , or Generator) at the point of connection for voltage band, thermal loading, and reverse power. You can compare Volt-VAR inverter control and estimate hosting capacity.
Simulate → DG Interconnection Screening (OpenDSS) .
A first interconnection check before a full impact study
Whether Volt-VAR or feeder controls would fix a voltage/thermal fail
An estimate of hosting capacity at the POC
Enable Volt-VAR on the DER inverter, or add feeder controls from the Controls palette ( RegControl , CapControl ).
Place a DER on the feeder and note the POC bus.
Click Simulate → DG Interconnection Screening (OpenDSS) .
Select POC bus, DER, proposed kW, voltage/thermal limits; optionally enable hosting-capacity search and InvControl compare.
Review pass/fail checks, mitigations, and hosting capacity kW.
Related studies: Battery Sizing for Busbar Requirements ; BESS Dispatch Reversal ; Grid Code Compliance (P-Q) .
Monte Carlo Load Flow (OpenDSS)
Monte Carlo load flow samples load variation over many trials and reports bus voltage and line loading statistics (min, mean, max, and percentiles).
Open the Load Flow dialog, OpenDSS tab, and set Solution Mode to M1, M2, or M3 — or use the dedicated Monte Carlo results path after that run.
Voltage and loading risk when load is uncertain
A distribution of results instead of a single snapshot
M1 — Monte Carlo with loadshapes (Gaussian or Uniform multipliers).
M2 — Daily / yearly style sampling.
M3 — Monte Carlo at a selected hour.
Build a network suitable for OpenDSS load flow (include loadshapes for Gaussian M1 where required by OpenDSS).
Open Simulate → OpenDSS Load Flow (or the OpenDSS tab of Load Flow).
Set Solution Mode to M1, M2, or M3; choose sample Number , Random (Uniform / Gaussian), and hour for M3.
Review the Monte Carlo results dialog: bus V percentiles, line loading stats, and summary convergence count.
Wind Turbines contribute with their curve-derived p_mw (and optional controller Pref) on each sampled solve the same way as in snapshot load flow.
Harmonic Analysis
Harmonic Analysis computes voltage and current THD: how non-linear equipment injects harmonic currents and how they propagate. Assign spectra on the Harmonic tab of the relevant elements, then run this study.
Watch on YouTube
Simulate → Harmonic Analysis (OpenDSS). Set spectra on each source or non-linear element first.
Voltage and current THD at each bus
Checks against power-quality limits (for example IEEE 519)
Filter design and harmonic propagation from converters or VFDs
Build the fundamental model: buses with rated voltage, lines, transformers, shunts, and an External Grid .
On each non-linear element, open the Harmonic tab and set the spectrum.
Click Simulate → Harmonic Analysis . Set base frequency and the harmonic orders (for example 3, 5, 7, 11, 13).
Review bus VTHD , per-order voltages, line harmonic currents, and the spectrum chart.
OpenDSS harmonic studies in Electrisim follow the same logical steps as in standalone DSS: assign spectra, define which orders to solve, then run a harmonic power flow. Electrisim automates the command sequence.
The slack is an External Grid (Vsource in OpenDSS).
NeglectLoadY neglects load shunt admittance in the harmonic solution (common in OpenDSS tutorials).
Bus rows in results use the Name from the Bus dialog when you have set it.
Where harmonics are defined (Harmonic tab)
Parameters from these tabs are included in the payload sent to the solver so the backend can build matching OpenDSS commands.
Spectrum modes (UI)
Load harmonic impedance (OpenDSS)
For loads, %SeriesRL , conn , puXharm , and XRharm control how the load’s harmonic-frequency model splits between parallel and series R–L paths. This matches the EPRI discussion of harmonic load modelling. Always cross-check sensitivity (e.g. %SeriesRL 0 vs 100%) if results are borderline for compliance.
OpenDSS — Harmonics Load Modeling
Harmonic Analysis Results window
Summary line — Base frequency, solved orders, NeglectLoadY flag.
Voltage spectrum chart — Per selected bus: harmonic voltage magnitudes as percent of fundamental line-to-line voltage (useful for relative distortion at the bus).
Table — Name (bus user name when set), VTHD [%] , and columns V_h [kV] per order (line-to-line harmonic magnitudes in kV).
If VTHD or harmonic kV are near zero, check that at least one injection source has a non-None spectrum with content at the orders you are solving, and that the network is connected to the slack.
Standards and planning context
Voltage THD and harmonic levels are often compared to limits in IEEE Std 519 , IEC 61000 , or local grid codes. Limits depend on the agreed PCC, system strength, voltage level, and jurisdiction. Electrisim provides engineering quantities (THD, harmonic voltages and currents); compliance assessment remains your interpretation against the applicable standard and contract.
How it works (solver)
Electrisim drives OpenDSS harmonic flow: the circuit is solved in fundamental mode first, then mode=harmonics is applied with the requested order list. Monitors capture bus-related voltages and line currents per harmonic; results are aggregated into bus VTHD and per-order magnitudes for the JSON response and the UI.
Configuration checklist
Open Simulate , set Analysis type: Harmonic , enter orders (comma-separated), and confirm frequency. Configure each injecting element’s Harmonic tab. For filters, use shunt reactors/capacitors (and lines/transformers) as in the fundamental model. Export OpenDSS commands from the flow dialog if you need to reproduce the case outside Electrisim.
Based on: OpenDSS Harmonic Flow Analysis ; OpenDSS Load (spectrum, %SeriesRL); OpenDSS Vsource (external equivalent).
Optimal Power Flow (OPF)
Optimal Power Flow finds a least-cost generation dispatch that still respects voltage limits, thermal limits, and generator capability. Unlike load flow, the solver is allowed to change dispatch (within your costs and limits).
Simulate → Optimal Power Flow (pandapower). Set costs and limits on generators, and voltage bands on buses, before you run.
Least-cost dispatch while serving load
Checking whether a target dispatch is feasible with voltage and thermal limits
Comparing AC OPF (more accurate) with DC OPF (faster, active power only)
Fill generator costs (or accept dialog defaults) and bus/line limits used by OPF.
Click Simulate → Optimal Power Flow .
Choose AC or DC OPF and run.
Read the new dispatch on generators and the flows that result.
AC OPF is a full nonlinear optimisation (P, Q, voltage magnitude and angle). DC OPF is a linearised active-power approximation, faster and typical for transmission screening. The solver uses mathematical programming (interior point / SQP-style methods) to minimise cost subject to the network constraints.
Dialog parameters
Objective Function
The default objective function minimizes total generation cost, which is typically defined as:
Minimize: Σ (Cost i × P gen,i ) for all generators i
Where Cost i is the cost coefficient for generator i and P gen,i is the active power output. Cost functions can be linear, quadratic, or piecewise linear.
Polynomial versus piecewise linear (Electrisim)
In the OPF dialog, Cost function type selects how generator operating costs are modeled before calling pandapower:
Polynomial — Each synchronous generator gets a smooth cost in active power: by default a small positive quadratic term (convexity / curvature) plus a marginal linear rate that you set per machine (OPF run dialog and/or the generator’s OPF tab as marginal cost per MWh). This matches pandapower poly_cost ( cp2_eur_per_mw2 , cp1_eur_per_mw , cp0_eur ). It is usually the most robust choice for AC OPF.
Piecewise linear — Cost is linear on each power segment; Electrisim builds a single segment between each generator’s minimum and maximum OPF active power, with slope equal to your marginal rate (same interpretation as the linear term in the polynomial case). This matches pandapower pwl_cost . Use it when you think of marginal price as constant between min and max P; multi-segment tariffs would require additional segments (not exposed individually in the UI).
No cost function — No polynomial/PWL costs are created for economic minimization; the OPF can still converge but economic dispatch is not driven by generator marginal costs.
Same axes in both panels: horizontal axis is generator active power P over the dispatch range; vertical axis is operating cost contribution C (arbitrary units). Electrisim uses one linear segment for piecewise-linear cost between each machine’s OPF min/max P .
Left: A positive quadratic term makes marginal cost rise with output—useful for differentiable models or rising incremental heat rates. Right: A single segment fixes marginal price over the whole OPF band (simple block tariff).
Currency — The OPF dialog lets you choose a marginal cost currency for labels only. Numerical values are passed to the solver as-is; pandapower still names internal cost columns with eur for historical reasons. Interpret objective values (e.g. total_cost ) in the same unit system you used when typing marginal costs.
The OPF solution must satisfy:
Power Balance: Total generation equals total load plus losses
Generator Limits: P min ≤ P gen ≤ P max , Q min ≤ Q gen ≤ Q max
Voltage Limits: V min ≤ V ≤ V max at each bus using net.bus.min_vm_pu / max_vm_pu from the diagram (see Bus )
Thermal Limits: Branch loading respects element ratings; optional OPF caps — set max_loading_percent on lines , two-winding , or three-winding transformers. A value > 0 adds a pandapower OPF thermal limit for that element; 0 leaves the default unconstrained behaviour.
Reactive Power Limits: Generator reactive power capability constraints
The OPF results include optimized dispatch and system state:
OPF-capable network: slack/external grid, generator and storage models compatible with pandapower OPF.
Bus voltage bounds ( min_vm_pu , max_vm_pu ) should bracket a feasible region.
For meaningful objective values, define polynomial or piecewise costs—Electrisim can auto-create defaults from the dialog Cost function type when no costs exist.
Diagram-level inputs
Generators: active/reactive limits and any OPF-specific fields exposed in element dialogs.
Storage: optimisation-tab limits map into pandapower OPF constraints.
Buses: voltage set-points and min/max magnitudes bound the OPF solution.
API response (successful OPF)
The route returns JSON with:
Failures respond with error: true , a descriptive message , exception text, and optional pandapower diagnostic payloads.
Note: PandaModels.jl / PowerModels.jl OPF paths referenced in pandapower docs are not wired through Electrisim; only PYPOWER-style runopp / rundcopp are available.
Algorithm Details
AC OPF: Solves the full nonlinear optimization problem using Interior Point Method (IPM) or Sequential Quadratic Programming (SQP). Provides accurate results but requires significant computation time for large networks.
DC OPF: Uses a linearized power flow model (ignoring losses and reactive power). Much faster than AC OPF but less accurate. Suitable for transmission planning where reactive power is less critical.
Solver: PYPOWER, which is based on MATPOWER and uses MATLAB optimization solvers (converted to Python).
Limitations and Considerations
Important Notes:
OPF assumes perfect information and deterministic conditions - does not account for uncertainty
Cost functions must be defined for generators (linear or quadratic coefficients)
AC OPF may fail to converge for heavily loaded or ill-conditioned systems
DC OPF ignores reactive power, losses, and voltage constraints
Results represent steady-state optimal dispatch - dynamic constraints are not considered
Large networks may require significant computation time, especially for AC OPF
Market rules and regulatory constraints may not be fully represented
Technical References
Based on: pandapower Optimal Power Flow and PYPOWER.
Algorithm Type: Nonlinear/Linear optimization with Interior Point Method or Sequential Quadratic Programming.
Documentation References: 📘 pandapower Optimal Power Flow 📘 PYPOWER OPF
Time Series Simulation
Time Series runs one AC load flow per hour (or time step). At each step, load and generation follow the profiles you enter, so you can see voltages and loadings over a day or a year.
Simulate → Time Series Simulation (pandapower).
Daily or yearly voltage and loading with varying load and generation
Checking whether a snapshot load flow hides an overloaded hour
Build the network and confirm a single Load Flow converges.
Open Time Series Simulation .
Set the horizon (for example 24 hours) and a profile for each load and generator.
Run and review charts in the results dialog; export if you need a spreadsheet.
Each step updates P/Q from your profiles and solves AC load flow. The idea matches the pandapower time series tutorial , but Electrisim drives the loop itself rather than the pandapower OutputWriter pipeline.
Dialog — simulation horizon
time_steps — number of sequential power-flow solves. Each step represents one hour by default (e.g. 24 = one day, 8760 = one year).
Dialog — load & generation profiles (per element)
Every Load , Generator , and Static Generator on the diagram gets its own profile editor. Enter one numeric value per time step, separated by commas or spaces. You can also import a .csv or .txt file.
Quick fill (optional toolbar above the element cards) lets you apply a preset shape to all loads or all generators at once — this replaces the older “Global preset” mode, which applied one profile to every element and often failed to converge on meshed or transformer-heavy networks. Per-element control with absolute MW values is the recommended approach.
Preset shapes available for quick fill:
Load: constant , daily (residential), industrial , variable
Generation: constant , solar , wind , variable
The Random (tutorial) button fills absolute MW values between 0 and the element’s base P — matching the pandapower notebook example.
Dialog — advanced power flow settings
Collapsed under Advanced power flow settings in the dialog:
frequency — system frequency (Hz).
algorithm — nr (Newton-Raphson), iwamoto_nr , fastdecoupled , or dc .
calculate_voltage_angles — auto , yes, or no.
init — initialization method. Auto is recommended; after the first converged step the backend warm-starts from previous results.
Convergence tips
Verify the network converges in a single Load Flow before running time series.
Use Absolute P (MW) when values look like notebook MW numbers — do not mix absolute MW values with scale-factor mode.
Keep initialization on Auto unless you have a specific reason to change it.
Large simultaneous swings in load and generation can stress weak networks; try smoother profiles first.
After a successful run, the results dialog shows:
Summary — convergence status, duration, element counts, and non-converged step numbers if any.
Charts — input profiles, bus voltages, line loading, load P, static generator P.
Statistics — min / max / average voltage and line loading across all hours.
Detailed data — scrollable table of bus results for every hour.
Enable Download Excel report automatically in the setup dialog, or click Export to Excel in the results dialog. Sheets include Summary, res_bus , res_line , res_load , res_sgen , and profiles . If the Excel library cannot load, a CSV fallback is offered.
Posted as TimeSeriesSimulationPandaPower Parameters together with the diagram JSON:
time_steps , profile_mode (always custom from the UI), element_profiles — per-element { element_type, mode, values, display_name } .
load_profile , generation_profile — preset names used only for quick-fill reference.
frequency , algorithm , calculate_voltage_angles , init .
Extraction tip: Filter busbars / lines by time_step to plot trajectories; use the statistics blocks for KPI cards.
pandapower alignment
Official reference: Time Series Simulation . Electrisim approximates the profile-driven loop using repeated runpp calls, which is appropriate when you need bus/line summaries and Excel export rather than registered OutputWriters.
Economic Analysis
Economic Analysis totals CAPEX from element costs, power losses from a load flow, and optionally energy losses over a lifetime using load and generation profiles.
Simulate → Economic Analysis . Enter cost per unit on the Economic tab of each element first.
Project CAPEX from lines, transformers, and other equipment
Where the losses are (lines, transformers, impedances, DC lines)
Energy-loss cost over a lifetime when you supply an energy price
Fill the Economic tab on the elements you want in the CAPEX total.
Click Simulate → Economic Analysis .
Optionally enable energy-loss profiles and a lifetime / energy price.
Run and compare CAPEX, power losses, and energy-loss cost.
How it is calculated
The economic analysis performs the following steps:
CAPEX: Sums costs from the Economic tab of each element (lines, transformers, etc.). For lines: cost × length_km × parallel. For transformers: cost × parallel.
Power Losses: Runs one AC load flow and extracts active power losses ( pl_mw ) from lines, transformers, three-winding transformers, impedance branches, DC lines / DC lines mapped through pandapower.
Energy Losses (optional): When profiles are enabled, Electrisim builds hourly scaling traces for loads and generators, evaluates losses on a compact grid of operating points with repeated runpp , then interpolates losses for each hour (SciPy RegularGridInterpolator when both load and generation vary). This estimates the sum of hourly loss energy, Σ P loss (t)Δt, with Δt = 1 h.
Period vs lifetime MWh: The simulation-period integral is exposed as total_energy_losses_period_mwh . Multiplying by Lifetime (years) yields total_energy_losses_mwh , representing cumulative losses across the project horizon.
Energy Loss Cost: When an energy price is supplied, cost equals total_energy_losses_mwh (lifetime MWh) × price.
Formulas: Power Losses and Electrical Energy Losses
Power losses are computed by pandapower from the load flow results. The following formulas apply per element type:
Power Loss (P loss ) per Element
AC Line, Impedance, DC Line (line_dc):
P loss = P from + P to
where P from is active power flow into the element at the "from" bus, and P to is active power flow into the element at the "to" bus (power flow convention: one direction is positive, the other negative, so the sum equals the power dissipated).
Transformer (2-winding and 3-winding):
P loss = P hv + P lv
where P hv is active power at the high-voltage side and P lv at the low-voltage side. Equivalent to P from + P to in terms of power balance.
HV DC Link (dcline):
P loss = P from + P to
with P to = −P from × (1 − loss_percent/100) − loss_mw. The loss is thus P from × (loss_percent/100) + loss_mw.
Physical interpretation: For resistive elements (lines, impedance), P loss ≈ I²R, where I is the current and R the resistance. For transformers, losses include copper (I²R) and iron (no-load) losses.
Total Power Losses
P total,loss (MW) = Σ P loss over all lines, transformers, impedance elements, and DC lines
Electrical Energy Losses
Hourly losses are reconstructed via interpolation from strategically sampled AC load flows (see workflow above—not full pandapower run_timeseries ). Energy over the simulated horizon:
E period (MWh) = Σ t=1..N P loss (t) × Δt
Lifetime cumulative energy:
E lifetime (MWh) = E period × lifetime_years
The JSON field total_energy_losses_period_mwh stores E period ; total_energy_losses_mwh stores E lifetime .
Energy Loss Cost
Cost = E lifetime (MWh) × energy_price_per_MWh
Economic analysis request payload
The frontend merges diagram cells with an object typ: "EconomicAnalysisPandaPower Parameters" . Important keys mirrored by Flask ( app.py ):
frequency , currency , algorithm , calculate_voltage_angles , init
use_generation_profile — UI sets this true whenever profile widgets are shown.
time_steps , lifetime_years , load_profile , generation_profile , energy_price_per_mwh , energy_price_currency , calculation_mode
Economic analysis JSON outputs
total_capex , capex_breakdown : Aggregated CAPEX and per-element contribution pulled from diagram economics fields.
total_power_losses_mw , power_losses_breakdown : Sum of pl_mw after the baseline load flow.
total_energy_losses_period_mwh : Integrated losses over time_steps hours (Δt = 1 h).
total_energy_losses_mwh : Lifetime cumulative (= period × lifetime_years ).
energy_loss_cost : Lifetime MWh × price when provided.
load_profile_values , generation_profile_values : Hourly scaling vectors stored for auditing/charts.
Input Parameters
Total CAPEX: Sum of all element costs in the selected currency
CAPEX Breakdown: Table of element type, name, and cost per element
Total Power Losses (MW): Sum of active power losses from load flow
Power Losses Breakdown: Table of element type, name, and power loss (MW) per element
Total Energy Losses (period): total_energy_losses_period_mwh — integrated MWh over the simulated hour window.
Total Energy Losses (lifetime): total_energy_losses_mwh — equals period energy × lifetime years.
Energy Loss Cost: Lifetime MWh × energy price when specified.
Profiles used: Load and generation profile names and hour count used for the calculation
Note: Set cost per unit in the Economic tab of each element dialog (lines, transformers, etc.) before running Economic Analysis. Element names in the breakdown match the names shown in the CAPEX and Power Losses tables.
Grid Code Compliance (P-Q) App menu: Grid Code Compliance (P-Q)
This study builds a P-Q diagram at the point of connection . It sweeps plant active power, runs load flow at each step and PCC voltage, and records the Q range the plant can deliver. The results chart plots net P and Q at the PCC (including collector and transformer losses). The blue grid-code overlay is in p.u. of Pmax at the PoC . Plant Q can be set locally on each static generator / wind turbine, or dispatched through a Park Controller as constant Q at the point of connection.
Simulate → Grid Code Compliance (P-Q) (pandapower only). Requires a subscription.
Worked examples: 33 MW onshore wind farm (park controller at the 110 kV POC); offshore wind P-Q/Pmax — 450 MW grid compliance (Part 1) ( video card ).
Verify that the plant can deliver required Q (lagging/leading) across the P range at different PCC voltages
Compare simulated capability (red) against grid code templates (e.g. ENTSO-E PPM, VDE AR-N, Saudi Arabian Grid Code (SAGC) , other national codes) on the same chart (blue)
Document compliance using the compliance badge and exported CSV
Study the effect of tap changers, shunt reactors, loading limits, and voltage protection on the envelope at the PoC
P and Q at the point of connection: The sweep still dispatches active power on the selected generators (as % of Pn). The results chart does not use that generator P. Red is net P and Q at the PCC from each solved load flow, so collector and transformer losses pull the top of the red envelope below installed P. Blue is the grid-code template in p.u. of that same Pmax at the PCC (including Q/Pmax ratios such as 0.33), not generator Pn. Installed P stays in the summary as the nameplate / sweep reference.
Plant Q dispatch: Choose Local Q on each static generator / wind turbine or Park Controller . Place and configure a Park Controller on the SLD first (Machines, General, Distribution tabs) if you use park dispatch. If one is on the diagram, this study selects it automatically; click Configure… to open the same dialog. Park mode uses constant Q at the point of connection and reduces the plant Q setpoint if loading or voltage limits bind. Local Q sets each unit’s q_mvar from its P–Q capability (or circular S n –P fallback) and takes other park controllers out of service so they cannot overwrite Q.
Model the plant: PCC bus, external grid at the point of connection, wind turbines and/or static generators, and optionally a Park Controller linked to those machines.
Simulate → Grid Code Compliance (P-Q) (pandapower only).
Select PCC, external grid, plant units, and (if using park dispatch) the Park Controller (auto-filled from the park Machines list when park mode is on).
Set Pn, sweep start / step / end (% of Pn), voltage levels, and optional grid-code P-Q template. Q limits are taken from each wind turbine / static generator Q capability tab when that curve is enabled; otherwise a circular S n –P limit is used. You do not set a separate Q mode in this dialog.
Optionally enable loading limit, voltage protection at LV terminals, two-winding and/or three-winding worst-case transformer taps, shunt reactor control, shunt on/off before plant Q, and Q with units not operating.
Run the calculation. A progress overlay shows voltage levels and load flows; you can Stop between steps.
The input dialog groups these into Point of connection , Plant , P–Q sweep , Transformer and shunt control , Loading limit , Voltage protection , Grid code requirement , and Results .
For each voltage level, plant P is taken from the sweep start / step / end (% of Pn). Operating range sets the sign: generation uses +P, consumption uses −P, and “both” evaluates both signs. That sweep P is dispatched on the selected generators. The red chart plots net P and Q at the PCC from each solved load flow. The blue grid-code envelope uses the same Pmax: the highest net P delivered at the PCC (Q/Pmax ratios from the template apply to that Pmax, not generator Pn). Then for each sweep P:
Set Q to the plant/unit capability (Qmax, then Qmin) and run a load flow.
If loading limits are violated and Shunt control plus Loading limit are on, reduce shunt compensation one step at a time before touching plant Q.
Then reduce Q until the network is within limits or Q reaches 0 Mvar (resolution = Q reduction step % of Pn). Local Q: each unit’s Q setpoint is reduced as a function of its rating (local Q on the static generator / wind turbine). Park controller: the Park Controller constant-Q setpoint at the point of connection is reduced.
Local Q: each unit’s Q setpoint is reduced as a function of its rating (local Q on the static generator / wind turbine).
Park controller: the Park Controller constant-Q setpoint at the point of connection is reduced.
Transformer tap control: two load flows per P (lower vs upper tap voltage setpoint) on two-winding and/or three-winding transformers that have Discrete tap control enabled (each family is optional); keep the more restrictive Q envelope. Plant Q is applied first, then taps, so the controlled bus stays in the (pinned) band at the displayed operating point. Where the tap changer cannot reach the band, the point is still reported as reactive-power capability but flagged as not voltage-regulated.
Park Controller Q applies to wind turbine and static generator elements only, not synchronous generators. OpenDSS is not supported. You can Stop a run from the progress overlay; the backend cancels between load flows.
What the results show
Red capability — net P (Y) and net Q (X) at the selected PCC bus from each load flow, including collector and transformer losses. This is not dispatched generator P. Qmax is overexcited (solid); Qmin is underexcited (dashed). Click a red point to apply that load flow on the diagram.
Blue requirement — the chosen grid-code envelope in p.u. of Pmax at the PCC , so the top of the blue area lines up with the top of the red area. Q/Pmax ratios from the template apply to that Pmax, not to installed / generator Pn.
Summary — PCC bus, generator count, installed P (Pn / nameplate), Pmax at PCC , voltage levels, tap/shunt status, Q dispatch mode, load-flow count, and overall P-Q compliance.
Chart units — MW/Mvar, or p.u. of Pmax at the PCC. Sign convention is generator (+P export) or load (+P import). Those toggles do not change which sweep points were calculated; that is Operating range on the input dialog.
Compliance — COMPLIANT when red covers the required Q band at every P on the blue envelope (and at the measured PCC P points that fall inside that band). If a required P is above the delivered PCC P span, that point is not met.
Q with units not operating — residual P/Q at the PCC with the selected units at P = Q = 0. This is not the red P = 0 capability (units still supplying Q there).
Download CSV — P at PCC for the Qmax and Qmin branches, dispatched generator P, Qmax/Qmin, power factors, optional 10% Pn table, residual PQ0, and the (PCC-scaled) requirement envelope.
Built-in grid code templates
Choose Custom (manual table) to type P, Q min , and Q max yourself, or pick a built-in envelope. Values are stored as per-unit of a P base (Pn, or a custom MW table treated as p.u. of Pn) and then scaled to Pmax at the PCC (the highest net P from the load flows), so the blue envelope sits on the connection-point P axis with the red capability. These summaries support study and visualization only—always confirm against the official code text and your TSP or connection agreement.
ENTSO-E RfG — PPM inner envelope (EU minimum); PPM outer envelope (maximum TSO range)
VDE AR-N 4120 variant 2 (Germany HV, ≥110 kV); VDE AR-N 4110 (Germany MV)
Polish IRiESP — Type D (≥110 kV); PPM / wind farms; PPM P-Q/Pmax Fig. 2 @ 400 kV (offshore Type D PPM). The 400 kV PPM template matches NC RfG Figure 2: ±0.33 Q/Pmax at Pmax, −0.35 / +0.40 Q/Pmax from 10–90% P.
GB Grid Code (UK, National Grid ESO)
Spanish P.O. 12.2 (REE)
Danish Grid Code (Energinet TF 3.2.5)
Italian Grid Code (Terna, Allegato A.68)
Saudi Arabian Grid Code (SAGC, May 2024) — Connection Code §2.5.5.1, Fig. 2.1: Power Park Module: at the connection point, for active output below 20% of rated power, Q within ±0.05 · P rated ; for output above 20% , Q within ±0.33 · P rated (unless the TSP agrees a different threshold in the connection agreement). Synchronous generating unit: at rated active power, capability between 85% power factor lagging and 95% leading at the unit terminals. For P below rated, the template uses a linear ramp toward (0, 0) so the chart has points to interpolate; the published text is explicit at rated output, so check with your TSP if you need a different partial-load shape.
Power Park Module: at the connection point, for active output below 20% of rated power, Q within ±0.05 · P rated ; for output above 20% , Q within ±0.33 · P rated (unless the TSP agrees a different threshold in the connection agreement).
Synchronous generating unit: at rated active power, capability between 85% power factor lagging and 95% leading at the unit terminals. For P below rated, the template uses a linear ramp toward (0, 0) so the chart has points to interpolate; the published text is explicit at rated output, so check with your TSP if you need a different partial-load shape.
Based on: pandapower AC power flow ( runpp ) executed repeatedly inside Electrisim’s Grid Code Compliance (P-Q) workflow.
Grid Code Compliance (V-Q) App menu: Grid Code Compliance (V-Q)
This study maps U-Q/Pmax at the point of connection: plant active power is held at Pmax (default 100% of Pn) while the external grid voltage is swept. At each voltage, Electrisim searches feasible Qmax and Qmin at the PCC (red). The blue overlay is the grid-code U-Q/Pmax requirement in Q/Pmax × Pn (registered Pmax), not scaled by collector losses. Plant Q can be local on each unit or dispatched through a Park Controller as constant Q at the point of connection.
Simulate → Grid Code Compliance (V-Q) (pandapower only). Requires a subscription. Distinct from Grid Code Compliance (P-Q) and from the older combined Grid Code Compliance (P-Q & U-Q) menu item.
Model the plant with PCC, external grid, and wind turbines / static generators (and optionally a Park Controller).
Simulate → Grid Code Compliance (V-Q) .
Set P at Pmax (% of Pn) , plant Q dispatch (local or Park Controller), and a U-Q/Pmax template (for example ENTSO-E PPM U-Q inner). The voltage sweep uses the U (p.u.) vertices of that envelope; you do not enter a separate voltage list.
Run the study. The results chart shows Q versus U; click red points to apply that load flow on the diagram.
Compliance: COMPLIANT when red capability fully covers the blue U-Q/Pmax envelope over the template voltage range. Un/Uc at the PCC work as in the P-Q study (applied voltage = p.u. × Uc/Un). This is a study walkthrough, not a TSO submission.
Based on: the same pandapower load-flow search as Grid Code Compliance (P-Q) , with a single P setpoint and a voltage sweep.
Contingency Analysis
Contingency analysis takes equipment out of service one piece at a time, runs AC load flow, and flags thermal or voltage violations. Today this is single-outage (N-1 style) only.
Simulate → Contingency Analysis . Requires a subscription. Confirm a base Load Flow converges first.
N-1 screening for overloads and voltage excursions
Ranking outages by violation count
A worst-case snapshot for reinforcement discussions
Only one element is outaged at a time (line, two-winding transformer, or synchronous generator). Dialog options for N-2, N-K, selected subsets, and redispatch are reserved for later releases and are not applied yet.
Build and solve a normal Load Flow first so the network is connected and the base case converges.
Ensure each busbar has a numeric nominal voltage vn_kv (kV), not descriptive text from other equipment.
Click Simulate → Contingency Analysis (active subscription required).
In the Contingency Analysis Parameters dialog, set element type (lines, transformers, generators, or all), voltage and thermal limit checks, and thresholds (min/max voltage in p.u., maximum loading %).
Click Analyze . When the study completes, the Contingency Analysis Results dialog opens automatically.
Use filters and expandable rows to inspect violations; download CSV for a full audit trail or expand Worst-case network snapshot for bus/line/trafo values after the heaviest outage.
After a successful run, Electrisim shows an interactive results window (not only console output):
Summary cards — cases analyzed, converged, failed, cases with violations, total violation count.
Search and filters — find a case by name or outage text; show All , With violations , or Failed only .
Case list — sorted by violation count (highest first). Each row shows status ( Converged , Non-convergent , or Failed ), a violation badge, and a short summary (e.g. voltage vs thermal counts).
Expandable details — click a row to open grouped tables for voltage and thermal violations (up to 25 rows per group in the UI; use CSV for the full list).
Worst-case snapshot — collapsible section with bus, line, and transformer results from the contingency with the most violations (same data used for optional diagram colouring).
Download CSV — exports every case with status and violation summaries.
Non-convergent cases mean the AC power flow did not solve after that outage (often islanding or loss of slack). Failed indicates another backend error; the detail row shows the message.
How it works (backend)
Network export: The diagram is collected with the same prepareNetworkData pipeline as Load Flow (buses, lines, transformers, generators, loads, external grid, and so on).
Base case: Run AC load flow on the intact network; abort if isolated buses are detected.
Build cases: For each in-service element of the selected type, create one contingency record.
Outage simulation: deepcopy the network, set that element in_service = False , run runpp .
Limits: Compare bus voltages to your min/max (p.u.) and line/trafo loading to your maximum percent.
Response: Return per-case results, summary, worst-case element arrays, and JSON-safe numeric values (NaN/Inf converted to null for the browser).
Solvable base-case AC power flow (slack/external grid, connected topology).
Reasonable voltage and thermal limits for meaningful violation detection.
Valid bus vn_kv on every busbar (numeric kV).
Dialog parameters
These fields are sent as ContingencyAnalysisPandaPower Parameters in the POST body together with network elements (see development/API notes if you integrate programmatically).
Outputs and JSON shape
The HTTP response is JSON (often gzip-compressed). Top-level keys:
Extracting results: Use contingency_results for complete audit trails and CSV export; use summary.critical_contingencies for quick screening; use top-level bus / line / transformer only for the worst-case view on the canvas.
Relationship to pandapower documentation
pandapower documents contingency workflows under Contingency analysis , including run_contingency and limit helpers. Electrisim follows the same physical idea (sequential AC PF after outages) but uses its own loop so the UI can evolve independently. For deeper algorithm options, refer to the official docs.
Steady-state only—no transient or voltage stability assessment.
Each case removes one element; double or common-mode outages are not generated.
No automatic redispatch or load shedding after an outage.
Islanded or non-convergent cases are reported with converged: false and an error or convergence violation entry.
Large networks may produce many voltage violations per case when limits are tight; use the results dialog filters and CSV export rather than reading every violation in the UI.
Technical references
pandapower v3.3.2 — Contingency analysis · runpp
BESS Preliminary Design App menu: Simulate → BESS Studies → BESS Preliminary Design
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.
Simulate → BESS Studies → BESS Preliminary Design .
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 rated export 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
Open a blank diagram or the Utility-scale BESS (HV POC) template.
Click Simulate → BESS Studies → BESS Preliminary Design .
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 .
Set PCS count and ratings, HV/MV transformer and OLTC, MV cables, string transformers (two-winding or optional three-winding skid), and auxiliary load. 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.
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 ).
Click Run Study . A progress log shows named cases, rating checks, and the P/Q envelope (and the tap sweep if you enabled it).
Review the results (KPIs, named cases, P/Q and U–Q charts). Open Chart options to edit title, axis labels, and min/max scaling. 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.
External Grid → POC (HV bus) → HV/MV transformer (OLTC) → MV collection bus → auxiliary load + N strings.
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.
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. |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 — plant Qmax (capacitive, solid) and Qmin (inductive, dashed) vs the grid-code |Q| rectangle from the entered PF (grey band), from −Pn (charge) to +Pn (discharge), with the limiting element at each point. Charts are larger and labelled with Pn, |Q|/Pn, PF corners, and import/export. Chart options lets you edit the title, axis labels, scaling, and switch to P/Pn vs Q/Pn. Wider gaps on the inductive (dashed) side are from the load-flow (absorbing Q drops plant voltage), not from axis scaling. Click a vertex on a Umin / Unom / Umax curve to open the matching named load-flow on the SLD.
U–Q at rated P — plant Qmax / Qmin at rated export (P = +Pn) versus POC voltage. 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. Charge / import Q is on the P/Q chart, not in this U–Q check. Click a Qmax marker for rated-export capacitive, or Qmin for rated-export inductive, 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 rated P verdict. Export minimizes the results window so the diagram stays visible.
KPIs at the top include named-case pass/fail counts, requested POC target met, and U–Q at rated 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. 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 vertex on the P/Q capability envelope at POC or a marker on U–Q at rated P to open the same named load-flow. The pointer becomes a hand on a hit; hover shows the case name; 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 — the point’s voltage curve (Umin / Unom / Umax), export vs import (P sign), and capacitive vs inductive (Q sign) select the matching corner case (for example Unom_Export_Capacitive). If |Q| is near zero at high |P|, the rated discharge or rated charge case at that voltage is used instead.
U–Q chart — Qmax at a voltage is rated-export capacitive; Qmin is rated-export inductive (for example Umin_Export_Inductive). This check is export-only; import points stay on the P/Q chart.
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 rated P also has its own Maximize for a full-screen chart (Restore or Esc returns). 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).
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.
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 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 rated 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 on rated export.
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
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.
Simulate → Battery Sizing for Busbar Requirements (pandapower).
Electrisim does not compute switchgear or busbar conductor ratings (thermal withstand, IEC 61439). Use a separate equipment study for ampacity.
BESS P/Q needed to meet a POC schedule
Comparing load-supply, export, and reactive-support targets
Model the POC bus, grid connection, and the BESS ( Storage or BESS AC Block ).
Click Simulate → Battery Sizing for Busbar Requirements .
Set the POC bus and target P/Q, then run.
Read the required BESS P and Q and whether the target was reached.
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
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:
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.
For each scenario (or single target), the results include:
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:
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.
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
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)
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
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 .
Simulate → BESS Studies → BESS Dispatch Reversal (also on the frequency-study menu).
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
Configure the Storage: ratings ( sn_mva , Pmax), Q capability , and Inverter Control (PF / Volt-VAR / watt priority).
Click Simulate → BESS Studies → BESS Dispatch Reversal .
Select the Storage and the POC bus (plant HV / grid connection — not the External Grid slack bus).
Set start/end P, hold and ramp times, voltage limits (default 0.98–1.02 pu), and Q source (below).
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.
Results show dashed Q min /Q max 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 .
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.
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.
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
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
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.
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
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
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.
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
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
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
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, short-circuit data, ANDES dynamics kind, etc.) work the same way as on a Static Generator. 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:
Default dynamics plant kind is WIND for ANDES studies when renewable/IBR models are used.
Q capability (voltage-dependent, P and U)
The Wind Turbine Q capability tab defines reactive limits Q min /Q max 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 S n 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 S n ; 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 S n .
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
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
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
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
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
Harmonic Parameters (OpenDSS):
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:
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:
Shunt Reactor Parameters:
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_mw and q_mvar as 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. step and max_step define the discrete positions of the shunt. max_step is the top step index you model (e.g. if steps are 0, 1, …, N, set max_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_mw and q_mvar at 1.0 p.u. Pandapower stores this as shunt_characteristic_table ; OpenDSS applies the same rows to the Reactor. The dialog’s Fill steps 0…max step uses max_step to create empty rows you can complete.
step and max_step define the discrete positions of the shunt. max_step is the top step index you model (e.g. if steps are 0, 1, …, N, set max_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_mw and q_mvar at 1.0 p.u. Pandapower stores this as shunt_characteristic_table ; OpenDSS applies the same rows to the Reactor. The dialog’s Fill steps 0…max step uses max_step to create empty rows you can complete.
Control tab — discrete shunt (voltage) control. This is a different option from the characteristic table (you can enable either, both, or neither). The table defines what P and Q are at each step ; Discrete shunt control changes step so the shunt bus voltage moves toward vm_set_pu . When both are on, the controller only updates step ; the injections at that step still follow the table. 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 step from the band table (typical VSR behaviour). This 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; use Line P → shunt step for flow-based VSR tap. 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.
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
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
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
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)
Parameters (Configuration)
Parameters (Optimization – pandapower 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.
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 Q min /Q max at the operating P.
kW + kVA is only the inverter circle √(P²+Q²) ≤ S n . 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 S n (P vs Q).
Chart: P from −P max (discharge) to +P max (charge). Built-in PCS circle is Q = ±√(S n ²−P²) with a vertical cut at P max (full Q at P = 0). PCS D-shape holds Q at 0.9·S n until the current circle binds. Custom is a vendor JSON table. Ratings come from Configuration sn_mva and OPF charge/discharge Pmax when set.
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 S n .
OpenDSS Implementation Notes
The following implementation details ensure consistent results between Pandapower and OpenDSS for storage elements:
Power dispatch: Both kWRated (inverter capacity) and kW (requested dispatch power) are set explicitly. The state (DISCHARGING/CHARGING/IDLING) is derived from the sign of p_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 %reserve parameter 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) and phases (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 Q min /Q max 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 S n (or the reverse if off).
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.
The sidebar Controls palette groups plant and feeder controllers. It uses two analysis-oriented sub-tabs:
Steady-state — controllers that affect snapshot / control-mode load flow: OpenDSS: RegControl , CapControl , StorageController Common (pandapower & OpenDSS): Wind Turbine Controller (steady-state) (power-curve Pref) Pandapower: Park Controller (steady-state) (plant Q/V/PF/tanφ)
OpenDSS: RegControl , CapControl , StorageController
Common (pandapower & OpenDSS): Wind Turbine Controller (steady-state) (power-curve Pref)
Pandapower: Park Controller (steady-state) (plant Q/V/PF/tanφ)
Dynamic — time-domain controllers: Common: Wind Turbine Controller (dynamic) (averaging & gradient limiting)
Common: Wind Turbine Controller (dynamic) (averaging & gradient limiting)
Double-click a control on the diagram to open its parameter dialog. OpenDSS controls are created as native OpenDSS objects when you run OpenDSS load flow. Wind Turbine Controllers are applied on the frontend (they do not create OpenDSS RegControl -style objects).
Wind Turbine Controller (steady-state)
pandapower OpenDSS
Palette: Controls → Steady-state → Common. Diagram label defaults to WindTurbineController (steady-state) .
Chain linked to a Wind Turbine by name:
Wind Speed Input → Lookup (Power Curve) → Pref / P
Steady-state load flow: When enabled and linked, Electrisim sets the turbine’s p_mw (Pref) from wind speed and the selected power curve, then runs the normal load flow.
When you need it vs the turbine alone: The Wind Turbine already computes p_mw from its own curve and speed. Use this controller to:
Override wind speed on the controller (uncheck “use turbine wind speed”), or
Use a dedicated Controller Curve instead of the turbine’s machine curve (same built-in P(v) templates as the Wind Turbine: 2.5 MW onshore, 3.3 MW onshore, 15 MW offshore).
Averaging and gradient limiting live on the separate dynamic controller .
Engines: Pref is applied for both pandapower and OpenDSS load flow. The controller cell itself is skipped as an OpenDSS native control object.
Wind Turbine Controller (dynamic)
pandapower OpenDSS
Palette: Controls → Dynamic → Common. Diagram label defaults to WindTurbineController (dynamic) .
Chain linked to a Wind Turbine by name:
Wind Speed Averaging → Gradient Limiter → Active Power Averaging
Time-domain only: Parameters are stored for RMS / transient studies. Snapshot load flow does not apply averaging or gradient limiting — use the steady-state controller (or the turbine’s own curve) for Pref.
Park Controller (steady-state, pandapower)
Station / park controller for pandapower load flow . It coordinates reactive power of linked Wind Turbines and Static Generators to meet a plant-level target. The same object is used by Grid Code Compliance (P-Q) and Grid Code Compliance (V-Q) when Plant Q dispatch is set to Park Controller (constant Q at the point of connection during the capability search).
Palette: Controls → Steady-state → Pandapower. Diagram label defaults to ParkController (steady-state) .
Control modes (General tab):
Voltage Control — hold bus voltage (optional droop: rated Q + droop %).
Reactive Power Control — Const Q, Q(V) or Q(P) characteristic at a busbar, line, or transformer boundary.
Power Factor Control — Const cosφ, or cosφ(P)/cosφ(V) characteristics (converted to a Q setpoint) at a busbar, line, or transformer. See cosφ(P) characteristic below.
tan(φ) Control — Q = P × tan(φ) at a busbar, line, or transformer boundary.
Distribution: share plant Q among machines by dispatched P, rated S, Q capability (P–Q / P–U curve band at current P and terminal voltage), individual %, maximise reserve (remaining headroom on the curve), or equal shares (voltage setpoint adaption). Enable Use machine P–Q capability curves so each Wind Turbine / Static Generator Q capability tab limits park Q (clamp plant setpoint + enforce min/max Q at current P and U).
cosφ(P) characteristic
On the General tab, set PF-Control to cosphi(P)-Characteristic . Electrisim stores two branches (overexcited and underexcited). Each branch is one operating point: Min. power factor at a given Active power [MW] .
Excitation branch chooses which curve is used:
Overexcited (capacitive) or Underexcited (inductive) — force that branch.
Auto (by Q sign) — Overexcited when measured Q ≥ 0 at Control Q at , otherwise Underexcited.
The dialog labels use Overexcited / Underexcited and also show capacitive/inductive so both machine language and grid-side Q language are visible. Stored attributes remain Overexcited / Underexcited .
Drop a Park Controller; open it and select connected machines by name.
Set control mode, measurement bus or boundary (line/transformer name), and setpoints / characteristic tables.
Run pandapower Load Flow . Electrisim attaches pandapower BinarySearchControl (and DroopControl when droop is enabled) and enables run_control automatically when a Park Controller is present.
Note: OpenDSS ignores Park Controllers. Balanced load flow uses positive-sequence voltage only. Sync Generators ( gen ) are not Q-controlled by BinarySearchControl in current pandapower — link Wind Turbines / Static Generators (sgens).
Documentation: pandapower Station Controller / BinarySearchControl
RegControl (OpenDSS)
OpenDSS regulator control attached to a transformer by canvas name. Used in OpenDSS load flow (and related studies such as DG interconnection mitigations) to hold regulated voltage within a band.
Palette: Controls → Steady-state → OpenDSS.
Documentation: OpenDSS RegControl
CapControl (OpenDSS)
OpenDSS capacitor control linked to a capacitor (or bus) by name. Switches capacitor banks based on voltage, current, kvar, or time.
Palette: Controls → Steady-state → OpenDSS.
Documentation: OpenDSS CapControl
StorageController (OpenDSS)
OpenDSS storage dispatch controller. Controlled Storage elements are exported with external dispatch mode so the controller can set charge / discharge.
Palette: Controls → Steady-state → OpenDSS.
Documentation: OpenDSS Storage
Pandapower-only elements
These palette elements are included only when the simulation engine is set to Pandapower . If you run load flow or short circuit with OpenDSS, they are excluded and Electrisim shows a warning listing any unsupported elements on the diagram.
SVC , TCSC , SSC (STATCOM) — FACTS devices
DC Line , DC Bus , Load DC , Source DC — DC network modeling
Switch , VSC , B2B VSC — switching and converter elements
Static Var Compensator (SVC)
Static Var Compensators are FACTS devices used for dynamic voltage support and reactive power control. They can rapidly adjust reactive power output.
Documentation References: 📘 pandapower SVC 📗 OpenDSS Documentation
Thyristor-Controlled Series Capacitor (TCSC)
TCSCs are FACTS devices that provide controllable series compensation to regulate power flow and improve transmission capacity.
Documentation References: 📘 pandapower TCSC 📗 OpenDSS Documentation
Static Synchronous Compensator (SSC / STATCOM)
Static Synchronous Compensators (STATCOM) are advanced FACTS devices that use voltage source converters to provide dynamic reactive power support. They offer superior voltage control compared to traditional SVCs. In the palette this element appears as SSC(STATCOM) .
Documentation References: 📘 pandapower SSC 📗 OpenDSS Documentation
DC lines represent high-voltage direct current (HVDC) connections between AC systems. They provide controlled power transfer and can connect asynchronous networks.
Documentation References: 📘 pandapower DC Line OpenDSS: Not Available
DC buses represent connection points in DC networks, similar to AC buses but for direct current systems. They serve as nodes where DC components like DC loads, DC sources, and DC lines can be connected.
Documentation References: 📘 pandapower DC Bus OpenDSS: Not Available
DC loads represent power consumption in DC networks. They consume active power from the DC system.
Documentation References: 📘 pandapower Load DC OpenDSS: Not Available
DC sources represent voltage sources in DC networks, similar to external grids in AC systems. They provide voltage reference and power injection into the DC network.
Documentation References: 📘 pandapower Source DC OpenDSS: Not Available
Switches represent circuit breakers, load break switches, or disconnectors that can connect or disconnect network elements (lines, transformers, or buses). In pandapower, a switch connects a bus to a line, transformer, three-winding transformer, or another bus. In OpenDSS, open switches are modeled by opening the corresponding line or transformer element.
Documentation References: 📘 pandapower Switch 📗 OpenDSS Documentation
Short Circuit tab (ANSI/IEEE C37 duty)
When running ANSI/IEEE C37 short circuit (beta), use the Switch dialog Short Circuit tab to set device class and ratings. The results dialog then compares calculated interrupting and momentary duties against those ratings (pass/fail).
Protection tab (Protection Coordination Study)
When running the Protection Coordination Study , assign a device on the Switch dialog Protection tab. Key fields:
Voltage Source Converter (VSC)
Voltage Source Converters are power electronic devices that connect AC and DC networks. They enable bidirectional power flow and provide voltage control capabilities, making them essential for HVDC systems and renewable energy integration.
Documentation References: 📘 pandapower VSC OpenDSS: Not Available
Back-to-Back Voltage Source Converter (B2B VSC)
In Electrisim, the B2B VSC cell models a dual–DC–bus back-to-back converter: one AC connection plus two DC buses (plus and minus) for detailed DC grid or metallic-return style studies. In pandapower v3.3.2 this maps to the B2B VSC element ( create_b2b_vsc , net.b2b_vsc ).
Alternatively, a single–AC–to–single–DC connection uses the VSC element and DC Bus per side as needed.
Documentation References: 📘 pandapower B2B VSC OpenDSS: Not Available
Parameters (Load Flow / OPF; connections from the diagram):
OpenDSS-only elements
These palette elements are included only when the simulation engine is set to OpenDSS . They are not sent to Pandapower; if any are on the diagram during a Pandapower calculation, Electrisim warns that they will be skipped.
PVSystem — photovoltaic array and inverter
Load 1ph , Source 1ph , Generator 1ph , Line 1ph , Transformer 1ph — explicit single-phase ( phases=1 ) distribution elements
Single-phase distribution modeling
Use the five 1ph elements to build radial feeders such as: Source 1ph → Transformer 1ph → Line 1ph → Load 1ph , with optional Generator 1ph for distributed generation. Each exposes Phase (1, 2, or 3) and Connection (wye L-N or delta L-L) so the correct OpenDSS bus terminal ( bus.1 , bus.1.2 , etc.) is used.
Tip: On radial single-phase lines, prefer wye (L-N) for loads and generators. Delta connection requires two energized phase nodes on the bus; if only one node is energized (typical for Line 1ph with wye connection), delta-connected loads may draw little or no power. Electrisim automatically switches delta loads and generators to wye on radial feeders and reports a warning in the load-flow results.
The PVSystem element combines the photovoltaic (PV) array and the PV inverter in a single model. It assumes that the inverter tracks the maximum power point (MPP) of the panel quickly, making it suitable for quasi-static time-series (QSTS) simulations with time steps of at least one second. This model is adequate for most interconnection impact studies.
Documentation References: 📗 OpenDSS PVSystem 📗 OpenDSS PVSystem Properties
Note: PVSystem is an OpenDSS-only element. Pandapower has no direct equivalent; it can be approximated using a static generator.
Parameters are organized by analysis type in the Electrisim PVSystem dialog:
PV Array Properties
PV Inverter Properties
Operating Conditions
Time-dependent Load Flow (Load Shapes)
Dynamic (Control Mode)
Electrisim Implementation
In Electrisim, the PVSystem element is configured via the PVSystem dialog with parameters organized into tabs:
Snapshot Load Flow: PV array (irradiance, Pmpp, temperature), inverter (phases, kV, pf, kvar, kVA), and operating conditions (model, Vminpu, Vmaxpu)
Time-dependent Load Flow: Load shapes (yearly, daily, duty), temperature shapes (Tyearly, Tdaily, Tduty)
Short Circuit: Internal resistance/reactance (%R, %X), base frequency, balanced mode
Harmonic: Spectrum, class, debug trace
Dynamic: Control mode (GFL/GFM), reactive limits, PI controller, safety limits
Inverter Control: OpenDSS InvControl modes — NONE / Fixed Q / Fixed PF / Volt-VAR / Volt-Watt / Watt-PF / Watt-VAR / DynamicReacCurr (requires Control Mode = Time in OpenDSS load flow)
Single-phase constant-power load connected to one bus. Power is entered in kW and kVar (not MW/MVar). Results show actual kW/kVar, optional setpoint, and bus voltage in pu.
Documentation References: 📗 OpenDSS Load
Note: OpenDSS-only. Not available in pandapower.
Single-phase slack source (OpenDSS Vsource ). The first Source 1ph in a model configures the circuit source ( Vsource.source ); additional sources create named Vsource objects. Equivalent to a single-phase external grid.
Documentation References: 📗 OpenDSS Vsource 📘 External Grid (three-phase)
Note: OpenDSS-only. Not available in pandapower.
Single-phase dispatchable generator with constant P/Q (OpenDSS Generator , phases=1 ). Power is entered in kW and kVar .
Documentation References: 📗 OpenDSS Generator 📘 Generator (three-phase)
Note: OpenDSS-only. Not available in pandapower.
Transformer 1ph
Two-winding single-phase transformer ( phases=1 Windings=2 ). HV/LV sides are determined from bus nominal voltages. LV winding is always wye-connected; HV uses wye or delta according to the connection setting.
Documentation References: 📗 OpenDSS Transformer 📘 Transformer (three-phase)
Note: OpenDSS-only. Not available in pandapower.
Single-phase series impedance between two buses ( phases=1 ). Uses per-km R, X, and optional shunt C with a length in km.
Documentation References: 📗 OpenDSS Line 📘 Line (three-phase)
Note: OpenDSS-only. Not available in pandapower.
If you already have a pandapower script or an OpenDSS circuit file, import it instead of redrawing the network. Electrisim builds the single-line diagram from the file, then you can edit parameters and run studies as usual.
File → Import from → Device... (or Open from device ) and pick a file on your computer.
Save a pandapower .py file that defines a net object, or an OpenDSS .dss circuit file.
In Electrisim, choose File → Import from → Device... .
Select the file. Buses, lines, transformers, loads, generators, and (for OpenDSS) capacitors/reactors are placed on the canvas.
Check rated voltages and names, then run Load Flow .
Supported native formats:
Pandapower (.py) — Python scripts that define a net object. The network will be converted to a diagram with buses, lines, transformers, loads, generators, and other elements.
OpenDSS (.dss) — OpenDSS circuit definition files. Buses, lines, transformers, loads, generators, capacitors, and reactors (including harmonic filters) are imported and displayed as a single-line diagram.
After import, the diagram is created automatically on the canvas. You can then run simulations, modify parameters, or export the model.
Component Data is a spreadsheet of every element on the diagram. Use it when you need to change many parameters at once, or to review ratings without opening each dialog.
Edit menu → Component Data...
Open Component Data... . Each element type has its own tab (buses, lines, loads, generators, wind turbines, and so on).
Filter or sort a column, then edit cells directly.
Click Apply to write values back to the diagram, or Cancel to discard.
The Line tab includes thermal limit max_loading_percent for OPF ( 0 = no limit). The Bus tab includes min_vm_pu and max_vm_pu for OPF voltage bounds.
p_mw is derived from the power curve and is read-only in the grid. Change wind speed or the power-curve fields and P [MW] updates immediately. Fill-down on wind speed also recomputes P. Apply writes the new P back to each turbine on the canvas.
The Map Editor lets you design networks on a geographic map. Place buses and equipment at real coordinates, draw cables, and get line lengths from geography instead of typing kilometres by hand.
Open the Map Editor from the application menu, then Generate Electrical Model when the layout is ready.
Watch on YouTube
How to use the Map Editor
Open the Map Editor from the application menu.
Place nodes — Pick an element (Bus, Wind Turbine, External Grid, Transformer, …) and click the map.
Draw cables — Use Draw Cable: click start, optional intermediate points, then the end node. Length in km comes from the coordinates.
Click Generate Electrical Model to create the schematic with those line lengths, then run Load Flow as usual.
When to use a map
The Maps feature is especially useful for:
Offshore wind farms — Model turbine arrays, offshore substations, and export cables with realistic distances.
Distribution networks — Build models from geographic layouts where line lengths matter.
Transmission planning — Place substations and lines on a map and get correct line lengths for power flow and short-circuit analysis.
After generating the model, you can run load flow, short-circuit, and other analyses as usual. The diagram can be edited further in the standard Electrisim editor.
Electrisim is open source and under active development. Use the links below for the product roadmap, source code, and contact — this page is not a changelog.
Roadmap, code, and support
Product roadmap — planned features and direction.
Frontend on GitHub — issues, discussions, and contributions.
Contact — questions and feedback via the website form.
Development history — what shipped in recent versions.
You do not install these libraries locally. Electrisim calls them on the server (or in the packaged app) after you click Run.
pandapower v3.3.2 — documentation — balanced power flow, OPF, IEC 60909 short-circuit, protection, controllers, time series. Joint development of University of Kassel and Fraunhofer IEE.
OpenDSS (via opendssdirect.py) — documentation — unbalanced distribution, fault studies, harmonics, controls. Developed by EPRI.
ANDES — documentation — time-domain simulation and eigenvalue analysis. Developed at the CURENT Engineering Research Center ; see CURENT/andes .
draw.io — diagramming framework for the canvas.
You can export generated pandapower Python or OpenDSS commands from several study dialogs if you want to continue outside Electrisim.
Acknowledgments
Electrisim would not exist without pandapower, OpenDSS, ANDES, and draw.io, and the people who maintain them.
Last updated: August 2026
Electrisim on YouTube · Frontend on GitHub
Power system analysis made accessible. Use our open-source software for free locally, or subscribe from $10 per month to support development and access premium cloud features.
Pandapower docs
Subscription management
Copyright @2026 Electrisim. All Rights Reserved by Electrisim
Get power system tips and Electrisim updates