Software feedback calculations – Rockwell Automation 999 IMC S Class Compact Motion Controller (Cat. No. 4100-999-122) User Manual
Page 34
 
3-4
Technical Overview
Publication 999-122 - January 1997
Software Feedback 
Calculations
Every servo sample period, the IMC-S/23x microprocessor also does 
a complete position feedback calculation for each axis by first 
computing the difference between the actual position and the command 
position. This quantity is called the Position Error. The intent of every 
closed loop position servo system is to drive this position error to zero.
To accomplish this, the position error is multiplied by a programmable 
P (Proportional) Gain term and used to generate a velocity command. 
In addition, when the axis is not moving, position error is accumulated 
(integrated) and multiplied by the I (Integral) Gain term and added into 
the velocity command. This allows the IMC-S/23x to compensate for 
static disturbances that would otherwise keep the position error from 
becoming zero. Such static disturbances include static friction 
(so-called Sticktion) and gravity effects on vertical axes. 
Integral Gain is also effective in reducing the tracking error between 
the master and slave axis when the electronic gearing feature is used. 
The integral term is deactivated, however, when performing 
commanded motion (moves and jogs) to improve servo stability and 
decrease overshoot. 
To create a stable position servo loop without using an analog 
tachometer, damping is provided by synthesizing a tachometer in 
software. This is accomplished by calculating the rate of change of 
encoder position to generate the actual velocity. The actual velocity is 
compared to (subtracted from) the command velocity to generate the 
velocity error. This velocity error is then multiplied by the 
programmable V (Velocity) Gain and used to drive the motor to reduce 
the velocity error (and thus the position error also) to zero. With servo 
drives incorporating a true tachometer loop, the software velocity loop 
is disabled.
After being multiplied by the V gain, the velocity error is range limited 
and then sent out to a 16-bit DAC (Digital-to-Analog Converter to 
generate the ±10 volt or ±150 mA signal for use by the drives. 
In use, the servo output ranges between ±10 volts or ±150 mA, 
depending on the setting of the drive output type switch. The maximum 
output can also be clamped to less than the above full scale values. This 
servo output limit is fully programmable.
In addition, deadband compensation is provided to compensate for 
friction effects when using current-loop servo amplifiers. Deadband 
compensation adds a programmable value to the magnitude of the servo 
output signal (i.e. when the velocity error is positive, the DB 
compensation value is added, and when the velocity error is negative, 
the DB compensation value is subtracted).