July 23, 2013

Motor Madness - Part III (...and final, I promise)

tl_files/labsquad/blog_images/Motor Madness/dumb.jpgServo Motors

In the last two installments, we talked about simple DC motors and stepper motors. To recap, a DC motor is basically the simplest (think 'Lloyd' from the movie 'Dumb and Dumber') motor you can find. Simply apply voltage with sufficient current and it spins. You can reverse the spin direction by reversing voltage polarity, and you can control the speed by applying varying voltage levels or by sending short pulses of voltage. Stepper motors are a...'step up' (I hate puns) insofar as intelligence goes (think 'Harry' from 'Dumb and Dumber'). By which I mean, you can send them specific (countable) pulses and the motor will rotate in very predictable increments (steps). Steppers are natively 'open loop' but are oftem fitted with rotary encoders to provide position feedback. However...that position feedback is often an 'after the fact' reconcilliation on the number of steps commanded vs the number of pulses counted. It is not a 'tl_files/labsquad/blog_images/Motor Madness/servo-amp.jpgmonitor on the fly' feedback loop and that is by definition what a servo motor brings to the table.

In the most basic sense, a servo motor is a brushess DC motor fitted with a feedback sensor. The output of the feedback sensor is used to determine the final position of the motor. These devices can be very small (like hobby RC servos) or larger. In general, with increased size comes larger windings which enable more current and greater torque.   Dtl_files/labsquad/blog_images/Motor Madness/feedback.gifepending on the device the motor is attached to, you can expect to see a series of drive reduction gears or pulleys for even greater torque. Unlike hobby servos which have both gear reduction and circuitry embedded within their housings and use potentiometers for feedback, most industrial servo motors require a separate driver or control board that provides motor voltage and also monitors the encoder in real time.  The image to the left represents a simple hobby servo which nicely illustrates the feeback loop concept. Both the input signal and the output from the sensor (potentiometer, in this case) are feed into a comparator circuit. Because the gearing is built in and known relative to the gear ratios, the comparator can essentially decide when the motor needs to be stopped in order to achieve the commanded motion (so many pulses should equal so much resistance).  

The pulses sent to the motor are generally all the same voltage but number of pulses sent over time is what determines speed.  This is called Pulse Wideth Modulation (PWM).

Troubleshooting a servo motor is not easy.  If the motor and encoder are separate units, you can apply the rated voltage to motor (disconnect any pulley/belt or linkages first!!!).   Encoders are a bit trickier and we will cover them in a future tutorial.   You can try some basics like checking wiring connectors or blowing air the encoder to remove dust, dirt or grease.  Beyond that...you will need to crack open the case and hook up a scope to see what the pulse train coming from the encoders look like.  Most encoders are off the shelf devices and you can Google specs to compare with what you have.   This will at least help you zone in on the encoder or the controller/board it is plugged into.