Tuning PI controler for integrating process without time delay
I'm trying to tune a PI controller for controlling an integrating
process which does not have time delay for disturbance rejections .
The process is characterised by the following transfer function:
I have read many papers in this field but unfortunately all of them
about tuning PI controller for integrating process with time delay.
If any of you has idea about how to do the job then his help is
greatly appreciated. If also you know any paper which talks about this
topic then I will be very happy to know it as soon as possible.
Thank you and waiting for help as soon as possible,
Hi Jerry :
Thanx for ur reply:
If I put time delay to zero then the integral term will be zero for
all the Tuning formula which I have come across, so, this trick did
not work with me. I also I tried to include very small time delay but
also it didn't work.
I have not heard about L'Hopital's rule before. If you have them can
you please forward them to me.
I still looking for your help to solve this problem.
Thanx and ur help and other helps are highly appreciated.
If there really is no delay, you don't really need to tune anything. The
chance is very good, though, that your model is too simple to tell the
For of a description of L'Hopital's rule an explanation of how it's
used, see http://www.ies.co.jp/math/java/calc/lopi/lopi.html
Engineering is the art of making what you want from things you can get.
What do u mean by saying that the chance to tune the controller is
very good. In fact it is not , I'm trying to tune it for disturbance
rejection not for set-point tracking. I know it is very easy to tune
it for set-point tacking by using only proportional term. But for
disturbance rejection , u must use PI controller. I could find a good
response by using trial and error appraoch but I'm looking for
formulas or PI correlations which can make the job easier.I'm also
looking if there is a rule of thumb for this problem or not.
Thanx and waiting for ur reply.
I meant to say that if your model assumes that there's no delay, it's
probably ("chances are") overly simple. Remember Einstein's famous
dictum: "Everything should be as simple as possible, but not more so."
If the delay really is insignificant, then tuning merely moves the
frequency of the stable resonant peak. Moving it away from a disturbing
frequency is about all you can do. A derivative term is needed to damp
Engineering is the art of making what you want from things you can get.
The reason they include time delay in most rules is that there is
almost no such thing as a process loop with zero time delay. Either
the process has some delay, or the output device valve positioner,
etc.) has some delay, or the transmitter measuring the process has
some delay, or the controller (especially if it is implemented in
digital form) has some delay, or more likely, a combination of all of
these. That said, if you have a perfectly integrating process that
has exactly zero delay, then there is not tuning that can screw it
up. Everything works. Changing the tuning constants just changes the
responsiveness and the resonant peaking at some frequency. But they
are all stable.
So the first thing you need to do (besides being suspicious of the
assumption that your LaPlace transform actually describes the process)
is to decide what the goal of the tuning is. Do you want minimum
output movement that keeps the process within some boundaries for a
given disturbance size, or do you want the tightest control of the
process variable in the presence of some expected disturbance, or do
you want the controller to be well behaved (however you define that)
when the process character shifts within some boundaries, etc. Only
after you have defined your goal does 'optimum tuning' make any sense.
Thanx for your nice reply and advice.
Actually I'm trying to model the water level behaviour in an arbitaray
three-phase separator. I have ignored the fast dynamics elements such
as valve, transmitter,etc. I'm trying to tune the controller for
regulatory problem , disturbance rejection for tighest control, i.e I
want from the controller to bring the water level back to its
set-point when ever there is a disturbance. The maximum amount that
the disturbance can have is twice the nominal value.
Can you please explain to me what do u mean by saying everything
Also I would like from u to suggest to me the following:
1- How can I tune the controller , if the disturbance has the
following dynamics 1.84/s, and the nominal value of the disturbance is
0.005 m^3/s , and it takes step changes.
2- In case I decided to use the rule that are available for
integrating process with time delay , what is the suitable value for
the time delay that i can use , the simulation step is done every 1
I'm really waiting for ur help and if u feel that I'm missing some
points plz let me know as soon as possible.
I meant that any tuning you try will result in a stable level in the
absence of disturbance. How it approaches that stable level is all
that changes as you vary the tuning. For instance, if you truly had a
perfectly integrating, zero delay process loop, you could apply
infinite proportional gain (two state output) and the level would head
toward setpoint at maximum possible speed from either side, and
vibrate there at infinite frequency and zero amplitude, thereafter.
No other tuning could exceed this performance at disturbance
rejection. But, of course, no such loop exists.
There is a 1/2 second average delay, right there. The level
transmitter (especially if it includes a filter time constant) adds
I would start with the integral time at a minute or so, so that it is
not significant, compared to the process speed. Then I would start
turning the proportional gain up till the level showed significant
oscillatory behavior. Then cut that gain in half.
Then start shortening the integral time till the oscillatory behavior
starts to show up on a step disturbance, again (at a lower frequency
than you got with excessive proportional gain) and double that time.
Then you are set to investigate if a bit of derivative is useful or
not to help clip the peak level swing right after the disturbance and
damp the settling back to setpoint. If you use too much, you will get
a higher frequency oscillation than you got with the excessive
proportional gain. Again, a fair rule of thumb is ti increase the
derivative time till oscillations start to show up (they will appear
at the output before they are much visible on the level measurement)
and then cut it in half.
This method makes no assumptions about how much loop delay is present,
but just reacts to it as it is.
You might well also improve the disturbance rejection if it is
predictable. For instance, if some other available piece of
information coincides with the flow change that disturbs the level,
you can make a model that predicts the controller output that cancels
this flow change, and add it to the controller output so that mist of
the output correction is based on this model. Then the controller
tuning is just there to correct for the error of the model, not to
handle the whole disturbance after the fact.
There's a more detailed account of how to tune a PID controller
accessible from http://www.wescottdesign.com/articles/pidwophd.html .
It's written for implementing control loops in embedded software but it
shows nice pictures of what happens as you tune the controller (and
it'll give you a chance to reconcile the terms "integral gain" and
Note that this technique has always given me a controller that's a bit
on the "unsafe" side -- i.e. I always end up with about 45 degrees of
phase margin, and I often end up with gain margins shy of 6dB. It's
probably as safe as houses is you're tuning a one-off system, but I've
never been entirely pleased with it for production systems -- but then
on a production system you can nearly always do a frequency sweep or
other qualification, where that's rarely practical with a mill or other
Since P+I has the Transfer Function: K*(1+sTi)/sTi, simply combine that
with your Ppen-Loop plant transfer function, do the usual bit of
manipulation to get the Closed-Loop Transfer Function and, and there's
your answer, parameterised in terms of K and Ti. Now select K & Ti to
give the response you require.
Kelvin B. Hales
Kelvin Hales Associates Limited
Consulting Process Control Engineers
ur idea works vey well if i'm tuning the controller for set-point
tracking. I did that and it works very well. But the same idea does
not work with disturbance rejection.
Do u know PI correlations which can help me.
For an integrating level control with no time delay (just the single
large lag of the level) a P only controller with a high gain should
work well (assuming you want tight level control; for the level to
fluctuate and absorb load changes, a low gain would be used).
The P only will work not only for setpoint changes but for
disturbances. If you really want the level to be held closely to the
setpoint, add a little reset (long reset time). Just adjust the gain
as high as you can without getting oscillation, then cut back.
I have seen this type of loop often in paper mills. They have all be
easy to tune just by watching the loop and adjusting the gain.
Is this a loop that you are currently trying to tune or one that you
haven't had hands on experience with yet (e.g. still under
firstname.lastname@example.org (Nasser) wrote in message
email@example.com (John Shaw) wrote in message
Well , I'm trying to control the water level via simulation for tight
disturbance rejection. I found that there is always off-set when there
is disturbance. I could get nice terms for the proportional and
integral terms by using trial and error plus some control sense.
However, my supervisor asks me to find some correlation between the
tuning terms which can be used directly without consuming time in
using trial and error method. I mean , he wants me to find
relationships for the tuning terms which relate them to the dynamics
of the process like what is available in the literature by Cooper and
others for integrating process with time delay. However, by using the
IMC approach , I arrived to the following relationships:
kc=(2/(lemda*Kp)) and Ti=2*lemda.
where: Kc is the proportional gain ,,, Ti is the integral reset time,
Kp is the process gain and lemda is the tuning parameter which is
The question which puzzeles me now , how can we select the lemda term.
I found in the literature by Tyreus for the integrating process with
time delay , lemda=time-delay *sqrt(10)
where , sqrt= square root.
Can someone suggest to me good value for lemda for integrating process
without time delay. if some one can suggest it will really help alot.
Thanx and waiting for me help.
Am I correct in assuming that you have missed out on basic control
theory? If not forgive me; if so you really need a book on basic
control theory such as "Feedback Control of Dynamic Systems" by Gene
Franklin, Prentice-Hall. It's in its 4th edition now, the copy I've
seen was the 1st or 2nd edition and it struck me as being a good book
For the mean time I'm going to throw a couple of results at you and hope
that (a) they'll help, (b) you'll understand them, and (c) your process
doesn't violate the assumptions I'm making.
The first result: If you have a plant with transfer function H_p(s) and
a controller with transfer function H_c(s) and you arrange them in the
.---------. .---------. |
| | | | |+
U + | | | | + V Y
------->O---->| H_c(s) |------>| H_p(s) |----->O-----o------>
^ | | | | |
- | | | | | |
| '---------' '---------' |
created by Andy΄s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de
The transfer function from the intended input U/Y will be
T_i(s) = (H_c(s)H_p(s))/(1 + H_c(s)H_p(s)).
The transfer function from the disturbance to the output will be
T_d(s) = 1 / (1 + H_c(s)H_p(s)).
The second result: The way that you maximize your disturbance rejection
is by maximizing the product H_c(s)H_p(s) in the frequencies where the
disturbance is strong. In theory you do this by pushing the system to
infinite bandwidth by applying infinite gain. That's the algorithm, and
it's too small to devote a web page to.
The third result: The reason the second result isn't applied much is
because real systems (as you've mentioned in other posts) always have
unmodeled dynamics, or characteristics that change over time or from one
system to the next.
So you know your model hasn't included all the dynamics of your system.
This means that there is some limit beyond which you cannot push the
system bandwidth. To get your best response you need to push this
bandwidth as high as you can without running into the problems with your
system model, or perhaps pushing it high enough to exceed your
disturbance rejection requirements by a comfortable degree and then
If you want to have an algorithm to get the "best" disturbance rejection
then you need to look to optimal control theory. Unless applied with
care this will shatter your assumptions about your plant and give you an
unstable system. To get the best disturbance rejection attainable
without an unstable system use robust control theory or intuition, plus
a good idea about where your system model starts breaking down.
This is where that "delay" term comes in. I haven't used the technique,
but the delay term will provide a nice catch-all term for all of the
system's unmodeled dynamics, basically putting a limit on the amount of
gain that you can build into your controller before everything goes to
If your problem is that your system is nonlinear, with small
disturbances giving you a small effective delay and large disturbances
giving you a large effective delay, then you need to use you own
judgment on what figure to put in there, or you need some nonlinear
compensation to go with your system nonlinearities.
I hope this helps.
There is a straightforward for selecting the PI tuning parameters. It is
described in "Process Control Fundamentals for the Pulp & Paper Industry"
which is published by TAPPI PRESS (1995). I will cover the procedure
briefly. Almost always you are trying to tune for disturbance rejection
instead of level SP changes. Assume that the disturbance is the outlet flow
and you are controlling the inlet flow to maintain the level.
a. Let the process be Gp = [ Kp/s ] b. The controller is Gc = Kc[ 1 + Ki
/ 60s ] ; Kc = Proportional Gain, Ki = Integral Gain,
Kp = Process Gain.The number 60 is in the transfer function since the time
units is seconds. c. The input to the process is [ Flow In - Flow Out ] d.
Assume that the dynamics of the inlet flow are fast ( this is usually the
case ) i.e. no deadtime or lag. e. The response of level to a change in the
flow out ( disturbance ) is given by the transfer function:
Gd = [ Kp s ] / [ s^2 + KcKp s + KcKpKi /60 ] It is informative to look
at a sketch of the Root Locus for this system. There are two closed loop
poles at the origin for Kc = 0.0. As Kc is increased the poles will have a
real and an imaginary component. You don't want an imaginary component as
it will result in oscillatory action. But if you continue to increase Kc the
closed loop poles will approach the negative real axis at point A. The
required relationship to place the poles at point A is:
Ki = 15 KcKp or Kc = Ki / 15 Kp where the closed loop time constant is
given by: Tcl = 2 / KpKc (seconds) and there will be no overshoot in
The primary control objective the level control loop is usually to allow the
tank to absorb flow variations so that the effects have a minimum impact on
the upstream (downstream) process. You must let the level droop (or rise)
instead of tuning the loop so tight that the level nearly draws a straight
line. The concept of Allowable Level Variation (ALV) simplifies the tuning
of level control loops. The ALV is the maximum variation from setpoint that
you are willing to permit under all operating conditions. ALV is expressed
in percent (%). Use the largest ALV possible so the tank can absorb the flow
disturbances. For example, if the level setpoint is 60% and an ALV of 25%
is selected, then the level will remain between 35% & 85%. This is true even
if the flow out is increased from 0% to 100%. After the ALV has been
selected and the process gain (Kp) has been determined by a simple open loop
"bump" test, the following tuning equations can be used (assumes level in
Kc = 100 / ALV, Ki = 15 KcKp and the closed loop time constant
is Tcl = ALV / 50 Kp
Kp = 0.002 select ALV = 33.33% Setpoint = 60% so the level will
remain between 26.7% and 93.3% for all conditions.
Kc = 100 / ALV = 3.0 and Ki = 15 KcKp = 0.09
If we relaxed the ALV to 50.0% we get Kc = 2.0 and Ki = 0.06
Hope this helps. It really does work.
I have made an interactive simulator with a useful Bode plot of the
case you describe, see
Material about a procedure of how to tune a PI controller from
specifications of disturbance (flow) attenuation is available from
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.