In order to auto-tune a PID controller, it may be necessary to determine the expected behavior of the controlled element. There are several different distinct types of behavior, even in an engine.
Let's start with idle:
We want to achieve a target-rpm and what we can control is idle-air (also timing and fuel, but let's keep it simple for now). Idle air determines torque. The torque counteracts losses like friction and pumping losses. If our engine had no losses, even a minimal amount of torque would spin it to infinity rpms. We also have an energy storage device: our rotating masses, clutch, flywheel and crankshaft. The energy storage will resist change. If we open the idle valve, the rpms will go up slowly. If we close it they will drop slowly. The greater the rotating masses, the more slowly the changes. This is the reason why luxury engines get big flywheels- to smooth things out.
Now, if our losses decrease suddenly (i.E. turning off the AC), the torque applied is greater than the torque needed to overcome friction and our engine rpms will increase. This will not happen instantaneously, because energy is stored in the rotation. Since losses increase with rpm, at some rpm the losses will be sufficient to consume all out torque and we have a stable situation again. Similar effects would happen with a sudden increase in losses (turning on the AC, adding electric consumers and thus load to the alternator etc. The rpms will drop until the new losses are small enough to be counter-balancing the torque.
And since everybody loves a visual aid, here is one:
pt1 behavior idle control..png
This type behavior is called pt1 if memory serves right. It's reasonably benign to control, since the energy-storage device helps us slow things down. This seems to be the type of DUC (Device Under Control) that the Cohen Coon method, as mentioned in the paper linked above, would be good for.
An electronic equivalent to this type of DUC would be an RC network:
rc_pt1_simulator.png
Equivalents:
U in -> Idle-Air setting
R1 together with C1 simulates the energy storage in the rotation masses
R2 simulates the friction losses (lower R-> higher losses)
U out -> engine rpm
Implementing Cohen Coon should work well for this type behavior.
More on other types of DUCs soon.....