Quick run down on what the hell motor parameters mean during detection, and how you can use them to help in your calculations
Resistance: The line to neutral (from ESC terminal to center tap of motor windings) resistance of each phase of the motor. This determines how much heat per ampere is dissipated inside the motor. The equation is approximately:
For FOC:
For BLDC it’s :
Where I is motor current, R is phase resistance.
This does not include things like bearing losses, but can give you an estimation of what kind of motor currents you can run before the motor starts overheating.
Typical values for 6355 and 6374 are between .015 ohm and .040 ohm.
Higher rated Kv usually means lower resistance.
Larger motor means lower resistance.
Resistance will go UP with an increase in temperature.
Inductance: This is how fast the motor will respond to requested current changes, the lower, the faster the response. It is mostly for the ESC to figure out how to drive the motor without exploding. It is the line to neutral inductance. It also affects HFI settings. Higher inductance (should) mean lower HFI voltages needed before saturation occurs, i.e. use lower HFI voltages on a motor with higher inductance. HFI shouldn’t need tuning in the future (or be as loud), but more on that later. Additionally, lower inductances will usually benefit from higher switching frequencies.
Typical values for 6355 and 6374 are usually between .000009 Henries to .000035 Henries.
Higher rated Kv means lower inductance.
Larger motors means lower inductance.
Inductance will go DOWN with an increase in temperature.
Flux Linkage: This is a big one, this is effectively the torque constant
The formula for the torque constant is
Where P is the number of pole pairs and λ is flux linkage in V/(rads/s). Typical number of poles pairs is 7, but may vary for other types of motors.
So what is torque constant? It is your TORQUE PER AMPERE. For every Amp you put in, you’ll get torque constant Newton-meters per radian out of the motor.
For example, a motor with a torque constant of .05 when supplied 40A in FOC will output a roughly constant torque of 2 Newton-meters per radian.
For BLDC, it will vary from this value to ~1.15 times this value over the course of one commutation, average ~1.1
This value, the torque constant is in direct relation to the actual Kv of the motor. The relationship being
Given flux linkage, you can directly calculate the real Kv of the motor.
Example:
Motor has flux linkage of .00495 V/(rad/s), and has 14 poles. Kt is 1.5 * 7 * .00495 =~.0519.
60 / (2* π *.0519) = ~183.
This doesn’t match the rating on your motor? Don’t fret. the Kv rating deviates by as much as plus or minus 10% according to the manufacturer.
Flux linkage will go DOWN with an increase in temperature.
Meaning of it all
So, why does the ESC need these values? It needs them so it can use some math black magics to indirectly estimate the back-EMF and determine the rotor position in sensorless FOC. HFI doesn’t actually need these values (aside from the PI current controller tuning), but will have serious issues with running at high speed. The highest I’ve gotten it to run is about 10k erpm before the low pass filter starts attenuating the signal and the position estimation error becomes way too much.
Sensored FOC implementations do not need these values, aside from PI current controller tuning.
ALSO the VESC returns these parameters in non-standard units. It returns resistance in MILIohms (so divide by 1,000)
inductance in MICROhenries (so divide by 1,000,000). (it’s also off by exactly half but let’s not get into that).
and flux linkage in MILIvolts per radian per second (so divide by 1,000).