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.

TMS320F28388D: Sensored FOC control BLDC in low speed range very poor

Part Number: TMS320F28388D
Other Parts Discussed in Thread: MOTORWARE

Tool/software:

Hi,

my project is using DSP TMS320F28388D + gate driver DRV8323RH (Gain current amplifer 10) + external mosfet to control BLDC motor by FOC algorithm.

My BLDC has rate speed is 8100RPM (Rate voltage 24VDC and current 4A), I use combination hall sensor and incremental encoder (2048 pulse per revolution) to calculate electric rotor angle for FOC.PWM frequency 12.5Khz, FOC current frequency = PWM frequency.

My problem is board can control motor in high speed range ( > 200RPM) very well,

but when control in low speed range (<100RPM) the quality very poor, motor runs not smooth (even no load). the torque I feel weak when run in low speed

Can some one point me some reason may make this issue or solution to improve quality control motor in low speed range?

brs,

longpt10

  • Are you using any TI reference algorithm in MCSDK or your own algorithm?

    You may try to increase the PWM frequency and control loop frequency, and tune the speed control loop. If you want to achieve the best performance at very low speed, you have to increase the resolution of the position sensor as well.

  • thanks,

    Are you using any TI reference algorithm in MCSDK or your own algorithm? --> I have follow the reference project from MCSDK: Universal motor control lab, but when apply in my project I did a little difference:

    1 - Calculate the electrical rotor angle: I do not use the alignment process like in the lab, I use directly combination of hall sensor and QEI encoder to calculate the electric angle:

    method: electric rotor angle += (deltapulse from QEI/ Ts) * pole pair, and each time hall state changes--> I reset the electric rotor angle to 0, 120, 180, 240, 300 and 360 ---> Do you think this method ok?

    2,Calculte the speed of the motor: I also not using the PLL observer speed loop, I use directly speed calculated from QEI encoder 

    Speed = delltapulse/ Ts , I know this method has limit when in low speed range , I have tried to calculate by speed = pulse/deltatime but the result is not better?---> do you think this method ok?

    Ts = 1//freq PWM (freq PWM = 12.5Khz)

    I also tried to use the PLL observer speed but the result is not better,

    Any recommend?

    thanks,

  • sorry wrong typing:

    electric rotor angle += (deltapulse from QEI) * pole pair

  • Dear Yanming,

    I also read from some source, I think my issue effected by "Cogging torque" of the motor. Does Ti has any solution to handle this effect, or can you recommend me solution?

    I have read in Motorware SDK for old C2000 chip of Ti has solution called SPINTAC which use ADRC controller for position and speed controller, Do you think apply ADRC for speed controller and current controller can improve the performance in low speed range?

    thanks 

  • Does Ti has any solution to handle this effect, or can you recommend me solution?

    No. You may have to discuss this with motor manufacturers or refer to the related technical papers.

    I have read in Motorware SDK for old C2000 chip of Ti has solution called SPINTAC which use ADRC controller for position and speed controller, Do you think apply ADRC for speed controller and current controller can improve the performance in low speed range?

    The SPINTAC with ADRC is only available on F2806xM. It doesn't support TMS320F28388D since the library is out of ROM.