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.

TMS320F28069: Motor reverse fail

Part Number: TMS320F28069


Hello all,

We are suffering from bad reverse switch. We are using the TMS320f28069 to control a motor on a fixed wing plane.

Setup :

  • We are in positive rotation way.
  • We want to switch to reverse (negative rotation way), but with a torque against this move (torque tries to make it spinning in positive way, created by the wind on the propeller)
  • When crossing zero, command continues to negative value as expected, but the propeller stays stucked at 0RPM. So Iq command increases to the maximum, motor heats
  • During this phase, acceleration is reduced a little compared to a nominal rotation phase (reduced to 6.5kRPM/s).

Here are our parameters (Vbus = 17V, see attached).

How can we improve this behavior and avoid this very annoying state ?

Are there some settings we absolutely have to modify (Rs estimation, offset estimation..)

(our code is based on TI labs)

Thanks for your help, best regards

#define USER_MOTOR_TYPE					MOTOR_Type_Pm
	#define USER_MOTOR_NUM_POLE_PAIRS		(7)
	#define USER_MOTOR_Rr					(NULL)
	#define USER_MOTOR_Rs					(0.0183003172)	//0.0203604233
	#define USER_MOTOR_Ls_d					(4.48583978e-06)	//6.38452002e-06
	#define USER_MOTOR_Ls_q					USER_MOTOR_Ls_d	//6.38452002e-06
	#define USER_MOTOR_RATED_FLUX			(0.00347099616)	//0.00346262357
	#define USER_MOTOR_MAGNETIZING_CURRENT	(NULL)
	#define USER_MOTOR_RES_EST_CURRENT		(4.0)	//Peak of the current used during initial startup of the motor
	#define USER_MOTOR_IND_EST_CURRENT		(-USER_MOTOR_RES_EST_CURRENT)	//For PMSM motors this value can be set to the negative of the current used for USER_MOTOR_RES_EST_CURRENT.
	#define USER_MOTOR_MAX_CURRENT			(60.0)
	#define USER_MOTOR_FLUX_EST_FREQ_Hz		(150.0)
	//#define USER_MOTOR_ENCODER_LINES		(1.0)	// Number of lines on the motor's quadrature encoder
	#define USER_MOTOR_MAX_SPEED_KRPM		(15.0)	// Maximum speed that the motor
	#define USER_SYSTEM_INERTIA				(0.344324)	// 0.02 default. Inertia of the motor & system, should be estimated by SpinTAC Velocity Identify
	#define USER_SYSTEM_FRICTION			(0.545672)	// 0.01 default. Friction of the motor & system, should be estimated by SpinTAC Velocity Identify