1. The problem statement, all variables and given/known data I have calculated the following mechanical system [tex] \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) [/tex] [tex] \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) [/tex] 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: [tex] x_1(0) = 10 [/tex] [tex] x_2(0) = -1 [/tex] 2. Relevant equations [tex] u(t) = -B^T\exp^{A^T(t_1-t)}W_c^{-1}(t_1)[\exp^{At_1}x_0-x_1] [/tex] [tex] W_c(t_1) = \int_0^{t_1} \exp^{A\gamma}BB^T\exp^{A^T\gamma} d\gamma [/tex] 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); lsim(sys,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?
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: [tex]u=-Kx[/tex] 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 [tex](s+2)(s+2)=s^2+4s+4[/tex] Now to go about solving for [tex]K[/tex], the controllers characteristic polynomial is [tex]det(sI-A+BK)=\alpha_2s^2+\alpha_1s+\alpha_0[/tex] 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