Process_Control_Topic_8_new
Process_Control_Topic_8_new
Were:
SP2 = inner secondary set point;
CO2 = inner secondary controller output signal;
PV2 = inner secondary measured process variable signal;
D2 = inner disturbance variable (often not measured or available as a signal);
FCE = final control element such as a valve, variable speed pump or
compressor, etc.
Because we are willing to invest the additional effort and expense to improve
the performance response of PV1, it is reasonable to assume that it is a variable
important to process safety and/or profitability. Otherwise, it does not make sense to
add the complexity of a cascade structure.
Naming Conventions
Like many things in the PID control world, vendor documentation is not
consistent. The most common naming conventions we see for cascade (also called
nested) loops are:
▪ secondary and primary
▪ inner and outer
▪ slave and master
In an attempt at clarity, we are somewhat repetitive in this topic by using labels
like "inner secondary" and "outer primary."
An Illustrative Example
To illustrate the construction and value of a cascade architecture, consider the
liquid level control process shown below [1]. This is a variation on our gravity drained
tanks, so hopefully, the behavior of the process below follows intuitively from our
previous investigations.
As shown above, the tank is essentially a barrel with a hole punched in the
bottom. Liquid enters through a feed valve at the top of the tank. The exit flow is
liquid draining freely by the force of gravity out through the hole in the tank bottom.
The control objective is to maintain liquid level at set point (SP) in spite of
unmeasured disturbances. Given this objective, our measured process variable (PV) is
liquid level in the tank. We measure level with a sensor and transmit the signal to a
level controller (the LC inside the circle in the diagram).
After comparing set point to measurement, the level controller (LC) computes
and transmits a controller output (CO) signal to the feed valve. As the feed valve opens
and closes, the liquid feed rate entering the top of the tank increases and decreases to
raise and lower the liquid level in the tank.
This "measure, compute and act" procedure repeats every loop sample time, T,
as the controller works to maintain tank level at set point.
The Disturbance
The disturbance of concern is the pressure in the main liquid header. As shown
in the diagram above, the header supplies the liquid that feeds our tank. It also supplies
liquid to several other lines flowing to different process units in the plant.
Whenever the flow rate of one of these other lines changes, the header pressure
can be impacted. If several line valves from the main header open at about the same
time, for example, the header pressure will drop until its own control system corrects
the imbalance. If one of the line valves shuts in an emergency action, the header
pressure will momentarily spike.
As the plant moves through the cycles and fluctuations of daily production, the
header pressure rises and falls in an unpredictable fashion. And every time the header
pressure changes, the feed rate to our tank is impacted.
With this cascade structure, if liquid level is too high, the primary level
controller now calls for a decreased liquid feed flow rate rather than simply a decrease
in valve opening. The flow controller then decides whether this means opening or
closing the valve and by how much.
Note in the diagram that, true to a cascade, the level controller output signal
(CO1) becomes the set point for the flow controller (SP2).
Header pressure disturbances are quickly detected and addressed by the
secondary flow controller. This minimizes any disruption caused by changing header
pressure to the benefit of our primary level control process.
As required for a successful design, the inner secondary flow control loop is
nested inside the primary outer level control loop. That is:
▪ The feed flow rate (PV2) responds before the tank level (PV1) when the header
pressure disturbs the process or when the feed valve moves.
▪ The output of the primary controller, CO1, is wired such that it becomes the set
point of the secondary controller, SP2.
▪ Ultimately, level measurement, PV1, is our process variable of primary concern.
Protecting PV1 from header pressure disturbances is the goal of the cascade.
Fig. 8.8. The cascade structure is a secondary lop inside a primary loop
Note from the block diagram at the top of the topic that the inner secondary
process dynamics are contained within the overall process dynamics. Therefore, the
physics of a cascade implies that the time constant and dead time values for the inner
process will not be greater than those of the overall process, or:
Tp (CO2 −› PV2) ≤ Tp (CO2 −› PV1) and
Өp (CO2 −› PV2) ≤ Өp (CO2 −› PV1)
3) Use the time constants to decide whether the inner secondary dynamics are
fast enough for a PI controller on the inner loop [1].
Case 1: If the inner secondary process is not at least 3 times faster than the
overall process, it is not fast enough for a PI controller.
• If 3Tp (CO2 −› PV2) > Tp (CO2 −› PV1) => Use P-Only controller
Case 2: If the inner process is 3 to 5 times faster than the overall process, then
P-Only will perform similar to PI control. Use our own preference.
• If 3Tp (CO2 −› PV2) ≤ Tp (CO2 −› PV1) ≤ 5Tp (CO2 −› PV2) => Use
either P-Only or PI controller
Case 3: If the inner process is more than 5 times faster than the overall process,
it is "fast" and a PI controller will provide improved performance.
• If 5Tp (CO2 −› PV2) < Tp (CO2 −› PV1) => Use PI controller
4) When we have determine whether the inner secondary controller should be a
P-Only or PI algorithm, we tune it and test it. Once acceptable performance has been
achieved, leave the inner secondary controller in automatic; it now literally becomes
part of the outer primary process.
5) Select an algorithm with integral action for the outer primary controller (PI,
PID or PID with CO filter) to ensure that offset is eliminated. Tune the primary
controller using the design and tuning recipe. Note that bumping the outer primary
process requires stepping, pulse or otherwise perturbing the set point (SP2) of the inner
secondary controller.
6) With both controllers in automatic, tuning of the cascade is complete.
Now, our inner secondary control loop measures the temperature of cooling
liquid exiting at the jacket outlet (PV2) and sends a signal (CO2) to the valve adjusting
cooling jacket flow rate. The valve increases or decreases the flow rate of cooling
liquid if the jacket temperature needs to fall or rise, respectively.
Our outer loop maintains reactor exit stream temperature (our process variable
of primary interest and concern) as PV1. Note in the graphic above that the controller
output of our primary controller, CO1, becomes the set point of our inner secondary
controller, SP2.
If PV1 needs to rise, the primary controller signals a higher set point for the
jacket temperature (CO1 = SP2). The inner secondary controller then decides if this
means opening or closing the valve and by how much.
Thus, variations in the temperature of cooling liquid entering the jacket (D) are
addressed quickly and directly by the inner secondary loop to the benefit of PV1.
The cascade architecture variables are identified on the above graphic and listed
below:
PV2 = cooling jacket outlet temperature is our "early warning" process variable
o
( C)
CO2 = controller output to valve that adjusts cooling jacket liquid flow rate (%)
SP2 = CO1 = desired cooling jacket outlet temperature (oC)
PV1 = reactor exit stream temperature (oC)
SP1 = desired reactor exit stream temperature (oC)
D = temperature of cooling liquid entering the jacket (oC)
The inner secondary PV2 (cooling jacket outlet temperature) is a proper early
warning process variable because:
▪ PV2 is measurable with a temperature sensor.
▪ The same valve used to manipulate PV1 also manipulates PV2.
▪ The same disturbance that is of concern for PV1 also disrupts PV2.
▪ PV2 responds before PV1 to the disturbance of concern and to valve
manipulations.
Tuning a Cascade
With a cascade architecture established, we apply our implementation recipe for
cascade control and explore the disturbance rejection capabilities of this structure.
Our control objective for the jacketed stirred reactor is to maintain reactor exit
stream temperature at set point in spite of disturbances caused by a changing cooling
liquid temperature entering the vessel jacket. In previous topics, we have established
the design level of operation for the reactor and explored the performance of a single
loop PI controller and a PID with CO Filter controller in meeting our control objective.
We also have proposed a cascade control architecture for the reactor that offers
potential for improving disturbance rejection performance. We now apply our
proposed architecture following the implementation recipe for cascade control. Our
goal is to demonstrate the implementation procedure, understand the benefits and
drawbacks of the method, and explore cascade disturbance rejection performance for
this process.
Expressed concisely, the plots show that the delay in response (or dead time,
Өp) follows the rule:
Өp (D→PV2) < Өp (D→PV1) and Өp (CO2→PV2) < Өp (CO2→PV1)
Thus, a cascade control architecture should improve disturbance rejection
performance relative to a single loop architecture.
P-Only vs. PI for Inner Secondary Controller
The cascade implementation recipe first helps us decide if the inner secondary
controller is fast enough for a PI algorithm or if it is better suited for a P-Only
algorithm. The decision is based on the size of the inner secondary time constant
relative to that of the overall process time constant.
To compute these time constants, we need to bump the process and analyze the
dynamic process response data. In this example we choose to place both inner
secondary and outer primary controllers in manual mode (open loop) during the bump
test. An alternative not explored here is to have the inner secondary controller in
automatic mode with tuning sufficiently active to force a clear dynamic response in
PV2.
Following the steps of the cascade implementation recipe [1]:
1) With the process steady at the design level of operation (DLO), we perform
a doublet test, choosing here to move CO2 from 34.3%→39.3%→29.3%→34.3%. We
record both PV2 and PV1 dynamic data as the process responds. We use this "step 1
data set" as we proceed with the implementation recipe.
2) As shown in the plots below [1], we use commercial software to fit a first
order plus dead time (FOPDT) model to the inner secondary process (CO2→PV2)
dynamic data and another to the overall process (CO2→PV1) dynamic data :
The FOPDT model parameters from these bump tests are summarized [1]:
The cascade block diagram implies that the time constant and dead time values
for the inner process are contained within and contribute to the dynamics of the overall
process. Thus, we can surmise that:
Tp (CO2→PV2) ≤ Tp (CO2→PV1) and Өp (CO2→PV2) ≤ Өp (CO2→PV1)
Yet the values in the table above indicate that this seemingly fundamental
relationship does not hold true for the jacketed stirred reactor. In fact, when using a
FOPDT model approximation of the dynamic response data, the time constant of the
inner secondary process is slightly larger (longer) than that of the overall process.
The process graphic at the top of this topic shows a main reactor vessel with a
large volume of liquid relative to that of the cooling jacket. The function of the cooling
jacket is to remove heat energy to regulate reactor vessel temperature.
It seems logical that because of the volume differences, as long as the liquid
temperature in the large reactor is changing, the temperature of the liquid in the small
cooling jacket must follow. And the liquid in the reactor acts as a heat source because
the chemical reaction inside the vessel generates heat energy faster as reactor
temperature rises (and vice versa).
This intertwined relationship of heat generation and removal combined with
relative sizes of the reactor and jacket offers one physical rationalization as to why the
jacket (inner secondary) Tp might reasonably be longer than that of the vessel (overall
process) Tp.
A simpler explanation is that the sensor used to measure temperature in the
cooling jacket outlet flow was improperly specified at the time of purchase, and
unfortunately, it responds slowly to actual cooling liquid changes. This additional
response time alone could account for the observed behavior.
In any case, the dead time of the overall process is three times that of the inner
secondary controller, and thus, PV2 provides a clear early warning that we can exploit
for a cascade design. So while the simple cascade recipe has limitations that require
our judgment, it provides valuable insights that enable us to proceed.
3) The cascade implementation recipe uses a time constant comparison to
decide whether the inner secondary loop is fast enough for a PI controller. We reach a
true statement with case 1 of the decision tree in step 3 of the recipe. That decision is:
if 3Tp (CO2→PV2) > Tp (CO2→PV1) => Use P-Only controller
or using the parameters in the table above:
if 3(2.3 min) > 2.2 min => Use a P-Only controller.
( ) ( )
1 .22 1.22
0. 2 Tp 0. 2 2. 3
Kc= = =−5 .3 %/ °C
Kp Θp −0. 57 0 .25
TRIAL 2: Aggressive P-Only
Kc = 2.5 (Moderate Kc) = 2.5 (–5.3) = – 13.3 %/oC
PI Controller design and tuning, including computing controller gain, Kc, and
reset time, Ti, from FOPDT model parameters is summarized in the example in this
section.
Following those details:
Kc
CO=CObias+Kc e(t )+ ∫ e(t )dt
PI algorithm: Ti
TRIAL 3: Moderate PI
Moderate Tc = the larger of 1·Tp or 8·Өp = larger of 1(2.3 min) or 8(0.25 min)
= 2.3 min
1 Tp 1 1,3
Kc= = =−1 , 6
Kp (Θp+Tc ) -0 . 57 (0 .25+2. 3 ) °C/% and Ti=Tp=2,3 min
TRIAL 4: Aggressive PI
Aggressive Tc = the larger of 0.1·Tp or 0.8·Өp = larger of 0.1(2.3 min) or 0.8(0.25
min) = 0.23 min
1 Tp 1 2,3
Kc= = =−8 , 4
Kp (Θp+Tc ) -0. 57 (0 .25+0 .23 ) °C/% and Ti=Tp=2,3 min
The "step 1 data set" model parameters and the four inner secondary controllers
designed from this data are summarized in the upper half of the table below [1]:
Fig. 8.14. Outer primary bump testsfor the four trial controllers
Our success is shown on the upper portion of the plot. The outer primary set
point, SP1 (in gold) remains constant throughout the study. Our interest is in the ability
of each of the cascade implementations to maintain reactor exit temperature PV1 at
SP1 in spite of the abrupt disturbance changes.
Some Observations
In general, a more successful (or "better") cascade performance is one where:
▪ there is a smaller maximum deviation from set point during the disturbance, and
▪ PV1 most rapidly returns to and settles out at set point after a disturbance.
• Trials 2 and 4 both have aggressively tuned inner secondary controllers, and
these two implementations both have the smallest deviations from set point and settle
most rapidly back to SP. This supports the notion that inner secondary controllers
should energetically attack early warning PV2 disruptions for best cascade
performance.
• While an aggressively tuned inner secondary P-Only and PI controller (trials 2
and 4) performed with similar success, the moderately tuned inner secondary PI
controller (trial 3) displayed markedly degraded performance. This high sensitivity to
inner loop PI tuning strengthens the "use P-Only" conclusion made in step 3 of our
cascade implementation recipe.
The cascade architecture reduces the maximum deviation from SP during the
disturbance from ±2 oC for the single loop controller down to ±0.5 oC for the cascade.
Settling time is shortened from about 10 minutes for the single loop controller down to
about 8 minutes for the cascade.
If the financial return from such improved performance is greater than the cost
to install and maintain the cascade, then choose cascade control.
where:
CO = controller output signal
D = measured disturbance variable
e(t) = controller error, SP – PV
FCE = final control element (e.g., valve, variable speed pump or compressor)
PV = measured process variable
SP = set point
To appreciate the additional components associated with a feed forward
controller, we can compare the above to the previously discussed traditional feed back
control loop block diagram.
Fig. 8.19. The architecture of a feed-forward-only controller for the heat exchanger
The PV to be controlled is the exit temperature on the tube side of the
exchanger. To regulate this exit temperature, the CO signal adjusts a valve to
manipulate the flow rate of cooling liquid on the shell side. A side stream of warm
liquid combines with the hot liquid entering the exchanger and acts as a measured
disturbance, D, to our process.
Because there is no feedback of a PV measurement in our controller
architecture, feed-forward-only presents the interesting notion of open loop control. As
such, it does not have a tendency to induce oscillations in the PV as can a poorly tuned
feedback controller.
If we could mathematically describe how each change in D impacts PV
(D→PV) and how each change in CO impacts PV (CO→PV), then we could develop a
math model that predicts what manipulations to make in CO to maintain PV at set
point whenever D changes.
But this would only be true if:
▪ we have perfect understanding of the D→PV and CO→PV dynamic
relationships,
▪ we can describe these perfect dynamic relationships mathematically,
▪ these relationships never change,
▪ there are no other unmeasured disturbances impacting PV, and
▪ set point, SP, is always held constant.
The reality, however, is that with only a single measured D, a predictive model
cannot account for many phenomena that impact the D → PV and CO → PV behavior.
These may include changes in:
the temperature and flow rate of the hot liquid feed that mixes with our warm
▪ disturbance stream on the tube side,
the temperature of the cooling liquid on the shell side,
▪
the ambient temperature surrounding the exchanger that drives heat loss to the
▪ environment,
the shell/tube heat transfer coefficient due to corrosion or fouling, and
▪
valve performance and capability due to wear and component failure.
▪
Since all of the above are unmeasured, a fixed or stationary model cannot
account for them when it computes control action predictions. Installing additional
sensors and enhancing the feed forward model to account for each would improve
performance but would lead to an expensive and complex architecture. And since there
are more potential disturbances and external influences then those listed above, that
still would not be sufficient.
This highlights that feed-forward-only control is problematic and should only
be considered in rare instances. One situation where it may offer value is if a PV
critical to process operation simply cannot be measured or inferred using currently
available technology. Feed-forward-only control, in spite of its weaknesses and
pitfalls, then offers some potential for improved operation.
Feed Forward with Feedback Trim
The "feed forward with feedback trim" control architecture is the solution
widely employed in industrial practice. It balances the capability of a feed forward
element to take preemptive control actions for one particularly disruptive disturbance
while permitting a traditional feedback control loop to:
reject all other disturbances and external influences that are not measured,
▪
provide set point tracking capability, and
▪
correct for the inevitable simplifying approximations in the predictive model of the
▪ feed forward element that make preemptive disturbance rejection imperfect.
A feed forward with feedback trim control architecture for the heat exchanger
process is shown below [1]:
Fig. 8.20. A feed forward with feedback trim control architecture for the heat
exchanger process
Fig. 8.21. A feed forward with feedback trim control architecture for the heat
exchanger process: X-a process variable (e.g. level, temperature, preassure, flow);
XT-sensor/transmitter; XC-controller from PID family; f(D)- mat. function;∑-
summing junction
The basis for the feed forward element math function, f(D) = ─ (GD/Gp) shown
in the diagram is discussed in detail in next section.
The more accurate the feed forward math function is in computing control
actions that will counteract changes in the measured disturbance in a timely fashion,
the less impact those disturbances will have on our measured process variable.
Practitioner's note: a potential application of feed forward control exists if
we hear an operator say something like, “Every time event A happens, process
variable X is upset. I can usually help the X controller by switching to manual
mode and moving the controller output.” If the variable associated with event A is
already being measured and logged in the process control system, sufficient data
is likely available to allow the implementation of a feed forward element to our
feedback controller.
Improved disturbance rejection performance comes at a price in terms of
process engineering time for model development and testing, and instrument
engineering time for control logic programming. Like all projects, such investment
decisions are made on the basis of cost and benefit.
Fig.8.22. Feed forward element is constructed from models of process and disturbance
The process model (CO → PV) in the feed forward element describes or
predicts how each change in CO will impact PV. The disturbance model (D → PV)
describes or predicts how each change in D will impact PV.
In practice, these models can range from simple scaling multipliers (static feed
forward) through sophisticated differential equations (dynamic feed forward).
Sophisticated dynamic models can better describe actual process and disturbance
behaviors, often resulting in improved disturbance rejection performance. Such models
can also be challenging to derive and implement, increasing the time and expense of a
project.
Dynamic Feed Forward Based on the FOPDT Model
We first develop a general feed forward element using dynamic models
(differential equations). Later, we will explore how we can simplify this general
construction into a static feed forward element. Static feed forward is widely employed
in industrial practice, in part because it can be implemented with an ordinary
multiplying relay that scales the disturbance signal.
A dynamic feed forward element accounts for the "how far" gain, the "how
fast" time constant and the "how much delay" dead time behavior of both the process
(CO → PV) and disturbance (D → PV) relationships.
The simplest differential equation that describes such "how far, how fast, and
with how much delay" behavior for either the process or disturbance dynamics is the
familiar first order plus dead time (FOPDT) model.
● The CO → PV Process Model
Describing the CO → PV process behavior with a FOPDT model is not a new
challenge. For example, we presented all details as we developed the FOPDT dynamic
CO → PV model for the gravity drained tanks process from step test data as:
dPV(t )
1.4 +PV =0. 09 . CO ( t−0 .5 )
dt
Which matches the general FOPDT (first order plus dead time) dynamic model
form:
dPV(t )
Tp +PV =KpCO ( t−Θp )
dt
where for a change in CO, the FOPDT model parameters are:
▪ Kp = process gain (the direction and how far PV will travel)
▪ Tp = process time constant (how fast PV moves after it begins its response)
▪ Өp = process dead time (how much delay before PV first begins to respond)
This equation describes how each change in CO causes PV to respond (CO →
PV) as time, t, passes. Our past modeling experience also includes developing and
documenting FOPDT CO → PV models for the heat exchanger and jacketed reactor
processes.
The loop architecture from this commercial software simulation shows that D is
measured, scaled and transmitted as COfeedforward to the controller. There it is
combined with the traditional feedback signal to produce the COtotal sent to the
cooling jacket flow valve. This is a simplified representation of the same feed forward
with feedback trim conceptual diagram shown earlier in this topic.
If we recall the definition that Kp = ΔPV/ΔCO and KD = ΔPV/ΔD, then for our
static feed forward design:
COfeedforward = − (KD/Kp)·D
= − [(ΔPV/ΔD)/(ΔPV/ΔCO)]·D
= − [(ΔCO/ΔD)]·D
With this last equation, our design challenge is reduced to finding a disturbance
change that lasts long enough for the controller output response to settle. If this event
occurs reasonably close to our DLO, then we can directly compute our gain ratio feed
forward element by measuring the disturbance and controller output changes from a
plot.
▪ About the Feedback Controller
The plot shows disturbance rejection performance when the process is using a
PI controller tuned for an aggressive response action. The details of the design, tuning
and testing of this process and controller combination are presented in a previous
sections.
Note that with this "measure from a plot" approach of Method 1, the process
can be controlled by any algorithm from the PID family, though integral action must
be included to return the PV to SP (eliminate offset) after a disturbance. Also, our
feedback controller tuning can range from conservative (sluggish) through an
aggressive (active) response without affecting the applicability of the method.
Our interest is limited to finding a ΔD disturbance event with a corresponding
ΔCO controller output signal response that lasts long enough for the PV to be returned
to SP. Then as shown above, the ΔD and ΔCO relationship can be measured directly
from the plot data.
▪ Accounting for Negative Feedback
If we are using automatic mode (closed loop) data as shown in the plot above,
we must account for the negative feedback of our controller in our calculations. A
controller always takes action that moves the CO signal in a direction that counteracts
the developing controller error. Thus, when using automatic mode (closed loop) data
as above, we must consider that a negative sign has been introduced into the signal
relationship.
On the plot above, we have labeled a ΔD disturbance change with
corresponding ΔCO controller output signal response. We introduce the sign change
from negative feedback of our controller and compute [1]:
Fig. 8.27. Kp from Open loop process step response at the DLO
We repeat the procedure to compute a disturbance gain, K D, from an open loop
step response plot. Here, we set our CO signal at the DLO value of 40%, set the
disturbance parameter at a constant D value and wait until the PV is steady. We then
step D to force a PV response that is again centered around our DLO.
Such a disturbance step response plot is shown below [1]. We measure and
compute KD = ΔPV/ΔD = 0.8 oC/oC as labeled on the plot.
Fig. 8.28. KD from Open loop process step response at the DLO
With values for Kp and KD, we compute our gain ratio feed forward multiplier.
Since we are in manual mode (open loop), we need not account for any sign change
due to negative feedback in our calculation [1].
COfeedforward = − (KD/Kp)·D
= − [(0.8 oC/oC)/(− 0.4 oC/%)]·D
= [2 %/oC]·D
Thus, with careful testing using a consistent and repeatable commercial process
simulation, we observe that the practical approach of Method 1 provides the same
results as the academic approach of Method 2.
To the right in the plot above is the disturbance rejection performance of our
static feed forward with feedback trim architecture. The feed forward gain ratio
multiplier used is the 2 %/oC as determined by two different methods described earlier
in this topic. The feedback controller remains the aggressively tuned PI algorithm as
described above.
The static feed forward controller makes one complete preemptive corrective
CO action whenever a change in D is detected as noted in the plot above. There is no
delay of the feed forward signal based on relative dead time considerations, and there
is no series of CO actions computed and deployed based on relative time constant
considerations.
Nevertheless, the static feed forward controller is able to reduce the maximum
deviation from SP during a disturbance event to half of its original value. The settling
time is also reduced, though less dramatically. Like any control project, the operations
staff must determine if this represents a sufficient payback for the effort and expenses
required.
Practitioner's note: Our decision to add feed forward to a feedback control
loop is driven by the character of the disturbance and its effect on our PV. If the
controller can react more quickly than the D can change, feed forward is not
likely to significantly improve control. However, if the disturbance changes
rapidly and fairly often, feed forward control can be a powerful tool to stabilize
our process.
Feed forward with feedback trim is designed for the improved rejection of one
measured disturbance. As shown above, a feed forward controller has no impact on set
point tracking performance when the disturbance is constant. This makes sense since
the computed COfeedforward signal does not change unless D changes. Indeed, with
no change in the measured disturbance, both architectures provide identical
performance.
References
1. Practical Process Control. Proven Methods and Best Practices for Automatic PID Control.
http://www.controlguru.com/pages/table.html
2. Coleman Brosilow, Babu Joseph. Techniques of model-based control. Prentice Hall,2002.
3. Shamsuzzoha, M., Lee, M. IMC-PID controller design for improved disturbance rejection,
Ind. Eng. Chem. Res., 46, No. 7, 2007, pp. 2077-2091.
4. Tutorial on IMCTUNE software. http://www.bgu.ac.il/chem_eng/pages/Courses/