As mentioned in the previous post, in some cases, particularly for servo positioning systems, it's a good idea to dive a bit deeper into the theories of tuning. One method I have found useful is the Skogestad method.
All the details can be found the linked paper. This is a modified form that I have found useful for hydro-turbines in combination with the trial and error method. The method consists of:
- A step in input, plotting the output and the input.
- Finding characteristic values from that plot.
- Using a single parameter called tau_c as tuning parameter.
The modifications to the method are:
- Disregard everything about time delay. Although one can often find something looking like a time delay, and it can be 2-3 seconds long, this is NOT a time delay in the normal sense, and should not be treated as one. Treating it as a time delay will in most cases produce unworkable PID parameters (instability or way too much overshoot).
- Use a tau_c of approximately 5 as a starting point (subject to tuning, see further down)
Well behaved system
Looking first at a "well behaved" system. In hydro-power plant circumstances, this will mean a very simple system, an idealized plant.
The system is set in open loop, and a step in "kappa" (guide vanes) of 10% (0.1 pu) is done. This is seen as the green line, where we also can see the speed of the servo. The red line is the turbine speed in "per units", starting at 1.0. Here we can clearly see the speed going in the opposite direction during the first 2 seconds. This is fairly typical, but it's not really a time delay. The pink line shows the 63% rise in speed and the corresponding time for that rise (approximately 5.8 seconds).
This plot is all the information we need to tune according to Skogestad, which is rather neat. We find:
- Time constant tau_1 = 5.8 seconds
- Steady state gain k = delta(n)/delta(kappa) = 0.063/0.1 = 0.63
- Kp = (1/k)(tau_1/tau_c) = (1/0.63)(5.8/5) = 1.84
- Ti = tau_1 = 5.8 s
A realistic system
This is a real system. It's certainly on the "fuzzy" and oscillating side, but far from unusual. Doing the same as for the idealized system, we get the plot:
We find:
- Time constant tau_1 = 9.5 seconds
- Steady state gain k = delta(n)/delta(kappa) = 0.022/0.1 = 0.22
- Kp = (1/k)(tau_1/tau_c) = (1/0.22)(9.5/5) = 8.63
- Ti = tau_1 = 9.5 s
The system will oscillate forever, the PID is unusable. Note also the slow servo speed, needed for safety reasons on this plant to prevent water hammer. Since Ti is OK, we can simply use step 5 from the trial and error approach to get a working Kp. Doing this, I find that Kp = 1.4 is as "good as it gets", and still be within performance specifications. A step response in set-point of the closed system, certainly does not look good, but the physics of the system does not allow for anything better.
In the last plot below, I have introduced anti-windup. It doesn't improve the closed loop response, but makes a smoother servo run (less wear and tear) and will have a much better performance in terms of handling disturbances because Ti is reduced considerably. This is done by trial and error.
For real systems, some trial and error usually has to be done no matter what, but Skogestad method is very helpful in obtaining Ti for systems with difficult behavior. An open loop step plot will also reveal useful information of the system. In the next post, a combined approach is shown.
No comments:
Post a Comment