Delta Tau GEO BRICK LV User Manual
Turbo PMAC User Manual
154
Motor Compensation Tables and Constants
Ixx35 Acceleration Feedforward Term
The acceleration feedforward term Ixx35 adds an amount to the control effort that is directly proportional
to the commanded acceleration, to overcome potential position errors that would be proportional to
acceleration. These errors come from the fundamental tendency of inertia to resist acceleration. Without
acceleration feedforward, there would be a component of the following error proportional to acceleration.
to the commanded acceleration, to overcome potential position errors that would be proportional to
acceleration. These errors come from the fundamental tendency of inertia to resist acceleration. Without
acceleration feedforward, there would be a component of the following error proportional to acceleration.
Properly set acceleration feedforward will eliminate following error components that are proportional to
acceleration. The Ixx35 acceleration feedforward term is an estimate of the inertia of the system, directly
providing a force or torque proportional to it and the commanded acceleration.
acceleration. The Ixx35 acceleration feedforward term is an estimate of the inertia of the system, directly
providing a force or torque proportional to it and the commanded acceleration.
Actual PID/Feedforward Algorithm
The actual equation used in the PID/feedforward algorithm to compute the commanded output for Motor
xx is as follows:
xx is as follows:
CMDout(n) = 2-19 * Ixx30*[{Ixx08 * [FE(n) + (Ixx32*CV(n) +Ixx35*CA(n))/128 +
Ixx33*IE(n)/223]} -Ixx31*Ixx09*AV(n)/128]
where:
•
CMDout(n) is the 16-bit output command (-32768 to +32767) in servo cycle n. It is converted to a -
10V to +10V output. DACout(n) is limited by Ixx69.
10V to +10V output. DACout(n) is limited by Ixx69.
•
Ixx08 is an internal position scaling term for Motor xx (usually set to 96)
•
Ixx09 is an internal scaling term for the velocity loop for Motor xx (usually set to 96)
•
FE(n) is the following error in counts in servo cycle n, which is the difference between the
commanded position and the actual position for the cycle [CP(n) - AP(n)]
commanded position and the actual position for the cycle [CP(n) - AP(n)]
•
AV(n) is the actual velocity in servo cycle n, which is the difference between the last two actual
positions [AP(n) - AP(n-1)] in counts per servo cycle
positions [AP(n) - AP(n-1)] in counts per servo cycle
•
CV(n) is the commanded velocity in servo cycle n: the difference between the last two commanded
positions [CP(n) - CP(n-1)] in counts per servo cycle
positions [CP(n) - CP(n-1)] in counts per servo cycle
•
CA(n) is the commanded acceleration in servo cycle n, which is the difference between the last two
commanded velocities [CV(n) - CV(n-1)] in counts per servo cycle
commanded velocities [CV(n) - CV(n-1)] in counts per servo cycle
•
IE(n) is the integrated following error in servo cycle n, which is:
0
j
)
1
(
FE
[
1
n
=
∑
−
(for all servo cycles for which the integration is active. Ixx34=1 turns off the input to, but not the
output from the integrator when CV does not equal zero.)
output from the integrator when CV does not equal zero.)
Notch Filter
Turbo PMAC’s standard servo loop includes a notch filter. This is a second-order bi-quad filter acting on
the output of the PID section of the servo loop, one of whose main purposes is to create a notch
(frequency of low response) in the servo reaction for the purposes of fighting a resonance.
the output of the PID section of the servo loop, one of whose main purposes is to create a notch
(frequency of low response) in the servo reaction for the purposes of fighting a resonance.
This filter has several possible uses:
•
Anti-resonance (notch) filter
•
Low-pass filter
•
Velocity-loop integrator
•
Lead-lag filter
Each use will be treated in its own section below.