Been brushing up on my control systems knowledge and I keep seeing that a P controller WILL NOT have 0 error and that doesn't make sense to me.

Imagine a tank problem, the setpoint is 50 cm, you open the drain valve and the level goes down to 49. Controller output goes up and you start putting water into the tank. Controller output does not go to 0 until the level is back to 50. So while this may take a while if your Kp is low, it will get there.

I understand that steady-state error is not measured at infinite time but the idea that a P controller will not reach the SP is odd to me.


2 Answers 2


If you open your drain valve, and then close it again, then you're correct, the tank will refill back up to 50, leaving you with no offset. If, however, the valve is left open, then the water may not come into the tank fast enough to compensate for the water that's leaving. This means that the level will continue to fall, up to the point where the proportional gain means that the rate of water in = water out.

In a P controller, the rate of water in will only be non-zero when there is an error, therefore, if the outlet valve is open, then there must be an error, or no water would come in at all. Integral action corrects for this offset.


Take a linear system:


and assume, either that there is a constant affine force $d$ affecting your system (in your example, the valve left open which drains your tank)


or that you want to stabilize your system outside of the origin at $x=r$. In the second case you can introduce the change of variable $z=x-r$ and obtain


taking $Ar=d$ we notice that the two situations are similar. Both situation will generate a steady state error for a proportional controller.

For the rest of the answer I will demonstrate without loss of generality the steady state error in the first case. Say that the pair $(A,B)$ is stabilizable. It means there exists a matrix $K$ such that $u=Kx$ makes the system exponentially stable at the origin when $d=0$ by imposing that $(A+BK)$ is Hurwitz. Indeed the state trajectory is then given by:

$$x(t) = e^{t(A+BK)}x_0$$

which provides $$\lim_{t\to +\infty}x(t) = 0$$

However, when $d\neq 0$, the state trajectory becomes:

$$x(t) = e^{t(A+BK)}x_0+ \int_{0}^{t}e^{(t-s)(A+BK)}d \,\mbox{d}s \\ = e^{t(A+BK)}x_0+ \int_{0}^{t}e^{s(A+BK)}\mbox{d}s \, d\\ = e^{t(A+BK)}x_0+ (e^{t(A+BK)}-I_n)(A+BK)^{-1}d $$ finally providing $$\lim_{t\to +\infty}x(t) =- (A+BK)^{-1}d$$

Of course $(A+BK)$ being Hurwitz, $\ker [(A+BK)^{-1}] = \{0\}$, and since $d\neq 0$, this demonstrates the existence of a steady-state error.

Note that in some cases, taking $u=Kx+f$ with a well chosen $f$ will compensate this steady state error and avoid the use of a proportional integral (PI) controller. This solution is however less robust than using a PI controller.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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