The maximum speed of response, and the 'tightness' of control, is tied to the time constants of the controlled process. Where a process response is slow, it isn't possible to use high gains without running into stability problems. Often, however, these sluggish processes are actually a composite of several lower order, and sometimes much faster, sub-processes. For example, consider a steam jacketed stirred tank heater. When the steam valve opens the pressure in the jacket rises very quickly, increasing the condensation temperature, and this eventually leads to the liquid exit temperature from the heater rising. However, the thermal capacity of the jacket is much less than the liquid in the tank, and so the jacket dynamics are much faster than the tank dynamics. In situations like these, and where intermediate measurements of the output from the sub-processes are available, considerable improvements in control can be achieved by using cascade control.
In a cascade control scheme a controller is fitted around the sub-processes which precede the slow part of the process. These controllers are used to quickly eliminate any disturbances arising in these sub-processes without them having a chance to significantly affect the slow process. Disturbances may also affect the slow process directly and so it is still necessary to attach a controller to the controlled variable, but since the manipulated variable is connected to the sub-process controller, it is necessary to connect the output of the main ( called the primary or master ) controller to the setpoint of the sub-process (secondary or slave) controller.
In the steam-jacketed heater example, a temperature measurement of the jacket temperature would be connected to a temperature controller which manipulated the steam flow. This secondary controller would protect the process against disturbances in the inlet steam pressure, or steam quality, by quickly detecting and correcting changes in the jacket temperature. The primary controller would still be connected to the liquid outlet temperature, but the controller output would be connected to the jacket temperature controller setpoint, so, if the tank temperature started to fall, the primary controller would demand a higher jacket temperature.
Cascade control is very common in chemical plants. Where flow rates are to be manipulated this is almost always done through a secondary flow controller.
In this example
the concentration from a reactor is being controlled by a concentration controller (XC)
which is cascaded to a flow controller (FC) on an input flow to the reactor. With this
scheme, the flow controller will quickly deal with any up-stream or down-stream pressure
variations which could disturb the flow into the reactor. The dynamics of the flow loop
are very fast - effectively they are the dynamics of the control valve. The concentration
controller deals with other disturbances to the outlet concentration (e.g. inlet
concentration changes, temperature changes, etc) by requesting the flow controller to
change the flow through the reactor. The concentration loop will have relatively slow
dynamics due to the large mass hold-up in the reactor.
Cascading onto flow controllers is very common in the process industries. Only in a few cases will the output of a controller (other than a flow controller!) be led directly to a valve - most of the time it will be fed to a secondary flow controller.
In this example
the feed to a packed bed reactor is preheated. The concentration is manipulated by
changing the amount of preheat. The control arrangement shown cascades the concentration
controller to a temperature controller on the heat exchanger. Provided the heat exchanger
dynamics are significantly faster than the reactor dynamics, then this is a very powerful
cascade arrangement. The temperature controller will deal with disturbances in the flow
and heating quality of the heating medium and will also deal with flow and thermal changes
in the reactor feed. This example is from Marlin.
For cascade control to be worthwhile the following need to be satisfied:
Some care needs to be taken when converting an existing loop to cascade control to make sure that the appropriate control action direction and output units are assigned to the primary controller. For example, imagine the situation where an existing controller is used to control the temperature of a large reactor by varying the flowrate of a low heat capacity coolant in a small jacket. In the existing scheme if the manipulation increases (the valve signal) then the vessel temperature will decrease, so the sign on the manipulation gain is negative and a direct acting controller is required. However, if a secondary temperature controller is fitted to the jacket with the primary cascaded to the jacket temperature setpoint, then an increase in the primary output (the jacket setpoint) will cause an increase in the vessel temperature. In other words, the sign of the process gain the vessel temperature controller is seeing has changed to positive and a reverse acting controller would be required.
In addition to the possibility of the direction of control action being altered, there is the certainty than the units and range of the output will change. Instead of being connected to a valve the controller will be connected to a setpoint and the output should, usually, have the same units and range as the measured variable of the secondary controller.
Integral windup has already been discussed. When commercial PID controllers are directly connected to the control valve, integral windup should be handled automatically provided the output limits have been properly set. When a controller is used as a primary in a cascade loop, however, this is not the case. The problem is that the primary controllers output is the setpoint for the secondary controller and not the control valve. The secondary controller adjusts the control valve. Now, if something happens in the secondary loop that causes the control valve to bump against a limit, the primary controller has no way of knowing this has happened and will continue with integral action (changing the secondary setpoint).
The solution to this problem is to provide some means of communication between the secondary and primary controllers that allows the secondary to inform the primary when the output has saturated. The StrathPID controller does this by providing an auxiliary output (the lower of the two) which moves from 0 to 1 when the output saturates (hits a limit). The controller also has an auxiliary input (the lowest of the three) which allows the saturation status of lower level controllers to be entered - if this value is set to 1, the controller stops integrating.
Tuning a cascade control scheme is similar to tuning a normal PID controller, but, because the primary controller is only connected to the process through the secondary controller, it has to be done in a fixed order:
I've put together a VisSim example of the control of a process with and without cascade which can be found here. The process is the reactor model I developed earlier in the course, which has been modified by the addition of an additional first-order process to represent a measuring instrument. This makes the overall open-loop process response (between the flow and product concentration) third-order.