How do you guys calculate a motor’s peak power at a given voltage? Vex seems to only provide specs at 12V.
You can get a decent approximation by multiplying the 12V peak power by the square of the %Vin.
Example with CIM at 9V:
- CIM peak power @ 12V = 337W
- %Vin = 9V/12V = 75%
- CIM peak power @ 9V = 337W * 0.75^2 = 337*0.5625 = 189.5W
FYI your stall torque and free speed will be multiplied by %Vin. Roughly. So at 9V a CIM is around 2.41Nm*0.75 = 1.81Nm stall torque and 5330RPM*0.75=3997.5 RPM free speed.
@pkrishna3082’s formula is the traditional, and likely pretty good, answer to your question.
That said, why are you asking this question? If you’re trying to calculate the performance of a climb system which may be operating at a battery charge of (for example) 10.5V, then great!
However, if you are doing voltage limiting in an attempt to prevent overheating a motor, let me suggest limiting current instead. Heat buildup in motor windings is caused by current flowing, not applied voltage - you can run a ventilated motor (e.g. 775pro) at 12V all season, 24/7 if your load is light enough that you aren’t drawing too many amps. However, even at 1.2V and stall, the motor will burn up in a few hours - 3946 did that with a CIM at a parade last year. As a byproduct, you could get better performance if your system isn’t overloaded.
I’m trying to calculate whether or not a motor can have enough power to do a task (climbing) at a certain voltage level, and I limited the voltage because the motor can’t really stall for long enough.
If the problem is inability to withstand a stall, please consider current limiting rather than voltage limiting; it provides a better solution to the issue, and allows better performance when/if the mechanical system is running freely. You should know that when a brushed motor is driven with an x% duty cycle, the effective current through the motor is equal to the PDP/motor controller measured current divided by x% (meaning current * 100/x).
Haven’t heard that one before (regarding current at x% duty cycle). Why is that the case? Genuinely curious and trying to learn
It’s new for me too. Please explain how to do it. Is there any mechanical way to achieve a current limit?
When brushed motors are operated at partial throttle, what happens is actually a partial duty cycle from the battery to the controller/motor circuit. The PDP/motor controller current is measured on the 12V side in either case. As I understand it, current flows pretty continuously on the motor side of the current, which causes the motor to act effectively as though it were provided with 12V multiplied by the duty cycle. Conservation of energy requires that the effective current on the motor side is then the measured current divided by the duty cycle, as power = current * voltage for DC circuits.
Probably more than I should state here: I’m still not 100% convinced all of this is correct, and I have some measurements planned to confirm/correct, but at this point, this is certainly a reasonable/defensible position which several credible teams doing testing have found beleivable.
Since motors.vex.com lists their locked rotor stall tests data by stall voltage instead of stall current, I personally prefer doing the calculations by max allowable voltage rather than max allowable current. Since (as far as we’re concerned) the two are related by you’re effectively doing the same thing either way.
In practice it’s probably better to use a current limit because that actually limits what you care about (assuming you have the software capabilities to do so). But when you’re doing the calculations, you can assume the worst-case scenario where the motor is constantly at stall at the voltage you’re giving it. Then you can use Vex’s stall data to check if your motor will survive what you need it to. If in reality your motor isn’t actually at stall and therefore draws less than stall current, that’s just an added factor of safety.
In any case, I recommend using my design spreadsheet to help with designing mechanisms like this. It help you choose the right motor/gear ratio combination for your mechanisms to get the qualities you want without killing the motors. It does let you change the voltage applied, and modifies the motor values accordingly.
Thank you, that helped alot!
At stall conditions, yes, you’re effectively doing the same thing either way because the motor is not turning and it is reduced to being a torque-generating resistor. At operating conditions, where some of the voltage is being offset by back-EMFs, current limits will deliver better performance than proportionally determined voltage limits.
That was my point, sorry if I didn’t make it clearly. For arms/elevators, the most important factor to check when choosing motors and gear ratios is the stall condition. You need to make sure that your motor can stay at stall at the voltage needed to hold the arm/elevator in place for the time needed without blowing up. For that calculation, there’s no difference between using current and voltage, and IMO the voltage calculation is easier.
In practice when actually controlling the arm, you ideally want to limit the thing that actually kills motors: current. That way if you give the motor a higher or lower voltage so the arm moves, the current is limited accordingly to keep you from killing the motor.
After the results of last time I planned a CIM to be stalled at 1.2V, I try to design for springs or counter-weights or friction or brakes or magnets or latches or pneumatics to hold things in place; anything but a stalled motor. Murphy snuck in, the use case changed, and a voltage which was just fine for match play and even practice sessions ended up smoking the motor when we drove the robot in a parade.
Photo of said robot taken about three hours before smoking the CIM:
The motor in question held the climbing mechanism inside the robot; without a bit of force holding it in, it would fall out the back whenever the robot accelerated more than about 2 or 3 ft/s/s.