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.

TIDM-02010: BUILD 3 and BUILD 4 issue

Part Number: TIDM-02010

Hi,

We tried testing a 1kW PMSM motor with DC supply for all build settings. In BUILD 1 we are able to verify the PWMs and BUILD2 we are able to run the compressor motor through FAST successfully. But, in BUILD 3 and 4 when we enable the motor flag instantaneously we are facing module over current. 

Also, in BUILD 3 with DC input, while testing only for PFC varying Idcref, changes in Iac ref is noticed but the output voltage is not varying. Is there anything in BUILD3 that we are missing out. 

Want to understand more on this. 

Kindly revert asap. 

Thanks

  • 1. Make sure that the motor parameters (Rs, Ls and Flux) are set correctly for build level 4, and current/voltage sensing signals are good for running the motor with closed-loop.

    2. Running the PFC in both build level 3 and 5 needs the AC source to be connected as described in the lab guide.

  • Yes the values are correctly set. Also, the motor is running successfully in build 2. Sensing signals are also good enough for the motor. Are there any parameters to tune, When the motor is enabled it tends to rotate but the current is going down to -38A. Need more understanding on this

  • Also,the value of motorVars[0].speed_Hz is fluctuating in the expression window. For motorVars[0].speedRef_Hz = 30.0 the value of motorVars[0].speed_Hz is varying from -12 to 39 Hz. What can be the reason. How to overcome this issue

  • Are you using your own board? Or the TI reference design board? Which algorithm is using? FAST or eSMO?

    Did you try to run the motor without load in BUILD LEVEL2? If the estimation speed is not near the reference speed, that means the current/voltage sensing signals are not good, or the motor parameters are not correct.

    BTW, don't run the compressor with the air-conditioner system to verify the hardware. 

  • Yes, We are running in BUILD LEVEL 2 without load using FAST algorithm. We are running a 1kW PMSM using our own board designed for 3.5 kW.

    Also, need to understand why the fluctuation in speed is occurring. 

  •   This is the waveform that we are observing in build 3

  • What do the PINK and YELLOW mean in the waveform? The BUILD LEVLE3 still runs the motor without using the angle from the FAST and just using the current closed-loop. If the current sensing signals are good and you set the right reference current, the motor should run smoothly without vibration.

  • PINK is the current  waveform and YELLOW refers to voltage.The motor tends to rotate giving a small sound and rotating by some 90 degrees. Soon after if module over current triggers. Can you kindly let me know where the reference needs to be set

  • You can change the motorVars[0/1].startCurrent_A in CCS debug window, or set the USER_MOTOR1/2_STARTUP_CURRENT_A in user_mtr1/2.h

  • We tried doing this. But, the response is the same. 

  • Make sure that  the correct ADC current scale value (USER_M1/2_ADC_FULL_SCALE_CURRENT_A) is set in user_mtr1/2.h. And also set the right "sign" for the current coefficient based on the sampling circuit in  motor1/2_drive.c.

     adcData[MTR_1/2].current_sf = +/-userParams[MTR_1/2].current_sf;

    //! \brief Defines the sign of the current_sf based on
    //! the polarity of the current feedback circuit
    //!
    //! the "sign" = -1.0f if the current feedback polarity is positive that
    //! means the same pin of the shunt resistor is connected to ground and
    //! is also connected to the noninverting pin of the operational amplifier
    //!
    //! the "sign" = 1.0f if the current feedback polarity is negative that
    //! means the same pin of the shunt resistor is connected to ground and
    //! is also connected to the inverting pin of the operational amplifier

  • Hi, 

    Thank you. We were able to run the motor  successfully in build 3 by changing the parameter, adcData[MTR_1].current_sf = +/-userParams[MTR_1].current_sf;  with the negative sign.

    But we are having an issue with BUILD 4 while enabling the motor, the motor is starting with a high CRANKY noise. Is there any parameters we need to tune in BUILD 4.
    Kindly revert ASAP.

  • What algorithm you are using? FAST or eSMO?

    If using the FAST, make sure that the right motor parameters are set in user_mtr1/2.h.

    If using the eSMO, you need to tune the related parameters to ensure the eSMO works.

  • For Motor 1 we are using FAST. And the motor parameters are set rignt.. Is it necessary to tune the control parameters for FAST? If so which are the parameters.

    For FAN motor we are using eSMO. We tune the control parameters of eSMO for FAN. 

  • You should set the right motor parameters (Rs, Ls and Flux) and the hardware parameters (scale current and voltage) for both FAST and eSMO.

    If you want to achieve a better performance on your system, you also need to tune the gains of the speed and current PI controller for both FAST and eSMO according to your system. The calculation value of the gains are just for a reference as the starting point.

    If you want to use the eSMO, there is no a clear equation to calculate a fixed value, you have to tune the parameters as below according to the debugging state. You may try to use the default value first, and change them between 50% to 200%, if the eSMO doesn't still work, try to increase the range for 20%~300% that could be enough for almost all of the motor.

    #define USER_MOTOR2_STARTUP_CURRENT_A       (1.0f)           //

    #define USER_MOTOR2_SPEED_START_Hz (10.0f) //
    #define USER_MOTOR2_SPEED_FORCE_Hz (20.0)

    #define USER_MOTOR2_KSLIDE_MAX (0.25f) // 2.0f
    #define USER_MOTOR2_KSLIDE_MIN (0.10f)

    #define USER_MOTOR2_PLL_KP_MAX (10.0f)
    #define USER_MOTOR2_PLL_KP_MIN (2.0f)
    #define USER_MOTOR2_PLL_KP_SF (5.0f)

    #define USER_MOTOR2_BEMF_THRESHOLD (0.5f)
    #define USER_MOTOR2_BEMF_KSLF_FC_Hz (2.0f) // 1.0f
    #define USER_MOTOR2_THETA_OFFSET_SF (1.0f) // 2.5f
    #define USER_MOTOR2_SPEED_LPF_FC_Hz (200.0f) // 100.0f

  • eSMO - FAN motor we are able to run the motor with  Speed_ref_Hz only upto 20.0Hz, above that the system trips. What are the parameters to tune for increasing the speed 

  • That means the eSMO doesn't work correctly. Keep tuning the parameters above, you may try to increase USER_MOTOR2_SPEED_START_Hz and USER_MOTOR2_SPEED_FORCE_Hz.

    And please change the codes in esmo.c as the following.

    // To avoid the issue from compiler on expf() function, use the following equations
    // float32_t baseVIs = ((2.0f * pUserParams->voltage_sf * obj->Ts) / pUserParams->current_sf);
    float32_t baseVIs = (pUserParams->voltage_sf * obj->Ts) / pUserParams->current_sf;

    obj->Fdsmopos = 1.0f - (motor_Rs / pUserParams->motor_Ls_d_H * obj->Ts);
    obj->Fqsmopos = 1.0f - (motor_Rs / pUserParams->motor_Ls_q_H * obj->Ts);
    obj->Gdsmopos = baseVIs / pUserParams->motor_Ls_d_H;
    obj->Gqsmopos = baseVIs / pUserParams->motor_Ls_q_H;

    // To avoid the issue from compiler on expf() function, commented the following equations
    // float32_t baseVI = ((2.0f * pUserParams->voltage_sf) / pUserParams->current_sf);
    //
    // obj->Fdsmopos = 1.0f / expf(motor_Rs / pUserParams->motor_Ls_d_H * obj->Ts);
    // obj->Fqsmopos = 1.0f / expf(motor_Rs / pUserParams->motor_Ls_q_H * obj->Ts);
    // obj->Gdsmopos = (baseVI / motor_Rs) * (1.0f - obj->Fdsmopos);
    // obj->Gqsmopos = (baseVI / motor_Rs) * (1.0f - obj->Fqsmopos);

  • hi

    We are able to run fan motor with eSMO in BUILD4 but, the motor is turning off after 5 to 10 seconds. What is the issue? How to rectify the same 

    Pls revert

  • Seems like the eSMO doesn't work well, and it's failed when switch the using angle from the angle generator in open-loop phase to the angle from the eSMO in close-loop. You have to tune the eSMO parameters as mentioned above, still need to run the motor in build level 3, to ensure the estimated speed and angle are close to the reference speed and the angle from the angle generator.

  • Any updates? As replied to the other threads. You may try to run the same with the TI reference board first for tuning the parameters, and then use the parameters on the project for your own board to see what happens.

  • Hi Yanming

    In BUILD 2 for eSMO even with TI reference borad we are not able to spin the motor and upfront receiving module over current 

  • Mohana,

    Yanming is currently out of the office, please expect our next reply by this Friday the 15th.

    Best,

    Matthew

  • You may try to run the motor in BUILD LEVEL 2, and use the DAC to verify if the estimation angle and speed from eSMO is correct since you are using the TI reference board.

    If the estimation values are not correct, you have to tune the eSMO parameters as mentioned above or as below.

    #define USER_MOTOR2_KSLIDE_MAX (0.25f) // 2.0f
    #define USER_MOTOR2_KSLIDE_MIN (0.10f)

    #define USER_MOTOR2_PLL_KP_MAX (10.0f)
    #define USER_MOTOR2_PLL_KP_MIN (2.0f)
    #define USER_MOTOR2_PLL_KP_SF (5.0f)

    #define USER_MOTOR2_BEMF_THRESHOLD (0.5f)
    #define USER_MOTOR2_BEMF_KSLF_FC_Hz (2.0f) // 1.0f
    #define USER_MOTOR2_THETA_OFFSET_SF (1.0f) // 2.5f
    #define USER_MOTOR2_SPEED_LPF_FC_Hz (200.0f) // 100.0f

    If the estimation values are close to the reference number, try to increase the switch speed parameters as below.

     #define USER_MOTOR2_SPEED_START_Hz (10.0f) //
    #define USER_MOTOR2_SPEED_FORCE_Hz (20.0)

    BTW, it's not recommend you to use the values above, just means you need to tune these parameters according to your motor.

  • Any updates?  Do you try to run the eSMO with TI reference board?