Assume that we have a transer function $G(s) = \frac{B}{A}$ which has stable poles, but unstable zeros. We use the controller $Q(s) = \frac{A}{B} = G^{-1}(s)$ and we want that the loop transfer function $L(s) = QG = 1$ due to the feedback transfer function:

$$G_f(s) = \frac{QG}{1 + QG} = \frac{1}{2}$$

But the problem here is that $G^{-1}(s)$ is unstable!


How can I form the $Q(s)$ controller so $L(s) = c$, where $c$ is a constant for all $G(s)$ and $Q(s)$?


2 Answers 2


The only option would be $c=0$, but for any other value your system will be unstable. To see this you can use the Nyquist stability criterion. Namely since $L(s)$ is constant it can't make any encirclements around the minus one point, therefore the same number of unstable poles in $L(s)$ will also be present in the closed loop system.

  • $\begingroup$ So is there any method to design $Q(s) $? $\endgroup$
    – euraad
    Jun 25, 2018 at 15:09
  • $\begingroup$ I posted an answer now. $\endgroup$
    – euraad
    Jun 25, 2018 at 17:35

I think I got an answer to my own question.

We have our transfer function $$G(s) = \frac{B(s)}{A(s)}$$

The best way to find the controller $Q(s)$ is to take the inverse of $G(s)$, but in this case, the zeros of $G(s)$ is positive. That means $G^{-1}(s)$ will be unstable.

The goal of this answer is to find the approximation $G^*(s)$ of $G^{-1}(s)$.

A good choice is to have this:

$$ |G(j\omega)G^*(j\omega)| = |G^+(j\omega)G^+(-j\omega)| =1 \forall \omega$$

Where $G^+(s)$ is the positive zero polynomial and $G^-(s)$ is the rest of the zero polynomial.


$$G(s) = \frac{(s+2)(s-3)}{s^2 + 1}$$

Then $B^+(s) = (s-3)$ and $B^-(s) = (s+2)$

Then we can write $G^*(s)$ as:

$$G^*(s) = \frac{A(s)}{B^+(-s)B^-(s)}$$

But we still have a problem if $deg(A) > deg(B)$, which is very common!

I will then introduce you to this correction transfer function:

$$G^*(s, m, \tau) = \frac{A(s)}{B^+(-s)B^-(s)A_m(s, \tau)}$$

Where $$A_m(s, \tau) = (1+\tau s)(1+ \alpha \tau s)...(1+\alpha ^{m-1}\tau s)$$

Where $\alpha = 0.5-1$ is a tuning factor and $\tau$ is the time constant, not from $G(s)$. It's a tuning factor as well.

The choice of $\alpha = 1$ gives a multiple pole in $s = -\frac{1}{\tau}$ for degree $m >= deg(A) - deg(B)$.

Now to an example!

Let's say that we have a transfer function of a LTI system:

$$G(s) = \frac{b_0s - b_1}{as^2 + a_0s + a_1} = \frac{3s - 2}{s^2 + 3s + 1}$$

Where $B^+(s) = 3s-2$ and $B^-(s) = 1$

The inverse $G^{-1}$ looks like this:

enter image description here

And the $G(s)$ looks like this:

enter image description here

My working frequency is very low, because I want to deal with self tuning controllers, that means I will set say that

$$|G(j\omega)G^*(j\omega)| = 1 , [0 <= \omega <= 10]$$

That's my goal!

Now we need to focus on cutting frequency. We want to cut at $10$ rad/s , that means there is going to be a some dB difference between $|G^{-1}(j10)|$ and $|G^*(j10)|$.

Too choose $m$ and $\alpha$ and $\tau$ we say that:

$m = 2$, because $deg(A) - deg(B) = 1$ and $deg(A) > deg(B)$. The zeros need to be at least many as the poles, or else, our transfer function won't be proper!

That means we need to have an extra pole in $s = -\frac{1}{\tau}$ so $deg(A) = deg(B)$. The solution is $\alpha = 1$

Now we need to select $\tau$. Then we using the bandwidth formula:

$$\omega _b \tau = \sqrt{2^{1/m} - 1}$$

We know $\omega _b = 10$ rad/s and $m = 2$. Then we can find out that

$$\tau = \frac{\sqrt{2^{1/m} - 1}}{\omega _b} = \frac{\sqrt{2^{1/2} - 1}}{10} = 0.0643594$$

Now we can choos $A_m(s,\tau)$ as

$$A_2(s, \tau) = (1+ \alpha^{1-1}\tau s)(1+\alpha ^{2-1} \tau s) = (1+\tau s)^2$$

beacuse $m = 2$ and $\alpha = 1$. Remember: $1^0 = 1^1$.


$$A_2(s, 0.0643594) = (1+0.0643594s)^2$$

And now $G^*(s)$ is:

$$G^*(s) = \frac{A(s)}{B^+(-s)B^-(s)(A_m(s,\tau)}= \frac{s^2 + 3s + 1}{(-3s - 2)1(1+0.0643594s)^2}$$

Simulating $G^*(s)$ will show us the blue line:

enter image description here

Now it's time for bode plotting


enter image description here

Very good!

enter image description here

If you don't want to compute to much, you can set:

  • $\alpha = 1$
  • $m = 2$
  • $\tau$ = 0.00000001 or a very low number

if you dealing with a second order non-minimum phase system.

The result will be:

enter image description here

So let's go controll engineers and control theorists, create invertible controllers like never before!

  • $\begingroup$ Maybe you should look into the areas of lambda-tuning/internal model control/Youla-Kucera parameterizations (in increasing order of complexity/generality) which essentially does this. If that is where you've taken the answer, you should perhaps add a suitable reference/link, so no-one reinvents the wheel. $\endgroup$ Jun 25, 2018 at 18:15
  • $\begingroup$ I have never heard about that. The issue I try to solve is self tuning controllers for a non-minimum phase system. $\endgroup$
    – euraad
    Jun 25, 2018 at 18:34
  • $\begingroup$ I wonder if those formulas works for discrete systems? $\endgroup$
    – euraad
    Jun 25, 2018 at 18:40
  • $\begingroup$ I would assume the theory is well developed also for the discrete-time case. These are classical problems from the 60s and 70s. $\endgroup$ Jun 25, 2018 at 18:51
  • $\begingroup$ Yes. Even if the problems is from 60's and 70's, that means that they exist today too? Most of the PID-controllers I have been installed has autotuning. I have not meet an MPC yet, but I probably will in the future. $\endgroup$
    – euraad
    Jun 25, 2018 at 19:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .