Skip to content

PQ Load (3-phase)

Three-phase static load carrying both an EMT voltage-dependent model AND a load-flow PL/QL row. The load_type selects how the drawn P and Q vary with the terminal voltage V around the nominal V_nom: Constant Power (P,Q held), Constant Current (P,Q ∝ V), Constant Impedance (P,Q ∝ V²), or ZIP (a polynomial blend P = P₀·[Zp·u² + Ip·u + Pp], u = V/V_nom, six independent fractions for P and Q). The EMT side is modelled as a per-phase parallel conductance G(V) and inductance L(V) to ground; the per-step terminal RMS voltage is tracked over a 1/f window and the non-impedance terms are re-injected as a Norton correction each step. A low-voltage cutoff reverts the constant-power / constant-current terms to constant-impedance below v_cutoff_pu so the draw stays finite during faults. The load-flow side stays a textbook constant-power PL/QL model; the two converge exactly when the solved bus voltage equals v_nom_v. Optional per-phase current monitoring and a low-pass-filtered P/Q monitor (Akagi instantaneous power, user-selectable units) publish observables. An optional in-line breaker (a ganged 3-pole switch) can disconnect the load from the bus, driven either by a list of toggle times or by a named command signal; its initial state is drawn on the canvas.

Category: Three-Phase / Passive

Ports

NameDirectionValue typeNotes
buselectrical_3phdouble

Parameters

Config

NameLabelTypeDefaultUnitsDescription
p_wPdouble10MW (W, kW, MW)3-phase real-power demand at V_nom. Pick a unit from the dropdown (stored canonically in watts). Drives the load-flow PL column and the EMT model's nominal real draw. Positive = drawn from the bus.
q_varQdouble3MVAr (VAr, kVAr, MVAr)3-phase reactive-power demand at V_nom. Pick a unit from the dropdown (stored canonically in vars). Positive = inductive (L > 0); negative = capacitive (v1 EMT collapses |Q| to inductive with a warning). Drives QL and the EMT susceptance.
v_nom_vV nom (LL)double13800V (V, kV, pu)Line-to-line RMS voltage at which (P, Q) are specified. Pick a unit from the dropdown (stored canonically in volts); pu multiplies by V_base from the Units tab. The EMT voltage-dependence ratio is u = |V| / V_nom; EMT and PF match exactly when |V| = V_nom.
f_rated_hzf rateddouble60System frequency (Hz). Sizes the equivalent inductance (L = X / 2πf) and the 1/f window used to track the terminal RMS voltage for the voltage-dependence.
load_typeLoad typeenum (Constant Power (P) / Constant Current (I) / Constant Impedance (Z) / ZIP)impedanceHow the drawn P and Q vary with terminal voltage V (u = V/V_nom). Constant Power: P,Q held flat (∝ u⁰). Constant Current: P,Q ∝ u. Constant Impedance: P,Q ∝ u² (fixed admittance — the legacy model). ZIP: polynomial blend P₀·[Zp·u² + Ip·u + Pp] with six independent Z/I/P fractions on the ZIP tab.
v_cutoff_puLow-V cutoff (pu)double0.7Below this voltage (per-unit on V_nom) the constant-power and constant-current terms revert to constant impedance so the current draw stays finite during deep sags / faults (I ∝ 1/V would otherwise diverge as V→0). Constant-impedance loads ignore this. Typical 0.6–0.8.
measure_currentMeasure currentenum (Off / On)0Emit per-phase load currents (positive = into the load) as observables. Names on the Current Monitoring tab; blank skips a phase.
monitor_pqMonitor P/Qenum (Off / On)0Emit measured real (P) and reactive (Q) power drawn by the load as observables. Uses the instantaneous Akagi form, low-pass filtered with the time constant on the Power Monitoring tab to reject 2ω ripple. Names and units on the Power Monitoring tab.
breakerBreakerenum (None / Time Triggered / Signal Triggered)0Optional in-line breaker between the bus terminal and the load (a ganged 3-pole switch — all three phases open/close together). None: the load is permanently connected. Time Triggered: the breaker toggles open↔closed at each time listed on the Breaker tab. Signal Triggered: a named signal commands the breaker (> 0 = closed, ≤ 0 = open). While the breaker is open the load is disconnected from the bus (draws ~0 current); load-flow P/Q is unaffected by the breaker.
breaker_initial_stateInitial stateenum (Open / Closed)1Breaker state at t = 0, and the symbol drawn on the canvas (Closed = arm bridges the contacts, load connected; Open = arm lifted, load disconnected). For Time Triggered this is the state before the first trigger time; for Signal Triggered it holds for the first step until the command signal is read.

