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: Inconsistent Startup with Sensorless-FOC Motor

Part Number: TMS320F28069M
Other Parts Discussed in Thread: LAUNCHXL-F28069M, BOOSTXL-DRV8301, MOTORWARE

Hi Team,

I'm working with a customer who is using LAUNCHXL-F28069M + BOOSTXL-DRV8301 to drive a Sensorless-FOC motor and they are seeing some inconsistencies in getting the motor to start spinning. Wanted to reach out and see if you could provide some guidance on what me might be doing wrong.

We're running through all of the MotorWare Labs and have made it all the way to Lab 5a and this is when we start running into issues. When the motor tries to start, almost every time we have to give it a flick to get it spinning, at which point it achieves nominal spin speed. Probably 1 time out of 10 the motor starts up fine, but the results are proving to be very inconsistent. 

Below are some notes on what we've done, but I'd like to understand what might be causing this motor to hang and if there are any knobs we can turn to fix this issue.

  • Manually tuned Kp and Ki speed parameters for suitable damping (Kp) and minimal steady-state error (Ki)
  • Turned on/off force-angle, rsrecalc, offsetcalc → no improvement
  • Changed motor parameters: L, R, flux → no improvement
  • Able to get reliable spinning under the following conditions:
    • motor parameters consistent with datasheet
    • user.h settings based on motorware spreadsheet
    • 30 kHz PWM, 15 kHz ctrl and est, 1 kHz spd, 300 Hz user_iq_full_scale_freq

Thanks,
Mitchell

  • You have to set a correct reference torque current (gMotorVars.IqRef_A) to overcome the friction of the motor for startup. It seems like the value is smaller in your case. Or you can try lab05b (speed loop) to see what happens.

    You might take a look at chapter 14 of InstaSPIN user's guide (SPRUHJ1H) about managing startup.

    http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf 

  • Hi Yanming,

    In Lab4 I am able to set gMotorVars.IqRef_A so that the motor overcomes static friction and starts to turn. However, I need to run the speed PI (not torque) controller. But when I try Lab5b or Lab7, the motor does not start to spin. Instead it wiggles a bit and stops -- I think the controller is stalling. I can get the motor to spin by flicking it with my hand, then it is able to reach nominal speed... so everything else works fine, just the startup sequence is inconsistent.

    I tried following the suggestions in ch14 (increase EST ramp angle, check Rs and offsets, adjust force-angle params, tune the speed PI to be more agressive) but nothing worked :( However, I did find two interesting things during my testing:

    * if I reduce the maximum current in user_j5.h (from 2A to 1A) and set a high reference speed and acceleration, the motor wobbles a bit in the wrong direction but then eventually (after a few seconds) starts to rotate in the correct direction, eventually achieving nominal speed ~2kRPM. I suspect the capping of the motor current prevents the motor from stalling then the integral terms builds up and kicks the motion back in the correct direction. 

    * if I run Lab2a the function EST_State_RampUp is able to spin up the motor every time, without wobble... this is promising!

    Questions:

    1) How do I achieve smooth and repeatable startup with low Kb, high static friction and high inertia?

    2) Can I use EST_State_RampUp initially then transition to the speed PI controller?

    3) Can I use torque control initially then transition to the speed PI controller?

    Thanks/Alec (the customer)

  • You might take a look at chapter 14 of InstaSPIN-FOC™ and InstaSPIN-MOTION™ User's Guide, which should help you to start the motor with loading.

    http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf