Motion Control

Digital Motion Controllers Provide Precise Motion in a Wide Range of Applications

A motion controller provides a set of basic functions that can be tuned to meet the needs of different applications, motor sizes and types and different inertial loads.


  • Page 1 of 1
    Bookmark and Share

The world is in motion. A robot transporting delicate silicon wafers during semiconductor processing, a large telescope automatically tracking star position, an automatic sewing arm that precisely stitches quilts, steering control of an autonomous vehicle that tracks position targets from a GPS; the applications are endless.

While the applications are varied, what they have in common is that they require precise and automatic motion control. At the heart of each application is a motion control system, which includes an intelligent motion controller. It is the job of the controller to make sure the mechanical devices get to the right place at the right time. How can a motion controller handle such varying loads and varying types of motion?

There are five elements that make up a typical motion control system: motion controller, amplifier, motor, feedback sensor and a host computer or HMI. Figure 1 shows the block diagram of a simplified motion control system. Each of the elements in the system performs a different function. The Host computer or HMI sends high-level commands such as motion specifications to the controller. The amplifier receives a command signal from the controller and translates it into the appropriate power to drive the motor. The motor converts the electrical energy from the amplifier into torque, which is transferred to the mechanical system. The feedback sensor provides position information, which is sent to the controller. The controller is the brain of the system and processes information received from the host computer and feedback sensor.

There are two main functions of the motion controller. First, it provides a reference position, a function commonly referred to as the motion profiler. Secondly, it compensates for the position error, which is the difference between the reference position generated by the profiler and the actual position received from the feedback sensor

Closing the Loop

Looking at the complete motion control system, we can see that the size of the motor must be selected to accommodate the size of the load. Similarly, the power drive for the motor must be sized to meet the torque and speed required to move the load. The motion controller must be able to perform the two main functions described above and send a proper signal to the motor drive regardless of the size of the load.

When operating in what is called an “open-loop” mode, the motion controller only provides a reference position and does not compensate for error or a difference between the reference and actual position. This mode is most commonly used when controlling stepper motors; where under normal circumstances the actual position of the motor can be assumed equal to the reference position. In servo motion control systems, the actual position feedback sensor is used by the controller to determine the position error. This is “closing-the-loop.” In order for the system to be stable, the motion controller must provide compensation for the position error. The most typical compensation is proportional integral derivative (PID).

The PID filter, as seen in Figure 2, creates three command signals based upon an error in the system. The Proportional (KP) signal is a direct multiple of the error, the Derivative (KD) is a multiple of the rate of change of the error, and the Integrator (KI) provides a command based upon the error integrated over time. The proportional term provides system stiffness, the derivative term provides damping, and the integral provides position accuracy. Proper tuning of a motion control system means that the KP, KD and KI terms are adjusted to achieve the best performance. Many motion controllers offer tuning software, which automatically selects the optimum PID parameters. It is important for a motion controller to have a robust PID tuning algorithm with adequate range and resolution of KP, KI and KD parameters to accommodate a wide range of amplifiers, motors and loads.

Motion Profiling

The other important task of a motion controller is motion profiling. Motion profiling is where the controller generates the reference position. Here, the controller receives motion parameters such as distance, speed, acceleration rate and deceleration rate from a host computer or HMI. From these specifications, the controller computes a continuous trajectory of reference positions.

Consider, for example, the velocity profile illustrated in Figure 3 (a). The motion time of 150 msec is divided equally among the acceleration, slew and deceleration. The slew velocity is 100,000 counts/sec and the total displacement is 10,000 counts. In response to these specification parameters, the motion controller generates the reference function R(t), shown in Figure 3 (b), with the corresponding position versus time.

Just as there are many sizes of loads, there are many types of motion. Intelligent motion controllers allow the user to specify virtually any type of motion. Various modes of motion include jogging, point-to-point positioning, 2D coordinated motion, electronic gearing, electronic cam, and contouring. Regardless of the motion type, it is the job of the motion controller to generate the reference position.

The following section reviews two examples that show how the motion profiler and PID filter of the motion controller are used to provide a complete solution to the application.

Example – Automatic Stitching

An intelligent motion controller generates the reference position by performing trajectory calculations based on the specified positions, speed and accelerations. A three-axis textile machine provides an example of an intelligent motion controller used in creating intricate XY patterns on a quilt.

The stitcher consists of a two-axis gantry mechanism that moves the needle in the XY plane (Figure 4). A third axis drives the needle, which is driven in and out of the stationary quilt material. The needle motion is synchronized with the XY motion such that the number of stitches per inch is a constant. A mechanical cam links the Z axis motor to the needle, such that if the Z motor spins at a constant speed, the needle reciprocates at a constant rate.

