Place a zero of the PI controller

control theorylinear-controlpi controller

Let's say I have a plant with following transfer function

$$
G(s) = \frac{\frac{L_M\cdot R_R}{L_R}}{s + \frac{R_R}{L_R}} = \frac{0.0129}{s + 1.935}
$$

and I would like to design a PI controller for it in a form
$$D(s) = K\frac{s + z}{s}.$$
As far as the requirements regarding the controller design I need to fulfill

  • settling time ($t_s$) not greater than $200\,\mathrm{ms}$
  • percent overshoot ($M_p$) not greater than $20\%$

The rise time requirement can be translated via
$$
t_s \approx \frac{4.6}{\sigma}
$$

into
$$
\sigma \geq \frac{4.6}{200\cdot 10^{-3}} \geq 23
$$

The percent overshoot requirement can be translated via
$$
M_p = e^{\frac{-\pi\zeta}{\sqrt{1 – \zeta^2}}}
$$

into
$$
\zeta = \frac{-\ln{Mp}}{\sqrt{\pi^2 + \ln^2{M_p}}} = \frac{-\ln{0.2}}{\sqrt{\pi^2 + \ln^2{0.2}}} = 0.46
$$

In respect to the fact
$$
\sigma = \omega_n\cdot\zeta
$$

I have a requirement for the natural frequency
$$
\omega_n \geq \frac{\sigma}{\zeta} = \frac{23}{0.5} = 46\,\mathrm{rad}\cdot\mathrm{s}^{-1}
$$

Design via root locus

I have attempted to design the PI controller via the root locus method.
The root locus for the plant with an integrator added looks like this

enter image description here

It is evident that I am not able to fullfill both of the requirements at the same time. Here I could probably exploit the ability of a transfer function zero to move the root locus more into the left half plane. My question is whether there is some rule of thumb for the PI controller zero location.

Design via pole-placement method

The closed loop transfer function is (with help of the wxMaxima)

$$
T(s) = \frac{D(s)\cdot G(s)}{1 + D(s)\cdot G(s)} = \frac{K\cdot L_M R_R\cdot(s + z)}{L_R\cdot\left(s^2 + \frac{K\cdot L_M + 1}{L_R}R_R\cdot s + \frac{K\cdot L_M\cdot R_R\cdot z}{L_R}\right)}
$$

In case I compare the polynomial in the denominator of $T(s)$ with the standard second order system I can write:

$$
\frac{K\cdot L_M + 1}{L_R}R_R = 2\cdot\zeta\cdot\omega_n
$$

i.e.
$$
K = \frac{2\cdot\zeta\omega_n\cdot\frac{L_R}{R_R} – 1}{L_M} = \frac{\frac{2\cdot 0.5\cdot 46\cdot 0.007027}{0.0136} – 1}{0.006649} \approx 3424
$$

and
$$
\frac{K\cdot L_M\cdot R_R}{L_R}\cdot z = \omega_n^2
$$

i.e.
$$
z = \omega_n^2\cdot\frac{L_R}{K\cdot L_M\cdot R_R} = 46^2\cdot\frac{0.007027}{3424\cdot 0.006649\cdot 0.0136} \approx 48
$$

The PI controller with transfer function
$$
D(s) = 3424\cdot\frac{s + 48}{s}
$$

gives following step response of the closed loop

enter image description here

Best Answer

If you require a root locus procedure, I'm sure any Introductory Control textbook will cover this. For instance, pg. 464 (Example 7.11) of Modern Control Systems (13th Ed) by Dorf & Bishop covers a procedure in which the root locus is used to solve almost the exact same problem you propose: using a PI control law against a standard first order system to meet certain response characteristics.

The basic idea is this. The root locus equation with $K$ variable is thus,

$$ 0 = 1 + K L(s) $$

where

$$L(s) = \frac{s + z}{s\,(s + B)},$$

absorbing the gain of the plant into $K.$ If you sketch the root locus for this, you will find that as long as $-z$ is farther to the left of $-B$, the root locus looks something like below.

Root locus of generic PI control law against standard first order system.

From this, we can deduce that as long as we place our zero $-z$ somewhere faster than the settling time specification, there exists poles on the root locus that should meet the settling time specification (because they have more negative real part) and meet the overshoot specification (because they converge upon the real axis); we must simply choose a sufficiently large gain $K.$

There is a catch, however. With a PI controller, you introduce a zero in the closed loop transfer function. This zero can add overshoot that scales with the speed of your response. You may need to scale the gain to wash out the effects of the zero in some designs.

In your case, you picked $z = -48$ is more than sufficient to meet your $200~\mathrm{ms}$ settling time spec, but this I think is too aggressive. It still should be possible to find a gain $K$ but it might be difficult to do so, and you will need a larger gain to achieve that end. For that choice of $z$, $K = 10000$ seems to work:

$$C(s) = 10000\,\frac{s + 48}{s}.$$

I would pick $z = -20$ near the settling specification. The root locus thus still has solutions that meet the settling time specification as seen in the diagram, and we just need to choose large enough gains $K$ to meet the overshoot specification while still not having poles that are too fast. Turns out,

$$C(s) = 4000\,\frac{s + 20}{s}$$

does the trick.