@dc42 and @chrishamm thank you for the EMF calculator. I was busy replicating this work when I found it.
I think I have found several errors in the calculations of the "Speed at which torque starts to drop" values. (Just to give some credence to what I suggest below it might be helpful to know I am a Marlin dev.)
- When calculating
revsTorqueDropLowSlip
andrevsTorqueDropHighSlip
I think just dividing speed by the number of motors is incorrect. Instead, the value ofsupplyVoltage
should be divided by the number of motors. i.e. motors in series form a potential divider for the supply voltage. An easy way to test my assertion is to consider what happens with two motors in series whenresistance * motorCurrent > supplyVoltage / 2
. That should result in "n/a" because the voltage cannot even drive the requested current through the two winding resistances. But, instead, the web page just halves the speeds. driverVoltageDrop
is double counted. It is incorporated whenvoltageDrop
is calculated and then, later, whenrevsTorqueDropLowSlip
andrevsTorqueDropHighSlip
are calculated, it is added on tovoltageDrop
again.revsTorqueDropHighSlip
is missingvoltageDrop
in two places. This formula is the result of applying the quadratic formula to solve forrevs
in the equationsupplyVoltage = sqrt( (revs * inductiveBackEmfPerRevSec)^2 + (revs * motionBackEmfPerRevSec + voltageDrop)^2 )
. This expands to0 = revs^2 * inductiveBackEmfPerRevSec^2 + revs^2 * motionBackEmfPerRevSec^2 + 2 * revs^2 * motionBackEmfPerRevSec * voltageDrop + voltageDrop^2 - supplyVoltage^2
. Theb
coefficient in this equation is2 * motionBackEmfPerRevSec * voltageDrop
and it is thisvoltageDrop
which is lost when the quadratic formula is applied to calculaterevsTorqueDropHighSlip
.