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: DRV8305-Q1EVM drive BLDC and cann't reach setting speed.

Part Number: TMS320F28027F
Other Parts Discussed in Thread: DRV8305-Q1EVM,

The BLDC is an aircraft model motor EMAX RS1408 3600KV,  This one is 9N12P, 6 pole pairs.

We have changed the phase voltage divider resistance of the EVM, R62, R63, R64 to 20K, C52, C53, C54 to 0.033uF; the corresponding content of the corresponding program has also been modified.
The changes are as follows:

#define USER_IQ_FULL_SCALE_FREQ_Hz        (4320.0)
#define USER_IQ_FULL_SCALE_VOLTAGE_V      (17.0)
#define USER_ADC_FULL_SCALE_VOLTAGE_V       (16.53) 
#define USER_PWM_FREQ_kHz                (48.0)
#define USER_NUM_PWM_TICKS_PER_ISR_TICK        (1)
#define USER_NUM_ISR_TICKS_PER_CTRL_TICK       (2)
#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK   (4)
#define USER_NUM_CTRL_TICKS_PER_SPEED_TICK  (24)
#define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK   (24)
#define USER_MAX_ACCEL_EST_Hzps           (40.0)
#define USER_R_OVER_L_EST_FREQ_Hz (600)
#define USER_VOLTAGE_FILTER_POLE_Hz  (1207.65)
The motor parameters are set as follows:
#elif(USER_MOTOR == EMAX_9N12P_RS140X)
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS       (6)
#define USER_MOTOR_Rr                   (NULL)
#define USER_MOTOR_Rs                   (0.0600023)
#define USER_MOTOR_Ls_d                 (0.0000075393)
#define USER_MOTOR_Ls_q                 (0.0000075393)
#define USER_MOTOR_RATED_FLUX           (0.0014830)
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
#define USER_MOTOR_RES_EST_CURRENT      (2.8)
#define USER_MOTOR_IND_EST_CURRENT      (-2.8)
#define USER_MOTOR_MAX_CURRENT          (10.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (300.0)
The motor can start and rotate normally, but the output speed cannot reach the maximum speed. Under no-load conditions, the maximum speed of the BLDC can reach 39000 rpm-41,000 rpm.
However, using the DRV8305-Q1EVM to set the rotation speed in the GUIcomposer to 35,000 rpm, but using an infrared speed measuring device to measure the rotation speed is only about 17,000 rpm.
would you please help give some suggestions how to solve this problem?
Many thanks.
  • 1. Increase the maximum current, 2. Increase the dc bus voltage. To see what happen? And check if the gMotorVars.Vs is close to USER_MAX_VS_MAG_PU. If yes, that means you have to implement field weakening control at the high speed for this motor.

    // read Vd and Vq vectors per units
    gMotorVars.Vd = CTRL_getVd_out_pu(ctrlHandle);
    gMotorVars.Vq = CTRL_getVq_out_pu(ctrlHandle);

    // calculate vector Vs in per units
    gMotorVars.Vs = _IQsqrt(_IQmpy(gMotorVars.Vd, gMotorVars.Vd) + _IQmpy(gMotorVars.Vq, gMotorVars.Vq));

  • Hi Yanming,

      Thanks for you quick reply.

      According to your instructions, we did the following experiments.

    1. After using project5h as a test, monitor that gMotorVars.Vs is close to USER_MAX_VS_MAG_PU, and also use the field weakening control of project9 to test it. The maximum speed is 22000 rpm, and then increase gMotorVars.Vs to be close to USER_MAX_VS_MAG_PU.
    Changed the maximum current USER_MOTOR_MAX_CURRENT to 5A, 10A, 15A, and 20A. The tests were performed. The larger the current, the lower the speed and the more likely the current limit alarm will occur. Decreasing the current will cause the speed to fail to increase. At 10A, the maximum speed can reach 22,000 rpm.

    2. Because C52, C53, and C54 have been modified, the problem of the inconsistency between the speedometer and the monitoring speed has been found. It should be caused by the inconsistency between the set USER_IQ_FULL_SCALE_FREQ_Hz frequency and the calculated frequency after replacing the capacitor.

    My question is: Has the maximum performance limit of TMS320F28027F been reached and the speed cannot be increased to the required 39000-41000 rpm? Or is there something wrong with our program that keeps the speed from going up?

    Many thanks.

  • Make sure if the USER_MOTOR_NUM_POLE_PAIRS is set correctly. The PWM and control frequency must be a higher value since the motor is a low inductance motor. The F28027F should be enough for the maximum frequency though the control performance maybe not better as the F28069F with a higher CPU frequency. You need to check if the DRV8305Q kit can support such a high current also.

    The parameters should be set as below, F28027F can't support such high control frequency.

    #define USER_PWM_FREQ_kHz                (48.0)
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK        (3)
  • Hi Yanming,

       Thanks very much for your reply.

    I will check my system and feedback to you soon.

    Thanks.

    BR

    Kelly