2
\$\begingroup\$

The I-action of a PID controller, which integrates the error over time, results in the control signal:

$$u(t) = \int_0^{t}e(T)\text{d}T$$

This means that, when the system reaches its desired value and the error reaches zero, the control signal is a constant. So it is still there and larger than 0, while the P-action and D-action both are zero and have no effect anymore. So what is happening here exactly? Why can the system reach its final value if there is always a control signal active? Or is this the reason why overshoot happens? Is it that the error gets smaller once \$e(T)=r(T)-y(T)<0\$ and the integral gets smaller?

\$\endgroup\$
7
  • 1
    \$\begingroup\$ Ok, I'm having a hard time understanding your question what do you mean by "How can a system reach its desired value if the I-action of the controller doesn't go to zero when the system approaches its desired value?", I mean if the desired value is \$r(t)\$ and your output \$y(t)\$ approaches that, it must mean that \$y(t)-r(t) \xrightarrow{} 0\$. How could it not? Nowhere it is required that \$u(t)\$ goes to zero though. \$\endgroup\$ – jDAQ Jun 5 '20 at 18:23
  • \$\begingroup\$ The control signal can be larger than zero, if there is an external force. Suppose the controller is settled with zero output and zero error. Now apply some external force to the system, e.g. push a servo. As the integrator’s output starts increasing due to the offset it will counteract the external force. \$\endgroup\$ – user110971 Jun 5 '20 at 18:25
  • 1
    \$\begingroup\$ The integral of the error signal produces a decaying overshoot and therefore will die out in a stable situation. \$\endgroup\$ – Andy aka Jun 5 '20 at 18:36
  • 2
    \$\begingroup\$ See if my answer to understanding-the-flow-of-a-pi-controller helps. \$\endgroup\$ – Transistor Jun 5 '20 at 18:40
  • \$\begingroup\$ @Transistor it was a helpful answer, but it still makes me wonder about the situation where there is a desired position instead of a desired velocity. The car wouldn't need power after reaching a certain position but the \$u(t)\$ does stay \$>0\$. \$\endgroup\$ – Sudera Jun 6 '20 at 8:46
4
\$\begingroup\$

Imagine a real system such as an oven. You want to maintain 350°F so that your cookies will be properly baked.

The input to your controller is the temperature sensor.

The output to the oven is the percentage the heaters should remain on vs. off.

In order to maintain a constant temperature, the output must be non-zero, and ideally (without you opening the door or line voltage changes etc.) will be constant.


Overshoot happens because of the closed-loop system dynamics (underdamped), and it can also happen because of integral windup, which is a nonlinear effect.

\$\endgroup\$
1
\$\begingroup\$

why can the system reach its final value if there is always a control signal active?

For a system where \$y(t) = 10u(t)\$ it is easy to see that to obtain any nonzero \$y(t)\$ you need a nonzero \$u(t)\$. In the case of a dynamical system, remember that \$Y(s) = G(s)U(s)\$ in the time domain is $$ y(t) = g(t)y(0)+\int^t_0 g(t-\tau)u(\tau)d\tau,$$ For the system

$$ G(s) = \frac{1}{s+2} \Longrightarrow g(t) = e^{-2t},$$

Even if you start with a nonzero \$u(t)\$, if from an instant \$t_0\$ onward you have \$u(t)=0, \; t\geq t_0\$, that would lead to $$ y(t+t_0) = g(t)y(t_0) + e^{-2t}\int^t_{t_0} e^{2\tau}u(\tau)d\tau = g(t)y(t_0),$$

in cases where you have a stable system \$G(s)\$ this will mean $$ y(t+t_0) \xrightarrow{t\rightarrow \infty} 0.$$

So, having \$u(t)=0\$ from a point onward in a stable system will lead to the steady-state of \$y=0\$.

One case where you could have a \$u(t)=0\$ at the steady-state is if your system is an integrator, with

$$G(s)=\frac{1}{s}.$$

Or is this the reason why overshoot happens?

As you have mentioned, as you have the overshoots, and undershoots, you will have that \$e(t)\$ goes from positive to negative and so on. When \$e(t)>0\$, \$u(t)\$ is increasing, and for \$e(t)<0\$, \$u(t)\$ decreases.

So I used again the example system

$$ G(s) = \frac{1}{s+2}$$

and the control

$$u(t) = 10\int^t_0(r(z)-y(z))dz$$

which resulted in the following step response. Notice that at all those red boxes we have \$e(t)=0\$, and they are the inflection point of \$u(t)\$, but none of them are the steady-state (when y(t)=r(t) and stays so for any future time). And that should point that your remark about "[u(t)] is still there and larger than 0, while the P-action and D-action both are zero and have no effect anymore." is only correct at the steady-state, because at most points where \$e(t)=0\$ the P-action will be zero, but not the derivative one.

step response with markings pointing at the inflection times of the control effort

Is it that the error gets smaller once e(T)=r(T)−y(T)<0 and the integral gets smaller?

First it would be better to say the "integral gets closer to the steady-state control", since it doesn't always means getting smaller. There will be situations where the error will not decrease after the inflection point, specially if there are delays. But for the system that I used as an example it does so.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.