%% Aufgabe 1
A=[1 -1;
  -1 2];
B=[0;1];
C=[1 1];
O=[C;C*A]
Oi=inv(O)
t1=Oi(:,2)
T=[t1 A*t1]
%% Aufgabe 1: Test, ob T korrekt ist:
Ti=inv(T)
Ao=Ti*A*T
Bo=Ti*B
Co=C*T
%% Aufgabe 2
A=[1 0;
  -1 -2];
B=[1;0];
C=[0 1];
D=1;
[b,a]=ss2tf(A,B,C,D);
tf(b,a)

%% Aufgabe 3
syms s k1 k2
A=ones(2,2);
B=[0;1];
poly([-1+i -1-i])
det(s*eye(2)-(A-B*[k1 k2]))
K=place(A,B,[-1+i -1-i])

%% Aufgabe 4
syms s k x t z
Gs=1/1000/s^2;
pretty((z-1)/z*ztrans(ilaplace(Gs/s)))

%% Aufgabe 5
syms psip p1 p2 p3
assume(psip>0|psip<0)
assume(p1,'real')
assume(p2,'real')
assume(p3,'real')
assume(p1>0)
assume(p2>0)
assume(p3>0)
F=[0  1;
   -1 0];
H=[1 0];
R=1;
Q=[2 0;
   0 3];
P=[p1 p2;
   p2 p3]

X=F*P+P*F'-P*H'/R*H*P+Q
[P1,P2,P3]=solve(X(1),X(2),X(4));
P=[P1 P2;
   P2 P3]

L=P*H'*R^-1
% Matlab Boardmittel:
% [Pt,lam,Lt]=care(F',H',Q,R)

%% Aufgabe 6
A=[-4 3;
   -6 5];
B=[0.5;
   1];
C=[2 -1];
T=[1 0.5;
   1 1  ];
Ti=[2 -1;
    -2 2];
Aj=Ti*A*T
Bj=Ti*B
Cj=C*T
disp(['Jordannormalform, positiver Eigenwert des Modus x2 -> instabil'])
disp('2. Zeile in Bj-Matrix <> 0 -> stabilisierbar ')
disp('2. Spalte in Cj-Matrix = -> nicht detektierbar')
%% Aufgabe 6 herleitung
A=[[-1 0];
   [0 2]]
B=[0 1]'
C=[1 0]
D=0
T=[1 0.5;
   1 1]
Ti=inv(T)
F=T*A*Ti
G=T*B
H=C*Ti

%% Aufgabe 7
syms s w0 T
A=[[0 1];
   [-w0^2 0]]
B=[0;1]
Ads=(s*eye(2)-A)^-1
Ad=ilaplace(Ads,T)
Bd=ilaplace(Ads/s*B,T)

%% Aufgabe 8
syms s c1 c2 c3 l1 l2 l3
assume(c1>0)
assume(c2>0)
assume(c3>0)
F=[0 0 -c1;
   1 0 -c2;
   0 1 -c3];
H=[0 0 1];
L=[l1;l2;l3];
pretty(det(s*eye(3)-(F-L*H)))
pretty(poly2sym(poly([-10-i -10+i -10]),s))
l1=1010-c1
l2=301-c2
l3=30-c3
