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.

LAUNCHXL-F280049C: Torque velocity approaching stator slots

Guru 56418 points

Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: BOOSTXL-DRV8320RS, C2000WARE, TMDXIDDK379D

Motor: 22 pole SPMM

Controller: LauchXL-TMS3280049c

RDK: BoostXL-drv8320rs

It would seem user.h basic motor parameters could not ramp up motor current slow enough for rotor to overcome initial few slots counter torque. Seemingly a FAST slow speed estimator issue where the rotor rocks back/forth in the first few degrees of multiple stator slots, e.g. cogging counter torque. Oddly competition and various online sources seem to have overcome cogging startup for various RC out/in runner  SPM/BLDC motors by various FOC controller SW tweaks. FE please see video links to have some understanding of the issue and perhaps test some various cogging motors in TI lab setting.

Increasing motor current alone had no effect: SPRUHJ1H–January 2013–Revised June 2019

6.9.2.6 Troubleshooting Motor Shaft Stopping During Ramp-Up
The motor shaft needs to start moving at all times during the ramp-up process. This means that in case of
motors with some load on the shaft, as well as motors with high cogging torque, the current used to ramp
up the motor might have to be increased, as high as needed to keep the shaft moving. Start with 10% of
the rated current of the motor, and increase by increments of 10% of the rated current until the motor shaft
is in continuous motion during the entire ramp-up process.

#define USER_MOTOR_RES_EST_CURRENT (1.0) //increase in 10% steps as needed

What are recommended user.h parameter changes or settings that may allow <1Hz slow estimator (motorVars.accelerationMax_Hzps) to safely achieve any rotation during the ramp up cycle?

https://www.radiocontrolinfo.com/brushless-motor-cogging-explained/

https://www.zikodrive.com/ufaqs/what-is-brushless-dc-motor-cogging-and-how-do-i-get-rid-of-it/

  • It could be difficult to run a motor with a heavy load stably at a very low speed since the instaspin-foc is a sensorless-foc solution without using high frequency injection for zero/low speed. You have to use a sensored-foc solution if you need to run the motor at a very low speed with the full load.

  • Seemingly you do not understand the rotor shaft is not loaded, it has cogging. Rotor don't need to run low speed but slow estimator needs to not race ahead until the first Nth pole change occurs. It seems the motorVars.accelerationMax_Hzps is to blame and expects the rotor does not ever have any counter torque after the first pole change.  Such rapid velocity change seems counter intuitive to FOC flux sense technology, again competition claims to have overcome. So it rocks the rotor but not push it to the next full pole with greatest ADC magnitude. There is magnetic decay between any two poles more like ACIM rotor cage might encounter. 

    There must be value/s we can change user.h to help FAST start most any RC motor?

  • I suspect function call value is causing to rapid rotor acceleration well before the slow speed estimator has actually determined FOC magnetic Nth pole. So the trajectory velocity parameter is seemingly jumping the starting gun well before the rotor reaches the first mechanical pole change.

    BTW: the source code tool was wrapping top thread text even though cursor is below that text..

    TRAJ_setMaxDelta(trajHandle_spd,
    (motorVars.accelerationMax_Hzps / USER_ISR_FREQ_Hz));

  • Hi Yanming,

    You have to use a sensored-foc solution if you need to run the motor at a very low speed with the full load.

    Have testing an custom IR reflective index pulse sensor to put on motor shaft. Each pulse slot is roughly 15° and past used for speed encoder into QEI index input.  Also enabled launchXL EQEP2 module input GPIO14,15,26 for sector position sensor. Yet notice older SDK EQEP (PM/Pulse) position libraries have not been converted for use with BoostXL-drv8320rs. 

    I don't find a sensored-foc solution in the SDKv2.1 or v3.1 for use with Lab05, is that in the motion SDK?

  • You might take a look at chapter 14 (Managing Full Load at Startup, Low-Speed and Speed Reversal) in InstaSPIN User's Guide  (http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdfif you want to improve the startup performance with sensorless instaspin-foc.

    You can refer to the example in the folder below in motor control SDK if you want to implement the sensored-foc.

    C:\ti\c2000\C2000Ware_MotorControl_SDK_3_01_00_00\solutions\boostxl_3phganinv

    or 

    C:\ti\c2000\C2000Ware_MotorControl_SDK_3_01_00_00\solutions\tmdxiddk379d

  • You might take a look at chapter 14 (Managing Full Load at Startup, Low-Speed and Speed Reversal) in InstaSPIN User's Guide 

     Yet position manager example was not written to interface with SDK labs nor dos it even configure EQEP modules. It is merely an outdated wrap test using EPWM2 to drive EQEP GPIO inputs. This leaves one a bit bewildered why you suggested a sensored motor was best.

    I believe this is an rotor inertia issue and trajectory races ahead via default values Ki/Kp upon forced angle >1Hz. The trajectory speed controller is being invoked before the rotors inertia moment peak has been reached, <1Hz forced angle. Perhaps FE can investigate several cogging motors without using any rotor position input signal!

  • C:\ti\c2000\C2000Ware_MotorControl_SDK_3_01_00_00\solutions\tmdxiddk379d

    This is folder for BoostXL-drv8320rs labs supporting EQEP position sensors? I recognize fast current loop (FCL) supported on Delfino dual core MCU with scavenging CPU cycles. I don't have time to write test code for RDK to drive this cogging motor.

  • Yes, it's based on FCL with QEP encoder, and it doesn't support BoostXL-drv8320rs. The low voltage kit is launchxl-3phGaN.