Adept SmartMotion Developer's Guide


Control System Overview

This documentation introduces the user to the Adept SmartMotion control system and software. The control system overview discusses the operation of a typical motor, the process Adept SmartMotion uses to control a motor along with a detailed description of each step of the process. The subsequent topics discuss tuning parameters, tuning analysis tools, motor calibration and power sequencing processes used in Adept SmartMotion.

Before attempting to program the Adept SmartMotion system, review the following sections:

Operating and Tuning a Motor

During normal operation, the V+ operating system sends a stream of motor position commands to each motor's control system so that the overall mechanism will perform the robot motions commanded by the user. Adept SmartMotion Command Flow shows a diagram of the command flow from the user's program, through V+, to each motor's control system, and finally to the motor itself.

Adept SmartMotion Command Flow

V+ relies on the individual axis control systems to ensure that the motors accurately obey their position commands. A control system does this by issuing a corrective torque command to the motor based on any error in the motor's position (error = commanded position - actual position). This is called closed-loop control or feedback control, since the actual position of the motor is fed back to the controller and used to compute the corrective torque. The position feedback from the Adept SmartMotion software is typically 8000 times a second.

If the control system has been adjusted correctly, the motor can be made to behave like a passive spring, mass, and damper system, as shown in Spring-Mass-Damper System Compared to a Closed Loop Motor. As the position error of the motor is increased, it will apply a corrective torque that also increases, exactly like a spring being pulled off center. If the motor is then released, the resulting oscillation will be damped out just as a damper would if attached to a spring and mass. This behavior is called the "closed loop" response, because the control system's torque command to the motor is determined by both the actual position of the motor and its commanded position, and not just the commanded position alone. The control system is said to close a loop around the motor by reading its actual position, comparing it to the position command, and applying a corrective torque based on the error.

Spring-Mass-Damper System Compared to a Closed Loop Motor

Tuning a Motor

Objective

The goal of tuning a motor's control system is to change the closed-loop dynamic performance of the motor in such a way as to improve its ability to obey position commands.  the control system parameters need to be adjusted so that it will always issue the appropriate torque command based on a variable motor load to make the motor move to the desired location. In this way, the system appears to behave like the spring and damper analogy, with the V+ position setpoint being the spring center.

 

Tools: Time and Frequency Response Analysis

There are two primary measures used when tuning a motor's control system: time response and frequency response. You can optimize motor by analyzing these responses:

For a discussion of the analysis tools provided in the Adept SmartMotion software, see Tuning Analysis Tools: Step and Frequency Response.

Understanding the Control System

The Adept SmartMotion Control System Block Diagram illustrates how Adept SmartMotion controls a motor. As discussed earlier, the control system receives position commands from V+, shown entering the diagram on the far left, and performs a number of calculations in the Feedforward, Proportional, and Integral Paths to determine a final torque. This torque command is then conditioned by the filter in the Amplifier Control Path, and sent to the DAC. The DAC converts the digital torque command into an analog far right.

NOTE: Adept SmartMotion is designed to operate with amplifiers in one of two modes: current or velocity. This section discusses control with current-style amplifiers - control with velocity-style amplifiers is similar, but note the differences in Block Diagram of the Adept SmartMotion Control System.

What happens in each of the blocks shown in the diagram is determined by the values specified for the servo parameters. These parameters are adjusted by the user with the aid of the SPEC utility program. For details on what occurs in each block and information on the servo parameters, see Description of Servo Parameters, or click on a label in the figure below.

Adept SmartMotion Control System Block Diagram

The actual position of the motor is compared against the next V+ position command, to form a position error that is used to help calculate the next torque command. This loop around the motor, from position command to position error to torque to motor position, is performed many times a second by the control system.

Key Measurements

Position

The control system measures all position variables (such as the commanded position, the actual position, and the position error) in units of encoder counts. For a given encoder, there will be 4 encoder counts per slot in the encoder, because of the quadrature decoding of the encoder's A and B phases. For example, a rotary encoder with 1000 lines will have 4000 counts per revolution. For position variables, velocity and acceleration are key measurements

Velocity

(encoder counts)/millisecond

Acceleration

(encoder counts)/millisecond2

Torque

All torque values are in units of DAC output counts.

The Adept SmartMotion hardware contains one Digital-to-Analog Converter (or DAC) per motor that accepts a digital input value (in DAC output counts) and produces an analog output voltage proportional to the input. A DAC command may range from -32767 to +32767, corresponding to a -10 volt to +10 volt output, respectively. For example, a torque command of 16000 DAC output counts would therefore correspond to 16000/32767 = 49% of maximum positive torque, producing a voltage of 0.49 * 10 = 4.9 volts.

Since the output of the DAC is connected to the input of the motor's amplifier, a current (or voltage, depending upon the amplifier design) is then applied to the motor that is proportional to the DAC command. The exact amount of current applied depends on the gain of the amplifier.

The resulting shaft torque applied to the load will depend upon the design of the motor. Electric motors generate a torque that is roughly proportional to current by an amount called the torque constant of the motor. Because they are proportional to each other, this documentation often makes the simplifying assumption that it is torque, not current, that is commanded by the DAC output from the control system.

Related Topics

Tuning Analysis Tools: Step and Frequency Response

Servo Parameters for Adept SmartMotion


Submit comments to: techpubs@adept.com
Last modified on: 9/29/2010
Copyright © 1994 - 2010. Adept Technology, Inc.