Why doesn't a PID only consisting of ID exist?


The short answer to this is that the P (Propotional) part of the PID controller is the base function of the controller, and that the I (Integral) and D (Derivative) parts merely attempts to fix the very commonly encountered downsides of the P-only controller.

If we have a look at the general actuating force in the system - the motor or "actuator" the PID controls - the explanation becomes quite obvious. For the PID, the actuation is:

u = Kp*(e) + Kd*derivative(e) + Ki*integral(e)

where e is the error from the desired system position, and Ki, Kd and Kp are user-defined numbers. Now, imagine that the system indeed is in its desired position, meaning the error e=0; then u would also be zero! So, the question then becomes how to get u = 0 when the system is in the state we would like it to be in. This can explain why you typically only see P, PD, PI or PID controllers used, because these combinations usually coincides with an actuation u=0 that gives a desired system state. There is, however, nothing wrong about the I, D, ID or even ABC-controller - you can literally add any additional party to u that you find usable for the system you are working with. You could for instance say that

u  = 0,  if |e| < 5 and
u  = 1,  otherwise

which effectively would be a simple on-off switch like your typical thermostat.

Hope this help!

  • $\begingroup$ I am not quite sure.. i am getting the reason why i shouldn't use I, D or ID. you start saying it opposes the effect of P, but then again there is nothing wrong about using it. ... $\endgroup$ – Control May 19 '14 at 8:48
  • $\begingroup$ What I am trying to say, is that there is no single "perfect" controller for every application: if the I, D or ID controller works for your purpose, then use it. But more often than not, a PID, PD or PI controller has proven to work better than a I, D or ID controller. Therefore, I would recommend that you use either a PID, PD or PI controller, since it most likely will be the better choice for your application too. $\endgroup$ – Tormod Haugene May 19 '14 at 13:51
  • $\begingroup$ my confusing appears as if Matlab recommend me using a I controller for my system.. but it results in reality to some weird output. $\endgroup$ – Control May 19 '14 at 14:32
  • $\begingroup$ Then I would simply not use the controller Matlab suggests. matlab is good for a lot of purposes, but the standard procedures are not always the best. ;-) $\endgroup$ – Tormod Haugene May 19 '14 at 15:51
  • 1
    $\begingroup$ I would add that, to make it short, the I and D components are related to the dynamics of the control, whereas the P component is related to the error reference position (in an abstract manner) to reach. $\endgroup$ – Alexandre Willame Dec 30 '14 at 14:21

You almost never see ID controllers because they generally don't do anything useful. Here is what they can do:

1) The D part will respond to changes in the system. It will try to correct and move the system back to 0, but once it reaches steady steady the D part is no longer active. Note that it does NOT matter where that steady state is; it could be 0 or 10 or 100.

2) Now imagine that the system is moving very slowly, so the D part is negligible. The I part will drive the integral of the error to 0. Again, this is NOT the same as driving the error to zero. Imagine the system is disturbed from 0 to -5. Now the integral will start to become negative and the controller will send positive commands. Once the system reaches 0 again, the integral is still negative so the controller is still applying positive commands and the system moves positive. Eventually the integral reaches zero but the system is now far into positive territory so the whole process repeats itself in the reverse.

Without P, the controller just doesn't reliably do what a control system is supposed to do: drive the error to 0.

  • $\begingroup$ what about only I and D controls? $\endgroup$ – Control May 16 '14 at 13:02
  • $\begingroup$ Sorry, I don't understand what you mean $\endgroup$ – ryan0270 May 16 '14 at 13:21
  • $\begingroup$ what I meant was a PID controller where either P and D is 0, and just adjusting it the I term, or a controller where P and I is 0 and adjusting it using the D terms. $\endgroup$ – Control May 16 '14 at 13:24
  • $\begingroup$ Then you will still run into the same problems I describe above. $\endgroup$ – ryan0270 May 16 '14 at 13:28
  • $\begingroup$ "The I part will drive the integral of the error to 0" - Incorrect. The I term drives the error to zero, not the integral of the error. The I term will continue to change while the error is non-zero. Some systems can be stable like that with a non-zero I term, and no P or D. $\endgroup$ – Rocketmagnet Dec 30 '14 at 23:41

While a simple D controller is merely useless for the reasons outlined by ryan0270 in his answer, there are cases where a simple I controller does perform perfectly well. It pretty much depends on the characteristics of the system we have to control.

Real Example Case

Stabilize the head motion of a humanoid robot by sending counter-velocity commands to the neck while we can sense velocity disturbances by means of a IMU device that are caused by the movements of the torso (or whatever disturbances, e.g. the robot can walk).

It comes out that the velocity response of the group Head+IMU when solicited by a velocity step can be described by the following second order under-damped process:

$$ G(s)=\frac{0.978}{1+2 \cdot 0.286 \cdot 0.016s+(0.016s)^2}e^{-0.027s}. $$

Therefore, the goal is to design a controller that provides a sufficient counter-action in the following classical disturbance rejection diagram:

enter image description here

A I-only controller with gain $K_I=11$ (discrete controller running @ 100 Hz) suffices to accomplish the job making the closed-loop system Type I and performing great in real experiments. No need for P then.

This is shown in the plot below, where three system responses are drawn for three corresponding controllers counteracting a step-wise velocity disturbance. The proportional part starts becoming helpful only for very tiny value of the gain P. The integral part is dominant, doing almost all the task.

enter image description here


I have very basic knowledge of control theory, but:

Wikipedia says (emphasis mine):

A high proportional gain results in a large change in the output for a given change in the error. If the proportional gain is too high, the system can become unstable (see the section on loop tuning). In contrast, a small gain results in a small output response to a large input error, and a less responsive or less sensitive controller. If the proportional gain is too low, the control action may be too small when responding to system disturbances. Tuning theory and industrial practice indicate that the proportional term should contribute the bulk of the output change.

In other words, when the proportional gain is too low, the control would be too slow to be usable, because its response to change would effectively be negligible. You can imagine making it 0 would only make things worse.

So while an ID controller can exist in theory, it would be pretty useless.

  • $\begingroup$ Well. there is something i've missed, my confusing appeared as of because i've made a controller consisting of only I and D, which worked relatively fine.. $\endgroup$ – Control May 15 '14 at 10:39
  • $\begingroup$ It may work fine, but a controller with a P term is always going to have a faster transient response. $\endgroup$ – Andrew Capodieci May 15 '14 at 13:24
  • 1
    $\begingroup$ Since I'm not an expert in control theory, I would appreciate feedback on the -1. I'm interested in learning my mistakes. $\endgroup$ – Shahbaz May 16 '14 at 13:33
  • $\begingroup$ I too would like to understand the reason for the downvote. $\endgroup$ – Ian May 18 '14 at 22:32
  • 1
    $\begingroup$ @TormodHaugene, I would remove it, if it creates confusion, but I'd leave it as a comment to the OP. The fact that people on stackexchange ask questions without ever searching before or trying to solve their own problems is a serious issue. $\endgroup$ – Shahbaz May 19 '14 at 13:56

P (Proportional) meaning how responsive the system. Not only P can control the system responsive. Clock or Sampletime can make the system more responsive. So when u try only I (Integral) if responsive system has been high so it's possible only using ID.

  • $\begingroup$ Welcome to Robotics Adryan. Thanks for your answer but we are looking for comprehensive answers that provide some explanation and context. Very short answers without explanation cannot do this, so please edit your answer to explain why it is right, ideally with citations. $\endgroup$ – Mark Booth Oct 30 '17 at 15:47

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.