Pole-zero cancelation method for PI controller design

control theorypi controller

I have a simple LTI system with following transfer function

$$
G(s) = \frac{K}{s + p} = \frac{0.0128647}{s + 1.935}
$$

and I would like to design a PI controller for this system i.e.
I have been looking for a controller with transfer function in
following form

$$
D(s) = \frac{k_p\cdot s + k_i}{s} = \frac{k_p(s + \frac{k_i}{k_p})}{s}
$$

I have found a literature where the authors use a method based on the idea when the zero of the PI controller cancels the pole of the system.

My question is whether this method is really worthy of following.
My doubts arise from the fact that in real situation the pole location
is loaded with some uncertainty. In other words I am not able to place
the controller zero exactly at the system pole location i.e. the controller zero can be at the right hand side or the left hand side from the actual system pole. Both of these situations can be analyzed via the root locus

  1. controller zero at the right hand side from the system pole ($z = 0.9\cdot p$)

enter image description here

  1. controller zero at the left hand side from the system pole ($z = 1.1\cdot p$)

enter image description here

Best Answer

I think it is ill-advised in practice to do pole-zero cancellation. Unstable pole-zero cancellation is just plain bad (the closed loop will be unstable) but stable pole-zero cancellation is also not great for practical reasons. The cause is due to not knowing the pole $-p$ exactly, but primarily it is the side-effects of a failed cancellation that is truly the problem.

Normally, like in your problem, the cancellation is with a slow pole $-p.$ Let me demonstrate the issue. Take the plant to have the form,

$$P(s) = \frac{N_p(s)}{D_p(s)}\frac{1}{s + p},$$

where $N_p$ and $D_p$ are just polynomials that do not have roots at $-p$. We've explicitly encoded that the plant has a pole at $-p$ we wish to cancel. We don't know $p$ perfectly well so we instead introduced a zero in our controller that is $\varepsilon$ off from the true pole $-p.$ Our controller takes the form,

$$C(s) = \frac{N_c(s)}{D_c(s)}\,(s + p + \varepsilon)$$

where we take $N_c$ and $D_c$ do not have roots at $-p-\varepsilon.$ If no cancellation happens in $C(s) P(s)$ at $-p$ or $-p-\varepsilon$ then the closed-loop TF from the reference to the output is given by,

$$ \frac{Y(s)}{R(s)} = \frac{(s + p + \varepsilon) N_p(s) N_c(s)}{(s + p + \varepsilon) N_p(s) N_c(s) + (s + p) D_p(s) D_c(s)} $$

This transfer function has a zero at $\approx -p$. To see why, note that $D_p D_c$ doesn't have a root at $-p-\varepsilon$ because otherwise there would be a cancellation. That is a problem: by failing to cancel out the pole at $-p$ we have accidentally introduced it as a zero at $-p$ in our closed loop transfer function. Worse still, this zero is a slow zero because the pole itself was originally slow. So it almost certainly introduces a large overshoot for any aggressive actions taken by the controller for large errors.

Cancelling out fast poles has a similar problem in the sense that the controller ends up becoming very aggressive (it has a fast zero) and will result in poor transient dynamics as well. Moral of the story is: yes there is a theoretical justification for why one should avoid explicit pole-zero cancellations.