Clear Filters
Clear Filters

Synchronous Machine pu fundamental rotor alignment in Park transformation

25 views (last 30 days)
I am using the power systems blocks, specifically the synchronous machine pu fundamental. My question is which axis is aligned with the a axis: d or q. When I plot the d and q currents from the measurement port, d=0, and according to the matlab documentation that means the d-axis is aligned with the a-axis.
To confirm this hypothesis, I connected the block "abc to dq0" to the voltage source to transform directly the currents with the position of the motor. The configuration is "aligned with phase A axis". Unfortunately, now the q=0 and d>1. Then, I changed the configuration to "90 degrees behind phase A axis" and the behaviour is the same, d=0, but the plots are mirrored.
The synchronous machine pu fundamental aligns the d-axis with the a-axis during the Park transformation?
Why the currents are mirrored (multiplied by -1)?

Accepted Answer

Peter O
Peter O on 14 May 2024
The short answers:
#1:Use the 90-degree lag convention for the block.
#2: A mirror on currents usually occurs if the reference convention for postive power into the machine or out of the machine gets flipped or your terminals are swapped. For motoring, current is positive into the machine. For generating, it's positive out of the machine.
The long answer:
Your question refers more to the reference frame transformation block than to the machine model. In general, a motor model developed in transformed variables is indifferent to the rotor reference angle that it used to get into the direct-quadrature form. It's just that if you use the wrong angle offset your phase variables won't look correct when you transform back. (And neither would torque or power).
The abc to dq0 block abstracts the reference frame transformation to systems which may not have a rotor driving a reference angle, which makes the terminology a little more confusing. For a rotor the quadrature (q) axis always leads the direct (d) axis.
Rephrasing and re-emphasizing the documentation slightly, there are two primary power-invariant rotating reference frame conventions, which I’ll refer to as dq0 (Clarke-Park) and qd0 (Krause). The zero sequence is often dropped, so you’ll see references to dq and qd variables, which generally indicates the convention. It is possible to switch between them with a little math.
In the dq0 frame, the rotor d-axis aligns to the as-axis of the machine at a reference angle of theta=0. The block’s parlance is “Rotating Frame Aligned with Phase A Axis.”
In the qd0 frame, the rotor’s q-axis aligns to the as-axis of the machine at a reference angle of theta=0. Since q leads d by 90 degrees, this means that the d-axis is “Aligned 90 degrees behind the Phase A Axis”
For a rotating machine, you can fundamentally consider it being that dq0’s reference is a machine’s North Pole – its flux peak – crossing the stator A axis at zero, while qd0 uses a zero reference to the machine’s back-emf – its voltage peak – crossing the stator A axis at zero.
Compare the transformation matrices:
Notice just how similar they are when the axis crossing at zero is placed on top! The dq0 transformation block flips rows 1 and 2 of the qd0 transformation with the 90-degree lagging convention so that element 1 is always d and element 2 is always q when the signal is demuxed. Notice also that if you shift that reference inadvertently by ninety degrees you're going to get q-content where you expect d-content and vice versa.
The Synchronous Machine, pu, Fundamental, is built from the SimPowerSystems blockset, which uses the qd convention. If you look under its mask using the Right-Click-->Explore functionality you'll see it expects the qd convention, which should only impact the initial angle you give it since it manages the rest itself. Also, in its signal explorer, you'll see q precedes d in the listing which is often an indicator of that. A machine which is efficiently motoring or generating will evolve the bulk of its stator current along the q-axis, since the bulk of the rotor's magnetic field is along the d-axis, and it is this offset which creates the torque.
Let's look at an example. I've built it a little quickly, so pardon the mess of wires.
Here I'm applying a 1.0 pu mechanical load into the "Machine #14" acting as a generator into a balanced 3-phase 100-Ohm load. There's a bus selector to grab most of the phase and qd outputs. The output from the machine's mechanical angle is also grabbed and used with voltage measurements to extract an external voltage measurement. The gain block converts the mechanical degrees to electrical radians for the transform (P/2*pi/180; P is 4).
You can see the outputs of the measurement port currents, showing mostly q-axis current for a q-axis voltage. This implies a decent power factor. Due to the speed and the field voltage level (I set to 1.0 pu), the system is not fully aligned to the usual 0.85-0.9 pf we like to use.
Now if we take the voltages through the transform block, using the machine's angle output and the 90-degree lag convention (qd), you'll see we have good agreement. Recall that the dq0 block mux flips the element ordering around. I've adjusted the colors in the plot below to help with the comparison. The machine ouput is in per unit while the dq0 block is an absolute measure, so the magnitudes differ.
Hopefully this helps clear up the convention. Please let me know if you have further questions or if I can clarify anything!
  1 Comment
Franco Huidobro Bandala
Franco Huidobro Bandala on 14 May 2024
Thank you so much for your answer.
Let me understand then something. If I need to track the position of the d-axis to place another reference frame, that position angle is the <theta> that comes from the measurement bus minus pi/2 because the dq reference frame is rotated 90° clockwise. That is the position of the d-axis from the a-axis, (or alpha-axis considering the clarke transformation axes).
I have another question: what is the convention of the machine block? (I think that is the reason I have mirrored currents). I am using that block as a motor: field voltage equal to 1 pu, rated three-phase voltage at its terminals and negative power at the Pm port (which is the torque times the mechanical velocity).
When I run the simulation and open the torque measurement, the torque is positive during the speed up, but then it has a negative value during the steady state which equals the load torque. According to other references, the torque may be positive because acts in the direction of the velocity, while a generator has a negative torque which oposes to its primer mover.
I placed a real-imaginary power block at the output of a three phase measurement and both powers (active and reactive) are positive, so I reach at the motor is consuming energy and not supplying it as a generator.
Then I opened MATLAB examples and they have the same behaviour, negative torque in motoring mode.
If the convention is changed and I need the dq currents, I was thinking of doing the transformation at the terminals of the machine with the <theta> - pi/2 and the dq block with the configuration "Aligned with phase A".

Sign in to comment.

More Answers (0)


More Answers in the  Power Electronics Control




Community Treasure Hunt

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

Start Hunting!