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.

TMS320F280023C: BLDC motor taking more current, when number of poles is reduced.

Part Number: TMS320F280023C
Other Parts Discussed in Thread: C2000WARE-MOTORCONTROL-SDK, C2000WARE

Hi, 

I am using TMS320F280023C to run BLDC motor using Trapezoidal control. For the same hardware, I had run a BLDC motor rated 48V , 750 W, 24 pairs pole. Now I have changed to 48V, 1.2kW, 4 pole pairs BLDC motor. But after changing to new motor, it takes lot of current with very low duty as well. There is lot of vibration, and due to high current motor is not running for more than a minute ( that too duty < 20%).

Note : Resistance and Inductance of new motor are 1/4th time of old motor. and PWM frequency used here is 16kHz.

Could you please suggest, why is that happening with new motor? 

  • Hi Ratnesh,

    Perhaps try higher PWM frequency like 20kHz. We can't expect every motor will require the same drive current. How much harder to turn the 8 poles shaft by fingers to that of 24 pairs, did you really mean to say 48 poles? Typically Trapezoidal modulation will take more startup current for low pole count motors than do higher pole counts.

    Regards 

  • Hello GI,

    1. I tried with 20kHz PWM frequency. The results were same.

    2. 8 pole motor is easier to rotate than 24 pairs ( 48 pole) motor, because 48 pole motor is geared.

    3. It's not only about starting current, overall running time is also huge.

    If 8 pole motor is run with Chinese motor controller, which came as a set with the motor. The motor runs very smooth and takes only about 4A at full duty. While in my algorithm, it takes nearly 6-7A current when nearly 30% duty is ON. 

    Could it be switching sequence problem ? Or it has to something with inductance of motor winding ?

    Regards,

    Ratnesh 

  • Could it be switching sequence problem ? Or it has to something with inductance of motor winding ?

    Sound like that is the issue 8 pole has very low inductance, 30% duty is not unexpected at 6-7A NFETS in slow decay current mode. Does your x23c support SVM modulation via embedded ROM? You could try the FAST estimator universal motor control projects, if x23 has not embedded ROM there is the FAST ROM library file to use. The imported projects require to use the x23 peripherals so there is some conversion time involved.  

    Oddly enough, Nidec H25 6 pole motor has 1.3A 18w 20vdc listed but only take 300mA/24vdc via SVM sinewave current modulation. Some posters have reported high current consumption via low inductance large motors. H25 is only 3mOhm p2p and does 1.3A peak, 1A average with Trapezoidal modulation.

  • Hi,

    I understand, you are suggesting to use SVM method to control Motor. Is there any specific advantage of using SVM over trapezoidal control ?

    These are the values of Inductance and resistance (phase to phase).

    Ls = 67.2uH @10kHz
    Rs = 30mohm @ 4Hz

    48V / 1.2kW / 8 pole motor 

  • Are you using sensorless or sensor based algorithm for BLDC with trapezoidal control? Which TI reference lab/project are you working on?

    Do you change the control parameters for the different motor? And do you do the offset calibration if you are using the hall sensor based trapezoidal control?

  • Hi Luo,

    I am using sensor based Trapezoidal control. 

    Not using TI reference lab.

    Also, I would like to inform that problem was with hall sensor wrong connection, which resulted in wrong switching pattern. And hence lots of current was being drawn. Now Motor is being controlled in a fine manner. 

    Thanks.

    Also, Can you please suggest some TI reference to measure BLDC motor speed using hall sensor signals. Now I am using Hall interrupts and calculating time between rising edge to rising edge to calculate speed. But, using this method it holds the value of speed, when when speed is brought to zero. Please suggest some better method or some TI reference lab.

  • You can use the eCAP to measure the period of the output pulse of the hall sensor.

    You can refer to the universal motor control lab that is available in the current MCSDK, which can support a set of hardware kits and control algorithms for BLDC/PMSM drive. The kits include LAUNCHXL-F280025C, LAUNCHXL-F280039CLAUNCHXL-F2800137 with BOOSTXL-DRV8323RS, BOOSTXL-DRV8323RH, DRV8353Rx-EVMBOOSTXL-3PHGANINV, DRV8316REVM, or  DRV8329AEVM inverter board for low voltage motor . TMDSCNCD280025C, TMDSCNCD2800137 , or TMDSCNCD280039C with TMDSHVMTRINSPIN inverter board and TMDSADAP180TO100 for high voltage motor.And The control algorithms include sensorless InstaSPIN-FOC with FAST, Sensorless-FOC with eSMO, Sensored-FOC with incremental encoder, Sensored-FOC with hall sensor.

    C2000WARE-MOTORCONTROL-SDK: https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/spruj26

    Example lab project at the folder: C:\ti\c2000\C2000Ware_MotorControl_SDK_<version>\solutions\universal_motorcontrol_lab\f28002x

    BTW, the lab uses hall sensor based FOC, not trapezoidal control, but you can still refer to the lab about how to measure the motor speed with hall sensor and C2000 eCAP modules.

  • But, using this method it holds the value of speed, when when speed is brought to zero

    You can add a function ADC tick counter to reset the speed value when EMF edge is not being detected for some period.

    I was reviewing the Universal code for BLDC with Hall's and assuming it used trapezoidal modulation. When Hall sensors are used for rotor position how is that considered FOC is good question. How the SVM with Halls has any advantage over FOC is another good question. 

  • The lab uses FOC to drive the BLDC as the trapezoidal control, so it's easy to switch the control with hall based FOC or sensorless FOC.