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.

TIDA-010265: Overcurrent Fault and Vibration When Running HVLS PMSM Fan Motor Using TIDA-010265

Part Number: TIDA-010265


Hello,

I am working on running an HVLS PMSM fan motor using the TIDA-010265 reference design (hardware + software).
Motor specifications are:

  • Max speed: 22 Hz

  • Rated current: 1.3 A

  • Power rating: 280 W

During my testing with load, I am facing the following issues:

  1. Overcurrent fault at startup:
    Most of the time, the motor hits an overcurrent trip right at start. Occasionally, it ramps normally.

  2. Vibration during rotation:
    Even when the motor ramps up properly, there is noticeable vibration in the rotor during operation.

  3. Cannot exceed 17 Hz:
    The motor reaches around 17 Hz, but when commanded beyond that, the overcurrent protection (set at 1.3 A) triggers every time.

These issues occur with both the FAST estimator, and with FAST + eSMO enabled.
I have attached the phase current waveform in this post for reference.(Waveform captured at 15Hz speed)

What could be the root cause of these startup overcurrents, vibration, and inability to reach the rated 22 Hz?
Are there recommended tuning steps, parameter adjustments, or estimator settings I should verify for this type of motor?

Any guidance would be greatly appreciated.

Thank you,

Ranjith Rai
current_wave_1.png

  • Hi Ranjith

    Do you have identify motor parameter at first? The FOC motor algorithm need run on correct motor parameter, otherwise easy fail to startup/running or cannot run to high speed. And your current waveform looks very bad but not a smooth sinewave, so it is high possibility the motor parameter not correct.  

  • Hi Sir,

    Thank you for the reply.
    About the motor parameters — the resistance and flux (V/Hz) values I am using were identified using TI’s motor parameter identification itself, and the identified resistance also matches very closely with what I measured on an LCR meter, so I believe those are correct. The only concern is inductance: TI’s identification gave a very small inductance value, and with that, the Iq controller gain became too low and the motor was not able to start. Because of this, I measured the inductance myself using an LCR meter at 1 kHz and used that value. With the LCR-measured inductance the motor at least attempts to start, but I am now facing the issues I shared earlier — the phase current waveform is not smooth, and there are big spikes during startup that frequently trigger overcurrent, especially with the 280W HVLS fan load.

    I also wanted to ask you about the inertia parameter. Right now I have left it at the default value, and whenever the speed loop feels too weak I increase it roughly by a factor of 10 just to see how the response changes. Since this is an HVLS load with high inertia, I feel this parameter will have a significant effect. Is there a proper way or recommended method to calculate the correct inertia value for a given motor and load?

    Thank you for your support.

  • I strong suggest measure motor inductance by using TI firmware, otherwise it hardly to run motor well. Do you see motor running smooth and current waveform smooth in the inductance identify procedure? If no, you could try increase PWM switching frequency or increase identification motor speed. speed loop parameter should not distort current waveform, you could tune it as next phase after running current waveform become smooth. 

  • Hi Sir,

    Thanks for the clarification. During the TI identification procedure itself, the current waveform is also not proper and the motor takes a long time to start and settle. It also does not maintain the commanded identification speed consistently — the speed gradually reduces during the process, so the identification never looks stable.

    I have tried changing the resistance and inductance identification currents, and I have also experimented with different identification speeds. I additionally tried increasing the PWM switching frequency as you suggested, but I am still not able to get a smooth current waveform or a proper identification run.

    Is there any other parameter or setting I can adjust to achieve a stable and accurate identification process? Any guidance on what else I can try would be very helpful.

    Thanks again for your support.

  • Hi Ranjith,

    I have tried changing the resistance and inductance identification currents, and I have also experimented with different identification speeds. I additionally tried increasing the PWM switching frequency as you suggested, but I am still not able to get a smooth current waveform or a proper identification run

    Perhaps do not load the rotor with weight of fan blades during motor ID and set the torque, flux, delta values low amps. You can see our post about similar issues with eSMO start & run modes. Motor not even starts correctly with FAST estimator via UMCSDK v5.03. We also modify the CMPSS code so the VDAC values correctly in the inverted low side ADC value being an inverse value motor1_drive.c. The way the code was set the CPMSS register load values were the same for VDACL and VDACH, that will never work correctly in an inverted output of low side VDAC (motor_common.c) 

    void calcMotorOverCurrentThreshold(MOTOR_Handle handle)
    {
       MOTOR_SetVars_t *objSets = (MOTOR_SetVars_t *)(handle->motorSetsHandle);
    
       float32_t overCurrent_A;
    
       overCurrent_A = (objSets->overCurrent_A > objSets->maxPeakCurrent_A) ?
       objSets->maxPeakCurrent_A : objSets->overCurrent_A;
    
       int16_t cmpValue = (int16_t)(overCurrent_A * 2 * objSets->currentInv_sf);
    
       objSets->dacCMPValL = 2048 + 512 + 256 - cmpValue; // (+1.65v)=2048 < 4096 peak counts +256
       objSets->dacCMPValH = 2048 - 512 - 256 + cmpValue; // (-1.65v)=2048 > 0 counts peak current -256
    
    #endif  // !(MOTOR1_DCLINKSS | MOTOR1_ISBLDC), three shunt
    
        return;
    }
    
    REM the #else code below is nonsense //!(MOTOR1_DCLINKSS | MOTOR1_ISBLDC), three shunt code then check debug registers for CPMSS DACVALL/H levels

    So the HV motor always trips OVC for any low side spike that may occur during motor start up even with CMPSS hysteresis set maximum and trip filters values also set very high. BTW you can test run noise may reduce by enabling the voltage and current first order filers FO by setting the symbols MOTOR1_FILTERVS,  MOTOR1_FILTERIS. That won't help your Trapezoidal current signals as Terry Deng mentions, but a proper inductance value may smooth the saw tooth, set the REF_MAG_PU 0.5 user_mtr1.h  

    LAUNCHXL-F280039C: Universal Motor Control FOC eSMO clicking sounds, FAST estimator fails - C2000 microcontrollers forum - C2000Tm︎ microcontrollers - TI E2E support forums