Other Parts Discussed in Thread: DRV8301, MOTORWARE, BOOSTXL-DRV8301, CSD88599Q5DC, TMS320F280049C, , BOOSTXL-DRV8320RS
We're trying to use the DRV8301 EVM to drive a small bench/dyno prototype motor in advance of designing a production inverter. I'm using Lab 11 with some minor modifications, like adding serial comms and some variable plotting. I have spent some time tuning the PI controllers and adjusting the motor parameters (they were measured on the bench) to get the controller to run as well as possible, but I think I've hit a wall.
When I run the motor at the desired current, 20Apk, and reduce the load, the motor runs well until we reach ~400Hz. Then, like a switch, the controller starts injecting a significant DC offset into one of the phases. The opposite offset is seen on another phase, while the third phase just looks distorted with a minor DC offset. When I swap motor leads the behavior follows the inverter phase, not the motor phase, so I don't think it's a problem with the motor itself.
If I reduce the current the same behavior happens, but at a higher speed.
If I try to increase the current above 20Apk, the phase currents all become non-sinusoidal, with significant harmonic content. Most of the time the phase currents are just poor, but sometimes there is a significant change from one electrical period to the next. I have not been able to tune the regulators to eliminate this problem. As far as I can tell, the hardware should be able to handle this OK. The 1pu current setting is 50Apk.
When the controller seems to get lost, I can plot the estimated angle and see that there's a sinusoidal component on top of the sawtooth. This shows up in the d- and q-axis currents. The current regulators do respond to these changes in real time, so I know they're not too slow.
I know the voltage feedback filter has a cutoff frequency of 335.6Hz. I am considering changing this, but I'm not convinced this is the problem because the behavior isn't always frequency-dependent (I can run well up to 550Hz, which is our target, as long as the load is small enough).
I wonder whether there's something odd happening with the DRV8301 chip or the inverter itself to inject an unintended response, thus throwing off the estimated angle. Does this seem reasonable? Or is there something else in the estimator I should be looking for?
Thanks for the help,
Matt