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.

TMS320F28069F: Problem with braking down to zero

Part Number: TMS320F28069F


Hello Community,

at first a big thanks. I found a lot of Solutions in this Forum and I am really happy with thee application we developed.

I still have a problem which is hard to detect for me. I hope somebody can help.

I have a bug that only occurs sometimes. Sometimes at startup it seems like there is a current on one phase.

Normaly at startup the Current is regulateds to Zero, so the Motor is running freely. When i start spinning the motor it is breaking because of this current in the one phase. At a specific speed it suddenly runs freely and is breaking again when i stop the motor.  Also it seems like that bug occurs when I am braking down to zero speed using a negitive IQ.

I have 3 sugggestions:

1. The Motor doesnt know the position of the field when the speed is to low or zero, but the algorithm trys to work with a wrong position.  (Info: Forcing Angle is not enabled. The current is regulated to zero until the speed is higher that 50RPM)

2. The Field weakening module is disturbing my application. The Field weakening is enabled at a specific speed. When the Speed falls below this specific value the FW-module is disable and the ui is set to zero.

3. Maybe Overmodulation is the problem?  I use Overmodulation and current reconstruction. Sometimes it seems like that this bug is only occuring when i break down from a speed range where overmodulation is active. Maybe the algorithm doesn't deactivate Overmodultion when i am braking down and is still trying to reconstruct a current even when speed is zero?

Sorry for this load of just suggestions. I am currently working on getting more Testdata but maybe someone know this problems?

I am driving a tractive System using Instapsin FOC.  under a specifiv speed i limit the ouput of the speed controller to zero, so the Motor is freewhiling until this specific speed is reached. I use overmodulation and Current reconstruction. Also i use Feald weakening when a specific speed is reached. When the speed falls below this value i disable field weakening and reset its ouput by setting the ui to zero.   We weill use our own hardware but at the moment i am Using a LaunchXL-Board with a BOOSTDRV8301. We changed the shunt resistors and applied some cooling to the MosFets.

I hope i explained everything clearly enough. Please ask me if you need further information or data. Meanwhile I am still trying to find it by myself ;)

Kind Regards

Sebastian

  • Do you have the PWMs disabled during freewheeling? I'm curious as to why you're seeing output on one of the phase lines (and only one line, correct) when IQ = 0. Also, do you see this happening at a certain threshold, i.e. low RPM? It may be that the estimator doesn't have enough info about back EMF, but typically you wouldn't see an abrupt halt at this point, instead an oscillation as the current controller tries to regulate the output towards 0. You can check if overmodulation is active during this issue by monitoring the ignore_shunt variable. I would imagine at low RPM you are ignoring 0 shunts. Can you confirm this is true?

    Sean
  • Hi,
    thank you very much for the reply. I really would like to provide better debug-data but its hard to reproduce the situation.

    Like you i think the problem is the low RPM and that the controller doesn't know the position of the flux.
    No i don't disable the PWM for Freewheeling. I used the Freewheeling module before, but it didn't work very well. When i changed from Freewheeling to current regulated there was allways this "tock" sound. When turning on on pwm the current was applied really fast...this was not a good solution in my opinion because its sounded weird and was uncomfortable to drive. So i tried to allways regulate to zero Current as long the user does not give any input.
    Maybe I implemented the Flystart wrong and should give it another try?

    I will observe what overmodulation is doing and provide the information asap.

    Is there any flag that gives the information if the Controller knows the actual flux position or if he lost it? If not i will try to add a function to do this.