Let's say that we have a matrix of transfer functions: $$G(s) = C(sI-A)^{-1}B + D$$

And we create the sensitivity matrix transfer function:

$$S(s) = (I+GK)^{-1}$$

Where $K$ is our controller gain matrix.

We also create the complementary sensitivity transfer function matrix:

$$T(s) = (I+GK)^{-1}GK$$

We also create the weighting transfer function matrices: $$W_u(s) \\ W_T(s) \\ W_P(s)$$

You can see them as the tunning matrices. This picture below representing the $H_{ \infty}$ controller. Where $z$ is our performance output. Only for analysis. The $G$ is our transfer function matrix and $K$ is as mention before, our controller gain matrix. $w$ it's a vector of disturbance. Notice that $\omega \neq w$

enter image description here

This whole picture can be described as: $$\begin{bmatrix} z_1 = W_uu\\ z_2 = W_TGu\\ z_3 = W_Pw + W_PGu\\ v = w + Gu \end{bmatrix}$$

And we can create our generalized plant P:

$$P = \begin{bmatrix} 0 & WuI \\ 0& W_TG\\ W_PI & WpG\\ I & G \end{bmatrix}$$

$$z = Pw = \begin{bmatrix} 0 & WuI \\ 0& W_TG\\ W_PI & WpG\\ I & G \end{bmatrix} \begin{bmatrix} w\\ u \end{bmatrix}$$

We ca partioning the generalized plant P by saying that:

$$P = \begin{bmatrix} P_{11} & P_{12}\\ P_{21}& P_{22} \end{bmatrix} = \begin{bmatrix} A & B_1 & B_2\\ C_1 & D_{11} & D_{12} \\ C_2 & D_{21} & D_{22} \end{bmatrix}$$

Then we can say:

$$P_{11} = \begin{bmatrix} A \end{bmatrix} = \begin{bmatrix} 0\\ 0\\ W_PI \end{bmatrix}$$ $$P_{12} = \begin{bmatrix} B_1 & B_2 \end{bmatrix} = \begin{bmatrix} W_uI\\ W_TG\\ W_PG \end{bmatrix} $$ $$P_{21} = \begin{bmatrix} C_1\\ C_2 \end{bmatrix} = \begin{bmatrix} I \end{bmatrix} $$ $$ P_{22} = \begin{bmatrix} D_{11} & D_{12} \\ D_{21} & D_{22} \end{bmatrix} = \begin{bmatrix} G \end{bmatrix}$$

So. Now to the question! In Robust Control, it's something called detectable and stabilizable. I wonder what it are. Accoring to a book I have, this:

$$A, B_2, C_2$$


$$A, B_1, C_1$$

needs to be detectable and stabilizable. The definition of stabilizable is:

A system is stabilizable if all unstable states are controllable.

The definition of detectable is:

A system is detectable if all unstable states are observable.

I know how to find out if a system is controllable and observable. That is very easy!

To check controllibility:

$$C_o \equiv \begin{bmatrix} B & AB & A^2B & \dots & A^{n-1}B \end{bmatrix}$$

And then check the rank $$rank(C_o) = n$$

To check observbility:

$$O_o \equiv \begin{bmatrix} C\\ CA\\ CA^2\\ \vdots\\ CA^{n-1} \end{bmatrix}$$

And then check the rank $$rank(O_o) = n$$

Question: Do you know any formula or method to check if all unstable states are controllable and observable? Because i cannot find any states in my system which are unstable. If I find a unstable state, that means my system matrix $A$ has some positive eigenvalues? Right?

  • 3
    $\begingroup$ You need the Hautus test to check for stabilizability and detectability. Anyway, if you start from a transfer function representation of your system you are not going to find any unobservable/uncontrollable eigenvalues because when going from a state space representation to transfer function representation those eigenvalues drop out because they do not play a role in the input-output behaviour of your system, which is what the transfer function describes. $\endgroup$ – Calculon Aug 20 '17 at 15:48
  • $\begingroup$ So you mean that I need to stick to state space representation if I want to check stability, controllbility, observbility, stabilizable and detectable. Ok! That's a good point! I found a formula about Hautus test for stabilizability en.wikipedia.org/wiki/… But the article on Wikipedia missing detectability- $\endgroup$ – Daniel Mårtensson Aug 20 '17 at 15:57
  • 1
    $\begingroup$ There is a duality between controllability and observability. The same duality holds between detectability and stabilizability. That in combination with the article you found characterizes detectability. $\endgroup$ – Calculon Aug 20 '17 at 15:59
  • $\begingroup$ So if controllbility is: $$rank[(\lambda I - A), B] = n$$ then observability must be $$rank[(\lambda I - A), C] = n$$ which lead us to stabilizability: $$rank[(\lambda I - A),B] = n$$ for every $$\lambda \in \Re \geq 0$$ And that means detectability will be$$rank[(\lambda I - A), C] = n$$ for every $\lambda \in \Re \geq 0$$ $\endgroup$ – Daniel Mårtensson Aug 20 '17 at 16:06
  • $\begingroup$ Duality does not mean you replace $B$ by $C$. Please do a search on this first. $\endgroup$ – Calculon Aug 20 '17 at 16:09

I think you started with some wrong definitions.

The right definition for stabilizability and detectability should be:

A system is stabilizable if the uncontrollable states are stable.

A system is detectable if the unobservable states are asymptotically stable.

You seemed to be using the definition the other way around.

So with these definitions, the task should be very straightforward.

  • For stabilizability, you simply decompose the system into controllable and uncontrollable subsystems, and then check if the uncontrollable subsystem is stable.

  • For detectability, again, decompose the system into observable and unobservable subsystems, then check if the unobservable subsystem is asymptotically stable.


I found the answer after hours of resarsch. I was looking in Essentials of Robust Control by Doyle and Zhou.

How to check if the system is stabilizable:

The matrix $$rank\begin{bmatrix} (\lambda_i I-A) & B \end{bmatrix} = n$$

has full-row rank $n$ for all eigenvalues $ \lambda_i \in \Re \geq 0$

How to check if the system is detectable:

The matrix $$rank\begin{bmatrix} (\lambda_i I-A) \\ C \end{bmatrix} = n$$

has full-row rank $n$ for all eigenvalues $ \lambda_i \in \Re \geq 0$

  • $\begingroup$ @MachineLearner OK. Se accepted answer $\endgroup$ – Daniel Mårtensson Apr 23 at 20:02
  • $\begingroup$ Can you edit your answer, such that I can remove my downvote? $\endgroup$ – MachineLearner Apr 23 at 21:01

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.