5010 360KV draws 55W at 90 rad/s in foc_current mode. Is this normal?

Hey guys,

I’ve been trying to get a 5010 360KV BLDC motor running with SimpleFOC 2.1.1 on a MKS ESP32 FOC V1.0 board. The goal is closed-loop position control at high speed with reasonable power consumption. After a lot of trial and error I got it working but the power draw at speed is way higher than I expected and I’m not sure if it’s a physics problem or something I’m doing wrong.

The motor has 7 pole pairs, supply voltage is 22V. I’m using MotionControlType::angle with TorqueControlType::foc_current. I tuned the velocity loop with Ziegler–Nichols method.


#define KC 0.24 // Ziegler-Nichols ultimate gain

#define TC 0.064 // Ziegler-Nichols ultimate period

motor.PID_current_q.P = 2;

motor.PID_current_q.I = 0;

motor.PID_current_d.P = 0;

motor.PID_current_d.I = 0;

motor.LPF_current_q.Tf = 0.002;

motor.LPF_current_d.Tf = 0.002;

motor.current_limit = 4.0;

motor.PID_velocity.P = 0.6 * KC; // 0.144

motor.PID_velocity.I = 1.2 * KC / TC; // 4.5

motor.PID_velocity.D = 0.075 * KC * TC; // ~0.001

motor.PID_velocity.output_ramp = 100.0;

motor.P_angle.P = 3;

motor.LPF_velocity.Tf = 0.05;

motor.velocity_limit = 100;

motor.voltage_limit = 10;

motor.foc_modulation = FOCModulationType::SpaceVectorPWM;

motor.controller = MotionControlType::angle;

motor.torque_controller = TorqueControlType::foc_current;

At around 90 rad/s the supply current is sitting at 2.5A. I’ve checked this with multiple ammeters and two different power supplies so it’s definitely not a peak-current reading. That’s 55W just to spin the motor unloaded, and the board gets noticeably warm. At standstill it’s 0.03A so it’s clearly speed-related.

So basically I’m wondering: is 55W at 90 rad/s just what this motor costs at that speed, or is something wrong with my setup? Any ideas appreciated.

5 Answers

5

Definitely something weird going on. 90rad/s = 860RPM, so it would need to exert 0.61Nm of torque to output 55W of mechanical power, and that would be 0.61*360/8.3=26.5A phase current. Quite a lot more than that motor or driver should be exposed to.

What are your phase currents reading? Or the d-q currents or dc current, just something to get a ballpark idea what’s going on.

Is it a 6PWM driver, like the MKS dual FOC? Then it’s worth increasing the driver.dead_zone because you might see shoot-through.

I had trouble with high inductance motors and checked the datasheet of the EG2133 drivers.
Their inbuild dead-time was as short as nano-seconds IIRC.

Hey @dekutree64,

Thank you for your response!

Here are the q- and d-currents measured with the onboard INA181A2 and printed to the serial output. I capped the maximum velocity at 80 rad/s for safety. At this speed, the power supply ammeter shows 0.85 A:

angle:0.000       vel:0.00     iq:-0.091    id:-0.069
angle:-23.243     vel:79.50    iq:2.347     id:1.407
angle:-63.324     vel:79.90    iq:1.823     id:2.275
angle:-103.423    vel:80.21    iq:1.447     id:1.681
angle:-143.452    vel:79.38    iq:2.135     id:1.283
angle:-183.575    vel:80.31    iq:1.970     id:1.978
angle:-223.638    vel:79.99    iq:1.516     id:1.967
angle:-263.696    vel:79.71    iq:1.871     id:1.486
angle:-303.836    vel:80.60    iq:1.986     id:1.860
angle:-343.876    vel:79.69    iq:1.471     id:2.285
angle:-383.954    vel:79.75    iq:1.770     id:1.565
angle:-424.051    vel:80.37    iq:2.115     id:1.333
angle:-464.107    vel:79.66    iq:1.656     id:2.412
angle:-504.204    vel:80.40    iq:1.597     id:1.882
angle:-544.275    vel:79.94    iq:2.309     id:1.062
angle:-584.332    vel:79.72    iq:1.980     id:2.080
angle:-624.456    vel:80.54    iq:1.539     id:1.989
angle:-664.484    vel:79.53    iq:1.857     id:1.116
angle:-704.602    vel:79.97    iq:2.093     id:2.115
angle:-744.703    vel:80.26    iq:1.559     id:2.064
angle:-784.742    vel:79.34    iq:1.673     id:1.303
angle:-824.855    vel:80.29    iq:2.089     id:1.878
angle:-864.912    vel:79.88    iq:1.592     id:2.350
angle:-904.981    vel:79.51    iq:1.452     id:1.620
angle:-945.107    vel:80.52    iq:2.107     id:1.709
angle:-982.213    vel:55.37    iq:0.275     id:0.416
angle:-995.199    vel:14.50    iq:0.131     id:-0.025
angle:-998.711    vel:3.85     iq:0.165     id:-0.100
angle:-999.616    vel:0.68     iq:0.239     id:-0.128
angle:-999.930    vel:0.05     iq:-0.047    id:-0.033
angle:-999.965    vel:0.06     iq:0.031     id:0.002
angle:-999.984    vel:0.02     iq:0.067     id:-0.017
angle:-999.993   vel:-0.00    iq:0.086     id:-0.050

Hey @o_lampe !

Thank you for your response!

Looking at the schematic of the FOC controller, I believe it uses a 3PWM configuration. Here is the circuit for one of the channels:

That’s even worse, because now you have to rely on the internal dead-time which is 100ns typical.

Seems the whole thing is meant for slow gimbal motors.

PS: I’m not sure about DT being too short, but I haven’t seen “Id” being so high either.
It was always near zero (with estimated_current it IS zero)