Now that the PID components and type structures have been examined, Let’s get into the process of fine-tuning a PID loop. It is important to remember that in a real-world setting there are many variables that must be accounted for such as the plant process load variations, transmitter calibration and range scaling, control valve stroke, fuel supply pressures, etc. These can all have an effect on the Gain and Integral settings required for a PID control loop that is both responsive and stable. Thus, any tips, recommendations, and rules-of-thumb presented here should be taken as a starting point only, with the expectation to fine-tune each specific loop in its real-world setting.
Some General Rules-of-Thumb
1. When setting gain and Integral constants, it is important to consider the timescale of the process being controlled. A change to the control valve output of a gas flow control PID will see an almost immediate change to the Process Variable. This PID loop will need a lower Gain and higher Integral setting (or higher Proportional band, lower Repeats/Minute).
An opposite example would be a boiler steam pressure PID control loop, where there will be a delayed change in the steam pressure Process Variable for a change in Firing Rate Output. This system would typically need a higher gain and a lower Integral to account for the longer time-constant of the system.
2. A larger calibration range on the transmitter measuring the Process Variable will require a higher gain setting.
Transmitter spans should typically be set so that the operating setpoint is near the midway point of the transmitter span. For example, if a boiler’s normal operating pressure setpoint is 95 psi, a steam pressure transmitter with a range of 0-200 psi would be a good choice.
In a system where a transmitter is over-spanned, for example 0-500 psi, a 1.0% error would correspond to a 5 psi error from setpoint. For a transmitter with a span of 0-200 psi, a 1.0% error would correspond to a 2 psi error.
3. A shorter span of a control valve/damper will require a lower Gain setting in the PID.
Opposite of point 2 above, an over-sized control valve or damper will typically require lower Gain and Integral PID settings. For example, a drum level control system where the feedwater valve is oversized may supply the full required feedwater flow with the valve only 50% open. In this case a small change to the control valve position will result in a relatively large change in the feedwater flow Process Variable than a properly sized valve would.
4. Cascading PIDs with similar Gain and Integral settings will interact with each other and cause loop instability.
When using a cascading PID such as 3-element drum level control, the primary loop (Level PID) should have a relatively higher Gain and lower Integral setting, and the secondary loop (Feedwater Flow PID) should have a relatively lower Gain and higher Integral setting.
5. An input filter can help with “noisy” Process Variable inputs but should be kept as small as practically possible.
A time-averaged filter on the Process Variable input will reduce the fluctuations in noisier analog signals like draft pressure and air flow but take caution to not set this too high for PID loops with high Integral settings and processes with short time-constants. A time-averaging filter of 2-3 seconds is typically enough.
6. PIDs assume that control outputs are linear. A fast-opening valve or a damper that is fully open at 60% output will cause the PID loop to be more difficult to fine-tune.
Table of Starting Points for Various Boiler PID Loops
Below is a table with good approximate starting points for various boiler PID loops. In this table direct Proportional Gain and Repeats/Minute are used. These values assume that the transmitter has a normal span and that the control valve or damper is not over-sized. For Proportional Band use 100/Gain, and for Minutes/Repeat use 1/(Repeats/Minute).
|Application||Gain (P)||Repeats/Minute (I)|
|Steam Pressure (150 psi span)||15.0||0.25|
|Steam Pressure (15 psi span)||7.0||0.80|
|Full-Metering Fuel Flow||0.8||4.00|
|Full-Metering Air Flow||1.5||3.00|
|Draft Control, Damper||1.5||2.50|
|Draft Control, ID Fan||0.3||5.00|
|1-Element Drum Level||3.0||0.20|
|2-Element Drum Level||2.0||0.15|
|3-Element Drum Level (Level PID)||2.0||0.15|
|3-Element Drum Level (Flow PID)||0.8||4.00|
|Deaerator or Condensate Tank Level||5.0||0.10|
The PID Loop Fine-Tuning Process
A word of caution before getting into fine tuning: it is important that the person doing the tuning be fully aware of the plant operation constraints and safety considerations. A newly-tuned PID loop should only be left unattended in automatic after it has been observed tracking the process load for a considerable amount of time without issues.
There are two goals of a fine-tuned PID loop: 1) to maintain a Process Variable at a setpoint with minimal deviation from that setpoint, while 2) remaining stable and without oscillations or output hunting. There is often a tradeoff between these two goals. A quick-reacting PID with higher gain will account for setpoint deviations more quickly but is susceptible to overshooting the setpoint and potentially oscillating. On the other hand, a PID that is too slow will be stable, but the Process will deviate further and take longer to get back to setpoint after a load swing.
Fine-tuning the PID attempts to balance these goals.
First, Reduce the Integral Constant and find a Proportional Gain that responds to a 10-20% load change with 2-3 oscillations before settling. This load change is best done from an external controller, such as rapidly decreasing the firing rate of a base-loaded boiler while allowing the boiler being tuned to make up the lost steam production. Other techniques such as a rapid change in setpoint or manually controlling the output at a higher or lower position than is needed can produce this to a lesser extent.
Once the loop has been upset, observe the response of the PID controller. If the Process Variable has no overshoot and is slow to reach setpoint or never reaches it at all, increase the gain and repeat the tuning procedure. If the Process Variable has a high overshoot and oscillates many times or indefinitely, reduce the Gain setting.
Once the optimal Proportional Gain has been found, reduce it by 5-10% then slowly increase the Integral setting while upsetting the system again. As before, if the PV is taking too long to get back to setpoint, increase the Integral setting. If the PV oscillates too much, reduce the Integral setting.
There are a couple of common issues to look for after a PID loop has been tuned. 1) If there is slightly too much of both Proportional Gain and Integral at the same time, there can be a continuous and slow oscillation over a long time-period (possibly 5-10 minutes or more). In some cases, this may be acceptable, but it is not a well-tuned PID loop and does not have tight control. 2) Sometime tight control can be achieved while having the Control Output swing wildly or oscillating. Again, this may be acceptable in some cases, but it could lead to a shortened lifespan of an actuator or control valve. This can be minimized by reducing gain, but will result in a wider PV deviation from setpoint.
Fine-Tuning Drum Level Control
Finally, there are a couple extra aspects to consider for drum level control loops. The above method works well for most PID loops but runs into problems with drum level control as upsetting the system by rapidly changing the boiler firing rate will result in boiler sink and swell to affect the drum level transmitter reading. This can be countered by setting up the steam flow Feedforward input to the PID.
There are two methods of steam flow Feedforward:
1. Linear Gain
This assumes that the feedwater control valve is linear. For linear gain feedforward, bring the boiler to a steady-state near high fire. Observe the settled feedwater valve position (0-100%) and the feedwater flow transmitter reading (in the same units as the steam flow meter).
Use the equation below to find the Feedforward gain setting.
2. Characterized Curve
For non-linear feedwater control valves, set up an F(x) curve (with the boiler firing rate as x, and the feedwater control valve as y) by bringing the boiler to a steady-state at various firing rates and storing the steady-state control valve position.
Once the Feedforward input has been set, set the Integral constant low and make a rapid change to the boiler firing rate. The PID should not have an immediate change to the Output. In this example, the firing rate is increased. Observe the response of the PID loop. If the output decreases in response to the drum level swell, the gain is overriding the feedforward and needs to be decreased. If the PID output increases as the drum level swells, the Feedforward is overriding the Gain, and the Gain should be increased. Slowly increase the Integral without introducing overshoot or oscillations and repeat as necessary until satisfactory control response is achieved.