# Index of /users/skoge/publications/2003/tuningPID

Parent Directory  -
New Folder/03-Nov-2008 16:05 -
correction.pdf15-Jul-2010 10:59 205K
finalpaper.pdf29-Jul-2010 10:37 351K
mathworks/15-Jul-2010 10:59 -
mfiles/15-Jul-2010 10:59 -
mic-version/15-Jul-2010 10:59 -
more/15-Jul-2010 10:59 -
presentation/15-Jul-2010 10:59 -
smooth_tunings/15-Jul-2010 10:59 -

Title: Simple analytic rules for model reduction and PID controller tuning
Author: Sigurd Skogestad Published in: J. Process Control, vol. 13 (2003), 291-309.

Abstract: The aim of this paper is to present analytic tuning rules which are as simple
as possible and still result in a good closed-loop behavior. The starting point has
been the IMC PID tuning rules of Rivera, Morari and Skogestad (1986)
which have achieved widespread industrial acceptance. The integral term has been
modified to improve disturbance rejection for integrating processes.
Furthermore, rather than deriving separate rules for each transfer
function model, there is just a single rule for a first-order or second-order
time delay model. Simple analytic rules for model reduction are presented to
obtain a model in this form, including the "half rule" for obtaining the effective
time delay.

Below you find a list of misprints, additional information, extensions and comments to the rules.

------------
MISPRINTS
-------------

Please see the "yellow stickers" in the file finalpaper.pdf for misprints.

p. 293, eq. (6): sign error in the denominator of the dead time expression, i.e. should be 1/e^{theta*s}.
p. 293, equation following eq. (8): e^-theta*s (before approx-symbol) should be replaced by e^-theta0*s
p. 293, eq. (9): Add Laplace variable s before + in the numerator.
p. 294, eq.(12): Rule T3, denominator. Should be: (tilde{tau0} - T0)s+1 (i.e., T0 instead of tau0).
(Comment added 21Nov2004: more generally, replace theta by tauc where tauc is the desired closed-loop response time)
p. 294, eq.(15): Lower fraction line extends too far. Should read [1/(y/ys)desired]-1
p. 299, Table 4: Case E5 (PI). 0.0008 should be 0.008
p. 299, Table 4: Case E6 (PI). theta=1.19 (and not 1.69) (this changes also the settings and the values for Ms and performance)
p. 299, Table 4: Case E8 (PID).  Should be Kc=1 (and not 1.5). This makes the design more robust (reduces Ms etc.)
p. 302, Table 6: heading of column 2.  Should be: Kc*k                  (and NOT: Kc*k')
p. 302, Table 6: heading of column 3.  Should be: KI*k*theta            (and NOT: KI*tauI/theta)
p. 208, Eq (42): Should be (0.17s+1)^2
p. 208, theta= 1/2 + 0.66 + 0.028 = 1.19 (and NOT 1.69)

COMMENT: The journal is to blame for the rather large number of typo's in this paper. The typesetting (or
translation of the latex file) was very poor, and afterwards they did not even fix many of the errors that
were pointed out by the author. The Erratum in Vol.14 is intended to take care of the more serious and "non-obvious" errors.

-----------------
CORRECTIONS
-----------------

Numerator time constant rules in eq. (12): Replace theta by tauc in all places
(so there is no change for the "tight" rule with tauc=theta, but the result may change in other cases).

Comment: This makes the model reduction a bit more genereral, and also removes some of the iterative
nature of the rule (as theta is unknown at this point in time, whereas tauc is an engineering choice).
However, the fact that you have to choose tauc in order to do the approximation is somewhat of an disadvantage
because it couples the model reduction with the tuning.
Thus, some iteration may be required in practice if you follow the "tight rule" tauc=theta.
Actually, this is not too surprising, because for good performance you want to have a good approximation
close to the closed-loop time constant tauc.

-----------------------
-----------------------

Directory mathworks contains:
Matlab files for  SIMC model reduction (simc_reduce.m) and PID tuning (simc_pidtune.m) (by Bora Erylmaz, Mathworks)

Directory more contains:

1. The "old-final" version of the paper as it was submitted to the journal
(contains fewer typos... check this first if you suspect a possible typo).

