I have a plant transfer function $G(s)$: $$ G(s) = \frac{1}{s^2(0.1s + 1) } $$

I want to control this with practical PID control: $$ C(s) = k_p + k_i \frac{1}{s} + k_d \frac{N}{1 + N \frac{1}{s}} $$

Forming the closed-loop system results in 5 poles (2 conjugate poles) and 2 zeros. I am trying to tune the controller gains using the root-locus method in Matlab.

My objectives are to minimize rise and settling time while keeping the overshoot below 5%.

I picked N=15.

I tuned it by placing the zeros close to the Im-axis and by placing a conjugate pole pair very close to the zeros, like so:

$k_p$ $k_i$ $k_d$
0.0110 1.4177e-05 3.0106
-18.0873 + 0.0000i -0.0018 + 0.0012i
-3.4545 + 3.6068i -0.0018 - 0.0012i
-3.4545 - 3.6068i
-0.0018 + 0.0012i
-0.0018 - 0.0012i

As you can see, the zeros are close to the poles that should be the dominant poles in the system (they are not exactly on top of each other, but this isn't shown due to rounding). I think this causes them to almost cancel out because my system behaves as if the dominant poles are the conjugate pair at -3.4545. The rise and settle time correspond to the -3.4545 poles. This is desirable because those dominant poles give the required system properties.

My question is: is this a problem? Am I messing up somehow?

It seems to work pretty well. Bode and Nyquist plots all show healthy stability margins. The only thing is that the impulse response from reference to input disturbance is rather slow. Maybe it is bad for disturbance rejection?

I'd love to learn more about control!

Thank you in advance.

  • $\begingroup$ No problem. Just be aware that the faster you make the closed loop go, the more mid-high freq gain there must be (where mid-band is around the loop crossover in the bode analysis, and high freq is significantly above it). So that higher gain amplifies measurement noise, and causes the plant to max out on rate or value with smaller input amplitudes or disturbance amplitudes, as you turn up the responsiveness. The -3.5 ish effective dominant pole pair is pretty good I think. You might be able to get away with zeros that are not quite so small, like -0.1+/-0i to -0.3+/-i0 $\endgroup$
    – Pete W
    Nov 15 '21 at 15:59
  • $\begingroup$ Okay. Thank you for the explanation! $\endgroup$
    – Wirral
    Nov 16 '21 at 10:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.