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.

TMS320F28069M: Loss of stability and uneven phase currents during high current, high power regen braking

Part Number: TMS320F28069M

We have been bringing up our custom board for some time now and have been struggling with stability during high current regen. Part of the problem was magnetic saturation of the motor, but we have a new motor design now that tolerates higher fields and is not saturating at our desired torque output. Overall our situation is much improved compared to previous questions. But we are still having some problems at the extremes. We are looking for advice or suggestions to help us achieve all our performance goals.

Design: In addition to the TMS320F28069M, we are using the TI DRV8353RSRGZR gate driver with SPI bus, integrated buck, and integrated current shunt amplifiers.

Our current shunts for purposes of this question are 750 uOhm shunts, and the current shunt amplifier gain is set to 10 V/V. We have also used 500 uOhm shunts and  again of 20 V/V and that works about equally well.

USER_VOLTAGE_FILTER_POLE_Hz is now 315 Hz.

USER_ADC_FULL_SCALE_VOLTAGE_V is 66.08745 V.

Our PWM frequency is 20 kHz.

USER_NUM_PWM_TICKS_PER_ISR_TICK is 3.

In forward motoring we are easily able to achieve our target torque and power limits (4.5 Nm or 500 mechanical Watts, whichever is more limiting).

During regen braking we would like to achieve 8 Nm or 1500 mechanical Watts (whichever is more limiting). Currently, we can achieve 8 Nm at 1350 RPM, but when we try to achieve 8 Nm at 1800 RPM (very close to 1500 Watts...), the controller is not able to maintain stable control. We see imbalanced phase currents that eventually lead to excessive current.

Below is a graph of ADC phase voltages when running at 1450 RPM. The vertical axis is the raw ADC data. Horizontal axis is time in ms. The motor speed is held constant by dynamometer. The motor is in regeneration (torque opposite direction to rotation). The battery voltage is about 53 V. The battery is large and can easily accept the regen current.




Below is a graph of phase current ADC results taken at the exact same time as the phase voltage ADC results. This graph also shows the flux vector angle reported by the FAST observer.

Below is a graph showing the Vd and Vq outputs of the PID current controllers at the exact same time. NOTE: Idref was set to zero and Iqref was set to -75 A. No speed control loop was operating. Even though there is a LOT of ripple on Vd and Vq, control seems to be stable. However, I am very interested to know what could be causing this ripple? Have you ever seen this? Is it normal?


Another anomaly is that the FAST speed estimate is inaccurate. For some reason, the FAST observer thinks the speed is much lower than it actually is. The actual speed is 1350 RPM. Below is a graph of the FAST speed estimate. As you can see, FAST is estimating the speed at roughly 1150 RPM, a 200 RPM error. The actual speed is known to us because we are using a dynamometer with a tachometer on the shaft.


Below I will present the same graphs but at 1800 RPM. You can see that several things happen near the end of the graph. The ripple or noise on Vd and Vq become excessive, and saturate numerically (we are not enabling over-modulation at this point). The speed estimate diverges excessively from the actual speed, and the phase currents become excessive.

I would like to know what suggestions TI has for improving or debugging what is wrong. We have already verified that the current sensing and voltage sensing are accurate. Should we tune the PID loops? If so how? Should we use a digital filter of some sort on the voltage or current inputs? Would it be safe to digitally filter the Vd and Vq outputs of the PID loops? Does TI not support high powered regen? Was the FAST observer optimized for motoring only? Should we attempt to use a different observer?

Looking forward to some actionable suggestions, or satisfying explanations as to why we have so much ripple on Vd and Vq and why we have a divergence between actual speed and FAST estimated speed during regen.

  • As discussed in another thread you posted. We don't know FAST can work correctly in a regenerating mode with such high negative torque current if the machine mathematical model is changed. The estimation rotor angle and speed will be not correct that could cause the Vd and Vq with a high ripple. The FAST is designed for motoring mode with an exact mathematical model. Yes, you may try to tune the current PI controller by reducing the Kp to see what happens.

  • Thanks, Yanming. Can you explain what this means: "if the machine mathematical model is changed?"  Shouldn't the machine mathematical model be the same in regen as it is in motoring?

  • Shouldn't the machine mathematical model be the same in regen as it is in motoring?

    Yes. The FAST estimator needs an exact mathematical model, it doesn't know the machine is in regenerating or motoring mode. It always estimates the rotor angle and speed according the mathematical model of the motor.

    if the machine mathematical model is changed?

    You have to check with the machine manufacturer if the machine mathematical model will be changed when the machine works in regenerating with a higher current, like the Ls and Flux parameters.