To: file

From: Jon Hagen

Date: 10-26-00

Subject: Description Vertex Tracking Loops

For each of the three axes (AZ, GD, CH) the Vertex system produces an analog velocity command, which is sent to the analog DCS for that system. "DCS" signifies Drive Control System, but, as these are only a part of the overall system, they might better have been called VCSs for "Velocity Control System". These systems are designed to produce a velocity that is proportional to the analog voltage command.

This velocity command is produced by the PLC and is the sum of a feed forward term (the desired velocity) and a correction term or "correction velocity". The correction velocity is a linear combination of the position error and the integral of the position error (proportional plus integral or "PI" ), except that, when the absolute value of the error is above a threshold, the integral term is constantly reset to zero. Before being sent to the DCS, the velocity command is acceleration limited (not allowed to change by more than a maximum increment at each program cycle) and velocity limited (not allowed to exceed a maximum velocity).

If the system is suddenly commanded to a position that is far from its current position, it will:

a. ramp up in velocity as fast as the acceleration limit allows. During this period, the correction velocity is calculated as kP(x-xDES), but this is higher than the maximum allowed velocity. Even the maximum velocity can't be applied yet, due to the acceleration limit. On each cycle of the program, the velocity is changed by the maximum allowed velocity change (i.e. the acceleration limit).

b. reach maximum velocity and continue with that velocity toward the commanded position. During this period, the acceleration doesn't have to be limited; the system is continually commanded to go at the maximum allowed velocity.

c. get close enough to the commanded position that kP(x-xDES) < Vmax . Now the correction velocity can be set at kP(x-xDES) and the approach to the desired position will be exponential.

d. reach the threshold value of (x-xDES), at which point the integral term comes alive.

e. reach the desired position and overshoot slightly

f. come back to the desired position, either monotonically or with some ringing - depending on the value of the damping constant.

The algorithm used is as follows:

When the integral term is being used, the correction velocity is given by

Vcor = kP (x-xDES) + kI (x-xDES) dt

therefore, the change in one cycle is

Vcor = kP (x-xDES) + kI (x-xDES) t

Vcor = kP [(x-xDES) - (x-xDES) old ]+ kI (x-xDES)old t

Vcor = kP (x-xDES) + (kI t - kP) (x-xDES)old

Vcor = kP (x-xDES) + q(x-xDES)old

and the velocity correction is Vcor = Vcor old + kP (x-xDES) + q(x-xDES)old

When the error is larger then the threshold for the I term, the correction velocity is just

Vcor = kP (x-xDES) .

Thus there is a discontinuity when the I term is switched off, but it is smoothed by the acceleration limiter. There is no discontinuity when the I term is switched on.

The full velocity command includes the feed-forward term (the nominal velocity)

Vcommand = Vcor + Vfeed forward

Velocity and acceleration limiting are applied to Vcommand and the result is sent to the Velocity Control System (DCS).