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: Problem with torque control loop

Part Number: TMS320F28069

Hello!

I want to implement a torque control for the following motor:

#define USER_MOTOR_TYPE MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (20)
#define USER_MOTOR_Rr (NULL)
#define USER_MOTOR_Rs (0.5303857)
#define USER_MOTOR_Ls_d (0.001883274)
#define USER_MOTOR_Ls_q (0.001883274)
#define USER_MOTOR_RATED_FLUX (0.341985)
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
#define USER_MOTOR_RES_EST_CURRENT (4.0)
#define USER_MOTOR_IND_EST_CURRENT (-1.0)
#define USER_MOTOR_MAX_CURRENT (17)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (6.0)
#define USER_MOTOR_MAX_SPEED_KRPM (0.100)
#define USER_MOTOR_MAX_ACCEL (4.0)

I have perform the identification without problem, but I have tried to implement both torque and speed control based labs and I have found problems when the motor has to move a load. I have mounted an encoder to avoid startup issues, but the problems remains. The motor includes a brake disc fixed to it axle. If the brake is released the motor spins correctly, but if brake is set the motor stops. This could be normal since the motor is being braked, but the torque that the torque control loop applies for this case fall to zero Nm. I though that the torque should raise to it maximum value (derived from USER_MOTOR_MAX_CURRENT) no matter of the movement of the motor. 

Any advice?

Thank you in advance

Borja

  • What load will be added on the motor if you turn on the brake? Did the load beyond the full rated torque of motor? It's not easy to startup the motor with over full torque using sensorless-FOC. You may refer to section 14 of InstaSPIN User's guide (spruhj1g) to improve the startup and low speed performance of motor. And you should also adjust the speed and current regulator parameters (Kp, Ki) to improve the response.
  • Dear Yanming

    I think that the problem is not related to the startup. I will tried to explain in a better way

    The motor uses an encoder (2048 lines). So position is always known.

    If you aply a torque reference of for instance 4Nm and then you stop the motor with the brake, there is no movement, but since we have a position sensor, the position is known. The control should generate the 4Nm torque no matter of the speed, but no current is consumed by the motor and the motor does not generate any torque. If you release the brake the motor does't  start to move. If you move the motor manually the motors start to spin correctly.

    When the motor is braked, if you move the motor manually there are some positions in which motors seems to apply the expected torque (this position could be related to magnet distribution of the motor).

    Any advice?

    Thank you,

    Borja Gómez

  • You might disable forced angle and set the angle and speed from encoder to instaSPIN estimator by using EST_setAngle_pu(). You'd better use the torque control mode for the low speed running, and you might monitor the current controller to look at what feedback input and output of the regulator.