Servo Loop Feedforward Gains

Many systems are servo controlled using only PID (position, integral, and derivative) error feedback. However, if feedforward is utilized in addition to feedback, the performance of the robot can be significantly improved. The magnitude of the feedforward torques are a function of the planned motion and anticipate the torque required for a motion instead of responding to errors.  The feedforward terms available in the Guidance controller include acceleration, velocity, friction and gravity feedforward compensation. When motors are in position control mode, the feedforward torques are computed each servo cycle and are added to the PID torques to compute the final "Compensator output torque" (12304).

Feedback torques by their nature correct for errors after they occur and are strongest as the errors grow larger. This means that when an axis is accelerating, the errors must be large before the feedback will generate the large torques that are needed to quickly accelerate and decelerate an axis. Also, feedback can be unstable especially when the feedback torques are large since feedback signals tend to oscillate about a zero value.

In contrast, feedforward torques are generated before errors occur and can be quite large even when there is very little movement. Also, while it is possible for feedforward torques to excite a resonance if they are not properly filtered, these terms will never oscillate in response to instabilities in a mechanism, so they are very stable even when they produce large torques.

The benefits of adding feedforward compensation to a system include the following:

  1. Position tracking errors can be significantly reduced.  Since the required torques for a motion are being anticipated, it is not unusual to see tracking errors reduced by a factor of 4 or more.
  2. Motion settling times can be significantly reduced. Since the tracking errors during the motion are much smaller, at the end of the motion, the position errors are much smaller and can be more quickly reduced to the desired tolerances.
  3. Greater stability. Since the tracking errors are reduced, the magnitudes of the PID feedback torques are reduced and are therefore more stable. In fact, in some cases, after feedforward is added, the PID feedback gains can be increased to further increase the stability of an axis.

How accurately the feedforward gains can be set is a function of the robot’s geometry and mechanical components. For Cartesian systems with smooth gear trains, the feedforward gains can be set relatively accurately. For robots with rotary axes, the feedforward gains will only be approximate since the gravity loading and acceleration parameters of each axis may be a function of position. (For Articulated robots, the gravity feedforward can actually operate in the wrong direction at times, which is why Dynamic Feedforward, which takes into account the geometry and dynamic properties of the links, is so beneficial.)

In fact, the feedforward gains do not have to be set very accurately for this compensation to be of benefit. Even if these torque values are approximately correct, they give the system an early boost in the proper direction to improve the performance of the system.

The Parameter Database components that define the feedforward torques are briefly described in the following table.

Parameter Database ID Parameter Name Description

10336

Acceleration feedforward gain

Each servo cycle when a motor is in position control mode, this gain is multiplied times the acceleration of the setpoint command and the result is added to the final motor torque command.  This component approximates the torque necessary to accelerate the motor and the gain should roughly match the inertia seen by the motor expressed in units of tcnts/(mcnts/msec^2).

10337

Velocity feedforward gain

Each servo cycle when a motor is in position control mode, this gain is multiplied times the speed of the setpoint command and the result is added to the final motor torque command.  This component approximates the torque necessary to overcome the viscous friction as seen by the motor.  This gain should expressed in units of tcnts/(mcnts/msec).

10347

Friction feedforward torque, tcnt

Each servo cycle when a motor is in position control mode, the constant friction feedforward torque is added to the motor torque command.  The sign of this term depends upon the sign of the commanded velocity of the setpoint command.  This component compensates for the static friction in the system and is expressed in torque counts (tcnts).

10349

Gravity compensation torque, tcnt

Whenever a motor is in position or torque control mode, this value is added to the motor's output torque.  This term can compensate for the constant torque offset necessary to compensate for gravity.  This parameter value is in units of torque counts (tcnts).

10348

Feedforward torque rate limit

This limit prevents the feedforward torque from changing too fast.  For example, this can occur if an axis hits a soft stop limit in manual control and the setpoint speed is spontaneously set to 0.  Limiting the rate of change of the feedforward torque can prevent the motor from generating a large jerk.  This parameter is in units of torque counts per servo execution period (tcnt/tick).

10328

Feedforward SPR filter pole, Hz

This defines a single-pole roll-off (SPR) low-pass filter that is applied to the feedforward torque. The main purpose of this parameter is to "soften" the edges produced by the feedforward calculation.