Hi community,
I hope you are all working on exciting projects!
I have a question regarding the control of a BLDC motor using the FOC algorithm developed by the SimpleFOC library. The purpose of this question is to investigate whether the issue is related to the algorithm or the hardware setup, and to see if there are any potential adjustments I can make to resolve the problem.
My setup:
- Development Board: STM32G431KBT6 running code developed in the Arduino IDE.
- Motor Control Settings:
motor.foc_modulation = FOCModulationType::SpaceVectorPWM;
motor.torque_controller = TorqueControlType::voltage;
motor.controller = MotionControlType::velocity;
motor.PID_velocity.P = 0.01;
motor.PID_velocity.I = 0.1;
motor.PID_velocity.D = 0.00;
driver.pwm_frequency = 20000;
motor.phase_inductance = 0.000105f;
motor.KV_rating = 393;- **Motor Setup:** 10 pole pairs, KV = 393, phase inductance = 105 µH, Hall sensors for feedback. - **Driver:** DRV8323RS development board (6 PWM outputs for controlling the BLDC motor). - **BLDC Motor:** 3-phase, 10 pole pairs, 24V, with Hall sensor feedback (3.3V and ground).
The Problem:
When I set the RPM by gradually increasing it by 500 RPM increments, I noticed that the current consumption becomes significantly high. Even before reaching 3000 RPM, the current draws around 3.2A. To address this, I introduced the phase inductance and KV value to lower the torque, aiming to reach field weakening and reduce the current draw. While this helped reduce current consumption and allowed the motor to reach higher RPM, the system became unstable in terms of current consumption. Eventually, this instability caused the MOSFETs and MCU to burn out.
I am confident that the inductance and KV values are correct, and I also tried introducing phase resistance, but it didn’t have an impact. Interestingly, I also tested other BLDC motors with 190KV and 372KV, and these worked fine with stable current consumption. The problem only occurs with the 393KV, 10-pole pair motor.
I considered the possibility that the issue might be with the motor itself. However, when I tested with a servo motor and an ESC (30A), it worked fine, with the current consumption being stable at the following RPMs:
- 3000 RPM: 1A
- 6000 RPM: 1.75A
- 8000 RPM: 2.41A
Given these tests, I suspect that the issue is related to the specific motor setup, but I’m unsure how to achieve stable current consumption at higher RPMs without damaging the driver board. Does anyone have suggestions on how to stabilize current consumption for the 393KV, 10-pole pair motor in high RPM applications?
Thank you for your help!