Why does field current If = field voltage Vf in steady state for "Synchronous Machine pu Fundamental" depite Rfd ≠ 1pu?

24 views (last 30 days)
Hello everyone,
I'm using the "Synchronous Machine pu Fundamental" block in Simscape Electrical SPS, and I noticed something that doesn't quite match my understanding of synchronous generator (SG) physics.
In my simulation, the field winding resistance is set to Rf = 0.06117 pu (default). However, when the system reaches steady state, the field current If is nearly equal to the input field voltage Vf, both in per-unit values.
This seems contradictory to the basic field circuit equation of an SG (in pu):
Vf = Rf * If + dpsi_f / dt = Rf * If (in steady state, assuming psi_f is constant)
Yet in the simulation, it appears that:
If ≈ Vf
I also read in the documentation, but did not understand:
The voltage at the Vf input of the block is normalized with respect to nominal field voltage so that a 1 pu input produces a 1 pu stator voltage at no load. The If current returned by the measurement output of the block is also normalized with respect to the nominal field current so that a 1 pu input produces If = 1 pu.
So my question is:
Why does Vf ≈ If hold true in steady state, regardless of the Rfd value? Does this mean the Vf input and If output are not directly interpreted as per-unit value, but rather as value with different normalization strategies? If so, what does the basic SG equations become under such normalization method?

Answers (1)

Sameer
Sameer on 6 Aug 2025 at 11:18
This happens due to the way the block normalizes the field voltage (Vf) and current (If):
  • The Vf input is normalized by the nominal field voltage, which is defined as the voltage needed to produce 1 pu stator voltage at no load.
  • The If output is normalized by the nominal field current, which is the current required to produce that same stator voltage.
In steady state, the field equation is:
Vf = Rf * If If = Vf / Rf
But since the block chooses base values such that:
Nominal Vf = Rf * Nominal If
this makes the per-unit resistance Rf_pu = 1, so in per-unit:
Vf_pu = If_pu
So even if Rf ≠ 1 pu numerically, the per-unit normalization hides it, and that’s why you observe If ≈ Vf in steady state.
Hope this helps!

Products


Release

R2025a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!