Download Implementing Precision High-Speed Linear Motion Control

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Centripetal force wikipedia , lookup

Inertia wikipedia , lookup

Newton's laws of motion wikipedia , lookup

Machine (mechanical) wikipedia , lookup

Stepper motor wikipedia , lookup

Variable-frequency drive wikipedia , lookup

Equations of motion wikipedia , lookup

Pedelec wikipedia , lookup

Rotary encoder wikipedia , lookup

Transcript
Implementing Precision High-Speed Linear Motion Control
The selection of the proper components for the application and then carefully tuning them with
software tools is the key to fast and precise motion control. The principles of this linear motion
example can be applied to a host of unique applications.
by Todd Shearer, Galil Motion Control
Solving high performance motion control applications requires that a design engineer not only be able
to select the proper components, but also be able to tune these components for the required
performance. Many of these high performance motion applications fall into one of two categories; high
speed applications with less stringent accuracy requirements, or high accuracy applications which don't
require high speed motion. The most difficult applications to design and implement are those that
require both.
Examples of these high-speed, high-accuracy applications are found in most industries; test and
measurement of electronic components, semiconductor die bonding, fluid dispense for PCB
manufacturing and sample analysis in bio-tech applications. Some of these applications require
position accuracies down to the nanometer level, with motion times on the order of milliseconds. In
order to achieve this level of performance, a design engineer will need to make sure that all the motion
components in the system are up to the task. The design engineer is also responsible for tuning all the
components in the servo loop so that the performance can be achieved.
A recent application for a semiconductor component testing machine shown in Figure 1 provides a
good example of how to design high performance motion control into a system. The application
consisted of an existing test fixture, which was being updated with newer motion components for
higher throughput. The sensor is automatically loaded into a probe which is attached to a linear motor.
A custom shaped disc rotates in front of the sensor to create a magnetic field. The sensor is moved
through a series of short, accurate moves to positions within this field, and the sensor output is read for
a full sensitivity “map.” Each sensor must be read at up to 50 distinct positions, so short move and
settle times are critical.
Selecting Components to Meet the Requirements
In this example application, the step moves of the linear motor range from a minimum of 0.001” up to
0.511”. The goal is for the motor to move and settle within a position window in a time of 1-2 ms per
0.001”. For example, a 0.001” move should take 1-2 ms, while a 0.01” move should take no more than
10-20 ms. Most importantly, the motor must not overshoot the target position by more than 0.0005” as
this would invalidate the test measurement. In order to benchmark the system performance, the
customer required measured move and settle times for distances of 0.001”, 0.002”, 0.004”, 0.008”,
0.016”, 0.032”, 0.064” and 0.128”. Motion was considered complete when the motor was within the
position window of +/-0.0005”.
Once the motion specifications of the system have been determined, the next step is to select the
components which allow this motion to occur. The critical components that will affect the motion of
the system are the servo motor and mechanics, encoder or other position feedback device, power
amplifier and motion controller. Each must be chosen based on their ability to individually provide the
performance defined in the motion specification.
The first decision for component selection is to determine what type of motor technology should be
used. There are a wide range of technologies available to the design engineer, ranging from DC servo
motors with ball screw translation to brushless linear motors to piezo-ceramic actuators. Some motor
technologies can be ruled out immediately based on limitations. This application isn't appropriate for
stepper motors due to the high accelerations, nor would hydraulics or pneumatics be suitable. This
leaves three main technologies; rotary servo motors driving a ball screw, linear servo motors and piezoceramic actuators.
The decision on which technology to use depends on the details of the application. A piezo-ceramic
actuator could be very good for this type of application, but has limitations on payload and travel
distance. A rotary servo motor with a ball screw linear translation could be a good choice, but there are
sacrifices that would be made due to backlash in the transmission. Backlash has the potential to add
positional errors or motion instability into a system. For this application, a brushless linear motor is the
best choice. This type of motor is able to provide the full travel length required, sufficient torque for
the high accelerations and being a linear motor, the load is directly coupled to the motor to remove any
backlash concerns. Once this motor type was determined, a manufacturer was contacted for help with
motor sizing.
The next step is to determine the proper feedback device. As with motors, there are many encoder
technologies available to the design engineer such as rotary quadrature encoders, linear encoders,
absolute binary encoders and absolute serial encoders to name a few. Given that a linear motor was
selected for the motor technology, some sort of linear encoder would be suitable for positional
feedback. When selecting a linear encoder, a design engineer could select a standard TTL quadrature
output encoder, or could choose a model which provides a sine and cosine output. The sine/cosine
encoder outputs a sine and a cosine waveform, which are then interpolated by the motion controller for
accurate positioning. The benefit of this technology is that it gives flexibility of design, as most motion
controllers allow a software selectable level of interpolation. It also reduces cost, as the encoder does
not need to have an expensive integrated interpolation circuit. As for raw numbers, the typical period
of a sine/cosine encoder is 20 microns, which when interpolated up to 4096x will give a position
accuracy down to 4.88 nanometers. This encoder technology was suitable for the application, and was
thus specified for the final machine.
The power amplifier for the most part is a decision that comes down to proper sizing, although there
are also various technologies available. Power amplifier technology includes digital sinusoidal servo
amplifiers, analog sinusoidal servo amplifiers, analog trapezoidal amplifiers and linear servo
amplifiers. Analog servo amplifiers give good performance, but don't have easy software programming
interfaces for tuning of high performance applications. Linear servo amplifiers give very smooth
motion performance, but at high current and voltage levels may be cost and size prohibitive. If the goal
is smooth operation, high power output for high accelerations and high level software tools for tuning a
digital servo amplifier with sinusoidal output is the proper choice. The sinusoidal output ensures
smooth motion, and the digital interface allows for easy tuning of the amplifier. This tuning is a critical
aspect of the power amplifier, as it allows the design engineer to increase the performance of the drive
to meet the application specifications.
The final step is to select the motion controller. In some respects, this is the most critical choice as the
motion controller is the heart of the system. The motion controller is responsible for the positioning
and control of the motors, coordination of motion, integration of I/O and even the user interface for the
operator to control the machine. With all of these requirements, a high performance motion controller
is a necessity. There are many factors that need to be considered when selecting the motion controller.
Will the controller reside within a PC or external to a PC? What type of communication to the motion
controller is required; ethernet, serial or PCI bus? How many I/O points should the controller support,
and will there be both analog and digital I/O? As for programming, should the unit program in C++ or
Visual BASIC? In GCode or Ladder logic? Or some proprietary language?
Every manufacturer's motion controller has differences from their competitors’, so it is the role of the
design engineer to sort through all the specifications and determine which is the best fit. The above
factors are some which should be weighed when making a decision. However, given that the goal is to
select a motion controller to control a high performance machine, some specifications are more
important than others. The controller should support high servo bandwidth. A servo loop closure time
of 125 microseconds or less would be ideal for the example application. The ability to receive and
interpolate the sine/cosine feedback from the encoder is also a requirement. Finally, an advanced filter
for controlling the motor is important. A proportional-integral-derivative (PID) filter with additional
features such as feedforward terms and low pass filter is a good selection for this application.
How to tune for high speed, high accuracy
With all of the components selected, the next step is to connect the system and begin tuning the motion
for required performance. This step is every bit as important as component selection, but should be
made easier by advanced software packages from both the motion controller and power amplifier. At
this step, the bulk of the work is done with the motion controller, as it is responsible for positioning of
the system. In this application, the Galil DMC-4040 controller was selected based on it's high servo
bandwidth (up to 32kHz) along with it's ability to take feedback from a sine/cosine encoder and
interpolate at a selected resolution. The controller also gave the customer the required number of I/O
points, along with the stand-alone ethernet capability they were looking for in the application. Setup
and tuning of the system with regards to the motion controller had two major portions; sine/cosine
feedback connection, and tuning of the servo filter.
First, the sine/cosine encoder is connected to the internal motion controller interpolation board. This
sine/cosine interpolation allows the user to select an interpolation resolution from 32-4096x. An
interpolation of 64x was set in the software, giving a positional accuracy of 0.3125 micron which was
well within the required accuracy of 0.0005” (12.5 micron). With the feedback signals connected at the
motion controller, the software command TP (Tell Position) was used to read and verify proper encoder
positions.
Next, the motion controller's PID filter is to be tuned for optimum performance. Servo tuning is a
process of moving the motor back and forth in a step function and adjusting the filter gains for
optimum performance. Graphical tools, in this case Galil's software package “GalilTools”, were used
to visually display the system response in an oscilloscope format. The software graphed responses for
actual encoder position (TP), commanded encoder position (RP), position error (TE) and motor torque
(TT). As the motor is moved through it's commanded step function and the filter gains adjusted, the
goal is to minimize the position error to meet the customer specifications.
From testing, it was found that a servo update rate of 16kHz was a sufficiently fast time base for this
system, so the TM value (servo update) was set to 62.5usec. This is the rate at which the servo system
reads it's positions and calculates the appropriate response.
When tuning a servo system, the basic PID filter terms are tuned first, giving the basic performance to
the system. They are raised to values that minimize error, yet don't cause excessive overshoot or
instability.
The higher level servo parameters are added last. For this application, feedforward terms were critical.
These terms (acceleration and deceleration feedforward) minimize position error at the acceleration and
deceleration phases of the motion, without causing instability. An integrator “freeze” was added to
prevent integrator windup during motion. And finally, in order to remove higher frequency mechanical
resonances in the system, a low pass “pole” filter was added. Table 1 shows the filter gains and motion
parameters that were finally settled upon for this system.
With these numbers, the motion control system was able to meet or exceed the customer requirements
at all move distances. As shown in the customer supplied results in Table 2, the system greatly
decreased the motion times for the full range of move distances. Figures 2 and 3 show some screen
captures showing the motion profile for various move lengths:
Galil Motion Control, Rocklin, CA. (916) 626-0101. [www.galilmc.com]