Why Integration in PID causes overshoot?

C

Thread Starter

Controller

I am sitting here trying to understand how come each part of an PID controller affect the system as it does.

As far i've understood, does P and I make an system faster, and D makes it slower (which i read in books), but doesn't actually know what makes it goes fast or slow for that sake.

How come does it cause overshoot and all those things, it makes since that the P part makes overshoot, since it add a gain, but why the integrator is doing ?? i wonder. I Need some kind of mathmatical understanding on how all these parameters varies the system.

I know how they work individually, but having a hard time understanding, how it affects the system. I mean how come does a Zero added to the system lead to decreasing overshoot, but when normally add a zero to a system, it will create more overshoot. and so on...
 
B

Bob Peterson

None of the parameters causes anything bad to happen with a properly tuned loop appropriately applied.

There are a bunch of different algorithms in use. Most are similar, but with plenty of differences.

In general, the P term adds an instantaneous amount to the loop output that is proportional to the instantaneous value of the loop error at the moment of the calculation.

The I term integrates over time. It is a summation of the area under the error versus time curve that is added to the loop output. If there is no error, the amount the I term adds to the loop output is nil.

The D term looks at the rate of change of the error, and adds an instantaneous value to the loop output that is proportional to the rate of change of the error (some loop algorithms use the rate of change of the PV instead).

Most loops have a bias that is a fixed amount that is added to the loop output, sort of a starting point if you will.

--
Bob
http://ilbob.blogspot.com/
 
P

Peter Nachtwey

> I am sitting here trying to understand how come each part of an PID controller affect the system as it does.

> As far i've understood, does P and I make an system faster,

Yes, but it increases the chances for over shoot.

> and D makes it slower (which i read in books), but doesn't actually know what makes it goes
> fast or slow for that sake.

That is NOT the way to look it. The derivative gain allows one to increase the other gains. It adds damping. See equation 8 example below.

> How come does it cause overshoot.... I Need some kind of mathematical understanding on how all
> these parameters varies the system.
Coming up

> I know how they work individually,

This is the main problem with schools and books.

Look at this site
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlPID

<b>Moderator's Note:</b> make sure you copy and paste the entire URL and delete any spaces in it.

Look at equation 7.
What must Kp be for the response to be critically damped? That is what value of Kp keeps the poles on the negative real axis in the s domain? The answer is Kp=5 for a critically damped response. if Kp<5 the response is over damped and slow. If Kp > 5 the response will over shoot.

Now look at equation 8.
Now we are tuning a PD controller. The goal is to select values of Kp and Kd so the response is still critically damped ( the poles are still on the negative real axis ). If Kd = 0 then Kp = 5 like the P only control above. if Kd=2 then Kp=16!!! Now the two poles are at -6 instead of -5 in the P only example. Increasing Kd allows increasing Kd significantly and making the response faster. If Kd=4 then Kp=29 and the poles are at -7 so the response is even faster.

My point is that you can't tweak one gain at a time. You really should look at where you want to move the closed loops poles to be and then calculate the gains necessary to move them there. Of course this assume you have an open loop model of the system you are trying to tune such as equation 6.

Equation 9 can't really be tuned properly. The reason why is that it is necessary to have a derivative gain. Why? Because it takes one gain to place one pole. Equation 6 has 2 poles so 2 gains are required but the integrator in the PI controller doesn't help because it brings its own pole. You can see the system has 3 poles now and there is no gain to adjust the coefficient for the s^2 term.

Here is a more detailed version of how I would tune a mass on a spring on pages 1-12. The rest are attempts to tune the system without a derivative gain.
http://deltamotion.com/peter/Mathcad/Mathcad - T0C1 MassOnASpring-PID.pdf

Also, note. A PID introduces zeros. Zeros can extend bandwidth but often they increase the closed loop gain to above one at higher frequencies so the response will over shoot. It is possible to place zeros too so there will be no overshoot or even to make a notch filter if desired.
 
C
Yes i realized a bit earlier today that the root locus looking at it would be more understandable.

Right know i having some problems writing a script which is capable of showing where the the system moves due to changing the gains for different values of Ki,Kp, or KD in matlab.

could you help me with this (i know that i shouldn't ask, but it would be very helpful..)?

 
C
Thanks for your response.

Earlier today i've come to that realization that it would be better to look at it the root locus way.

but is kinda having problems with matlab.

I trying to write some codes which shows how the root locus moves due to the changing parameter of Ki, Kd, or Kp.
 
C
Well.. i am kinda wondering how Ki, Kp, Kd affect the root locus, which would easier to determine the effect of overshoot and so on.
 
P

Peter Nachtwey

You need to dig through that link I posted. Look on page 11. What I am doing is plotting the location of the poles and zeros for one set of PID gains. I can change one gain and see where the poles and zeros move but it gets messy trying to do this for 3 gains that are changing. Normally in text books only one gain is changed but that is practically useless in real life because more than one gain needs to change. Also, why be happy with good enough when the poles can be placed precisely if you work the problem backwards. Place the poles and THEN calculate what the gains need to be to make it so.

In real life I usually don't have a perfect system model. I derive it using system identification techniques and I calculate gains using my model. The actual pole locations will not be exactly where I want them due to modeling errors but they will be close. If the close loop poles stay close to the negative real axis then there will be little if any overshoot IF the zeros are in the right position.

Also, use the I-PD form of PID where the P and D terms only act on changes in the process value and not the error. This keeps the PID from adding zeros that may also cause overshoot. If one uses a PID and the zeros are closer to the origin than the poles the system will over shoot in response to a step change in the set point. If one places zeros then the zeros can be moved to the left of the poles where the chances of overshoot starts to disappear.
 
H
PID functionality can be expressed in several ways. I prefer the discrete time, incremental formulation: It is the easiest and clearest way to see what is going on.

The I-controller equation is: dOP = (Tc/Ti) * E
Tc = control interval, Ti = integral time)

In words: The change of the OP is proportional to the current error.

Assume a process with some dead time. A SP change causes a change in the error. At the end of the dead time, when the PV starts moving towards the SP, the error gets smaller but still has the same sign – thus the OP keeps on moving in the same direction (unlike the P-controller).

Just before the PV reaches the SP it would be nice if the controller would “jump on the brakes” (= moves the OP a bit in the opposite direction, or at least stops going in the same direction) – but it cannot: Only when the error is 0 the OP will not change any more. Thus unless the controller is tuned extremely weakly the PV will overshoot the SP. Now the sign of the error changes, consequently the direction of the OP – yet too late. Depending on the tuning the same game may start again - now in the opposite direction.

By the way: For better understanding and interpretation of the results of the PID we have provided in our tool TOPAS (http://www.act-control.com/software.html) the option to see also the outputs of the individual components P, I and D separately.
 
H
> Could you tell us what control system you're using? i.e., DeltaV? Yokogawa? ControlLogix?

Using for what?

General answer: We do consulting / engineering thus have to work with the DCS our clients have - a truly wide variety.
 
Top