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.

TMS320F280041C: Instaspin Motor Tuning

Part Number: TMS320F280041C

We are working on a second version of a prototype initially developed with F280049C / DRV8320RS and using Instaspin to control a 3 phase motor. On this revision, significant electrical changes were made including board layout and changing to F280041C and DRV8350FH due to stock constraints. We are also using a much lower IDRIVE (1A originally and now reduced to 200mA based on TI feedback). The shaft of the motor also changed slightly, and the system mass also increased marginally throughout. The old Instaspin tuning was running a bit rough under 750 RPM so we wanted to put it through tuning again.

We changed the identification values to NULL as instructed in the IS05 Instaspin lab example. The HAL and other user.h parameters are using the same configuration settings as we were with the previous hardware which should not have changed for this revision (gate driver enables/faults/PWMs/current measurements all remained unchanged). After running it through the IS05 example again, the motor is running extremely rough- much worse than with the old tuning data. Is there something that we are doing wrong in the tuning process? Do we need to do anything outside of the instructions for IS05 in the lab guide? Do any of the Instaspin GUI's with graphing still exist or have they all been replaced with just the Universal GUI?

The motor we are using is the Kollmorgen BLM5SS running at 12 V. Do you have any thoughts on first steps 

Here are the outputs of the Instaspin identification process:

OLD HARDWARE / OLD TUNING DATA

#define USER_MOTOR_TYPE MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS (5)
#define USER_MOTOR_Rr_Ohm (NULL)
#define USER_MOTOR_Rs_Ohm (0.00768003985)
#define USER_MOTOR_Ls_d_H (3.79761659e-05)
#define USER_MOTOR_Ls_q_H (3.79761659e-05)
#define USER_MOTOR_RATED_FLUX_VpHz (0.0565275289)
#define USER_MOTOR_MAGNETIZING_CURRENT_A (NULL)
#define USER_MOTOR_RES_EST_CURRENT_A (4.0)
#define USER_MOTOR_IND_EST_CURRENT_A (-4.0)
#define USER_MOTOR_MAX_CURRENT_A (137.5)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz (40.0)

NEW HARDWARE NEW TUNING DATA

#define USER_MOTOR_TYPE MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS (5)
#define USER_MOTOR_Rr_Ohm (NULL)
#define USER_MOTOR_Rs_Ohm (0.0124161467)
#define USER_MOTOR_Ls_d_H (4.36734808e-05)
#define USER_MOTOR_Ls_q_H (4.36734808e-05)
#define USER_MOTOR_RATED_FLUX_VpHz (0.0569278076)
#define USER_MOTOR_MAGNETIZING_CURRENT_A (NULL)
#define USER_MOTOR_RES_EST_CURRENT_A (4.0)
#define USER_MOTOR_IND_EST_CURRENT_A (-4.0)
#define USER_MOTOR_MAX_CURRENT_A (137.5)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz (40.0)

Thanks!

Kris

  • Make sure that the scaling current and voltage are setting correctly according to the new hardware board. And may try to use the lab03 and lab04 to verify the hardware. Seems like the identified Rs have a significant difference on your old and new board that could be an issue to run the motor well.

    Since the motor is low inductance motor, you may try to use a higher PWM frequency to identify and run the motor. And try to increase the USER_MOTOR_RES_EST_CURRENT_A for Rs identification as well. You should run these labs within CCS following the lab guide, and don't need to use the GUI for this.

  • Hi Yanming,

    We found the problem with the tuning. A previous engineer had a manual override for some of the Ki and Kd values so the new tuning parameters which were calculted were not being used. The motor is running very smoothly now.

    One thing we would like to improve is the motor is slow to respond. The motor RPMs are dropping when the load increases (we are nowhere near the max torque of the motor) and it is also sluggish to increase the speed even when not under load. It also overshoots the commanded speed for a noticeable period of time before correcting itself down to the correct speed. It seems like the control loop need sto be executing faster. Where would you recommend to start for improving this performance?

    Thanks!

    Kris

  • That could be normal response, the speed will drop if the load is higher than the output/maximum torque of the motor. Please check if the dc bus voltage and the maximum current are enough for running the motor with a high speed. Tuning the gains of the speed PI controller according to the debugging result.

  • Hi Yanming,

    Thank you for your response. The DC bus and current supply are sufficient. Even at very low or no loads the response is slow. Is there a better resource than Chapter 11 PI Controllers of the Instaspin User's Guide or is that where you would recommend to start?

  • There is no more documentation about the PI controller, you have to tune the gains of the PI controllers to improve the stability and response according to your system if you make sure that the motor parameters are correct for FAST estimator. Or you can find some tips about tuning the PI controller on website or some textbooks.