pydynamicestimator.tests.test_pss
Pluggable-PSS test (the inter-strategy coupling case).
The power system stabilizer is a pluggable strategy whose output ‘Vs’ is summed into the AVR voltage error – a strategy-to-strategy coupling kept host-mediated (Synchronous.pss_signal returns the ‘Vs’ symbol, or 0 when no PSS is present; each AVR reads it). ‘Vs’ is a device-private algebraic (washout + lead-lag has direct feedthrough on the speed deviation). This validates:
The PSSKundur output satisfies its defining equation along the trajectory.
The washout blocks DC: ‘Vs’ is ~0 at steady state and only acts on the post-disturbance transient.
The PSS measurably changes the machine dynamics versus no PSS (the host-mediated PSS -> AVR -> machine coupling works), and adds exactly its three states + one private algebraic.
(Byte-equivalence of the no-PSS path is covered by the unchanged positional baselines in test_recur_sim/test_recur_est/test_run_ideal.)
See docs/algebraic_equations_design.md and CHANGELOG_algebraic_equations.md.
Attributes
Functions
The PSS's algebraic output must satisfy its defining equation along the |
|
The PSS adds its three states + one private algebraic; its washout blocks |
|
With multiple machines in one vectorized device group, each PSS must use |
Module Contents
- pydynamicestimator.tests.test_pss._T_DIST = 3.0
- pydynamicestimator.tests.test_pss.test_pss_constraint_holds()[source]
The PSS’s algebraic output must satisfy its defining equation along the whole trajectory: Vs == vl2*(1-T3/T4) + (T3/T4)*y1, with y1 = vl1*(1-T1/T2) + (T1/T2)*w and washout output w = K_stab*(omega-1) - vw. Note omega is the ABSOLUTE per-unit speed, so the PSS input is the deviation omega - omega_net (omega_net = 1 p.u.).
- pydynamicestimator.tests.test_pss.test_pss_washout_and_coupling()[source]
The PSS adds its three states + one private algebraic; its washout blocks DC (Vs ~ 0 at the pre-disturbance steady state, active afterwards); and it measurably changes the machine dynamics versus the no-PSS reference.
- pydynamicestimator.tests.test_pss.test_pss_per_machine_vectorization()[source]
With multiple machines in one vectorized device group, each PSS must use its OWN absolute speed minus the common nominal (omega_i - omega_net) and its OWN parameters – not machine 0’s. Two SGs carry PSSKundur with different K_stab/Tw/T*; each machine’s Vs must satisfy its own defining equation.