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.
We have been bringing up and validating a custom motor controller board design based on TMS320F28069M and DRV8353. We have a high degree of functionality, but we are finding that the FAST observer speed estimate is dramatically wrong under the condition of regeneration with high current.
In forward motoring, the estimate appears to be pretty accurate up to around Iqref of 50 Amps. We didn't test beyond that because we do not need to operate in that regime.
But in regen, once Iqref is set to -40 Amps the speed estimate begins to diverge very substantially from the actual speed.
NOTES: our current sensors seem to be accurate because our measured phase current tracks Iqref. Our voltage sensors are accurate. We can apply torque in forward motoring without any problem or divergence in the speed estimation.
Here is a graph showing actual speed and FAST estimated speed over a range of Iqref values. Note: this graph is showing speed during regenerative braking on a dynamometer.
What is the cause of this divergence and how can we correct it? We need an accurate speed estimate during regen to implement the power limiting feature of our controller. It seems totally unreasonable for the FAST observer to have such a large speed estimate error.
The FAST needs to measure the phase voltage for calculating the BEMF value of the motor lines. The FAST will not work well if the regenerative voltage is higher than the maximum output voltage to motor or the dc-bus voltage. So it's better to limit the torque current in regeneration mode to ensure that the regenerative voltage is not too high.
We see this effect at low speed where regenerative voltage is not very high (but current is high). For example, this is happening near 700 RPM but the no-load speed of the motor is about 1800 RPM.
We need to set Iqref to about 75 Amps to achieve the torque we want. So it is not acceptable to us to limit the torque current to 40 Amps. Is there some other solution?
Is it possible to capture the phase voltage and dc-bus sensing signals when you run the motor at the state? Is the motor surfaced PMSM with Ld=Lq?
When you say capture the signals, do you mean the voltage at the ADC input, or the sampled data from inside the processor? We can get either one but please let me know.
It is an outrunner motor. The magnets are surface mounted. I don't think Ld and Lq are the same. Using an inductance meter, the line-to-line inductance varies from about 250 uH to about 490 uH as we very slowly rotate the motor by hand. I think that means we have some saliency and Ld != Lq.
There is a comment in the code (supplied by TI) saying that we should not set different values for Ld and Lq unless we are using an induction machine. So we are just using the same value for both Ld and Lq. Should we try using different values?
When you say capture the signals, do you mean the voltage at the ADC input, or the sampled data from inside the processor? We can get either one but please let me know.
Yes, it's better to have both the measurement signals on the ADC input and sampling data from ADC. Please capture the phase current using oscilloscope as well.
So we are just using the same value for both Ld and Lq. Should we try using different values?
Yes, please have a try, set the Ld and Lq according to the spec. of the motor.