There are several levels of sophistication in motion control, some simple, some less so.
At its most basic level, one button starts a motor and another button stops it. The velocity of the movement is fixed by the motor's characteristics, e.g., an induction motor with a rated RPM and line frequency. Functionally, there is no position or velocity defined. Applications that fit these criteria might include motors powering conveyer belts, pumps, fans, and everyday devices found in homes such as furnaces, washing machines, dryers, or vacuum cleaners.
Many industrial applications control motion this way as well. The start-button's signal may be processed by a PLC or controlled by additional devices such as sensing switches, which may replace or augment the start or stop buttons.
More precise motion performance controls trajectory and velocity over time and specifies endpoints or distance to be traveled. In addition, two or more axes may execute simultaneously to create a composite move through space. A motor drive generates various excitation signals, phases, and frequencies that direct motors to run at variable speeds in either forward or reverse, as well as remain stationary.
Precision Motion Principles
This article covers the principles and execution mechanisms of precise motion control. A thorough review of these principles may permit readers a chance to better understand the high-level programming capabilities of current motion control technologies and apply them practically, i.e., collecting motion commands, graphically describing trajectories (defining the cutting paths from raw stock to finished part), or programming a robot, to name just a few.
This article also describes how a PC may be used to precisely control motion over several axes. In this case, the actuators may be independent single axes, three-linear-axes systems typically found on milling machines, or sophisticated five-axes systems found controlling robots with articulating or jointed arms.
The control algorithm defines the move of each axis as a function of time and then computes the trajectory in increments of time or [Delta]t. In accordance with a sensible division of computing labor, only a few, simple motion controllers close some of the above-mentioned low-level loops in the PC, while most other motion controllers handle the loop closures and low-level routine computations of one or more axes with separate axis CPUs.
It's All About Feedback
The feedback loop is a key element of precise motion control and has to be in place before any motion commands can be executed. Figure 1 shows a feedback loop including a digital rotary encoder that provides two pulse trains, normally identified as track A and track B. These encoders provide 4,096 pulses per turn and track; so by decoding every transition, 16,384 pulses are obtained per revolution. The two tracks are resolved in a bi-directional logic, and feedback pulses are applied to an up/down counter. The contents of the counter may be applied to a digital-to-analog (D/A) converter and the resulting analog voltage serves as a signal to the drive that generates the motor excitation. In most cases, the encoder is directly and physically coupled to the motor shaft.
Figure 1: The Feedback Loop is Key
If the polarity of the feedback pulses is correct, the counter initially reset, and zero analog voltage defined as no motion, then this system of feedback will hold the motor at a standstill. Any disturbance that tries to rotate the shaft will cause an offset in the counter and thus a corrective drive signal to oppose the action. A conventional tachometer coupled to the motor's shaft could be introduced at this point to enhance the feedback system and stabilize the velocity loop, again, as long as it observes the proper polarity of the signal.
Numerical Control's Legacy
Today's sophisticated motion controls had their origin in the hardware Numerical Control(NC)Systems of the mid-1960s. In addition to the feedback loop shown in Figure 1, NC systems provided coordinated command pulse trains to the feedback loop of each axis. Each up/down counter had two more inputs: Command pulse train and sign. When command pulses were added to the counter (+ pulses), the value in the counter increased and caused a drive signal to the motor in a way that generated feedback pulses (- pulses) that subtracted from the counter again. During the move, the offset value in the counter was the following error. When command pulses ceased, the counter eventually returned to a zero value and the move stopped.
Figure 2 shows the introduction of the command pulse train. An anti-coincidence circuit assures that no pulse is lost from either source. If for example, a command (+) and a feedback (-) occur together, no count pulse is passed on to the counter. If a command (+) and a feedback (+) should occur together then the counter is incrementally advanced by two.
Figure 2: Get on the Pulse Train
Early NC systems used rate multipliers to generate pulse trains for the individual axis. Basically, a common counter chain divided a high-speed pulse source by several decades; each axis gated-out the proper number of pulses according to its programmed command. The commands for each axis were given in incremental form; as such, the value was equal to the number of pulses to be generated per move block.
Since axes data are gated from the same common divider chain, a simultaneous move results. If the high-speed pulse source changes its frequency over time, then all axes will follow in lock step, allowing for acceleration and deceleration or feed-rate override without sacrificing the programmed path. Figure 3 shows an example of a counter chain with boxes representing the gates, selected with the individual incremental axis data.