# How to Design a State Feedback Controller using an algorithm

I'm studying for an exam and am having a great amount of difficulty wrapping my head around this as I have minimal electrical engineering background, and my notes are confusing. I have read a few examples from various sites but I'm looking for a step-by-step example to hopefully make things make sense.

The question I'm trying to use as a learning example is:

Design a state feedback controller using the algorithm u=-kx to stabilize the following continuous linear time-invariant system:

A =                       B =
[-1  .5  0  -.5]          [ 1]
[0  -.5  0 -1.5]          [ 1]
[0   .5  2  -.5]          [-1]
[0 -1.5  0  -.5]          [ 0]


Thanks for any help, I'm really quite confused.

• Would be helpful to link the related examples you looked at. Is this a continuous time or discrete time problem? These two state space formulations are related, but different enough that one can't really answer without this information. Also, the problem should provide vectors/matrices C and D. – jbarlow Dec 13 '12 at 5:33
• @jbarlow I updated the question to include that its a CLTI system, however I am now provided with C or D matrices for the problem. – Ramrod Dec 13 '12 at 5:57

Setting aside the math for a moment, let's talk about what this problem is about.

You have a system that you're trying to control. On its own, in this case, it's unstable. On the other hand, it is possible to control. u=-kx means that you are going to take something you know about the state of the system x, scale it by k, and use it as your control, u.

If you're familiar with root locus analysis, what you're doing here is just a multi-dimensional version of that.

I can tell you that A is unstable because it has positive eigenvalues. Eigenvalues always seem a little mysterious, but they really just describe how a matrix transforms one set of data into another. They are the "scaling component" of a transformation; the eigenvectors of the "rotation component" (sort of). Positive eigenvalues have this scale effect because in a feedback loop, you are effectively multiplying the state by A with each incremental iteration. An infinite series of multiplications means you have an exponential function related to A. Mathematically, if A has positive eigenvalues, then when raised to a power its components are related to powers of those eigenvalues, so they grow without bound.

Find a way to make all the eigenvalues negative, and you stabilize the system.

Your system is strictly proper. C = identity matrix and D = zero matrix. The Wikipedia article shows how to derive a simple equation for this situation. What it comes down to is:

You know A and B. You must find K, such that the matrix A + KB has all negative eigenvalues. So we must find a way to relate K to the eigenvalues of A + KB, using an eigendecomposition.

Have a look at this article that seems to cover the procedure, with an example and Matlab commands. In their notation 'F' takes the place of 'K', and 'v' = 0 in your problem, and v_i is an eigenvector in both problems not equal to 'v'.