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.

TMS320F280049C: Motor Control SDK Lab 5 - Motor Parameters Identification - Results and code compared to Online InstaSpin GUI

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE, BOOSTXL-DRV8320RS, BOOSTXL-3PHGANINV, LAUNCHXL-F280049C, C2000WARE-MOTORCONTROL-SDK

Hi,

Background and Hardware:

  • I'm working though Lab 5 of the Motor Parameters Identification of the Motor Control SDK ("InstapSPIN Projects and Labs User's Guide")
  • I'm using C2000Ware_MotorControl_SDK_4_01_00_00
  • F280049C-LaunchPad coupled with BoostXL-DRV8320RS
  • BLDC motor with 26 pole pairs
  • BLDC motor with 28VDC nominal voltage

When using InstaSpin GUI online for the setup, I get the values below, which are all believably, except the Rs.  Using a multi-meter I measure close to 5.9 ohm across the motor phases, as compared to the reported 3.06 ohm.

Then, when I run the modified Lab 05 code, I have the following results:

  • Rs calculated is close InstaSpin GUI calculation, but still half of the what I measure across the motor phases with a multi-meter.
  • Ls-d, Ls-q, and Flux (V/Hz) routines do not seem to function properly.  After ramping up the motor to the targeted speed, the motor stalls.
  • Below are my current motor parameters:

#elif (USER_MOTOR == my_motor_1) //
#define USER_MOTOR_TYPE                   MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS         (26)
#define USER_MOTOR_Rr_Ohm                 (NULL)
#define USER_MOTOR_Rs_Ohm                 (NULL)
#define USER_MOTOR_Ls_d_H                 (NULL)
#define USER_MOTOR_Ls_q_H                 (NULL)
#define USER_MOTOR_RATED_FLUX_VpHz        (NULL)
#define USER_MOTOR_MAGNETIZING_CURRENT_A  (0.0)
#define USER_MOTOR_RES_EST_CURRENT_A      (4) //guess//10-30% of max current
#define USER_MOTOR_IND_EST_CURRENT_A      (-4)//guess 10-30% of max current
#define USER_MOTOR_MAX_CURRENT_A          (5.5)//Max continuous current RMS
#define USER_MOTOR_FLUX_EXC_FREQ_Hz       (60) //10-30% of rate frequency of motor

#define USER_MOTOR_NUM_ENC_SLOTS          (NULL)

#define USER_MOTOR_FREQ_MIN_HZ            (13.3)           // Hz
#define USER_MOTOR_FREQ_MAX_HZ            (23.3)         // Hz

My questions:

  • Why is the calculated Rs about half of what I measure with a multi-meter?
  • Why is the motor stopping after ramp-up when trying to estimate Flux (V/Hz)?  I've experimented with USER_MOTOR_RES_EST_CURRENT_A and USER_MOTOR_IND_EST_CURRENT_A, setting as high as +/- 5A.  However, as soon as the targeted speed is hit, the motor stops spinning.  With InstaSpin GUI online, a current of about 0.7A is held constant throughout the motor parameter identification process.  When using the modified Lab 05 code, current is held high for the initial Rs calculation, then current drops, motor ramps up in speed and current, then finally motor hits targeted speed and stops spinning before finishing the Ls-d, Ls-q, and Flux (V/Hz) estimations. 
  • What version of the MotorControl SDK is the online InstaSpin GUI using?

Thanks,

