This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Remove coupling between Q-Axis and D-Axis

Other Parts Discussed in Thread: CONTROLSUITE

Hi all,

for my motor control apllication i want to implement a decoupling of  Q-Axis and D-Axis. In General the Implementation will look like this (not yet ported to IQMath and not yet saturated):

ipark1.Ds = -w*Ls*park1.Qs + pi_id.Out;
ipark1.Qs = w*psi + park1.Ds*w*Ls + pi_iq.Out;

"w" is the mechanical speed [rad/s]

"psi" is the flux induced by magnet [Vs/rad]

The point now is, that i am not sure which of these values need to be normalized to 1.

The only value i could normalize is "w". In this case, the normalisation would be calcualted with the maximum speed of the motor. Do you think that it will work?

Thanks for your help.

Best regards

Felix

  • Hi Felix,

    I double-checked your decoupling equations, and they will only work if your motor is a permanent magnet synchronous motor with zero saliency.  If this is not the case, please let me know and I can provide the correct decoupling equations for your motor type.

    With regard to normalization, please remember that in each case you are creating a correction voltage.  Since the pi_id.Out and pi_iq.Out values are already normalized with respect to the bus voltage, it is only the compensation terms in each expression that need to be scaled by the same normalization factor so that they can be added with the pi outputs.  Based on my simulations of a normalized system, this voltage scaling term should be "2/Vbus".  With such scaling, a compensation voltage of Vbus/2 will result in a normalized output of 1, and a voltage of -Vbus/2 will result in a normalized output of -1.  Also, please remember that the voltage clamping for both d and q axes must occur AFTER the normalized terms have been added to the PI outputs, not before.

    Regards,

    Dave

     

  • Hi Dave,

    thank you for your help! 

    The motor is a permanent magnet sychronous machine. To be honest: i do not know if Ld=Lq or not. There are no information in the datasheet reagarding this information. They only give me the phase inductance. About the normailzation....you are right, i have to normalize them with respect to DCBus Voltage. The point is, that the only hardware specific normalization is done at the current measurement. The maximum current i want to measure is normalized to +1 and the minimum current i want to measure is normalized to -1. In general i use the following project: controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVPM_Sensored on F28035.

    Regards,

    Felix

  • Hi Felix,

    If the datasheet lists only a single value for the phase inductance, then it is likely that the saliency is zero (or close to zero).  So I think you are OK.

    With regard to the current decoupling, I was under the mistaken impression that you were using InstaSPIN-FOC.  In that software, both voltage and current calculations are normalized, and the PI coefficients are adjusted accordingly.  If I understood you correctly, it sounds like your system does not normalize voltage with respect to your hardware; it only normalizes current.  I assume then that the units for your PI outputs are in real volts.  But whatever your scaling factor is for your PI output voltages (volts, PWM ticks, whatever), you need to have the same scaling for your decoupling voltages in order to add them to the PI outputs.

    -Dave

     

  • Hi Dave!

    I think i am fine now. You helped me a lotn now i know what to do. I will modify the PI-module to have the real voltage at the output. This makes it easier for me doing the decoupling.

    Thank you very much for your help!

    Best regards,

    Felix

  • Hi Dave....me again,

    i have one last question! How important is the sign of "w" for the equations? And how do i know which sign i need for each rotation direction? 

    Regards,

    Felix

    //edit:

    i looked again at the equations.....i think "w" is a unsigned value! Otherwise the term "park1.Ds*w*Ls" would not make any sense to me.

  • Hi Felix,

    Yes, the sign of the speed is important, and must be included in the compensation equations.

    Perhaps it would be helpful to see what you are compensating for.  Below is a block diagram of a PMSM stator from one of my motor models.  As you can see, Vd is not the only voltage affecting the d-axis stator current.  The same can be said about the q-axis.  The stator flux from each axis bleeds over into the other axis, and the amplitude of this disturbance is directly proportional to the motor's speed.  Consequently, the POLARITY of this disturbance is also equal to the polarity of the motor's speed.  That's why the decoupling network must also take the polarity of the speed into consideration to do proper compensation.

    The sign you need for each rotation direction depends on how your clarke-park equations define rotation.  The convention that we use at TI is that a COUNTER-CLOCKWISE rotation of a space vector results in positive speed.  Of course, the direction that your motor actually spins is dependant on your Phase A, B, C sequencing.  Reverse any two wires, and the motor spins in the opposite direction.

    Hope that helps...

    -Dave

     

  • Hi,

       I'm using the same board as you.  I want to decouple the Iq and Id too. I have some questions, could you help me?thanks! 

       Q1. why don't  use the ref_value of Iq/Id instead of the feedback value?

       Q2. I think the pi_macro out is in pu. Did you success with pu, and what's the base value of the correction terms?

       Best Regards,

    Eli

  • Dear Felix,

    I dont even know if you will ever get this message or not, but if you, could you please let me know via my emails please?!!! its kuanwenchen611@gmail.com or k.chen13@imperial.ac.uk, I am having exactly problem as you did 3 years ago. I wish to add the decoupling terms into my 28069 mcu, but I am struggling a bit in terms of how to start.

    I would really appreciate if you could kindly shine some lights on the topic as I will owe you a big one, thank you very much!!!

    Steve

  • Hi Steve,

    If you require further assistance, I would recommend creating a new post with your questions. This will allow them to get a quicker response versus posting on older threads.

    Thanks,
    Ozino