2. A version of the paper presented at the 2001 AIChE Annual Meeting (Reno, Nevada, USA,
Nov. 2001) with the title "Probably the best simple PID tuning rules in the world".
(this is a humorous spin-off from the Carlsberg brewery commercial from about 1997
with the slogan "Probably the best beer in the world".

3. Link to the project by S. Hellem (2001) which concludes, based on trying to
recreate the original Ziegler/Nichols simulations, that the ZN-tunings are for the ideal PID.

4. + some additional stuff, including an early version of the rules from 1998 (in Norwegian) and
student projects with evaluations of the rules (Holm-Butler 1998; Hareldseid-Johansen 1999).

Directory mfiles contains:
Matlab files used to generate results, including IAE-optimal PID settings.

Directory presentation contains:
Powerpoint presentation from AIChE Annual meeting (Nov. 2001)

--------------------------------------
--------------------------------------

The first 8 comments are from August 2003/ March 2004/ May 2004
(they are included as comments in the version reprinted in the Norwegian bulletin
"Modeling, Identification and Control" in 2004):

----------------------------------
0. Total variation
----------------------------------

The total variation (TV) of the input (u) is used as measure of input quality.
We want TV(u) small. Note that the Total variation of a signal u is TV(u) = \int |du/dt| dt.  Thus, TV is large for a signal u with large values of |uy/dt|.|
Thus, if we want "smooth control" then TV should be small.

...................................
1. Model reduction.
...................................

The main contribution in terms of model reduction is the simple HALF RULE for the effective delay.
It started in 1997 as a simple empirical rule that I used for teaching in my process control class;
see the following handout from 1998 (in Norwegian):
http://www.nt.ntnu.no/users/skoge/publications/2003/tuningPID/more/1998
Before 1997, when teaching the students about the "effective delay",
I had added the inverse time constant and ALL of the smaller (neglected) denominator time constants.
However, this gives a conservative (too large) estimate of the delay when it is applied to common
PID-rules, and gives rather sluggish tunings.
The reason is that a time constant is not  quite "as bad" as a delay.
I experimented a bit and found that adding only half of the largest neglected time constant
(and adding the rest to the smallest retained time constant) gave better tunings.
The validity of the half rule was later confirmed by testing it on a large number of processes;
see the paper and three student projects from 1998, 1999 and 2001 (see directory more).
In summary, the main justification of the half rule in the context of PID-tuning is that it when combined
with the SIMC PID-tuning rules consistently results in good tunings with Ms about 1.7 (with tauc=theta).
The half rule is reasonable but clearly not optimal in terms of open-loop model fitting (e.g. in the
time or frequency domains). On the other hand, open-loop model fitting is not the objective,
but rather that the resulting PID-tunings should work well.
We have tried other values than a half (in the range from 0 to 1),
e.g. see some of the student projects, but this did not improve the results.

Let me give some justification for the half rule in terms of tuning. Recall the tuning rules
Kc k = tau1 / (tauc+theta);  tauI = min(4(tauc+theta), tau1); Typical choice: tauc=theta
and consider an original second-order model on the form
g0(S) = k e-theta0 s / (1+tau10 s) (1+tau20 s)
which we want to approcimate with a first-order model,
g(S) = k e-theta s / (1+tau1 s)
The "first part" of the half rule is the effective delay. According to the half rule
theta = theta0 + tau20/s
Compared with the conservative alternative of adding all of tau20 to the delay (i.e. theta=theta0+tau20),
the half rule gives a shorter delay (up to a factor 2), which as expected results in a larger controller gain Kc
(with the choice tauc=theta the increase in Kc is up to a factor of 2 for a small original delay theta0).
The integral time tauI may also be reduced by up to a factor of 2.
Thus, the "first part" of the half rule makes both the high-frequency (Kc)
and low-frequency (Kc/tauI) controller gain larger,
and the effect is largest when the original delay theta0 is small compared to tau20.

Let us next consider the "second part" of the half rule, which is the increase in tau1
(from tau10 to tau10+tau20/2). This increases the controller gain Kc by up to a factor 1.5
(the largest increase is when tau10=tau20). However, exactly for cases where
we get an increase in Kc (which is when tau20 is large), we also get an
increase in the integral time because tauI=tau1.
Thus, the value of Kc/tauI (which is the low-frequency controller gain) is unchanged.
Thus, the "second part" of the half rule makes the high-frequency controller gain Kc larger,
and the effect is largest when tau20 is close to tau10.

In summary, we see that "both parts" the half rule result in less conservative settings,
especially for cases where tau20 (the largest neglected time constant) is large.

...................................
2. Tuning rules.
...................................

The main contribution of the paper in terms of tuning is the modification on the
integral time for integrating processes. This significantly improves the load rejection (input disturbance)
capabilities when compared to the IMC tuning rules of Rivera et al. (1986). When deriving this modification
it was required that the system is just at the limit to oscillations (zeta=1 in eq. 20), which results in
the factor 4 in the expression tauI = 4 (tauc+theta).

More generally, the factor (or zeta) could be left as a degree of freedom (thanks to Finn Haugen for pointing this out)
which would result in the following intergral time for an "integrating" process:

tauI = c (tauc+theta)

where c = 4*zeta^2. For example, c=2 (corresponding to zeta=0.7. i.e. some low-frequency oscillations allowed)
gives tauI=2(tauc+theta).  This gives a faster approach to steady state than the original value c=4 (corresponding to zeta=1),
but on the other hand robustness is not as good.

Added July 2009: This is shown in the following table which applies to an
integrating process and choosing tauc=theta (extends the right column in Table 2):

c		4 (orig)	2		1.5
tauc/theta      1               1               1
Kc*k'*theta     0.5		0.5		0.5
tauI/theta	8		4		3
GM		2.96		2.74		2.57
PM	 	46.9		34.1		26.9
Ms		1.70		1.96		2.32
Mt		1.30		1.74		2.17
w180*theta	1.49		1.39		1.32
wc*theta	0.51		0.55		0.58
dtheta		1.59		1.08		0.81 (allowed relative time delay error to remain stable)

Note in particular that the phase margin and thus the allowed time delay error is significantly reduced
when c (and the integral time) is reduced.  Thus, one should only reduce c for cases where performance is
important so that one is willing to sacrifice robustness.

The following Tables (prepared by Chriss Grimholt) for an integrating process has tauc adjusted so that the Ms-value is the
same for all choices for c (two Ms-values are considered: 1) Ms=1.59 and 2) Ms=1.70). This gives a fairer comparison.
Note: J below refers to the performance with 50/50 weight on setpoints/input disturbances (as defined in PID papers from 2012).
Result: We see that for both Ms=1.59 and Ms=1.70, the best performance (minimum J) is obtained with c=2.6. More generally,
c=2.6 gives PI-tunings very close to the Pareto-optimal curve for J vs. Ms (thanks to David di Ruscio for pointing this out).
The reason for the improved J is better disturbance response (Ms=1.7: Jd decreases from 1.07 with c=4 to 0.82 with J=2.6),
whereas the setpoint response is a little worse (Jys increases from 1.81 to 1.86).
However, lowering c (relative to the SIMC value c=4), decreases the delay margin dtheta (from about 1.59 to 1.51),
and also requires choosing tauc larger (although not too much; tauc/theta increases from 1.0 to 1.18).

1. Ms = 1.59
c           	4.00 	3.00	 2.60	 2.00
tauc/theta 	1.24 	1.35	 1.43	 1.66
Kc*k'*theta 	0.45 	0.43	 0.41	 0.38
tauI/theta 	8.97 	7.06	 6.32	 5.32
GM          	3.35 	3.45	 3.54	 3.80
PM         	50.05 	46.82	 45.07	 41.84
Ms         	1.59 	1.59	 1.59	 1.59
Mt       	1.26 	1.35	 1.41	 1.52
w180*theta 	1.50 	1.48	 1.46	 1.44
wc*theta 	0.46 	0.45	 0.44	 0.41
dtheta         	1.90 	1.83	 1.80	 1.77
J         	1.63 	1.53	 1.50	 1.59
J_ys         	1.93 	1.96	 1.98	 2.15
J_d        	1.33 	1.10	 1.02	 1.02

2. Ms = 1.70
c           	4.00 	3.00	 2.60	 2.00
tauc/theta 	1.0  	1.11	 1.18	 1.39
Kc*k'*theta 	0.50 	0.47	 0.46	 0.42
tauI/theta 	8.0  	6.33	 5.68	 4.78
GM          	2.96 	3.07	 3.14	 3.37
PM         	46.9 	43.89	 42.23	 39.20
Ms         	1.70 	1.70	 1.70	 1.70
Mt       	1.30 	1.40	 1.46	 1.58
w180*theta 	1.49 	1.46	 1.45	 1.42
wc*theta 	0.51 	0.50	 0.49	 0.46
dtheta         	1.59 	1.54	 1.51	 1.49
J         	1.44 	1.36	 1.34	 1.43
J_ys         	1.81 	1.83	 1.86	 2.02
J_d        	1.07 	0.89	 0.82	 0.83

Note: With the SIMC-rule we always have c=Kc*tauI*k'

...................................
3. Tuning parameter.
...................................

The simple choice tauc=theta for the tuning parameter was also originally chosen for its simplicity,
and it is further justified because the resulting value of Ms in the range 1.6 to 1.7 usually gives a good trade-off
between speed of response and robutness.

...................................
4. Derivative action.
...................................

Derivative action is recommended only for dominant second order processes (with tau2 larger then
theta, approximately).  In the simulations I selected the filter time constant tauF = 0.01 tauD
(see page 292), but this is NOT the recommended value. Rather, as mentioned on page 303,
tauF should be adjusted online in order to reduce the input usage and sensitivity to measurement noise.
A typical value is tauF = 0.1 - 0.2*tauD (see also page 292), but as mentioned on page 304, one may
increase tauF up to about 0.5*tauD if measurement noise is a serious problem.

Added July 2009: Also note that derivative action on the setpoint is not included in this paper to reduce the input usage.
This makes the setpoint response slower than expected from the selected closed-loop response time tauc. This is clear from
the simulations in Figure 4 for cases 3 (int+lag) and 4 (double int.).

...................................
5. Smooth control.
...................................

The tunings in this work are chosen to give "fast but still robust control". However, there are
cases where this gives unneccessary fast control. This is further discussed in the following paper:
"Tuning for smooth control: Lower limit on the controller gain for acceptable disturbance rejection",
which was presented at the IFAC DYCOPS conference (Hong Kong 2003/2004), and was
finally published in Ind.Eng.Chem.Res. in 2006.

...................................
6. Second-order oscillatory process.
...................................

As mentioned in Remark 3 on page 304, the ideal PID controller should be used to derive settings for
an oscillatory process, as shown in the following.
g(s) = k e-theta*s / (tau0^2 s^2 + 2*tau0*zeta*s + 1)
where tau0 is the time constant (tau0=1/omega0 where omega0 is the natural frequency of oscillations for the plant)
and zeta is the damping factor for the plant. |zeta|<1 gives and underdamped system with oscillations.
We here assume a stable process with zeta non-negative.
We use the IDEAL-FORM (PARALLEL) PID controller
c(s) = Kc' (1 + 1/tauI'*s + tauD'*s) = (Kc'/tauI'*s) (tauI'*tauD'*s^2 + tauI'*s + 1)
Direct synthesis For setpoint tracking based on g(s) yields a controller
c(s) = (1/k)*(1/(tauc+theta)*s) (tauO^2 s^2 + 2*tau0*zeta*s + 1)
and matching terms yields the following settings for the ideal form (parallel) PID controller:
(x)	Kc' = (1/k) * 2*tau0*zeta / (tauc+theta)
(y)	tauI' = 2*tau0*zeta
(z)	tauD' = 0.5*tau0/zeta
With the choice tauc=theta the controller gain becomes
Kc' = (1/k) * tau0*zeta/theta
A. The stability margins with this choice are given by the first column in Table 2 (GM=3.14, PM=61.4 degrees, Ms=1.59).

B. For zeta>1 (overdamped process) we get a second-order process, g(s) = k e-theta*s ( (tau1*s+1)(tau2*s+1)) and
the above rules reduce to the ones for "second-order" process given in Table 1
(However, note that the settings in Table 1 are for the cascade form,
so they need to be translated using (36) to get the "ideal-form" settings in (x)-(z)).

C. The settings (x)-(z) will give poor load rejection for "integrating" processes with tau0/theta large.
The integral action will then need to be modified (see subdirectory more/extensions for some ideas)

D. (Aug. 2008) More generally, for systems with complex poles, I have not derived any good rules. One reason is that I do not thing it is very important
because it is well known that complex poles are relatively rare in chemical engineering processes, except for cases where
the lower control loops are tuned too agressively (but this should not happen if you use robst settings as recommended in this paper!)

