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.

TMS320F28027F: TMS320F28027F

Part Number: TMS320F28027F
Other Parts Discussed in Thread: MOTORWARE, BOOSTXL-DRV8305EVM

Hi 

I am using this chipset and Motorware software to acheive a product design. I have done all the exercises through lab11a to understand the scope.

The motor I am trying to use is a 3-phase brushless sensorless PM motor with 700uH for Ls_d and Ls_q, 0.2406 Ohm Rs and 0.118 as the rated flux as identifed by the labs. The motor is rated @ 24V and peak current of 15.6A. The custom board is exactly as BOOSTXL-DRV8305EVM and has the same sense resistors and gains. The motor is rated at a max no load speed of 3500 rpm @ 24V, max torque of 100Ncm.

The application requires the motor to operate from 50rpm @ continuous torque of 40Ncm and peak torque of 65Ncm with increasing speed and lower torque to the top end of 2500rpm with a continuous torque of 38Ncm and peak of 50Ncm.

Issues noticed

1. I followed through the excel spread sheet to evaluate  USER_IQ_FULL_SCALE_FREQ_Hz   and it came out to 91.6 however any less than 400 does not make the motor spin.

2. I did manage to get the labs going with PI for current and speed loops through lab 7. Using lab 7 characterization, the motor tuning works very well, It can start with a cogging load (hysteresis brake) of over 65Ncm no issues, it does do a little initial overshoot at this load but that is no concern. The issue is that it does not reach 2500rpm at 50Ncm. I pursued the field weakening lab9 and overmodulation lab 10, however, the moment I load Lab 9 which is sequentially next with the InstaSPIN for the device, the speed control goes unstable. I tried to incorporate field weakening using lab 7 but had link errors which tells me the object files for Lab 7 and Lab 9 are different and therefore I cannot use lab 7 with field weakening or overmodulation. 

3. Using the same parameters and following through the labs into lab11a which as advised by the instaspin labs document suggest as a baseline for application development, I cannot tune the motor the way i can in lab 7. Everything beyond lab 7 does not even get the motor started at 60rpm with 65Ncm load at lower loads the loop is unstable. I used the same constant for the current and speed control as lab 7 detailed below. the kp_Idq and KI_Idq are calculated using the excel spreadsheet. The Ki_idq was identical the kp_Idq calculated is 2.338 and the lab computed is 1.97 and the former makes a positive difference using lab7 object code.

gMotorVars.Kp_Idq = _IQ(2.3338); //CTRL_getKp(ctrlHandle,CTRL_Type_PID_Id);
gMotorVars.Ki_Idq = _IQ(0.0229); //CTRL_getKi(ctrlHandle,CTRL_Type_PID_Id);

gMotorVars.Kp_spd = _IQ(9.89); //CTRL_getKp(ctrlHandle,CTRL_Type_PID_spd);
gMotorVars.Ki_spd = _IQ(0.0156); //CTRL_getKi(ctrlHandle,CTRL_Type_PID_spd);

I use the kp/ki_Idq for both PID[1] and PID[2] and the Kp/i_spd for the PID[0]. I tried to tweak the spd controller gains for a varied values but cannot get the same response as seen using the lab7.

Questions

1. what am i missing. Is this behavior expected?

2. Given the motor parameters, is it possible to achieve the rpm and torque required?

Kindly advise.

Regards,
Gmali

  • 1. You might try to use lab10a first and set USER_MAX_VS_MAG_PU to (0.57) in user.h for enabling over modulation. 

    2. Set the right USER_MOTOR_MAX_CURRENT based on the spec. of the motor.

  • Thanks for your input Yanming,

    Yes I realize that enabling over modulation will help me reach the 2500 rpm as the max speed, this is requires me to use labs beyond 7.

    I have already tried the values for USER_MAX_VS_MAG_PU from 0.5 default to 0.57 and 0.66. Also the USER_MOTOR_MAX_CURRENT is set to 15.6 from the peak current on motor label. And yes i do get the motor to spin at much higher speeds than the rated 3500rpm.

    However:

    The issue with using anything beyond lab 7 is that all my tuning parameters that work close to ideal in Lab 7 fall apart in Lab 9 and Lab 10. To elaborate, when I spin the motor at the minimum speed of 60rpm with a hysteresis brake loaded at approx. 65Ncm, it does a nice single overshoot and stabilizes. 

    Moving into lab 9, suddenly these same tuning parameters do not help, the motor starts oscillating and never makes it to steady state speed no matter how much I retune all the way into lab11a, the 'TI motorware team suggestion of baseline for application'. 

    Kindly advise, given that this is a mature product from TI, I am sure that I am not the only person who has been in this position. Also, from what I realized is that the object code going from Lab 7 to Lab 9 is different and in my limited visibility into the provided object codes, It suggests that this difference is causing the instability problem. 

    I looked through the Labs and executed the steps however, maybe there is something I am missing. If lab 7 with good tuning parameters can control the motor, why does Lab 9 not perform the same action?

    Regards,
    S Mali

  • Did you enable Rs online always in your project?

    As mentioned above, you might use lab10a first if the motor doesn't need to run with field weakening control.

    The running performance should be similar if you didn't change the motor parameters and controller gains in both lab07 and lab09.

    Please check if the value of gMotorVars.Vs and gMotorVars.OverModulation, and the gMotorVars.Vs is near USER_MAX_VS_MAG_PU.

    And try to increase Vdc bus voltage to see what happens.

  • Hi Yanming,

    Yes the Rs online is always enabled in my project, it is an essential feature to sense overheat or any of the phase disconnected.

    I did not run the field weakening. I run the 10a, it worked great at cold start (Reaches 2500rpm with nominal load) i.e. Rs 0.2406 once the Rs reaches 0.26 the start at peak load of 65Ncm stops making the motor shaft move, it does try hard to get it going but goes nowhere, Increasing voltage to 30V does not help either. Reverting back to Lab 7 at this temperature, no problem starting with even higher loads e.g. 80Ncm with the exact same user.h.

    When it works on cold motor at 2500rpm, gMotorVars.Vs comes close to the USER_MAX_VS_MAG_PU set at 0.66666.

    Kindly advise.

    Regards

    S Mali

  • You don't need to enable the Rs online always. You might enable the Rs online after the motor startup and run stably. Only enable the Rs online every several minutes to check if the motor overheats or loses any of the phases.

    It seems like you have to implement the field weakening control or increase the dc bus for achieving a high speed.