4
$\begingroup$

I was told that the proportional gain alone cannot the drive the error signal to zero in a feedback loop. Why is that? If there is a tiny error, there will be a tiny or larger (depending on the number of proportional gain) correction, so why won't the error signal reach zero? When the error tends to zero, the correction will tend to zero as well. But just before error becomes zero, there WILL BE corrective action, so why it cannot achieve the desired output?

$\endgroup$
7
  • 1
    $\begingroup$ It may drive the system to zero, but proportional gain alone doesn't make zero a stable equilibrium, which is what you really want. $\endgroup$ – Paul Mar 3 '16 at 13:48
  • $\begingroup$ In other words, error may reach zero, but it won't stay zero with proportional gain alone. $\endgroup$ – Paul Mar 3 '16 at 14:08
  • 1
    $\begingroup$ @Paul: No. With a P term only, the error will NOT be driven to zero. $\endgroup$ – Dave Tweed Mar 3 '16 at 15:04
  • $\begingroup$ @DaveTweed: Depending on the problem, it may. $\endgroup$ – Paul Mar 3 '16 at 15:07
  • $\begingroup$ @Paul: See Chris Mueller's answer, and then see if you can come up with an example of such a system. $\endgroup$ – Dave Tweed Mar 3 '16 at 15:09
4
$\begingroup$

To understand why proportional gain won't drive the error point to zero, it is best just to look at the math. Consider the PID loop shown in the image below. The loop algebra in the $s$ domain comes out to $$ \begin{align} e(s)&=r(s)-y(s)\\ y(s)&=P\ u(s)\\ u(s)&=\left(k_p+\frac{k_i}{s}+k_ds\right)e(s), \end{align} $$ where I have used $P$ to represent the plant/process. Putting all of these together gives $$ e(s)=\frac{r(s)}{1+P\left(k_p+\frac{k_i}{s}+k_ds\right)}. $$

If we now turn off the integral and derivative terms by setting $k_i=k_d=0$, then this becomes $$ e(s)=\frac{r(s)}{1+Pk_p}. $$ The only way to make this zero is to have infinite proportional gain, i.e. $k_p=\infty$, regardless of the frequency/timescale unless the plant itself has a term which becomes infinite at low frequency. If we add the integrator back in by only setting $k_d=0$, then the error point becomes $$ e(s)=\frac{r(s)}{1+Pk_p+\frac{Pk_i}{s}}. $$ At low frequencies $s\rightarrow0$ which makes the last term in the denominator become infinite which makes the error point go to zero. So, we can see that an integrator drives the error point to zero at low frequencies.

enter image description here

$\endgroup$
0
1
$\begingroup$

Because by definition, to have a non-zero output, you must have a non-zero error. This means that the output cannot match the setpoint perfectly. Only by adding an integrator can you drive the error to zero while maintaining a non-zero output.

$\endgroup$
0
$\begingroup$

Consider what happens if the desired response is not constant - for example a vehicle doing a controlled acceleration or braking (i.e. not just the "floor the gas pedal till you hit the speed limit" style of driving!).

The only way for proportional gain to make a correction is to lag behind the desired response. To reduce the errors, You want something in the controller that measures the way things are changing with time.

$\endgroup$
1
  • $\begingroup$ This is not a useful answer. Too much hand-waving and not enough fundamental principles. $\endgroup$ – Dave Tweed Mar 3 '16 at 15:05
0
$\begingroup$

//begin edit//

After reading Chris Mueller's answer I have a better understanding for the misconceptions associated with this question (my past self included).

When a positive controller output is required to hold the systems current state; it will never reach zero error because the controller needs the error term to compute this positive output as shown in Chris' proof. This includes this assumption of the process side of the loop being; y(s)= P * u(s). This positive output is required for most real world systems and is referred to as steady state error.

However, when controller output is not required to hold the systems current state; it is possible to reach zero error because the controller only needs to output the change required. For positioning with a simple hydraulic cylinder controlled with a proportional flow valve for example, no output is required to hold position. This would also apply in other special cases like heating an adiabatic (perfectly insulated) container. The process side of the loop in these cases would perhaps be; y(s)= P + u(s).

So in a "state-holding system" only...

//end edit//

...at infinity, yes, you will reach your setpoint. However, most of us don't have until infinity.

A good analogy is; you have a destination you would like to go to, like the grocery store for example (this is your setpoint). You decide to walk half of your current distance to the grocery store each day (this is overdamped, underdamped has a whole different set of problems)

Day one you are half way, "great progress!". Day two you are 3/4 of the way, "not bad". Day three you are 7/8 of the way, "thought I would be there by now". Day four you are 15/16 of the way, "I sure am hungry". Day five, your are 31/32 of the way, "I give up"...

enter image description here

It depends on what you consider "at the setpoint" and what you consider "too much time". In this scenario we died of starvation in the parking lot of the grocery store.

//begin edit// Lets say a company you work for makes $100 a second when the internal temperature of an adiabatic (perfectly insulated) container is brought to within 0.1°C the set point. //end edit// We could wait an hour for a proportional term to get us there and lose all that money, or we use a PI that could get us there in 2 minutes, or we could nicely tune a PID to get us there in 10 seconds.

$\endgroup$
2
  • 1
    $\begingroup$ This isn't actually correct. Even at infinity (equivalent to very low frequencies) proportional gain will not drive the error point to zero. $\endgroup$ – Chris Mueller Mar 3 '16 at 12:51
  • $\begingroup$ @ChrisMueller, Thanks, I have learned something today. Most of my experience is in position control so it makes sense why I never thought of it the way you presented. Please see edits in my answer. $\endgroup$ – ericnutsch Mar 3 '16 at 20:10

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.