..................................
7. Unstable process.
...................................

Rules are yet to be derived for this case. Some preliminary attempts are found in the early Norwegian 1998-version.

...................................
8. Ziegler Nichols tunings.
...................................

The PID tuning rules in the original 1942-paper of Ziegler and Nichols state that the integral time is four times the derivative time.
I have assumed in this paper that this is for the ideal (parallel form), so that for the cascade form we have that
the integral time is equal to the derivative time; see section 5.3.
Actually, I originally assumed that the ZN-tunings were for the cascade form controller, and this can be found the original
version of the paper presented at 2001 AIChE Meeting in Reno. This was based on the argument of Shinskey and others,
that the pneumatic PID-controllers at that time gave a cascade form. However, after studying it in more detail (see diploma
thesis by Hellem from 2001) and discussing it with Dale Seborg and Karl Johan Åstrøm, I became convinced that
the ZN-settings are for the ideal (parallel) form. First, they work best for the ideal form. Second,
I think Nichols did numerical computations on an electronic computer where the ideal form was implemented.
Ziegler and Nichols were possibly not aware of the difference between the two forms or did not think it was important.
We tried to search back into old reports, but unfortunately it seems that we were too late to find out conclusively.

...................................
9. (Oct. 2004): On approximating integrating processes.
...................................

The half rule should be used also for integrating processes, but note here that tau1 is already
infinite so it is does not change. For example, to get a PI-controller for the process
g0(s) = k / [s * (tau0*s+1)]
we use the approximation
g(s) = k e-theta*s / s with theta=tau0/2
This agrees with the entry for process E8(PI) in Table 4.
However, there is a MISPRINT for E6(PI) in Table 4 where we should have
theta=1/2 + 1 + 0.028 - 2*0.17 = 1.19 (and not 1.69).

...................................
10. (Oct. 2004). Total variation (TV)
...................................

Why consider the total variation (TV) of the input (Tables 3,4,5,6,7)?
One justification is that it is the same as using a penalty term for input moves (changes), which is
common when using model predictice control (MPC). That is, with MPC we usually try to minimize the cost
J = IAE + k*TV where k is a tuning factor.

...................................
11 (Oct. 2004, Aug. 2007) Bandwidth)
...................................

This is an addition to Table 2. Define
wB: Frequency where |S|=0.707.
ws: Frequency where |S|=1.
Then for tauc=theta:
tauI=tau                   Integrating process w/ tauI=8 theta
L = 0.5 e-thetas/thetas    L = (0.5/8) (8thetas+1)e-thetas / (thetas)^2
ws*theta                 0.511                      0.404
wB*theta                 0.355                      0.297

For other values of tauc/theta (for the case tauI=tau):

tauc/theta		0	1	2	3 	4	5
ws*theta (|S|=1)	0.74	0.51	0.42	0.36	0.32	0.29
wpeakS*theta		1.39	1.13	1.00	0.90	0.84	0.79
Ms (peak |S|)		3.13	1.59	1.35	1.25	1.19	1.16

..............................................................
12.  (Dec. 2007)  Correction of rules for approximating zeros
..............................................................

In rules T1 to T3, theta (the time delay) should be replaced by tauc (the closed-loop time constant).

This is clear from the derivation in the Appendix where it is stated that "it is most critical
to have a good approximation at the bandwidth frequency", which is generally at frequency 1/tauc.

Comment: This is not a very serious correction, because the rules given in the paper are OK for
the case with "tight" tuning (tauc=theta), which is when we really need a good approximation.

...................................
13. (Oct. 2004). Prefilter for setpoints.
...................................

