We aways find lots of materials which explain various methods of tuning a PID controller. Also, it is not hard to find out what are those parameters. Once I've read that P and D parameters, in general, help the system to respond fast but may increase overshoot. And the I parameter should help steady state error but may lead the system to instability. My question is: are there general rules which will always be true when dealing with those parameters? Like "always when you increase X parameter will increase overshoot" or things like that. Or it will always depend on the system and I cannot say anything like that?

  • 1
    \$\begingroup\$ Yes. Have a look at the table under "manual editing" on the wikipedia page: en.wikipedia.org/wiki/PID_controller. You can always have a feel about the effects of those parameters by comparing them with real life situations, like driving a car. What happens when you react more (accelerate or brake) for the same distance that separates you from the car in front of you? Or its integral ("okay I really have to accelerate now, it's barely doing anything")? Or its derivative ("I'm catching up too quickly with that car")? It gives you a sense it depends on the plant as well (engine, brakes...) \$\endgroup\$ – Mister Mystère Mar 8 '15 at 22:42

In practice it is always beneficial to have some kind of model for your object. One useful mathematical model is transfer function. It is hard to get the ideal one but fortunately most of the objects can be approximate by first order inertia. $$ G\left ( s \right ) = \frac{k}{Ts+1}\cdot e^{T_{0}\cdot s} $$ Where k is gain, T is time of inertia and T0 is transport delay. Here is some simple method System Identification Using Time Domain Data Having such model you can simulate your object with different controller's loopback algorithm using Matlab or Simulink.

In most cases you are not allowed to experiment with the real system but if you can then try this: choose P action first, test the behaviour of the real object then correct it test again and so on. Then you can add I action, test the behaviour of the object then correct it test again and so on. Then you can add D action, test the behaviour of the object then correct it test again and so on. Remember D action is hard to control and it is not used so often as it may seem. If you want to have steady state error = 0 always include I action (it is obligatory to achieve error = 0 in practice).

Your general rules are right but the issue is not so easy. PID's parameters highly depends on the process you want to controll and stability of the system is a different story. Search for example for Hurwitz stability criterion.


It depends on the system.

Let's make an example and suppose your system is an integrator:

$$ P_1= \frac{1}{s}$$

and you're controlling it with a proportional controller

$$ C_1 = k_p.$$

Then, your closed-loop system behavior will be

$$ P_{CL1}= \frac{k_p}{s+k_p}. $$

In this case, the proportional gain \$ k_p \$ only determines the response time of your system. No overshoot possible, no steady-state error.

Let's consider something somewhat opposite. Take now a plant

$$ P_2= 1$$

and a merely integral controller

$$ C_2 = \frac{k_i}{s}.$$

The closed-loop behavior would here be:

$$ P_{CL2}= \frac{k_i}{s+k_i}, $$

where the integral \$ k_i \$ here plays the same exact role as the proportional gain was playing before.

Anyway, for a wide class of systems, the 'rules of thumb' you heard of apply. Some examples of what to expect you can find here.

  • 1
    \$\begingroup\$ It's an interesting point, but I don't think it answers the question. It's about rules of thumb for the effects of each parameter, for a given plant. \$\endgroup\$ – Mister Mystère Mar 8 '15 at 22:46
  • \$\begingroup\$ @MisterMystère What given plant? That's exactly what my answer tried to include. The actual answer to the question ends with the first line. \$\endgroup\$ – raggot Mar 17 '15 at 11:17

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.