User's Manual
  PMAC User Manual 
108  Closing the Servo Loop 
Actual PID Algorithm 
The actual equation used in the PID algorithm to compute the commanded output for motor x is as 
follows: 
⋅⋅
−
⋅
+
⋅+⋅
+⋅⋅
−
=
128
)(0931
}
23
2
)(33
128
)(35)(32
)({0830
19
2)(
nAVIxIxnIEIxnCAIxnCVIx
nFEIxIxnDACout
where: 
•  DACout(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 Ix69. 
•  Ix08 is an internal position scaling term for motor x (usually set to 96). 
•  Ix09 is an internal scaling term for the velocity loop for motor x. 
•  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)]. 
•  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. 
•  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. 
•  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 
IE(n) is the integrated following error in servo cycle n, which is: 
n-1 
∑ 
[FE(j)]
j=0 
(For all servo cycles for which the integration is active. Ix34=1 turns off the input to, but not the output 
from the integrator when CV does not equal zero.) 
Notch Filters 
The PMAC can be used to set up notch filters. A notch filter is an anti-resonance (band-reject) filter used 
to counteract a physical resonance. While there are many different philosophies as to how to set up a 
notch filter, we recommend setting up a lightly damped band-reject filter at about 90% of the resonant 
frequency, and a heavily damped band-pass filter somewhat greater than the resonant frequency (to 
reduce the high-frequency gain of the filter itself). 
For those familiar with control theory (not necessary to use the notch), the form of the PMAC notch filter 
system is: 
2
D2z
1
D1z1
2
N2z
1
N1z1
D(z)
N(z)
−
+
−
+
−
+
−
+
=
where the numerator – N(z) – is the band-reject filter, and the denominator – D(z) – is the band-pass 
filter. The notch filter acts on the output of the PID filter itself. 
PMAC uses four I-variables to specify the full notch filtering system: two (Ix36 [N1] and Ix37 [N2]) for 
the band-reject filter, and two (Ix38 [D1] and Ix39 [D2]) for the band-pass filter. These I-variables 
represent the actual coefficients used in the difference equations for the notch. These I-variables have a 
range of -2.0 to +2.0; they are 24-bit values, with one sign bit, two integer bits, and 21 fractional bits. 
Before implementing a notch filter in the PID-Plus algorithm, tune the PID parameters somewhat to get at 
least minimal performance, even if control of oscillations is poor. 










