Servo loop tuning (adjusting the feedback parameters)

To adjust servo loop parameters use Delta Tau's PMAC Tuning program not the ``Adjust feedback parameters'' IDL routine (it often freezes PMAC).

Before starting make sure all the I variables are pointing to the correct addresses (for explanation of different I variables see Sec. 4.1.4). If the loop for X or Y piezo is tuned the output of the PMAC has to point to certain memory locations: X-axis: I102=$89000 and Y-axis: I202=$89010, and the PLC program has to be enabled. To set the I variables and enable the PLC program use ``Terminal'' in the Tuning program. Commands are
I102=$89000
I202=$89010
enable PLC0
(after tuning is done issue disable PLC0 command).

For ZSTG stepper motor we have use two PMAC motor settings, motor 3 uses laser interferometer positions while motor 4 uses optical encoder in ZSTG. PMAC ``output'' I variables I302 and I402 use the same PMAC output, but PMAC does not allow that. Because of that we have different settings depending which PMAC motor is used. To tune motor 3 (laser interferometer positions) use
I302=$C014
I402=$81900
and to tune motor 4 (optical encoder) use
I302=$81900
I402=$C014
.

To get the window used for tuning select ``Interactive (INTER)'' button from the picture menu of Delta Tau's PMAC Tuning program (a window like the one on Figs. 5.1 and 5.2 should pop up.) To select the motor to be tuned, a picture icon on the same menu is used. The icon is second from the right as shown on Figs. 5.1 and 5.2 and it displays the motor number of the currently selected motor.

On the window itself it is possible to choose desired trajectory: position step (see Fig. 5.1) or position ramp (see Fig. 5.2). Trajectory parameters can be changed in the upper right corner. The feedback loop parameters for the selected motor are displayed on the left side of the window.

The servo loop filter parameters are the proportional gain ($K_p$ Ixx30), the derivative gain ($K_d$ Ixx31), and the integral gain ($K_i$ Ixx33). Proportional gain provides stiffness of the system. By increasing the proportional gain the system will have improved positioning and tracking, but it also increases its sensitivity to the noise and vibrations. Derivative gain works like a damper. High derivative gain, and thus high damping, will prevent overshoot of the motor positioning but will make the system sluggish. Integral gain is used to correct for steady-state error according to the accumulated following error of the system. Because of its nature, too high a value will saturate the servo loop and this could lead to servo stability concerns. $K_{vff}$ and $K_aff$ are velocity and acceleration feedforward gains, the effect of these is much smaller compared to the ones mentioned before.

To change the parameters simply use the displayed menu. Figs. 5.3 and 5.4 show plots of the system response to desired trajectory.

Important! After the tuning is over and new parameters are set, disable PLC0 (issue disable PLC0 command in the terminal), the new setting have to be saved. To save the new parameters the SAVE command has to be issued from the PMAC Executive program (if issued from Tuning program an warning message will pop up.)

Figure 5.1: Snapshot of the PMAC Tuning program with the step move interactive window, terminal, and a trajectory plot.
\includegraphics[width=\textwidth]{images/pmac_tuning_pstep}
Figure 5.2: Snapshot of the PMAC Tuning program with the ramp move interactive window, terminal, and a trajectory plot.
\includegraphics[width=\textwidth]{images/pmac_tuning_pramp}

Figure 5.3: Step move system response for different feedback loop parameter settings. If the loop is too stiff the system will oscillate (see A)), on the other hand if the loop is too slow the system will never reach the desired position (see B)). An example of good system response is shown on C).
\includegraphics[width=\textwidth]{images/servo_loop_position}

Figure 5.4: System response for a ramp move. If the loop is the slow there will be a delay between the desired and actual position, see A). For the good setting of feedback loop parameters the actual position should follow the desired position, see B).
\includegraphics[width=\textwidth]{images/servo_loop_ramp}

Holger Fleckenstein 2008-07-08