Optimizing cascade control for exothermic batch reactors
Q: We have a cascade temperature control system operating two supply valves in an exothermic batch reactor. One is hot and the other is cold. They're run by one master PID temperature controller.
The control system we use is DeltaV. Initially, I was using “PD action on error” in the PID function block, but that didn't always work properly. It works only for shorter heating or cooling cycles, but there's an offset of 3 °F for longer heating times, where the setpoint is high (97 °F). In addition, the controller acts differently during cooling and heating. The heating valve opens and closes too quickly, which results in an offset. The cold valve opens and closes too slowly.
Why do the two valves not open and close at the same rate, and why does the heating valve close too soon compared to the cold valve? Also, if I use the PD action on error, is there a way I can remove the offset without using the integral term. I guess this can be done with the bias term, but how do I calculate the appropriate bias term to remove the offset?
Pat Luktuke, control engineer / [email protected]
A1: In cascade control, you have three control loops inside each other. The outer or master loop controls the reactor temperature by generating a setpoint for the slave or inner loop (Slave 1) that controls the temperature of the heat transfer fluid in the reactor jacket. The Slave 1 loop does this by generating a setpoint for the control valve positioners (Slave 2).
You must make sure that each inner loop is faster than its outer loop to eliminate cycling. Faster, in this sense, means that its dead time is shorter and reaction rate is faster than its outer loop. Therefore, I'd make sure your positioners are fast enough. I'd also use derivative (anticipation) in both the master and slave controllers.
For the master controller, I'd provide external reset on measurement (ER in Figure 1), so when it is switched into "manual" mode, it's protected against integral windup.
As to the "split point" between the valves, I'd set the split point at around 30% because the steam-heating effect is greater than the size of the cooling effect. This is the point where both valves are nearly closed (a little overlap is fine). At this point, the cooling valve is nearly or completely closed, and the heating valve is just beginning to open.
Béla Lipták / [email protected]
A2: [Editor’s note: The following answer includes earlier comments from Greg Shinskey, known to many in the industry as “the genius behind feedforward control.”]
Both primary and secondary controllers should be tuned as tightly as possible in response to load changes. Derivative is required in both controllers, but only on the controlled variable. In a cascade system, the master temperature controller would set the setpoint of the exit temperature controller that manipulates the valves, configured as recommended in Figure 1. This master controller must have integral mode to eliminate offset because the heat load changes with temperature and time in a batch reactor.
Bias adjustment must be estimated and tested with close observation. Whenever the PID is switched from manual to automatic, the bias is automatically corrected by an invisible amount in the DeltaV system to provide “bumpless” transfer. The invisible correction to the bias is ramped to zero over a period of time set by the balance time parameter called “BAL_TIME.”
You could start with an integral time that's about 10x your derivative time, or about 3,000 seconds (10 x 300 seconds) if there is no oscillation. If oscillation occurs before you reach setpoint, your rate setting is high, and if oscillation occurs after you reach setpoint, your controller gain is high. Low controller gain causes slow rolling oscillations and overshoot. High gain causes instability. Also, since the valves are nonlinear and the process dynamics for heating and cooling differ, you should use different tuning settings during heating than during cooling.
Greg Shinskey, former chief control consultant at Foxboro Co.
A3: Normally in a cascade control configuration, the output of a master controller (in this case, reactor temperature) sets the setpoint of a secondary controller (in this case, that is the temperature of the mix of the heating/cooling medium), and the output of the secondary controller controls the split range valves. As you describe the application, it doesn't seem as if you have a cascade loop. But you should have a fast-acting secondary controller can respond rapidly to disturbances in the heating and/or cooling medium supply.
Though you don't mention it, I assume you have an exothermic reactor, so cooling is required during the reaction phase. A common problem with exothermic reactors is they can be unstable at the normal operating point. See Figure 8.10e by Shinskey in Lipták's Instrument Engineer's Handbook, 4th Edition, Volume 2, which is reproduced below as Figure 2. Because of the open-loop instability, the reactor can appear to be an integrating process, but it is not. It doesn't have characteristics of a self-regulating process either.
Having open-loop instability, the controller needs derivative. I wouldn't use Lambda tuning because it presumes there are self-regulating process characteristics, which exothermic reactors don't have. Plus, it only applies to the proportional and integral modes, not the derivative. Both the master and the slave controller should have derivative to overcome the open-loop instability. In the master (primary) controller, the derivative should only act on the measurement, while the derivative in the secondary controller should only act on the error but not on the measurement.
The strength of the heating effect is greater than the strength of the cooling effect. Therefore, the split point could be chosen to be 33.3%, so the cooling valve would go from open to close, 0% to 33.3%, and the heating valve would go from close to open, 33.3% to 100%.
Dr. Harold L. Wade, ISA fellow, former president of Wade Associates Inc.