Appearance
Voltage Source (3-phase)
Three-phase voltage source with a configurable Thévenin impedance topology (Ideal / R-L series / R∥L parallel / R-R∥L), optional zero-sequence neutral grounding impedance (R-L or R∥L) on Y (gnd N) AND Y (ext N) connections, optional harmonic injection (up to five terms), and optional P/Q monitoring with a user-configurable low-pass filter time constant. Generates a balanced fundamental sinusoid (configurable amplitude, frequency, and phase reference). The Impedance tab exposes R (series) and R (parallel) independently — the topology selector enables only the relevant one(s). Inductors accept H, pu, or X (Ω at the source's own frequency). Each impedance / zero-sequence parameter carries its own unit selector; the auto-injected Units tab carries V_base / S_base when any pu selection is in use (frequency is taken from this source's frequency parameter).
Category: Three-Phase / Sources
Keywords: 3-phase, 3-ph, 3 ph, 3ph, three, three-phase, three phase, phase, ph, voltage source, vsrc, vs, EMF, supply, grid, balanced, harmonic, harmonics, thevenin, thévenin, zero sequence, zero-sequence, ideal, R-L, R||L, R-R||L, monitor, PQ, P, Q, power
Ports
| Name | Direction | Value type | Notes |
|---|---|---|---|
bus | electrical_3ph | double | |
n | electrical | double | Visible when connection == 'external_neutral' |
Parameters
Config
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
voltage | V_mag | double | 230 | kV (V, kV, pu) | Fundamental line-to-line RMS voltage. Each phase is driven at V_LN_peak = V_LL_rms·√(2/3); the 120° offset is applied internally. |
frequency | f (Hz) | double | 60 | — | Fundamental frequency (Hz). Drives the sinusoid generator and the pu → henries conversion when inductive elements are entered in pu. |
phase | V_ang | double | 0 | deg (deg, rad) | Phase A reference angle. B / C apply the 120° offset (sign from `sequence`). Degrees or radians via the unit dropdown. |
connection | Connection | enum (Y (ext N) / Y (int N) / Y (gnd N) / Δ (delta)) | internal_neutral | — | Winding connection. `Y (ext N)` exposes the star point N via the `n` port (directly, or through Z_n if set). `Y (int N)` floats N internally. `Y (gnd N)` ties N to ground (optionally via Z_n). `Δ` is delta — no neutral. |
sequence | Sequence | enum (ABC (+) / ACB (-)) | ABC | — | Phase sequence: ABC (positive) or ACB (negative). |
waveform | Waveform | enum (AC / Harmonics) | ac | — | Pure sinusoidal AC, or AC + user-defined harmonics. Picking `harmonics` reveals the Harmonics tab. |
impedance_type | Impedance | enum (Ideal / R-L / R∥L / R-R∥L) | R-L | — | Per-phase Thévenin impedance between EMF and bus. `Ideal` = stiff source. `R-L` = series R+L. `R∥L` = parallel R+L. `R-R∥L` = pre-series R then a parallel R∥L. Fields appear on the Impedance tab; entering 0 drops that element. |
zero_seq_type | Zero-Seq Z | enum (None / R-L / R∥L) | none | — | Neutral-grounding impedance Z_n between N and the neutral terminal (ground in `gnd N`, the `n` port in `ext N`). `None` = direct tie. `R-L` = series R+L. `R∥L` = parallel R∥L. Active for `gnd N` / `ext N`. |
ramp_time | t_ramp | double | 0 | — | Voltage ramp-up time (s). Amplitude scales 0 → full linearly over `t_ramp`, then holds. Use ~1 fundamental period on HV sources to avoid t=0 inrush. 0 disables. |
measure_current | Measure current | enum (Off / On) | 0 | — | Emit per-phase source branch current as observables. Names live on the Signal Names tab. |
monitor_pq | Monitor P/Q | enum (Off / On) | 0 | — | Emit real (P, W) and reactive (Q, VAR) power as observables. Uses the instantaneous Buchholz / Akagi form, low-pass filtered with `pq_time_constant` to reject 2ω ripple. Names on the Signal Names tab. |
pq_time_constant | P/Q filter τ (sec) | double | 2 | — | Low-pass filter time constant for P/Q. Smaller tracks transients; larger gives a cleaner steady-state but slower response. Default 2 s rejects 50/60 Hz ripple by ~50 dB. |
Impedance
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
r_parallel | R (parallel) | double | 0.001 | physical (Ω, pu) | Parallel resistive element of the Thévenin impedance. Active for `R∥L` (the parallel R) and `R-R∥L` (the inner parallel R; see `R (series)` for the pre-series resistor). Set 0 to short the parallel branch (the topology then collapses to the L-only or R-pre-only case). Independent Ω / pu selector. |
l_main | L | double | 0 | physical (H, Ω, pu) | Inductive Thévenin element. `R-L` series L; `R∥L` parallel L; `R-R∥L` inner parallel L. Pick the unit: H (henries), Ω (reactance at this source's `frequency`), or pu (X_pu on V_base / S_base — the source's own `frequency` is used; no extra frequency input required). 0 drops the element. |
r_series | R (series) | double | 0.001 | physical (Ω, pu) | Series resistive element of the Thévenin impedance. Active for `R-L` (the series R between EMF and bus) and `R-R∥L` (the pre-series resistor: EMF → R(series) → R∥L → bus). Set 0 to drop the element. Independent Ω / pu selector. |
Zero-Sequence
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
r_zero | R₀ | double | 0.001 | physical (Ω, pu) | Resistive element of Z_n (neutral-grounding impedance). `R-L` series R; `R∥L` parallel R. 0 drops the element. Independent Ω / pu selector. |
l_zero | L₀ | double | 0 | physical (H, Ω, pu) | Inductive element of Z_n. Pick the unit: H (henries), X (Ω, reactance at this source's `frequency`), or pu (X_pu on V_base / S_base — the source's own `frequency` is used). 0 drops the element. |
Harmonics
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
num_harmonics | Number of harmonics | enum (None / 1 / 2 / 3 / 4 / 5) | 0 | — | Extra harmonic terms (1-5) added to the fundamental. Each k contributes mag·sin(kωt + angle + k·offset_i). Triplens are co-phasal; 5 rotates backward; 7 forward. |
h1_order | h1 order | int | 3 | — | Harmonic order (integer multiple of f). Common: 3 (triplen), 5 (-), 7 (+). |
h1_magnitude | h1 magnitude (% of V_mag) | double | 0 | — | Magnitude as % of V_mag (5.0 = 5%). |
h1_angle | h1 angle (deg) | double | 0 | — | Extra phase angle (deg), added to the per-phase 120° × order offset. |
h2_order | h2 order | int | 5 | — | |
h2_magnitude | h2 magnitude (% of V_mag) | double | 0 | — | |
h2_angle | h2 angle (deg) | double | 0 | — | |
h3_order | h3 order | int | 7 | — | |
h3_magnitude | h3 magnitude (% of V_mag) | double | 0 | — | |
h3_angle | h3 angle (deg) | double | 0 | — | |
h4_order | h4 order | int | 11 | — | |
h4_magnitude | h4 magnitude (% of V_mag) | double | 0 | — | |
h4_angle | h4 angle (deg) | double | 0 | — | |
h5_order | h5 order | int | 13 | — | |
h5_magnitude | h5 magnitude (% of V_mag) | double | 0 | — | |
h5_angle | h5 angle (deg) | double | 0 | — |
Signal Names
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
current_name_a | Phase A current name | string | Ia | — | Observable id for Phase A branch current. Blank = skip this phase. |
current_name_b | Phase B current name | string | Ib | — | Observable id for Phase B branch current. Blank = skip this phase. |
current_name_c | Phase C current name | string | Ic | — | Observable id for Phase C branch current. Blank = skip this phase. |
p_signal_name | P observable name | string | P | — | Observable id for filtered real-power P (W). Blank = skip. |
q_signal_name | Q observable name | string | Q | — | Observable id for filtered reactive-power Q (VAR). Blank = skip. |
Power Flow
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
pf_p_mw | P (MW) | double | 0 | — | Real-power setpoint (MW). PSSE GENERATOR PG column. Positive = inject. Power-flow only — separate from the EMT settings on Config. |
pf_q_mvar | Q (MVAr) | double | 0 | — | Reactive-power setpoint (MVAr). PSSE QG. Positive = inject (over-excited). |
pf_v_pu | V setpoint (pu) | double | 1 | — | Voltage-magnitude setpoint (pu on bus base kV). PSSE VS. |
pf_q_max_mvar | Q max (MVAr) | double | 9999 | — | Max reactive output (PSSE QT). 9999 = effectively unconstrained. |
pf_q_min_mvar | Q min (MVAr) | double | -9999 | — | Min reactive output (PSSE QB). -9999 default. |
pf_p_max_mw | P max (MW) | double | 9999 | — | Max real output (PSSE PT). 9999 default. |
pf_p_min_mw | P min (MW) | double | -9999 | — | Min real output (PSSE PB). -9999 default. |
Units
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
S_base | S_base (MVA) | double | 100 | — | System base apparent power in MVA. Used by `pu` impedance / admittance conversions in this component's `computations` block. |
V_base | V_base (kV) | double | 230 | — | Base RMS line-to-line voltage in kV. Used by `pu` impedance / admittance conversions in this component's `computations` block. |
Observables
| Signal | Type | Default name | Enable | Description |
|---|---|---|---|---|
branchCurrent_a | signal | from current_name_a | measure_current | Phase A source branch current (A). |
branchCurrent_b | signal | from current_name_b | measure_current | Phase B source branch current (A). |
branchCurrent_c | signal | from current_name_c | measure_current | Phase C source branch current (A). |
p_filtered | signal | from p_signal_name | monitor_pq | Source real-power output P (W). Sum of instantaneous v_LN·i across the three phases, low-pass filtered with τ = pq_time_constant. |
q_filtered | signal | from q_signal_name | monitor_pq | Source reactive-power output Q (VAR). Buchholz / 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. |
Used in samples
Implemented in C++ class SimCompElecVsrc3ph (components/electrical/sim_comp_elec_vsrc_3ph/sim_comp_elec_vsrc_3ph.h).