In a standard "one degree-of-freedom" feedback scheme, the input to the controller c(s) is the setpoint error, i.e.
(X)        u = c(s) (ys-y)
In a "two degrees-of-freedom" scheme, the signals ys and y are treated differently by the controller.
One option is to prefilter the setpoint,
(Y)        ys' = f(s) y
where f(s) is the prefilter, and send this to the controller. We then have
(Z)        u = c(s) (ys' - y)
Note that with a prefilter f(s), we can in theory make the setpoint response look as we want
(subject to the constraint that f(s) should be realizable, e.g. no prediction, and stable).

Let us now look at two alternative prefilter designs.

I. A somewhat indirect method of prefiltering ys is to not send ys through the D-term (see eq.2)
or only send a fraction b through the I-term (see eq.3). In the latter case (Astrom)
(3)        u = Kc (b*ys-y) + Kc/tauIs (ys-y)
Let us assume we have PI-control and let us consider the latter. With
c(s) = Kc(1+1/tauIs),
(Z) can be rewritten
u = Kc (1+1/tauIs) f(s) ys - c(s) y
Similarly, (3) can be rewritten
u = Kc (b+1/tauIs) ys - c(s) y
By comparison, we then have (CONCLUSION)
f(s) = (b*tauI*s + 1) / (tauI*s+1)
Thus, f(s)=1 (no filter) for b=1  and f(s)=1/(tauI*s+1) for b=0.
It is also possible to let b>1 if we want to "speed up" the setpoint response.
Note that in the paper, we have chosen b=1.

II. Let us now look at a more direct design of f(s).
Recall from Figure 3, that the setpoint response has an undesirable overshoot if we use the SIMC-settings for an
near-to-integrating process. The reason is that we instead of the original IMC-setting tauI=tau use a smaller
value for tauI in order to improve the load disturbance response.
However, note that we have the option at "fixing up" the setpoint response by prefiltering the setpoint.

Let us assume that we want to get the same setpoint response as with the original IMC-settings.
With the original IMC-settings we design the controller to get (appoximately)
(X1)	y/ys = e-theta*s / (tauc*s+1)
where theta is the (unavoidable) time delay, and tauc is the desired closed-loop response time.
For a first-order with delay process
g(s) = k e-theta*s / (tau*s+1)
we must then select tauI=tau, see derivation of eq. (19), where we make use of the approximation e-theta*s=1-theta*s.
Let us now assume that we use a different value for tauI. We evaluate gc and making use of the same approximation
e-theta*s=1-theta*s, we find that closed-loop response without a prefilter is
(Y1)    y/ys'=gc/(1+gc) = (tauI*s + 1) e-theta*s / x(s)
where
x(s) = tauI*tauc*s^2 + [(tauI/tau)*(theta+tauc) + tauI - theta]*s + 1
and tauc is the closed-loop time constant.With a prefilter f(s) the setpoint response is
y/ys = f(s) * gc/(1+gc)
Comparing (X1) and (Y1) then gives (CONCLUSION)
f(s) = x(s) / (tauc*s+1)*(tauI*s+1)
where tauc is the desired response time for the setpoint response.
For example, for the almost-integrating process in Figure 3 (tau=30, theta=1),
we get for the SIMC-tunings (tauI=8, tauc=theta=1) the following setpoint prefilter:
x(s) = 8s^2 + 7.53 s + 1 = (6.25s+1)(1.28s+1)
f(s) = (6.25s+1)(1.28s+1)/(8s+1)(s+1) = (8s^2+7.53s+1)/(8s^2+9s+1)
This prefilter makes the setpoint response for tauI=8 almost identical to the one shown with tauI=30 (Fig.3).
(I checked with Matlab and it works like a charm!)
Note that we for the case tauI=tau get x(s)=(tauc*s+1)(tauI*s+1) and f(s)=1 (as excpected).

...................................
14.  (29 July 2005). Further improved integral time
...................................

This comments is based on the paper: M.W. Foley, N.R. Ramharack, B.R. Copeland:
"Comparison of PI controller tuning methods", I&EC Res. (2005)
From the analysis in this paper it seems clear that a simple modification of the SIMC rule may be proposed:
--- In the expressions for Kc and tauI,  replace tau1 by tau1+theta/2 where theta is the delay. ---
According to the results of Foley et al. (2005) this will improve the perfomance for delay-dominant processes,
but it will hardly have any effect for processes with a relatively small delay (where the SIMC rules work best).
Comment: When I proposed my simple IMC (SIMC) rules I put relatively little emphasis on delay-dominant processes
because they are relatively rare in practice, but this simple modification may nevertheless be worthwhile.

...................................
15.  (31 Jan 2006). Tuning for IPZ-process
...................................

This comment is based on: O. Slatteke, Ph.D. Thesis, Lund Univ., 2006 and K. Forsman, "Reglerteknik for processindustrien", Studentlitteratur, 2005.
An IPZ-process is an integrating process with an additional pole (with time constant tau) and zero (with time constant T>tau):
g0(s) = k'*e-theta*s/s * (Ts+1)/(tau s+1)
This process may, for example, respresent the response from steam flow to pressure.
To get a PI controller we need to get rid of the zero (T) and we use "rule T2" to cancel it against the integrator
(we could have cancelled it against the pole (tau), but since T is large it is better to cancel it against the integrator):
(Ts+1)/s \approx T
to get
g(s) = k'*T*e-theta*s / (tau s+1)
Using the SIMC rules the resulting PI-tunings are (with tauc as the tuning parameter)
Kc = (1/k')*(tau/T) / (tauc+theta); tauI = min[tau, 4*(tauc+theta)]
These tunings turn out to be almost identical to the tunings given on page 104-106 in the thesis of Slatteke.

......................................................
16.  (12 Mar 2007).  Comment on rule for integral time
......................................................

On page 224 in the book "Advanced PID controller" by Åström and Hägglund (ISA, 2006) it is stated:
"Skogestad's internal model controller avoids the cancellation (between tauI and tau1 for slow processes)
by an ad hoc modification of the integral time".

I think this is a bit unfair and inaccurate, as the modification is actually derived analytically.

The starting point is setpoint tracking where direct synthesis gives tauI = tau1.
However, this (and the resulting cancellation) is not a good setting for disturbance rejection for "slow" processes with tau1 is large.
We therefore want to reduce tauI, but this may give robustness problems and introduce slow oscillations.
If we require that we should not introduce slow oscillations then Kc*tauI*k' >= 4 (derived neglecting the delay theta),
or with with the aleady derived value for the controller gain Kc: tauI >= 4(tauc+theta).

In summary, we have:
(1) For performance we want tauI <= tau1 (i.e., we want tauI small and always smaller than tau1).
(2) For robustness (no oscillations) for the case when tauI <= tau1, we want tauI >=  4(tauc+theta).

The rule tauI = min (tau1, 4(tauc+theta)) then follows.

..........................................................................................
17.  (06 Aug 2007).  Tuning for plants with large parameter changes (large changes in b)
..........................................................................................

We here consider robustness with respect to changes in the parameters k, tau and theta in the plant g.

Define b=k*theta/tau = k'*theta for the most common case where tau>theta, and b=k*theta for the case where the time delay is large (theta>tau).
(actually b is a measure of the loop gain at high frequencies; see below)
For the "tight" tuning rules (with tauc=theta), the conclusion is that if the parameter b is larger than 2, then for stability reasons,
tuning should be based on the operationg point with the largest value of b.

To show this, consider the loop gain |L(jw180)| at frequency w180, which must remain be less than 1 for stability.
We have |L(jw180)|=1/GM where GM (>1) is the gain margin.
The controller is fixed (c0), so we have |L(jw180)| = |c0*g| = L0*b where L0 is a constant and b is a function of k, tau and theta.

The "tight" tuning rules derived in this paper (with tauc = theta) give GM=3 nominally and thus work OK for plants
where the variation (increase) in b is about 2 or less.  If b may increase by more than a factor of 2,
the tuning of the controller must for robustness reasons be based on the operating point with the largest value of b.

We distinguish between two cases.

Case 1. "Normal" case with tau>theta: In this case b=k*theta/tau = k'*theta

Proof: At frequency w180, we assume that the term (tau*s+1) is approx tau*s in both c and g.
Then, at frequency w180, the controller behaves as c0=Kc0 (constant) and the plant as |g|=k*e-theta*s/tau*s = k'*e-theta*s/s (integrator).
We get w180=(pi/2)*(1/theta), which gives |L(jwu)|=Kc0*k/tau*w180 and we find b=k*theta/tau.
(see also p.205 in the book "Multivariable Feedback control" by Skogestad and Postlethwaite (2005); p.196 in the first edition (1996)).

Case 2. "Large delay" case with tau= theta1/2.

----------------------------------------------------------------------------------
19. (21Sep 2007) Should level control have integral action?
----------------------------------------------------------------------------------

See handwritten notes in subdirectory more/notes.

----------------------------------------------------------------------------------
20. (21Sep 2007) Selection of closed-loop time constant tauc
----------------------------------------------------------------------------------

New results on relationship with input usage, and new interpretation on "speedup" tau/tauc required for performance.