Breaker

NameLabelTypeDefaultUnitsDescription
breaker_timesTrigger time(s)string(empty)Comma-separated trigger times in seconds, e.g. `2` or `2,4,6`. The breaker toggles state (open↔closed) at each time, starting from the Initial state. Blank = never toggles (the breaker stays at the Initial state for the whole run).
breaker_signal_nameTrigger signalstring(empty)Name of a published signal that commands the breaker: > 0 = closed, ≤ 0 = open. Resolved by name through the same registry as a GoTo output, a labelled wire, or another component's observable, and read 1-step delayed. Blank holds the breaker at the Initial state.
breaker_state_nameBreaker state namestring(empty)Optional. Name for an observable reporting the breaker state (1 = closed, 0 = open) so it can be plotted. Blank = not published.

ZIP

NameLabelTypeDefaultUnitsDescription
zp_fracZp (real, ∝V²)double1Constant-impedance fraction of the REAL power. The three real fractions Zp + Ip + Pp are normalised to sum to 1 internally.
ip_fracIp (real, ∝V)double0Constant-current fraction of the REAL power.
pp_fracPp (real, ∝V⁰)double0Constant-power fraction of the REAL power.
zq_fracZq (react, ∝V²)double1Constant-impedance fraction of the REACTIVE power. The three reactive fractions Zq + Iq + Pq are normalised to sum to 1 internally.
iq_fracIq (react, ∝V)double0Constant-current fraction of the REACTIVE power.
pq_fracPq (react, ∝V⁰)double0Constant-power fraction of the REACTIVE power.

Current Monitoring

NameLabelTypeDefaultUnitsDescription
i_name_aCurrent name AstringIaSignal name for Phase A load current.
i_name_bCurrent name BstringIbSignal name for Phase B load current.
i_name_cCurrent name CstringIcSignal name for Phase C load current.

Power Monitoring

NameLabelTypeDefaultUnitsDescription
pq_time_constantP/Q filter τ (sec)double2Low-pass filter time constant for the measured P and Q. Smaller tracks transients; larger gives a cleaner steady-state but slower response. Default 2 s rejects 50/60 Hz ripple strongly. Set 0 for the raw instantaneous values.
p_signal_nameP signal namestringPSignal name for the filtered real power P drawn by the load. Blank = skip.
p_monitor_unitP unitenum (W / kW / MW)MWUnit the published P observable is scaled to.
q_signal_nameQ signal namestringQSignal name for the filtered reactive power Q drawn by the load. Blank = skip.
q_monitor_unitQ unitenum (VAr / kVAr / MVAr)MVArUnit the published Q observable is scaled to.

Units

NameLabelTypeDefaultUnitsDescription
V_baseV_base (kV)double230Base RMS line-to-line voltage in kV. Used by `pu` impedance / admittance conversions in this component's `computations` block.

Observables

SignalTypeDefault nameEnableDescription
branchCurrent_asignalfrom i_name_ameasure_currentPhase A load current (A). Positive = current drawn from the bus into the load.
branchCurrent_bsignalfrom i_name_bmeasure_currentPhase B load current (A).
branchCurrent_csignalfrom i_name_cmeasure_currentPhase C load current (A).
p_filteredsignalfrom p_signal_namemonitor_pqMeasured real power P drawn by the load. Sum of instantaneous v·i across the three phases, low-pass filtered with τ = pq_time_constant, scaled to the chosen P unit (W / kW / MW).
q_filteredsignalfrom q_signal_namemonitor_pqMeasured reactive power Q drawn by the load. Akagi instantaneous reactive power (1/√3)·(v_bc·i_a + v_ca·i_b + v_ab·i_c), low-pass filtered with τ = pq_time_constant, scaled to the chosen Q unit (VAr / kVAr / MVAr). Positive = inductive.
breaker_statesignalfrom breaker_state_namebreakerBreaker state: 1 = closed (load connected), 0 = open (load disconnected). Only meaningful when a breaker is enabled.