I had a guest researcher here at NIST for a few months, looking into automatic system identification and PID tuning. I have a few MS Word pictures showing what he did that I WinZip'ed up and put on the FTP site in the emc/emcsoft directory, as "pidtuning.zip". They're 8.5x11 posters that show the theory and some figures for our Bridgeport machine.
It works for systems without a tachometer. We were trying to get the performance (following error) to be equal to a machine with tachometers, to reduce cost.
The idea is to hit the axis with a step voltage, and log the resulting position v. time. The curve rises to some steady state velocity. The steady state velocity is a function of applied voltage. The time to, say, 75% of steady state is the same. For several runs, you can get an average of steady-state velocity per applied voltage, and average rise time. These can be used to deduce PID gains.
The student, Kees ("Case") Stolk, from the University of Twente in the Netherlands, wrote a Tcl/Tk script that automates much of the process, including going into machine-off, opening the log, running the DAC out command, saving the log, storing multiple runs, and popping up PID gains. It's pretty slick. I'll put this up on the FTP site once I verify that it works with the new release.
I ran this on the Bridgeport and the resulting gains outperformed my manually tuned gains for current mode (no tach), and equaled the manually tuned gains (with a FF1 feedforward term) in velocity mode (with a tach).
Date: Mon, 6 Mar 2000 18:05:59 -0500 (EST)
From: Fred Proctor <proctor@cme.nist.gov>