How to choose the best motor for a given application?

I have an application where I need to move a weight on a belt drive as fast as possible back and forth. I can vary the pulley circumference as I like and I intend to choose the circumference in a way that will give me equal reflected intertia of the rotating parts and the parts that are moved linearly, as this should allow for the maximum acceleration.

Now my question: How do I choose the best motor for this applcation? Obviously I aim for a high torque to inertia ratio, but this still leaves different windings, resulting in different Kv (rpm/volt).

As I learned here:


the torque efficiency (torque per power consumed) is independent of Kv.

How do I choose the Kv in that case if I have similar motors available that only differ in Kv?

You want to choose Kv based on your max speed and the bus voltage you want to use.

You want to pick the lowest Kv that satisfies:
Vbus <= max rpm * Kv / 0.7 Edit: see below

Are you sure the equation is correct and you didn’t mean the highest Kv? The lowest Kv for this equation would be 0.

Is the factor of 0.7 the same factor that you call “max modulation” in the odrive motor guide, where it is chosen to be 0.8? Where does this number come from?

Oops you are right, I edited my post and changed the inequality sign.

Yes 0.7 is related to the max modulation: it is 0.1 less than max modulation to account for voltage drop in the resistance and inductance of the motor.

Ok, that makes more sense. But you are multiplying RPM with Kv which will give you unit rotation^2/voltage. This can’t be right.

So shouldn’t the formula be: Kv >= RPM/(Vbus * 0.7) ?

Then you would basically say: Choose the slowest winding (lowest Kv) that will allow your motor to run fast enough if you use 70% of the available suppy voltage.

This sounds like an easy to remember design rule that would be useful in a “How to design a system with odrive” guide.

Now I’m wondering: If the current in the coils is regulated and higher Kv should allow for higher currents and higher speeds and at the same time torque efficiency is independent of Kv, what is the reason to choose a low Kv? Wouldn’t a higher Kv always give more flexibility?

Yes that’s exactly what I meant to write. Sorry I guess I wasn’t being very careful.

Yes that’s true. That’s why we use the maximum rpm you would ever want to use, not nominal rpm. The reason is that more current is less efficient in the ODrive’s mosfets, and in the cable to the motor. Like you said, the efficiency in the motor itself should be roughly independent of the Kv.