I am using 18 of this hobby servos for a hexapod, that are going to run simultaneously. Now I need to decide the power source, and need to determine the current needed. I know that the maximum current that a motor draws is its stall current, and it should run with lower current than the stall current. But no datasheet mentions the stall current. All of them mentions the stall torque, 1.6kg-cm(at 4.8V) in this case. And I cannot find any equation that calculates the stall current from stall torque and applied voltage. Some people suggested to actually stall the servo and find the current with an ammeter, but I'd rather find it by calculation. So how can I find the stall current?
I cannot find any equation that calculates the stall current from stall torque and applied voltage.
There is an equation that calculates motor current from torque and voltage, but you also need the motor's torque constant (Kt) or velocity constant (Kv). Kv can be roughly derived from the servo's operating speed at a particular voltage, so you might think that the published servo specs are enough. Problem is these specs were not intended for calculating current, so their relevance is suspect (eg. torque rating may not be at stall, operating speed includes starting and stopping time) and being cheap Chinese servos their specs probably aren't accurate anyway.
The easiest safe way to calculate stall current is to take the bottom off the servo and measure the motor's resistance (Rm) with an ohmmeter. Then divide voltage by resistance to get current. However this will probably overestimate the stall current because:-
The H bridge transistors have some loss, so the motor won't get the full supply voltage.
The servo doesn't power the motor continuously, but with pulses whose width is proportional to the difference between commanded and actual positions. At normal frame rate (50Hz) there is always a gap between motor drive pulses, so even at stall the motor may only be on 70~80% of the time.
So if you want to find out how much current the servo really draws, you will just have to measure it. Measuring supply current while stalling the servo at one end of its travel and commanding it to go to other end will give you the worst-case average current at stall, but not the peak current. This test is also very hard on the servo. A better way is to put a current shunt in one supply lead and measure instantaneous current while the servo is operating.
The motor in the HXT900 I tested measured 4.1Ω. When the servo was powered with 5V the motor pulses were 3V high (2V drop in the H bridge and wiring!). This equates to 0.73A peak current. Here's a scope trace of supply current measured with a 0.1Ω shunt resistor, while the servo was making rapid small reversing movements.
V = IR
To the first order, stall current = Applied drive voltage divided by the DC resistance of the coil.
The stall current occurs when the motor is stalled (not moving), so there is no reactance and no "back electromotive force (EMF)". It's literally only the resistance of the wiring in the servo motor that is resisting the flow of current... just like a resistor in a DC circuit.
Power=torque x angular velocity Power in watts Torque in Nm A. Velocity in rd/sec
That is the mechanical power that the motor is delivering to move an arm of the robot
So its not that easy to calculate but if you know the angular velocity from the datasheet you can calculate the power
Bow the electrical power consumed by the motor is given by: Power=V x I V: Volts I: amps
Ofcource the mechanical power isn't ecactly equal to the electrical power as some of the electrical power is lost due to friction (especially because of gears) and heat (elextrical resistance of coils inside motor) and the ratio of the used mechanical power over the total consumed power is the effeciency of the motor.
Actually there are special expensive equipment needed to find the torque and velocity of the motor..They use these equipments to model the motor. So it's not as simple as you may have thought
Now to find the stall current, the electrical energy supplies at stall is all converted into heat due to the internal resistance of the motor. But you can't actually access the leads of the actual motor because there is a driver inside the servo and that driver is connected to the motor. Theoratically you could have stalled the motor at a low voltage and simply use u=ir to find r. But you can't do that for a serco as it's actually made up of a microcontroller, a driver, a feedback sensor(potentiometer) and a motor. The stall current may not be the actual stall current but maybe a limit imposed by the microcontroller in the servo motor. Summary: stall the motor and measure the current!!