Time for a more in-depth investigation into the phase current of the motors for a given speed and torque… This is important to understand, as the motor controller heat dissipation is based on the bus voltage and the output current.
Previous Work
There was a loose approximation done here: Motor Controller Heat Dissipation
And some more details on the use cases here: Motor Controller Cooling Calculations
However there is still a lot to learn here.
Resources
These resources are very helpful to understand BLDC motor control:
Benjamin Vedder’s VESC project: http://vedder.se/2015/01/vesc-open-source-esc/
Link to a great explanation of operating points and speed, current, torque, etc: https://things-in-motion.blogspot.com/2019/05/understanding-bldc-pmsm-electric-motors.html
Texas Instruments InstaSpin motor control algorithm: https://training.ti.com/introduction-instaspin-bldc-motor-control-solution
Motor and motor controller documentation.
Back-EMF and Kv
http://learningrc.com/motor-kv/
Our motor speed is limited by the back-emf of the motor, which is the voltage produced by the coils when the magnets are rotating around it. We are typically able to calculate this by using the Kv value of the motor (rpm / volt) and a known rpm. When this back-emf voltage equals the supply voltage, then we can no longer produce any torque since there is no voltage difference to drive current through the motor phase coils.
We should be able to make an estimate of the Kv value by looking at the max speed in the datasheets.
For each coil (HI / LO) we have these 2 graphs: for the PWM and the ECO modes of the motor controllers.
I’m not sure why they call it PWM/ECO - there is an ECO/Power mode switch and a Current Control / PWM Control Switch as well. Either way, we can get a rough estimate of the Kv by looking at the max speed and dividing that by the bus voltage.
Kv (rpm/V) = max speed (rpm) / bus voltage (V)
Coil | Eco/PWM Graph | Kv (rpm/V of back-emf) |
---|---|---|
HI (short coil - high speed) | PWM | 5.6412 |
LO (long coil - low speed) | PWM | 4.8702 |
HI (short coil - high speed) | ECO | 6.0153 |
LO (long coil - low speed) | ECO | 5.2061 |
I believe this to be reasonable accurate - the Kv estimation is a little wonky since we have not idea of the test setup or procedures that Nomura was using, but I believe this to be within 10% of the actual value.
Phase Current
The phase current should be independant of the speed that you are travelling at, and only depend on the torque requirement. A higher speed will mean the same current at a high voltage - so more power, but not more current.
Phase Current (A) = Torque(Nm) * pi * Kv / 30
We will go with Kv = 6 for the worst-case phase current according to the estimations above, however I would love to measure the Kv rating of the motor once we get it hooked up to the test stand.
I made this excel sheet and tried to do more with it than I was able to, so some of the data is irrelevant and incorrect but you can have a look at it if you want.
BLDCs - From Class Notes in MTE322
Max speed we can achieve is when the back-emf is equal to the supply voltage. This condition means we can no longer have current flowing through the coils, and thus no torque is produced.
Variable | Symbol | Units | Value | Reasoning |
---|---|---|---|---|
Supply Voltage | V | Volts | 90 to 150V | This is the voltage range of our 36S battery pack. |
Back-Emf (or the voltage produced by the coils rotating in a magnetic field) | E | Volts | ||
Motor Current | I | Amps | ||
Motor Resistance, LOW coil | R_low | Ohms | 0.997 | According to motor graphs given in datasheet. See spreadsheet above. |
Motor Resistance, HIGH coil | R_high | Ohms | 1.33 | According to motor graphs given in datasheet. See spreadsheet above. |
Motor Speed | n | rpm | 1rpm = 2*pi/60 rad/s | |
Motor Speed | w | rad/s | ||
Back-Emf Constant, LOW COIL | Kv_low_rpm | Volts / rpm | 1/4.87 = 0.20533 | According to motor graphs given in datasheet. See spreadsheet above. |
Back-Emf Constant, HIGH COIL | Kv_high_rpm | Volts / rpm | 1/5.64 = 0.177267 | According to motor graphs given in datasheet. See spreadsheet above. |
Back-Emf Constant, LOW COIL | Kv_low_rad | Volts / (rad/s) | 1.96075 | Calculated from Kv_low_rpm 1/4.87 (Volts/rpm) * (1rpm/(2*pi/60) rad/s) |
Back-Emf Constant, HIGH COIL | Kv_high_rad | Volts / (rad/s) | 1.69277 | Calculated from Kv_low_rpm 1/5.64 (Volts/rpm) * (1rpm/(2*pi/60) rad/s) |
Torque Constant, LOW COIL | Kt_low | Nm / Amp | 1.96075 | Same value as Kv_low_rad (https://micromouseonline.com/micromouse-book/motors/motor-equations/ ) |
Torque Constant, HIGH COIL | Kt_high | Nm / Amp | 1.69277 | Same value as Kv_high_rad (https://micromouseonline.com/micromouse-book/motors/motor-equations/ ) |
1: V = E+IR
2: E = Kv_rpm * n = Kv_rad * w
3: I = T/Kt
Subbing 2 and 3 into 1
4: V = Kv_rad * w + (T / Kt) * R
If we rearrange the equation, we can get a maximum torque as a function of speed.
5: T = (Kt / R) * (V - Kv_rad * w)
We can plot this in python for both the high and the low cables with the parameters from the table above. These are just simple linear equations, but it is easier to visualize in a graph. NOTE - the minimum battery voltage of 90V was used to generate these curves.
We also need to pay attention to the maximum battery current, as that will limit the maximum torque that we can produce.
Now, we need to have a discussion about the maximum motor phase currents.
There is a start of an investigation into that here: Determining Motor Current Limits