Nicholas

  • Hi,

    The subject matter expert is out of office today. Please expect response by tomorrow.

     

    Thanks,

    Saravanan

  • Why is the calculated Rs about half of what I measure with a multi-meter?

    The measured value if the Rs by using multi-meter is line to line resistance. The identified RS is phase to neutral value which is equal to half of the line to line resistance.

    • Why is the motor stopping after ramp-up when trying to estimate Flux (V/Hz)?  I've experimented with USER_MOTOR_RES_EST_CURRENT_A and USER_MOTOR_IND_EST_CURRENT_A, setting as high as +/- 5A.  However, as soon as the targeted speed is hit, the motor stops spinning.  With InstaSpin GUI online, a current of about 0.7A is held constant throughout the motor parameter identification process.  When using the modified Lab 05 code, current is held high for the initial Rs calculation, then current drops, motor ramps up in speed and current, then finally motor hits targeted speed and stops spinning before finishing the Ls-d, Ls-q, and Flux (V/Hz) estimations. 
    • What version of the MotorControl SDK is the online InstaSpin GUI using?

    Recommend to run the related lab within CCS. Please don't add any load on the motor for identification, and set the correct identification variables value in the file of user.h according to the specification of the motor, to make sure the motor spin smoothly during Flux measurement and Ls identification states.

     #define USER_MOTOR_RES_EST_CURRENT     (2.0)                               // A - 10-30% of rated current of the motor

    #define USER_MOTOR_IND_EST_CURRENT     (-1.5)                             // A - 10-30% of rated current of the motor, just enough to enable rotation

    #define USER_MOTOR_MAX_CURRENT           (20.0)                               // A - 30~150% of rated current of the motor

    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (40.0)                           // Hz - 10~30% rated frequency of the motor

    You may refer to the lab guide to run the example labs, the guide at the folder below.

    \ti\c2000\C2000Ware_MotorControl_SDK_<version>\solutions\common\sensorless_foc\docs\labs

  • Yanming,

    Thanks for the reply.  I've been working through the lab guide and I still cannot get my current setup to complete the Flux measurement and Ls identification states. 

    Is it possible to setup a video conference with you or someone at TI?  Also, do you have any sensored BLDC control examples that I could follow for the F280049C LaunchPad and BoostXL-DRV8320RS?

    Appreciate the help,

    Nicholas

  • Please follow up the lab user's guide to run the lab within CCS, not use the GUI. And tune the identification variables as mentioned above, not use the example value. What values of the USER_MOTOR_RES_EST_CURRENT_A and USER_MOTOR_IND_EST_CURRENT_A have you tried?

    If you still have any questions on this, you may upload the tested waveform to show it. Or please post the user.h and the datasheet of the motor you used.

    BTW, do you try to run the other motor? What happens?

  • Yanming,

    I've been running the lab within CCS.

    I've tried USER_MOTOR_RES_EST_CURRENT from 0.5 to 4.5 and USER_MOTOR_IND_CURRENT from -4.5 to -0.5.  I've also experimented with USER_MOTOR_FLUX_EXC_FREQ_Hz. Latest user.h below:

    3683.user.h

    I'm running the motor at 28VDC:

    LSI 75-12 Datasheet Rev_G.pdf

    Thanks,

    Nicholas

  • Do you add any load on the motor? Does the motor have a reduction gear? Did you capture any measured phase current waveform?

    You may try set theUSER_MOTOR_IND_CURRENT to a small value like -0.1A to -0.5A.

  • Yanming,

    Only added load on the motor is friction from the bearing set.  It is a direct-drive motor setup, so no gear reduction.  I will try capturing a phase current waveform later tonight. 

    On another topic, do you have any sensored BLDC control examples that I could follow for the F280049C LaunchPad and BoostXL-DRV8320RS?

    Thanks,

    Nicholas

  • Yanming,

    This is the behavior I observe after reaching target speed:

    Click here to play this video

    Any ideas to try?

    Thanks,

    Nicholas

  • Only added load on the motor is friction from the bearing set.

    The video can't be shown on this forum, please post the measured the waveforms. 

    Is there any load on this motor? Is the motor installed in a system? Ot standalone for  motor identification?

    On another topic, do you have any sensored BLDC control examples that I could follow for the F280049C LaunchPad and BoostXL-DRV8320RS?

    What sensor are you using?

  • Yanming,

    Are you referring to the current phase waveforms when executing the motor identification code?

    As mentioned before, the motor is standalone with only bearing friction.

    I'm using an optical quadrature encoder

  • Did you try to identify or run the other motors with this board?

    I'm using an optical quadrature encoder

    There is no examples for F280049C LaunchPad and BoostXL-DRV8320RS, but there are some examples in motor control SDK for the other DRV boards.

  • Yanming,

    I have not tried other motors with this F280049C LaunchPad + BoostXL-DRV8320RS.

    Do you recommend trying the F280049C LaunchPad + BoostXL-3PhGanInv for the sensored examples?

    -Nicholas

  • Yes if you want to use the examples directly. You need to evaluate if the board meet your requirement according to the spec. of the motor like its rated current & voltage.

  • Yanming,

    Back to sensorless control lab, will look at the waveforms in document.  Any idea why the current would be noise?

    -NicholasLab3_Waveforms.pdf

  • Yanming,

    For sensored control, this document is a good reference?  In addition to the source code.

    spraco3 dual servo control .pdf

    -Nicholas

  • Back to sensorless control lab, will look at the waveforms in document.  Any idea why the current would be noise?

    Please try to capture the motor phase current waveform using an oscilloscope with a current probe. Which lab are you working on? What's the motor speed?

    For sensored control, this document is a good reference?  In addition to the source code.

    Yes. The example lab includes all of the source codes.

  • Yanming,

    Thanks.  I will try to capture the motor phase current waveform on an oscillscope at a later time.  I was working on Lab 3 of the sensorless InstaSPIN Projects and Lab User's Guide.  Motor speed was targeted at 20 Hz.

    I'm going to focus on the sensored example code right now.  Using the LAUNCHXL-F280049C with BOOSTXL-3PhGaNInv.  Modifying example code and referencing your paper.

    -Nicholas

  • You can find the example code for dual motor control with sensored-FOC on LAUNCHXL-F280049C with dual BOOSTXL-3PhGaNInv.

    C2000WARE-MOTORCONTROL-SDK: https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    C:\ti\c2000\C2000Ware_MotorControl_SDK_<version>\solutions\boostxl_3phganinv\f28004x\ccs\sensored_foc