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.

TMS320F28069F: 150Krpm with InstaSPIN

Part Number: TMS320F28069F
Other Parts Discussed in Thread: MOTORWARE,

Dear All,

I am driving test of a 4-pole motor with motorware_proj_lab04 and TMS320F28069F based controller up to 150krpm (5KHz electrical speed) . It was driven up to 107krpm (3.567KHz) with the

setting of the attached user.h file, but it seems difficult due to MCU performance to run at a speed higher than that. If there is a way to run it up to 150krpm without changing the hardware, could you give me some advice?

5282.user.h

Sincerely,

Eui-heon

  • Hello Eui-heon, One of the factors limiting the speed could be magnitude of DC bus voltage. If possible try increasing the bus voltage and see if you can go higher in speed. If yes, then either you need higher bus voltage or need to use field weakening control. Also make sure user.h file got the right settings based on motor/operating  specs.

  • Dear Navaneeth Narayanasamy,

    Thank you for your reply.

    What I want to be supported is how to set control-related parameters as shown in the following link

     e2e.ti.com/.../tms320f28069m-high-speed-motors

     and drive a motor at an electric speed of 5khz with motorware.

    Sincerely,

    Eui-heon

  • As the link you mentioned above. Try to use the lab02c to identify the motor parameters if the motor is a lower inductance motor, and use a high PWM and control frequency as possible according to the controller and inverter board.

    You should to check if the dc bus voltage or the maximum current limit the maximum running speed as Navaneeth mentioned, and then increase the dc bus voltage or maximum current, or implement the field weakening control.

  • Dear Yanming Luo,
    Thank you for your reply.

    Using proj_lab04 of motorware, the torque control (Iq_ref: 30A ~ 40A) drives up to an electric speed of 3.567KHz, but the current and speed do not increase even if Iq_ref is applied over 40A. Since this is related to the load characteristics of the motor, I will test it under different external conditions according to Navaneeth Narayanasamy and your advice. When the load is reduced, the speed seems to have increased, but the electric speed cannot be measured accurately because the current waveform is severely distorted.
    For this reason, please advise which part of the following parameters should be adjusted if it is driven at an electric speed of 5KHz.

    The main parameters in the attached 5282.user.h file are as follows.
    #define USER_IQ_FULL_SCALE_FREQ_Hz (4000.0)  ==> (5000.0)
    #define USER_IQ_FULL_SCALE_VOLTAGE_V (24.0)

    #define USER_SYSTEM_FREQ_MHz (90.0)
    #define USER_PWM_FREQ_kHz (30.0)                       ==> (35.0)

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1)
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1)
    #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1)
    #define USER_NUM_CTRL_TICKS_PER_EST_TICK (1)
    #define USER_R_OVER_L_EST_FREQ_Hz (300)
    #define USER_VOLTAGE_FILTER_POLE_Hz (1100)   ==> (1250)

    #define USER_MOTOR_NUM_POLE_PAIRS (2)
    // ==== PWM : 30kHz, USER_MOTOR_FLUX_EST_FREQ_Hz (100.0) ====
    #define USER_MOTOR_Rs (0.0204980057)
    #define USER_MOTOR_Ls_d (8.56277347e-06)
    #define USER_MOTOR_Ls_q (8.56277347e-06)
    #define USER_MOTOR_RATED_FLUX (0.003164717)
    // =============================================

    #define USER_MOTOR_MAX_CURRENT (45.00)

    #define USER_MOTOR_FLUX_EST_FREQ_Hz (100.0)

    Sincerely,

    Eui-heon

  • You can try to increase the dc bus voltage if possible, and to check if the current and maximum speed will increase accordingly.

    Add the following codes to the updateGlobalVariables_motor(), and also check the value of the gMotorVars.Vs is close to the USER_MAX_VS_MAG_PU.

    // 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));

    BTW, what value is the USER_MAX_VS_MAG_PU in user.h you set?

  • Dear Yanming Luo,

    In my setting, USER_MAX_VS_MAG_PU is (0.5). If  this value is raised to 0.53, the speed does not increase and the current waveform hunts.

    The gMotorVars.Vs value converges to the USER_MAX_VS_MAG_PU setting when Iq_ref = 30A is set.

    Sincerely,

    Eui-heon

  • So you have to increase the dc bus voltage or implement the field weakening control as lab09 to achieve the high speed. But it's could be not easy to get so high speed, you also need to use a higher PWM and control frequency for this motor.