Optimizing drum level measurement
How can steam drum level be controlled to maximize both stability and responsiveness? The best method is to feed forward (FF) the steam flow to the level proportional-integral-derivative (PID) loop and cascade the output of that loop to the setpoint of a boiler feedwater (BFW) flow loop.
This arrangement is called "Three Element Drum Level Control" (3E) because the algorithm uses level, BFW flow, and steam flow.
"Single Element" (1E) control should be used when either flow is too low or has bad quality. 1E is a simple PID loop with the level as PV, the output going to the valve, and no FF. For more on this topic from Innovative Controls, read: "Advanced PID loop tuning" for more on PID loop definitions, tuning advice, and generic programming methods.
Level measurement and selection
See additional information from Innovative Controls, "Density compensation for steam drum level measurement."
Typically, drums have two level transmitters, often one at each end. Normally these should be averaged, and that average sent to the level PIDs as a process variable. However, if one has bad quality, is being blown down (see below), or is otherwise not trustworthy, the other should be used alone as process variable (PV) for the level loops. Systems with three level transmitters should use the median rather than the average value, or the good one if only one is good.
Level alarms and trips
Typically, drums also have a set of level switches for alarm purposes. The use of those switches for trip purposes varies depending on the existence, number, and type of burner management system (BMS), size, types of fuel, arrangement of blowdown valves and bypass push button (PB), etc. For the combustion control system (CCS), two-out-of-three (2oo3) voting is standard. This means if two out of the group of one set of switches and two transmitters indicate a HI-HI or LO-LO condition, the system should trip. If just one indicates a trip condition, a warning should be raised, but no trip should occur. However, BMSs typically trip on the switches alone.
1E and 3E PID blocks
It is theoretically possible to use the same PID block for both 1E and 3E level control, but you would need to use different tuning settings for the different modes. More importantly, bumpless transfer between 1E and 3E will be difficult.
A better approach is to have three PID blocks:
- LIC-1E: Single element control – level indicating controller (LIC).
- LIC-3E: Three element master – level indicating controller.
- FIC: Three element slave – flow indicating controller (FIC).
FIC gets its setpoint from LIC-3E. To achieve bumpless transfer, when in 1E mode, the 3E loops should track as follows:
- FIC’s OP tracks LIC-1E’s OP. (OP is output.)
- FIC’s SP tracks its PV (in 1E and also if FIC is in manual). (SP is setpoint.)
- LIC-3E’s OP tracks FIC’s SP (in 1E and also anytime FIC is in manual or local).
- LIC-3E’s SP tracks LIC-1E’s SP.
And when in 3E mode, the 1E loops should track as follows:
- LIC-1E’s SP tracks LIC-3E’s SP.
- LIC-1E’s OP tracks FIC-3E’s OP.
Normally I configure the system so the 3E loops are always in auto and FIC is always in remote (cascade) so that operators can take manual control of the BFW valve in 1E only. This is optional. The OP of FIC and LIC-1E will always be the same, so either can be sent to the BFW valve.
Having multiple loops controlling the same PV via the same valve presents a challenge when designing the human machine interface (HMI) to display the loop faceplates. Approaches include having separate pick points for each of the three loops always visible, or having a drum level pick open the faceplate for LIC-1E when in 1E or LIC-3E when in 3E.
Feed forward to 3E flow slave
The standard 3E level control model includes no FF to the FIC. However, I sometimes find it useful to feed the LIC-3E’s OP forward to the FIC (along with sending it to the FIC’s SP) with a small FF gain. This allows me to minimize the FIC’s proportional action (low gain / high % band) so as to not excessively react to noise on the flow meter, while still being very responsive to flow demand changes from LIC-3E.
Determining whether or not to use 1E or 3E
The operator should have a switch to force the system to 1E. The system should also immediately drop to 1E if:
- The steam flow quality is bad.
- The BFW flow quality is bad.
- The steam flow is below the minimum 3E flow.
- The BFW flow is below the minimum 3E flow.
If none of those conditions indicate the need to swap to 1E, a timer should count when the steam and BFW are both above the maximum 1E flow (which should be set higher than the minimum 3E flow). Switch to 3E when that timer completes (after 5-30 seconds). A typical way to configure the system is to set the minimum 3E flow to around 20% of maximum continuous rating (MCR) steam flow and the maximum 1E flow to around 30%.
2E level control
If the BFW flow is measured using an orifice plate, it is not accurate enough below 20% to control and 1E should be used. However, many modern flowmeters have a better turn-down ratio, good enough so that the cascade loop can be used all the time.
I sometimes set the minimum 3E BFW flow to a little below zero so it always stays in 3E as long as the BFW flow quality is good, and then set a low clamp on the steam flow to the FF input so that there is no FF action for very low (or zero or bad quality) steam flows. This effectively makes it 2E control (just level and BFW flow) in that low steam flow regime.
Experiment with 1E, 2E, and 3E control in low flow conditions to see which performs the best.
Transfer of level setpoint from manual and auto
Whether in 1E or 3E, you must consider what happens to the level SP on a transition of the level PID from manual to auto. Options include:
- Always leave the SP where the operator sets it. The advantage is not having to put it back, but the disadvantage is a significant bump to the BFW valve when switching from manual to auto when the level is not close to the SP.
- Have the SP track the PV when in manual, and leave it when it goes back to auto. This avoids the bump, but the operator must put the SP back to the normal level, and that may cause a bump.
- Combine the advantages of both those schemes with a ramping SP. Have a target SP which stays where the operator sets it, and a ramping SP which tracks the PV when in manual, then slowly ramps to the target after switching back to auto. This also enables operators to make large SP changes while in auto without having to repeatedly make small step changes. It also may simplify SP tracking between LIC-1E and LIC-3E since you can have a single target SP station, and always send the resulting ramping SP to both level PID loops.
Shrink and swell
Shrink and swell refers to a phenomenon similar to the mess created by opening a shaken-up soda bottle: when the drum pressure drops, some water down in the tubes flashes, and those steam bubbles push water in the tubes above them up into the drum, raising the drum level even as the total mass of water in the drum and tubes falls.
This can include a temporary reversal in the normal convective flow of water down the "downcomer" tubes. Then when the system stabilizes and those steam bubbles either collapse or reach the drum, the tubes rapidly refill with water from the drum, dropping its level. The effect is asymmetrical, that is, when drum pressure rises due to falling steam demand, it temporarily suppresses the production of steam in the tubes, but the effect is more subtle and convective flow in the tubes is not upset.
There are several schemes to deal with this effect. The one I most often use is to aggressively tune the loops, sacrificing steady-state stability for responsiveness, and let the controller work. However, sometimes this is insufficient and a "relay" on the FF can be helpful. In this scheme, the steam flow FF signal goes through a delay queue so that when the flow rises, the level control does not see that FF for a minute or so; it only raises the OP after the swell event has passed and the drum needs to rapidly refill.
Problems with this approach include needing to characterize the delay needed for the drum (and it will be different for different loads), and that you only want a delay when the flow increases; decreasing steam flow is optimally passed to the FF input immediately. It is possible to overcome these with piece-wise linear blocks and by programming the queue to immediately update all its values where the new flow is lower than that value.
Ramping or filtering the FF signal has a similar effect to a delay queue, and has the advantage of making the asymmetry easier. Many ramp blocks can be configured with different rates for rising (should be slow) and falling (should be fast).
Note that "shrink and swell" does not refer to the expansion of water when heated. Water at room temperature weighs about 62 #/CF. As water warms, its density falls to 40#/CF at 2000 psi, so the water expands, which reduces the need for BFW (or even requiring blowdown to prevent overfilling) during warmup.
One important feature for any cascade control scheme that is especially important for 3E level control is to inhibit LIC-3E OP raises when the FIC’s OP is at its maximum. DO NOT depend on a fixed upper OP limit to LIC-3E to handle this, because the maximum BFW flow rate can vary widely for different situations (varying drum pressure, deaerator storage pressure, number of BFW pumps running, varying valve line-ups, etc). Using a raise-inhibit will allow the system to get the maximum BFW flow for any situation.
If LIC-3E OP is allowed to demand more BFW flow than the valve will pass at 100%, LIC-3E OP will rapidly run all the way to its maximum without seeing any further increase. Then, when the drum level recovers, LIC-3E OP will have to decrease all the way back to the maximum BFW flow before the flow rate begins to reduce, and this will cause a major drum level overshoot.
Ideally, there is a raise-inhibit input on the LIC-3E block. If so, just turn it on when FIC’s OP reaches its maximum. No delay or deadband is necessary. If there is no raise-inhibit input, you can program one by setting the LIC-3E OP high limit to the maximum flow scale normally, then switch it to LIC-3E’s OP during a raise-inhibit condition.
Make sure to raise an alarm when the OP of the FIC or LIC-1E reaches its limit; the raise inhibit will limit the overshoot when conditions recover, but it will not prevent a LO-LO drum level trip. If the flow shortfall is sustained (rather than cyclical), then it will drain the drum unless the operator acts to reduce load.
Another good logic link is to also raise-inhibit the boiler master when the level goes under a raise-inhibit. This will result in a small slump in steam pressure rather than a LO-LO drum level trip followed by a large slump in steam pressure.
Note that there are two ways a system can run out of BFW. If there is not enough pump capacity, the pump discharge pressure will rapidly fall to close to the drum pressure just before the BFW valve goes fully open. To resolve that, the load must be dropped, more pumps must be started (or installed), or pumps refurbished to improve their performance.
The other way is if there are excessive obstructions in the piping between the BFW pumps and the drum, including valves not opening sufficiently. If the BFW pump discharge pressure remains close to its peak when the BFW valve is commanded full open, it may be that it did not fully open or that there are other obstructions in the line.
LIC-3E feed forward and output scaling
Ideally, the LIC-3E OP will be in BFW mass flow units (k#/H, kg/s, etc.) so that it directly sets the SP of FIC, and the steam flow FF needs no scaling. However, some PID blocks require outputs to be in percentages. In that case, you must perform the following scaling:
- Scale the steam flow to % to use as a feed forward to LIC-3E.
- Scale LIC-3E’s OP from % to mass flow units for FIC’s SP.
- Scale FIC’s PV from mass flow units to % for LIC-3E’s OP to track when in 1E.
Pick flow units that will result in three or four digits at full load. For most boilers, this will mean k#/H (thousands of pounds per hour) or kg/s (kilograms per second). Please do not use #/H or kg/minute as the flow will be six or seven digits, which is not good engineering practice. And definitely use mass flow so that steam flow and BFW flow are equivalent; do NOT use volumetric flow (gpm, Lpm, etc).
Drums always have a blowdown valve, and some level measurement columns also have a separate blowdown valve. If the blowdown valve comes off in a place that does not affect the drum level measurement (such as a separate steam drum tap or mud drum, etc.), this does not significantly affect drum level control and can be ignored.
However, blowdown valves on a tap shared by a level measurement transmitter or column should be handled. The typical way this is done is to install a physical PB (pushbutton) next to the valve actuator so that the operator holds the button while blowing down, then releases it after complete. If present, this PB input normally goes to the BMS. If the blowdown also affects transmitters, or the CCS is looking at level switches along with the BMS, the PB should be sent to the CCS as an input as well. Sending it via communication link from the BMS is fine.
Soot blowers often cause a major upset to drum level because they usually take steam right off the drum, and open suddenly; these exacerbate the shrink/swell effect. It is therefore vital to include soot blow steam demand in the feed forward signal. If flow is not measured, use either the valve position multiplied by a constant, or just a constant adder when a soot blower is active.
Alternate control schemes
The scheme described above is the optimal 3E control scheme. However, if your controller does not have a feed forward input, you can still have the slave loop control the flow, where the SP from the level master OP is the desired difference between steam and BFW flow. Nominally, this acts the same as standard 3E, but it becomes more challenging to do things like have a feed-forward gain other than 1, or ramp the feed-forward for shrink/swell compensation, and you don’t have a straightforward loop controlling a simple flow rate.
BFW valve characterization: Don’t!
Characterizing CCS analog outputs to valves and dampers is a common practice. However, I avoid it as much as possible because the characterizations:
- Must be maintained
- Can be variable for different conditions
- Confuse the operator (% OP on the PID loop is not % valve / damper position).
For dampers and other devices which are consistent in their nonlinearity, I prefer adaptive gain to make the loop more reactive at higher OPs (where an OP change results in less PV change). BFW valves are inconsistent in their nonlinearity due to highly variable DP (differential pressure) across the valve and variable numbers of BFW pumps running. Fortunately, characterization is not needed.
The primary purpose of the slave flow loop in 3-element control is to linearize the level master loop’s OP. It is so much more responsive than the level loop that it can be adequately tuned through the whole range of positions and DPs.
Multiple BFW valves
There is one exception to my "no-characterization" recommendation: Some systems have a small startup BFW valve and a large BFW valve for normal use. I recommend running the OP from LIC-1E and FIC through a pair of characterization blocks to perform split-range control. There are two general types of characterization: one with the startup valve fully open at high loads, and one with the startup valve closed at high loads. It is easier to tune the system if the startup valve stays open at high loads. Here are some typical values for the characterization tables:
Notice that the valves’ control bands overlap. This is necessary because most valves don’t unseat until the command is several % above 0, and have little effect on flow above 60%-80%.
Oversized BFW valves
Some BFW valves are oversized, meaning they jump to a significant fraction of MCR flow at a very low OP %. The best way to address this is to either install a startup valve in parallel (see above) or to install a different valve trim which allows a controllable low flow even at very high DPs, up to at least 20% more flow than the 100% MCR steam flow.
There are short-term solutions which will allow the level to be controllable, but they aren’t pretty. Generally what happens, without taking any special action, is the system stays in 1E and "slug feeds" (the valve opens, more than the desirable flow goes through, raising the level above setpoint, then the valve fully closes until the level falls below SP).
This is probably the best-case scenario short of actually fixing the problem. I have also installed "chopper" logic to rapidly cycle the valve between 0% and 3% in the case of a valve which jumped the flow from 0 to 25% MCR at around 2%, but that ended up causing physical damage to various components from surging pressure.
Summary advice for smarter level control
Three-element drum control allows the level PID loop to have a linear OP and to anticipate minimize upsets from changing steam demand. Proper mechanical installation and density compensation are essential on all three inputs.
Trip alarms should be raised on 2oo3 voting or on level switches, but the PV for the level loops should be the average of the drum level transmitters. Use three PID blocks, which track each other when not active, for bumpless transfer. Instantly drop back to 1E if conditions require it, but have a delay once 3E conditions have been regained before switching back.
Some systems control better at low flows in 1E, but others do better in 3E, or 2E if low BFW flows are reliable, but low steam flows are not. Ramp the level setpoint to an operator-selected target to minimize bumps on manual-auto transition or SP changes.
The drum level will rise, even as total water mass falls, after a drop in drum pressure; some systems can be tuned aggressively enough to respond well to shrink/swell events, while others need special programming on the FF signal to help anticipate and mitigate the upset. Make sure you prevent the master level loop OP from continuing to rise once the slave flow loop has reached its maximum.
Scale the master level OP in the same mass flow units as the BFW and steam flows if possible; otherwise, you will have to scale FF and SP signals. If your system does not support FF inputs to PID blocks, you can control the difference between the BFW and steam flows rather than the BFW flow directly. BFW valves do not need characterization unless there are two of them (startup and main), in which case you should use characterization blocks to achieve split-range control.
Special thanks to Matt Blackburn of ESI for his helpful review.
Chris Hardy is an electrical engineer who attended Georgia Tech. At Cross Company Integrated Systems Group since 1994, Chris has process control experience with boilers, alternative energy, water/waste water, chemicals, pharmaceuticals, security, textiles, and automotive. Chris also programs controllers/HMIs and writes custom Windows applications for communication, data collection, display, trending, and reporting. Edited by Mark Hoske, Content Manager, Control Engineering, firstname.lastname@example.org
Cross Company Integrated Systems Group is a CSIA member as of 3/5/2015