Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

TMS320F28035: Calculating Theoretical Values for Current Loop PI Controller for Motor Control

Part Number: TMS320F28035

Hello everyone,

I am using a modified version of TI’s Sensored FOC for PMSM project, and have encountered some difficulties setting the PI controller gains for my motor control current feedback loops.

I have started with using Dave Wilson’s “Teaching Your PI Controller to Behave” series for calculating the current loop gains.

Starting with calculating K­b using the following equation

using R = 0.2Ω for stator resistance and L = 1.36mH for motor inductance, I get Kb = 147.06.

I then, using a 10KHz loop bandwidth (62832 rad/s), calculate Ka using the following equation

Using the same 1.36mH motor inductance value, I get Ka = 85.45.

Given Ka = Kp, this gives Kp = 85.45, and given that Ki = Kp * Kb, this gives a Ki value of 12566.277

Given my max full scale current from my AC current sensors (600 Amp) and my DC bus voltage of 300V, with a switching period of 10KHz, I have converted these values to per unit using the equations

 

Finally, this gives me a per-unit Kp value of 170.9 and a Ki value of 1.2566.  These values are much too high to operate the motor at all, let alone in a stable region. 

Any advice on where I am going wrong in my calculations will be greatly appreciated.  I have tried ‘guess-and-check’ methodology for tuning these controllers to no avail, so following the proper control systems approach outlined by Dave Wilson will be very helpful to my team and I.

 

Best Regards,

Graison

  • The equations seem to be right. The catch could be that for a 300A base current system, 0.2ohm stator resistance seems pretty high. Is it milliohm by any chance?

  • Hi Ramesh, thank you for your prompt reply.

    I re-measured the stator resistance and D/Q inductances and found I made an error in my initial measurement.  Stator resistance was closer to 28mOhms and D/Q inductances were higher than initially measured.  Applying these corrections gives me a normalized value of around 22 and 39 for Kp Id and Iq respectively, with around 0.088 for the Ki values in both controllers.

    These new values seem extremely high, but I can use a much lower loop bandwidth (around 700Hz) in my calculations, and I get Kp values between 1 and 2 which run the motor reasonably well.  It seems my loop bandwidth is the problematic parameter with these calculations, so a better way to rephrase my question would be:

    How do I select an appropriate bandwidth for my current PI regulators?

    I need to run my motor with an electrical frequency of around 650 Hz, and have a 10KHz switching frequency if that information helps.

    Thank you very much for your assistance

    -Graison

  • With high bandwidth req, controllers gains become pretty high only. The loop response time is different from that of electrical frequency of motor currents. The control loop frequency influences the response times of the loop. Remember, you are dealing with Id and Iq parameters that are supposed to be DC. It is ok to have lower control bandwidth and higher frequency of inverter output fundamental sine wave.

    If you need high control bandwidth, you will also need precision feedbacks otherwise the control would be noisy (messy).

  • Thanks Ramesh,

    So in conclusion, the control loop bandwidth doesn't have anything to do with the electrical speed of the motor, but rather the settling time of the control loop to reach steady state.  Does this sound correct?