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.

TMS320F28054F: How to chage Ls according to different motor speed

Part Number: TMS320F28054F

Hi ,

      My customer belevie the motor inductor is different between high and low speed. They want to change Ls every 1000rpm.

And they already tried to modify  Ls in lab5b when motor is running, but if  Ls be change then the motor will stop running.

We want to know how to modify the Ls at different motor speed in lab5b. Thanks. 

  

  • Ls is not dependent with motor speed, only Lq is dependent with current, Lq will be decreased with current increasing. You can re-setup the Ld and Lq as below function. Use the real Ld&Lq to replace the obj->motorParams.Ls_d and obj->motorParams.Ls_q.

    void softwareUpdate1p6(CTRL_Handle handle)
    {
    CTRL_Obj *obj = (CTRL_Obj *)handle;
    float_t fullScaleInductance = EST_getFullScaleInductance(obj->estHandle);
    float_t Ls_coarse_max = _IQ30toF(EST_getLs_coarse_max_pu(obj->estHandle));
    int_least8_t lShift = ceil(log(obj->motorParams.Ls_d/(Ls_coarse_max*fullScaleInductance))/log(2.0));
    uint_least8_t Ls_qFmt = 30 - lShift;
    float_t L_max = fullScaleInductance * pow(2.0,lShift);
    _iq Ls_d_pu = _IQ30(obj->motorParams.Ls_d / L_max);
    _iq Ls_q_pu = _IQ30(obj->motorParams.Ls_q / L_max);


    // store the results
    EST_setLs_d_pu(obj->estHandle,Ls_d_pu);
    EST_setLs_q_pu(obj->estHandle,Ls_q_pu);
    EST_setLs_qFmt(obj->estHandle,Ls_qFmt);

    return;
    } // end of softwareUpdate1p6() function
  • Hi Yanming,
    Your code is work. Thank you very much.

    Jeff Chen