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.
Tool/software:
Hi
There are some questions about D/Q axis current decoupling when using F280013X for PMSM sensorless control.
1. How to limit the Id/Iq PI loop' max/min output value. For normal PI loop, we limit the Id pi loop out with max vs (0.667* Vdc), and Iq loop with sqrt(vs*vs - Vd*Vd)
but with D/Q decoupling, how the limit the current PI loop output value first? It seems that the Id loop's out will be small with decoupling feed forward.
2. How to limit the value of feed forward equation with d/q compensation , which you can see as obj->Vdq_out_V.value[0] and obj->Vdq_out_V.value[1] as below code:
#ifdef MOTOR1_DECOUP
// -We*Lq*Iq, SI unit: We(rad/s)*L(H)*I(A)
obj->Vdq_decoup_V.value[0] = (-speed_rps * objUser->motor_Ls_q_H * obj->Idq_in_A.value[1]);
// +We*(Ld*Id+flux), SI unit: We(rad/s)*L(H)*I(A), Flux(wb)
obj->Vdq_decoup_V.value[1] = speed_rps * (objUser->motor_Ls_d_H * obj->Idq_in_A.value[0] + objUser->motor_ratedFlux_Wb);
obj->Vdq_out_V.value[0] += obj->Vdq_decoup_V.value[0];
obj->Vdq_out_V.value[1] += obj->Vdq_decoup_V.value[1];
#endif
3. In normal svgen mode of TI's demo, the max vs is 0.667* Vdcbus, then should I scale the obj->Vdq_decoup_V.value[0] and obj->Vdq_decoup_V.value[1] with coeffient, like *0.5, or *0.667?
Regards
Arrow
1. How to limit the Id/Iq PI loop' max/min output value. For normal PI loop, we limit the Id pi loop out with max vs (0.667* Vdc), and Iq loop with sqrt(vs*vs - Vd*Vd)
but with
It's the same as PI, the decoupling items are as a feedforward input to the PI controller.
2. How to limit the value of feed forward equation with d/q compensation , which you can see as obj->Vdq_out_V.value[0] and obj->Vdq_out_V.value[1] as below code:
It's not necessary to limit it. The values are calculated according to the motor parameters, but it can be limited as mentioned above.
3. In normal svgen mode of TI's demo, the max vs is 0.667* Vdcbus, then should I scale the obj->Vdq_decoup_V.value[0] and obj->Vdq_decoup_V.value[1] with coeffient, like *0.5, or *0.667?
Total different. It doesn't have any relationship. You can refer to the codes in the example lab.
1. The decoupling items seem to be the feedforward input to the Vd/Vq, not the PI controller.
So, the feedforward items will be huge when motor in high speed. It seems that if we limit the Id/q 's PI loop out as normal setting, it seems that will not have a big influence.
It's the same as PI, the decoupling items are as a feedforward input to the PI controller.
2. Can you share the link of example lab? I can't find the demo codes in the lastest motorcontrol SDK.
Total different. It doesn't have any relationship. You can refer to the codes in the example lab.
Regards
Arrow
So, the feedforward items will be huge when motor in high speed. It seems that if we limit the Id/q 's PI loop out as normal setting, it seems that will not have a big influence.
You need to check if the parameters and formula are conrect. The values should be very small.
2. Can you share the link of example lab? I can't find the demo codes in the lastest motorcontrol SDK.
It's in Universal motor control lab.
1. For my application, motor para. with Ld=Lq= 0.001H, Rs = 0.25Ω,4 paris PMSM, Rated voltage 360VDC, max 11000rpm
Let's see the decoupling item for Vd: -speed_rps * objUser->motor_Ls_q_H * obj->Idq_in_A.value[1],
which is -4 * 11000rpm/60 *2pi *0.001H * 20A = 92V (with 11000rpm/20A Iq)
It's not very small, compared with the rated voltage.
In fact, it's almost equal to the output of Id loop when decoupling not enabled.
So, I think there is some mis-understanding of this point for you.
You need to check if the parameters and formula are conrect. The values should be very small.
2. To be honest, I can't find the decoupling code in the universal motor control lab with the latest motorcontrol SDK 5_03_00.
Below is the motor_drive.c file. There is no related code in this file.
/cfs-file/__key/communityserver-discussions-components-files/171/motor1_5F00_drive.c
It's in Universal motor control lab.
Regards
If you make sure that the parameters and unit are correct, seems like there is no any issue since the speed and current are so high under this condition.
Any issue you found when running?
1. Yes, the decoupling function should have much effection in high speed.
2. The control loop is not stable in high speed, with big overshoot. So I think the limitation should be not the same as the traditional PI loop.
3. Can you share the demo file of univeral control lab , I truely can't find it.
2. The control loop is not stable in high speed, with big overshoot. So I think the limitation should be not the same as the traditional PI loop.
You can limit the calculated decoupling value as you mentioned.
3. Can you share the demo file of univeral control lab , I truely can't find it.
The same as you used. Just add a threshold limitation.