For this application, a three-axis Ethernet-based motion controller was selected. To minimize wiring, a multi-axis servo amplifier was installed directly into the controller and provided 500W per axis. The motors used were Nema 23 frame brushed servo motors. Galil’s Web-based motor sizing tool ( was used to appropriately size the amplifiers and motors for the specific mechanics.

Each axis was tuned with Galil’s WSDK Servo Design Kit software, which selected the best PID parameters for the system. Each axis had different parameters because of the differences in mechanics. The tuning parameters are as follows:

X axis:

Derivative gain (KD) = 225

Proportional gain (KP) = 25

Integral gain (KI) = 3

Y axis:

Derivative gain (KD) = 300

Proportional gain (KP) = 33

Integral gain (KI) = 6

Z axis:

Derivative gain (KD) = 315

Proportional gain (KP) = 42

Integral gain (KI) = 15

Since the application required that the XY axes be coordinated to follow a two-dimensional path, the controller’s 2D vector mode was used. This mode allows two axes to be linked together to perform linear and circular interpolation such that complex XY patterns can be executed. In the vector mode, the X and Y axes are linked together and referred to as the S axis. Vector speeds anywhere along the path can be specified to tailor the motion profile. The simple example next draws a square of 1000 counts per side in vector mode:

Command Interpretation

VMXY ;’specify xy axes for vector mode

VP1000,0 ;’specify points to travel through




VE ;’end the vector sequence

BGS ;’begin motion

AMS ;’wait until motion is complete

The application also required that the stitch length be constant, regardless of the speed. To meet this need, an advanced gearing feature of the controller was used. This feature links the motion of one axis (Z) to the vector motion of two axes (XY or S). The Z motion is proportional to the arc length along the XY path. This causes the stitch length to be constant regardless of how fast the XY axes traverse the stitch path. The simple example below gears the Z axis to the XY vector path length. The gear ratio depends on the desired stitch length and the drive train connecting the Z axis motor to the needle.

Command Interpretation

GAZ=S ;’gear z axis to xy path length

GRZ=0.41 ;’set gear ratio

For more details about this example and to review the complete motion code, see

With the quilt stitching machine, the main complexity of the system is the coordination of the three axes, and the solution utilizes the ability of the motion controller to create coordinated motion profiles. The controller adjusts the XY and smaller Z axis with only small and simple modifications to the PID filter constants. Applications with larger inertial loads present added complexity to the system, but because of the flexibility of the digital motion controller, the additional complexity does not require the use of a whole new controller.

Example – Satellite Tracking

An application where the user is controlling a land-based satellite to track orbital satellites provides a perfect example of the motion controller’s ability to provide stable and precise control of a system with a high inertial load.

The satellite tracking machine consists of a rotational azimuth base and an elevation axis. A two-axis motion controller is connected to a custom, high horse power amplifier and motor combination. A host computer receives information about the orbiting satellites and sends positional data over an Ethernet connection to the controller. The controller’s position tracking mode allows the program to make changes to the profiled trajectory without having to first wait for previous trajectories to complete. Programming on the host computer is done in Visual Basic 6.0 using the drivers available from the controller manufacturer.

In applications with large inertial loads and high gain amplifiers, it is often desirable to start the mechanics moving before there is an error created in the system. This allows the PID filter gains to stay at lower levels and avoid instances where the overall gain in the system becomes too large and causes the system to become unstable. In the case of the satellite tracking system, the feed-forward velocity (FV) function available on all Galil controllers is used on the rotational axis to provide a torque output to the system proportional to the commanded velocity. The feed-forward provides an input to the mechanical system that is already based upon the desired motion, thus the motion is not completely reliant on an error generated during a move. The gains for the Rotational axis are as follows:

Derivative gain (KD) = 400

Proportional gain (KP) = 4

Integral gain (KI) = 0.2

Feed-forward velocity (FV) = 3

Because of the high gain amplifier used in the system, the Proportional and Integral gains are relatively low compared to many other systems, yet because of the intelligence of the motion controller, the overall control system is able to be stabilized and precisely controlled.

By offering flexible PID compensation and motion profiling, today’s motion controllers can handle an unlimited variety of applications. Regardless of the size of the mechanical load or the type of motion, intelligent motion controllers ensure devices get to the right place at the right time.

Galil Motion Control
Rocklin, CA.
(619) 626-0101.