1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Controllability of state space equation

  1. May 6, 2010 #1
    1. The problem statement, all variables and given/known data
    I have calculated the following mechanical system


    \left( \begin{array}{c}\dot{\mathbf{x_1}}(t) & \dot{\mathbf{x_2}}(t) \end{array} \right) = \left( \begin{array}{cc}-0.5 & 0 & 0 & -1\end{array} \right) \cdot \left( \begin{array}{c}x_{1}(t) & x_{2}(t)\end{array} \right) + \left( \begin{array}{c}0.5 & 1\end{array} \right)\cdot u(t)



    \left( \begin{array}{c}y_{1}(t) & y_{2}(t)\end{array} \right) = \left( \begin{array}{cc}1 & 0\end{array} \right) \cdot \left( \begin{array}{c}x_{1}(t) & x_{2}(t)\end{array} \right)


    The question is to find the expression for u(t) that brings the system to its restposition in 2 seconds. Afterwards i have to simulate this time response in matlab with the function lsim.

    The initial conditions of the system are:

    x_1(0) = 10


    x_2(0) = -1


    2. Relevant equations

    u(t) = -B^T\exp^{A^T(t_1-t)}W_c^{-1}(t_1)[\exp^{At_1}x_0-x_1]


    W_c(t_1) = \int_0^{t_1} \exp^{A\gamma}BB^T\exp^{A^T\gamma} d\gamma


    3. The attempt at a solution
    I calculated u(t) with matlab with the following code
    Code (Text):

    A = [-0.5 0;0 1];
    B = [0.5; 1];
    C = [1 0];
    D = 0;
    syms t;
    Wc = int(expm(A*t)*B*transpose(B)*expm(transpose(A)*t),0,2);
    u = -transpose(B)*expm(transpose(A)*(2-t))*inv(Wc)*(expm(A*2)*[10;-1]-[0;0]);
    sys = ss(A,B,C,D);
    t = 0:0.1:2;
    u = subs(u,t);
    But the result i get with lsim doesn't fulfill my expectations at all.
    The result i get is given in the lsimresults.bmp.
    While i expect it to curve a bit down/up the original time responses (1st and 2nd thumbnails) where u(t) = 0, so that the amplitude of the system becomes 0 at 2 seconds.

    So, if you there is anybody who can give me some help where it goes wrong. Or if i interpretate something wrong maybe?

    Attached Files:

  2. jcsd
  3. Nov 8, 2010 #2
    Where did you get those equations, your system is not doing what you want it to do I agree.

    I've tried using state feedback to solve your problem, here is what I got:


    where [tex]x=[x_1 \, x_2]^{T}[/tex]
    and [tex]K=[K_1 \, K_2] [/tex]

    You then choose the eigenvalues of the closed loop system
    [tex](sI-A+BK)[/tex] by varying K such that they have the properties you want.

    In this case you want a settling time of 2s, so I would make both of my eigenvalues equal to -2, which gives us the desired characteristic polynomial of


    Now to go about solving for [tex]K[/tex],

    the controllers characteristic polynomial is

    All you do now is compare the desired characteristic polynomial with the actual characteristic polynomial and solve for [tex]K_1, K_2[/tex] such that the co-efficients of the two characteristic polynomials are equal i.e.

    [tex]\alpha_2 = 1[/tex]
    [tex]\alpha_1 = 2[/tex]
    [tex]\alpha_0 = 4[/tex]

    For this system there is a pole that no matter what feedback you give the system, will not move higher

    the pole is located at approx. -0.74

    If the settling time we are talking about is 0-63% of final value then you are ok.
    The other pole you can shift around at whim using this technique.

    The gains I used are [tex]K=[1 \, 2][/tex] to give poles at -0.73 and -5.76

    I don't have access to matlab now but try its "place" command
    maybe you can have better luck that way :smile:
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook