I am currently testing the B-G431B-ESC1 in open loop position control with only the friction of a worm drive as the load.
My motor starts skipping at around 75 rad/s velocity limit with the following limits:
motor.current_limit = 4;
driver.voltage_limit = 12;
The Motor has 4 pole pairs and a phase resistance of around 0,35 Ohm.
My goal would be that the motor can spin with 170 rad/sec under a load of 0,28 Nm.
I Only have 12 volts available in my project so that voltage limit can’t get any higher. And for regarding the current limit, under the limitations above the B-G431B-ESC1 already reaches 75 °C after a couple of cycles.
I currently can’t test the closed loop configuration because I don’t have a sensor yet. That’s why I wanted to ask for some feedback if this performance could be achieved with closed loop ?
What is the kv of the motor? You can use that to calculate the necessary current. Torque = current x 8.3 / kv, and by plugging in your target 0.28Nm and rearranging, current = kv / 29.64
If the motor will be mounted to aluminum structure, that will act as a heatsink and increase the amount of current you can use. EDIT: Just noticed it’s the ESC overheating, not the motor. Can you put a heatsink and fan on it? That will probably double the current you can use.
EDIT: More calculations: 170rad/sec = 1623rpm, and to get that with 12V means at least 135kv, which gives 4.5 amps, which is more than you’re already using. And you actually need higher kv than that to make up for the slowdown under load, so probably more like 5 amps.
170 rads per second with 0.28 Nm of torque would be an output power of 47.6 watts. So at 12 volts and say 50% efficiency you would theoretically need 8 amps. 50% efficiency is pretty good and you won’t get that without proper commutation, so no not open loop, but it seems doable. However if efficiency is only 50% then half the power escapes as heat and that’s a fair bit of heat in the motor, however I guess that would be a separate issue which was not the question.
I think the answer then is yes this board can handle it however others have noted it actually gets too hot well before it’s rated current, the specs seem to assume it has a lot of air cooling from the propellor on a drone, it’s supposed to be used in a drone. Perhaps a good cooling fan would get you there. Centrifugal fans tend to have more pressure and higher velocity air streams, and you might want that.
With open loop, the angle between the magnetic field (the resting position of the rotor if it was not under load) and the actual position of the rotor at any given moment (this angle is called the motor timing) will almost always be far from ideal. The better the motor timing the better the energy efficiency and torque per amp you get. The optimal is 1/4 of a “step” (as though it were a stepper motor), i.e. 90 degrees in the electrical cycle. However this point is also basically very close to the point where the motor stalls, I have never been clear why it is not exactly the same point but it’s certainly close.
I might have mixed something up by a factor of two somewhere in there, but the main point is that the point of optimal efficiency is very close to the stall point. This is why open loop does not work well if you need good efficiency, you have to trade between unreliability and good efficiency.
SimpleFOC in torque mode basically reads the angle from the sensor repeatedly and then sets the magnetic field accordingly, so this motor timing thing is very close to the optimal point, theoretically. In reality I think a lot of people are actually getting poor motor timing for various reasons and don’t realize it.
The Motor should be more than cabale to do this. It is out of an adaptive Steering Wheel from Ford where it does more than the performance i am looking for.
Thanks for the Input. I would need to test the kv rating of the motor. I don’t have an angle sensor yet so I would try to find the maximum speed in the open loop velocity control with a voltage limit of I Volt.
Update: I testet the kv value with open loop velocity control. I got a value of 401.
When i multiply this with 1.5(as suggested in code section for bldc motors) the motor reaches 170 rad/sec in open loop velocity control.
I also added the kv value in the open loop position control and there i get a max. of 100 rad/sec velocity. Also the temp on the controller is lower at around 60 °C.
As soon as I get a Sensor and a cooling solution ready I will test it in closed loop torque control
The best way is actually to connect an oscilloscope and turn the motor by hand, then measure the relationship between peak voltage and frequency. This eliminates the complications that are caused by the rest of the system, which will reduce the apparent KV rating to less than what it really is, often by more than 15%.