PID tuning method based on Pole placement

Is it possible to determine PID parameter using pole placement. I mean by solving the ch. eq. of close loop transfer functions which consists of either P,PI,PD or PID controllers??

Because i've tried it, an eventhough i am getting my poles at the locations I want the systems does not act as I assumed.

an example. I want my system to be overdamped and to have settling time less than 1 sec. which means that i want my poles to lie on the real axis, and to be less than -4.

$$G(s) =\frac{10.95 s + 0.9574}{s^2 + 0.09149 s + 6.263*10^{-6}}$$

With P = 0.1, I= 0.617746, d = 0.0147173 I get a close loop system which is $$G_cl(s) = \frac{0.1612 s^4 + 1.109 s^3 + 6.86 s^2 + 0.5914 s}{ 0.1612 s^4 + 2.109 s^3 + 6.952 s^2 + 0.5914s}$$

But looking at it's step response I see it creates overshoot, which i cannot justify due to an step input...

• Typical things to consider: Is the system you are simulating linear? Could it be that the system in fact is more complicated than you model, or that the model is plain wrong? Are there disturbances you did not account for, like friction, air drag etc.? What about time delay, either as slack in the mechanics, slowness in the computation or elasticity on the materials? These are all things that could have a great influence on the final systems performance. If you use an inaccurate model, for instance, the system will probably never get better than how the model fits the system. – Tormod Haugene May 20 '14 at 7:58
• But my approach of tuning my PID values, is it incorrect or?. This is a model of physical system. the transfer function has been identified using matlab, in which we feed it with the system input and the system output. There might be some inacurracies. The problem is that the system doesn't respond as my simulation shows, which make me question whether my method for calculating these values is incorrect, or is it just my model which is completely wrong. – Control May 20 '14 at 9:25
• When you say that the "system" doesn't respond as you expected. Are you then talking about a physical system? – Tormod Haugene May 20 '14 at 10:02
• yes... exactly.. Someone else told me that it might have been because of the position of my zero, since it lies close to the imaginary axis, it tends to act as an dominant pole, and thereby create undershoot.. it made a bit sense, since i haven't taken account for the zeroes. – Control May 20 '14 at 11:03
• On a general basis, I would say that unless your physical system is extremely simple and without any non-ideal effects, or your model is absolutely perfect, you cannot expect the physical system to behave exactly like the simulated system. If, however, the physical system does not behave - at all - like the simulated system, you most likely are doing something wrong. Also, I should say that not knowing the system you are working with, how it acts physically etc., makes it very hard to give you any definite answer. – Tormod Haugene May 20 '14 at 13:43

I have to say that $G(s)$ seems to represent quite a strange physical system with a settling time of 15.8 hours, especially compared with the requirement. There might have been some mistakes in identifying the system, maybe? The known term of the denominator is out of scale. Perhaps the data you collected to identify the model are not correctly scaled.

Anyway, with those P-I-D parameters you mentioned I got the following close-loop system $sys_1$:

$$sys_1(s)=\frac{0.1612 s^3 + 1.109 s^2 + 6.86 s + 0.5914}{1.161 s^3 + 1.201 s^2 + 6.86 s + 0.5914},$$

which is a bit different from $G_cl(s)$.

To get a over-damped response with settling time lower than 1 second, it suffices to use a simple proportional controller with $P=0.3695$, obtaining:

$$sys_2=\frac{ 4.046 s + 0.3538}{s^2 + 4.138 s + 0.3538}.$$

See below the step responses of $sys_1$ and $sys_2$ close-loop systems.