Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/www.controlglobal.com/articles/2010/ControlLoops1005.html on line 28

Warning: require() [function.require]: Unable to allocate memory for pool. in /www/pro/htdocs/scripts/include.php on line 377

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /www/pro/htdocs/scripts/include.php on line 399

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 899

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 899

Warning: Cannot modify header information - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 531

Warning: Cannot modify header information - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 532

Warning: Cannot modify header information - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 533

Warning: Cannot modify header information - headers already sent in /www/pro/htdocs/community/includes/bootstrap.inc on line 534

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/template.php on line 33

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/template-subtheme.php on line 10

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/controlglobal/template.php on line 56

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /www/pro/htdocs/community/includes/module.inc on line 217

Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /www/pro/htdocs/community/includes/module.inc on line 217

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/controlglobal/template.php on line 85

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/template.php on line 36

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /www/pro/htdocs/community/sites/all/themes/zen/template.php on line 39
Control Loops | Maximizing Control-Loop Performance | Control Global
Log In Register

Maximizing Control-Loop Performance

Tune Your Processes to Stop Giving Away Valuable Commodities

05/05/2010

1 vote
Text size: - +

Composition and temperature measurements are properties of a flowing stream. The heat content of a flowing stream is the product of its flow and its temperature rise above inlet conditions. Similarly, the rate of high-octane blending ingredient needed to reach the blend specification is the product of the main stock flow and the rise in octane number required. Multiplication is a bilinear operation—the output of a multiplier is linear with both of the inputs. Multiplication of variables is an essential function in feedforward control of composition and temperature. Accurate multipliers only became available in pneumatic and electronic instrumentation in 1960, which is when feedforward control began to be applied to heaters and distillation columns.

The bottom system in Fig. 5 multiplies the load variable—feed flow—by the PID output. A very common example of a bilinear feedforward system is the control of stack-gas oxygen by manipulating the air-to-fuel ratio in a combustor. The oxygen-controller output then represents the ratio of the manipulated airflow to the load fuel flow. This ratio is not a constant, but varies with both the heating value of the fuel and the setpoint of the controller in terms of percent oxygen in the stack gas. This setpoint is varied with load in most boilers, and the heating value of the fuel varies widely in mixed-fuel installations. When either of these parameters changes, the oxygen measurement is upset, and the controller must readjust its output to restore a balance. In doing so, it is not only returning the controlled variable to setpoint, it is also recalibrating the feedforward gain to match the new process gain.

The multiplier also serves another purpose: gain-compensating the feedback loop. The gain of a bilinear process varies inversely with flow. For example, a step in the flow of octane enhancer to a blender will have twice the effect on the blend octane at half the production rate as it does at full production. Likewise, a step in steam flow to a heat exchanger will have twice the effect on the temperature of liquid leaving at half flow than it does at full flow. This has led engineers over the years to use equal-percentage valves for temperature control, as the valve gain varies directly with flow delivered. In the bottom diagram of Fig. 5, the feedback-loop gain from the controller passes through the multiplier, whose gain varies with the load variable, the flow through the process.

Applying Dynamic Compensation

Some processes have their load and manipulated variables entering at different points physically, with different dynamic effects. A case in point is the heat exchanger, where liquid exit temperature responds faster to the flow of liquid entering the tube bundle than to steam flow entering the shell. Stepping the manipulated steam flow down in response to a drop in liquid flow will then result in a temporary rise in exit temperature until a new steady state is reached. Figure 6 shows the solid blue curve as the result of a step down in liquid flow to a simulated heat exchanger using static feedforward alone—no dynamic compensation or feedback. While the peak deviation is less than the black curve under PID control, it has a pronounced integrated error owing to the dynamic imbalance in the process.

Figure 6
Fig. 6.  Dynamic compensation is essential in feedforward control of heat transfer.

Static feedforward that is inaccurate results in offset if there is no feedback controller to correct the error brought about by a gain mismatch in the forward calculation. Static feedforward that is accurate provides all the change in the manipulated variable required to match the new load, so that the controlled variable will return to setpoint without any effort on the part of the feedback controller. The controller output is therefore the same before and after the load change. The PID controller was left in Manual to produce the solid blue curve; then the load change was repeated with the controller in Auto, producing the dashed blue curve. The controller made a correction in an attempt to reduce the deviation from setpoint, though too late to have much effect on its peak value, and then had to remove the correction altogether approaching the new steady state. The result is an IE of zero.

Achieving a dynamic balance requires matching the dominant lag in the load path with an equal lag in the path of the manipulated variable, and canceling the lag in the manipulated-variable path with an equal lead. The dynamic compensator commonly used in feedforward control is, therefore, a lead-lag function, sometimes with a little dead time added where necessary. In the case of the heat exchanger, the lead time constant needs to be greater than the lag, giving a dynamic gain—their ratio—typically in the range of 1.5-3.

The IE in the response curve will be zero without feedback when the difference between lead and lag time constants of the compensator matches the difference between the two process lags. This is a useful guide to tuning the compensator, but is insufficient to achieve a dynamic balance—the ratio of lead to lag must also match that of the process lags. If the peak deviation develops on the side driven by the load, the ratio of lead to lag is not high enough. Reducing both lead and lag settings while keeping their difference constant will increase their ratio while keeping IE at zero. The red response curve is typical of what can be achieved by careful tuning—a minimal peak deviation and an IE of zero.

Once-through processes such as heat exchangers without recirculation have an additional complication: their dynamics vary inversely with flow. Fixed values of lead and lag can then be correct at only a single flow rate. As flow increases, both process lags decrease, and so does their difference. As a consequence, IE can be zero at only one flow. This is easily correctible, however, by programming the lead and lag settings to vary inversely with measured flow. The integral and derivative settings of the PID controller should also be programmed in the same way. This was done in the simulation results appearing in Fig. 6.


References

  1. Shinskey, F. G., "Multivariable Control of Distillation,"Control, May-July, 2009. (see Multivariable Control of Distillation,
    Multivariable Control of Distillation, Part 2, Genie in a Bottle: Distilling Greg Shinskey into Software
  2. Shinskey, F. G., "Controlling Distributed Processes,"Control, May 2007.
  3. Shinskey, F. G., "PID-deadtime Control of Distributed Processes, Control Engineering Practice, 9 (2001) 1177-1183.
1 vote

Read more about

Related Content You May Like If you enjoy this article, our editors think you may enjoy this related reading.