The "Determining the correct drive for your servo motor" document at http://zone.ni.com/devzone/conceptd.nsf/webmain/92B98933A2494624862567C30052D5A2?opendocument&node=DZ52473_US is clearly written, but I'm wondering if the information is correct.
It says "The servo nuDrive is a +/-48V pulse-width, modulated servo drive... The pulse-width modulation of the drive is 20KHz." I take this to mean that the output is always either + or -48V (never 0 or floating during normal operation), and that the frequency is fixed at 20KHz, with variable duty cycle.
It says "Therefore, dt = 1/20,000 (sec.) = 0.00005 (sec.)". That would be the maximum dt, when the duty cycle is 100%, right?
In example 1, it says "Nominal current (I_n) = 7 Amps max" and "Nominal voltage (V_n) = 14 Volts max". This is confusing because "nominal" and "max" generally mean different things. There is an "instantaneous maximum current" which, if exceeded, may demagnetize the magnets. There is a "steady-state maximum current" which, if exceeded, may cause overheating. There is also a "maximum voltage" which, if exceeded, may cause excessive wear on the brushes, insulation breakdown, or dangerously high motor RPMs.
Two lines later, it says "Motor winding resistance (R_w) = V_n / I_n = 2 ohms". The calculation V_n/I_n is wrong. A better formula would be (V_a - V_g) / I, where V_a is the voltage applied to the motor terminals, and V_g is the voltage generated by the motor (back EMF) at whatever speed the motor is running at. Motor resistance is the resistance of the coil plus the resistance of the brushes. You can get an approximate value by measuring with an ohmmeter (take several readings with the motor shaft at different positions, because the brushes may contact more or fewer windings at different positions). However the resistance may be a bit higher when the motor is running, due to bouncing brushes, and due to skin effect in the motor windings.
Later, in example 1, it says: "So, the change in current is: di = (48 / 0.003) * 0.00005 = 0.8 Amps"
The speed and torque aren't mentioned. I'll assume the author was thinking of 0 speed, 0 torque. But in this case, the duty cycle should be 50%, so dt = .000025, not .00005 sec, right? So di = 0.4 Amps.
By the way, I believe the motor should be modelled as an inductor (L) in series with a voltage source, where the voltage source represents the back EMF generated by the motor rotation. So the "V" in the inductance calculations should be the voltage from the driver _minus_ the back EMF. The "48V" figure is correct only when the motor is not turning.
Next, it says, "Now, the ripple current is dissipated as heat. So, power is: P = I^2 * R_w = (0.8)^2 * 2 = 1.28 Watts"
I think this statement is misleading and inaccurate. There are several ways that energy can get turned into heat: "copper loss", "core loss", and rotational losses (friction, windage, and rotation-induced eddy and hysteresis).
"Copper loss" is the power lost in the electrical resistance of the motor. The proper way to calculate the average power loss is to find the average of the instantaneous power loss over a full PWM cycle, i.e. integral P dt / T. P = I^2 R. I is the total instantaneous current, and will contain a DC component if the average torque is not 0.
If the torque is 0, the average current must be 0 also. The current waveform can be approximated by a triangle wave with a peak-to-peak value of "di". In example 1, the average copper loss power would be .08W.
Note again that the copper loss is based on total current, not ripple current. So copper losses due to ripple current are apt to be insignificant, unless the ripple current is a large fraction of the full-load current.
"Core loss" is energy loss due to hysteresis and eddy currents. I believe it could be modelled as a resistor in parallel with the motor inductance. Thus, this power loss would increase as the square of the ripple current. However, I don't know how significant this loss would be.
I think the torque applied to the rotor is proportional to the instantaneous current in the armature, which means that ripple current causes ripple in the torque. Is this correct? If so, that would be one reason to keep the ripple current low (to avoid vibrating the mechanical load). Other reasons to keep the ripple current low (maybe 10% of the drive current) are that ripple current can cause the maximum instantaneous current rating to be exceeded, and it causes magnetostriction (acoustic "whine").
I don't have much practical experience with motor controls, so I'm wondering if my speculations above are correct. Thanks for any comments.