Subversion Repositories svnkaklik

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1058 → Rev 1059

/dokumenty/skolni/TDS/10uloha/kakonjak_reseni10.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/dokumenty/skolni/TDS/10uloha/kakonjak_reseni10.tex
0,0 → 1,419
\documentclass[12pt,notitlepage,fleqn]{article}
 
\usepackage[czech]{babel}
\usepackage[pdftex]{graphicx}
\usepackage{fancyhdr,multicol} %nastavení češtiny, fancy, grafiky, sloupce
\usepackage[utf8]{inputenc} %vstupni soubory v kodovani UTF-8
\usepackage[a4paper,text={17cm,25cm},centering]{geometry} %nastavení okrajů
\usepackage{rotating}
 
\begin{document}
 
\section*{Řešení 10. zadané úlohy - Jakub Kákona}
 
\begin{enumerate}
\item
 
Protože máme zadaná vlastní čísla, můžeme určit požadovaný charakteristický polynom pozorovatele.
 
\begin{equation}
p(s) = (s + 2)^3 = s^3 +6s^2 + 12s + 8.
\end{equation}
 
\begin{enumerate}
 
\item
Určíme pozorovatele z obecného tvaru zavedením vektoru
$K =
\left[ \begin{array}{c}
a \\
b \\
c \\
\end{array}
\right]$
 
A dosazením do charakteristického polynomu pozorovatele
\\
 
\begin{equation}
\det[s I - (A - K C)] =
\det \left(
\left[ \begin{array}{ccc}
s & 0 & 0 \\
0 & s & 0 \\
0 & 0 & s \\
\end{array} \right]
-
\left[ \begin{array}{ccc}
-1 & 1 & 0 \\
-b & 0 & 1 \\
-c & 3 & -1 \\
\end{array} \right] \right) \\
\end{equation}
 
Tím získáme polynom:
 
\begin{equation}
s^3 + (a+1)s^2 + (a + b-3) s - 3a + b + c
\end{equation}
 
Srovnáním koeficientů u obou polynomů zjistím, že stavová injekce pozorovatele musí být $K =
\left[ \begin{array}{c}
5 \\
10 \\
13 \\
\end{array}
\right]$
\item
Sestavíme matici pozorovatelnosti a její inverzi
\begin{equation}
O = \left[ \begin{array}{c}
C \\
C A\\
C A^2\\
\end{array}
\right]=
\left[ \begin{array}{ccc}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{array}
\right] = O^{-1}
\end{equation}
Matici stavové injekce pozorovatele lze pak určit podle Ackermanova vztahu.
 
 
\begin{equation}
K = p(s) A O^{-1} e_n =
\left( A +
\left[ \begin{array}{ccc}
2 & 0 & 0 \\
0 & 2 & 0 \\
0 & 0 & 2 \\
\end{array}
\right]
\right)^3
\left[ \begin{array}{ccc}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{array}
\right]
\left[ \begin{array}{c}
0 \\
0 \\
1 \\
\end{array}
\right]
=
\left[ \begin{array}{c}
5 \\
10 \\
13 \\
\end{array}
\right]
\end{equation}
 
 
\end{enumerate}
 
 
 
\item
 
 
Odhadovač stavu s minimální odchylkou je dán rovnicí
 
\begin{equation}
K^* = P^* _e C^T V^{-1}
\end{equation}
 
Kde $P^* _c$ je pozitivně definitní řešení Riccatiovy rovnice:
 
 
\begin{equation}
P_e A^T + A P_e - P_e C^T V^{-1} P_e + W = 0
\end{equation}
 
Po dosazení zadaných hodnot se výraz zjednodušuje na
 
\begin{equation}
P_e \alpha + \alpha P_e - P_e^2 + \omega ^2 = 0
\end{equation}
 
Úpravami tohoto výrazu dostaneme řešení
 
\begin{equation}
P^* _e = \alpha + \sqrt{ \alpha ^2 + \omega ^2}
\end{equation}
 
 
Díky zadání ale víme, že $K^* = P^* _e$, proto:
\begin{equation}
K^* = \alpha + \sqrt{ \alpha ^2 + \omega ^2}
\end{equation}
 
 
\item
 
Systém je v pozorovatelné formě složen z jediného bloku a index pozorovatelnosti je proto 3.
 
Pozorovatel bude proto také tvořen jedním blokem následujícího tvaru. S nulovými vlastními čísly.
 
 
\begin{equation}
A_d =
\left[ \begin{array}{ccc}
0 & 0 & 0 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
\end{array}
\right]
\end{equation}
 
Matice pak může být sestavena z kombinace posledních sloupců matic $A_d$, $A$, $C$.
 
\begin{equation}
K =
\left[ \begin{array}{c}
0 \\
0 \\
0 \\
\end{array}
\right]
-
\left[ \begin{array}{c}
3 \\
2 \\
1 \\
\end{array}
\right]
=
\left[ \begin{array}{c}
-3 \\
-2 \\
-1 \\
\end{array}
\right]
\end{equation}
 
Ještě ověříme platnost $A - KC = A_d$
 
\begin{equation}
\left[ \begin{array}{ccc}
0 & 0 & 3 \\
1 & 0 & 2 \\
0 & 1 & 1 \\
\end{array}
\right]
-
\left[ \begin{array}{ccc}
0 & 0 & -3 \\
0 & 0 & -2 \\
0 & 0 & -1 \\
\end{array}
\right]
=
\left[ \begin{array}{ccc}
0 & 0 & 0 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
\end{array}
\right]
=A_d
\end{equation}
 
Odchylka odhadu bude nulová za minimální počet kroků L=3, protože
 
 
\begin{equation}
A_d=
\left[ \begin{array}{ccc}
0 & 0 & 0 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
\end{array}
\right],
A_d ^2=
\left[ \begin{array}{ccc}
0 & 0 & 0 \\
0 & 0 & 0 \\
1 & 0 & 0 \\
\end{array}
\right],
A_d ^3=
\left[ \begin{array}{ccc}
0 & 0 & 0 \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}
\right]
\end{equation}
 
\item
 
 
Zavedeme si stavy systému $x(t) = x_1, \dot{x}(t)=x_2$
 
Potom dostaneme stavové rovnice
 
\begin{eqnarray}
\dot{x}_1 =& x_2\\
\dot{x}_2 =& -\omega ^2 x_1\\
\end{eqnarray}
 
A stavový popis:
 
\begin{eqnarray}
\left[ \begin{array}{c}
\dot{x}_1 \\
\dot{x}_2 \\
\end{array}
\right] =&
\left[ \begin{array}{cc}
0 & 1 \\
- \omega ^2 & 0 \\
\end{array}
\right]
\left[ \begin{array}{cc}
x_1 \\
x_2 \\
\end{array}
\right]\\
y =&
\left[ \begin{array}{cc}
0 & 1 \\
\end{array}
\right]
\left[ \begin{array}{cc}
x_1 \\
x_2 \\
\end{array}
\right]
\end{eqnarray}
 
Požadovaný charakteristický polynom pozorovatele potom bude:
 
\begin{equation}
a_d = (s + 5 \omega)^2 = s^2 + 10 \omega s + 25 \omega ^2
\end{equation}
 
Opět použijeme pro určení pozorovatele přímou metodu:
 
\begin{equation}
\det[s I - (A - K C)] =
\det \left(
\left[ \begin{array}{cc}
s & 0 \\
0 & s \\
\end{array} \right]
-
\left[ \begin{array}{cc}
-1 & 1 - a \\
\omega ^2 & -b \\
\end{array} \right] \right) \\
\end{equation}
 
\begin{equation}
s^2 + bs - \omega ^2 a + \omega ^2
\end{equation}
 
Porovnáním obou polynomů určíme koeficienty vektoru stavové injekce $K =
\left[ \begin{array}{c}
-24 \\
10 \omega \\
\end{array}
\right]$
 
\item
 
Zavedeme si popis systému $\theta = x_1, \dot{\theta}=x_2$. Ze zadání potom platí: $\dot{x_1} = x_2, \dot{x}_2= - x_2 + u$
 
 
Maticový popis systému pak vypadá následovně:
 
\begin{eqnarray}
\left[ \begin{array}{c}
\dot{x}_1 \\
\dot{x}_2 \\
\end{array}
\right] =&
\left[ \begin{array}{cc}
0 & 1 \\
0 & -1 \\
\end{array}
\right]
\left[ \begin{array}{cc}
x_1 \\
x_2 \\
\end{array}
\right]
\left[ \begin{array}{cc}
0 \\
1 \\
\end{array}
\right]u
\\
y =&
\left[ \begin{array}{cc}
0 & 1 \\
\end{array}
\right]
\left[ \begin{array}{cc}
x_1 \\
x_2 \\
\end{array}
\right]
\end{eqnarray}
 
\begin{enumerate}
 
\item
 
Vzhledem k požadovaným vlastním číslům, je charakteristický polynom pozorovatele:
 
\begin{equation}
a_d = (s + 5)^2 = s^2 + 10 s + 25
\end{equation}
 
Opět využijeme charakteristický polynom v obecném tvaru
 
\begin{equation}
\det[s I - (A - K C)] =
\det \left(
\left[ \begin{array}{cc}
s & 0 \\
0 & s \\
\end{array} \right]
-
\left[ \begin{array}{cc}
-a & 1 \\
-b & -1 \\
\end{array} \right] \right) \\
\end{equation}
 
\begin{equation}
s^2 + s (a + 1) - a + b
\end{equation}
 
Porovnáním koeficientů polynomů zjistíme, že $K =
\left[ \begin{array}{c}
9 \\
16 \\
\end{array}
\right]$
 
\item
 
Nevim.
 
\end{enumerate}
 
 
\end{enumerate}
\end{document}
/dokumenty/skolni/TDS/9uloha/kakonjak_reseni9.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/dokumenty/skolni/TDS/9uloha/reseni.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/dokumenty/skolni/TDS/9uloha/reseni2.m
0,0 → 1,89
%% ukol 9
%% pr 1
clc, clear;
A = [-0.01 0;0 -0.02];
B=[1 1;-0.25 0.75];
C1 = [1 0];
C2 = [0 1];
D = 0;
F1 = [-1.1 -3.7;0 0];
F2=[0 0;-1.1 1.233];
F3=[-0.1 0;0 -0.1];
 
sys11 = ss(A+B*F1,B,C1,D);
sys21 = ss(A+B*F2,B,C1,D);
sys31 = ss(A+B*F3,B,C1,D);
sys12 = ss(A+B*F1,B,C2,D);
sys22 = ss(A+B*F2,B,C2,D);
sys32 = ss(A+B*F3,B,C2,D);
 
subplot(211)
hold on
initial(sys11,'b',[0;1]);
initial(sys21,'r',[0;1]);
initial(sys31,'k',[0;1]);
xlabel('time');
ylabel('x_1');
grid on;
legend('F1','F2','F3');
 
subplot(212),hold on;
initial(sys12,'b',[0;1]);
initial(sys22,'r',[0;1]);
initial(sys32,'k',[0;1]);
xlabel('time');
ylabel('x_2');
legend('F1','F2','F3'),grid on;
%% pr 2
clc,clear;
A = [0 1 0 0;0 0 1 0;0 0 0 1;1 1 -3 4]
B = [1 0;1 0;1 0;0 1]
B1 = [1 1 1 0]'
B2 = [0 0 0 1]'
Con = ctrb(A,B)
rank(Con)
Con1 = ctrb(A,B1)
rank(Con1)
Con2 = ctrb(A,B2)
rank(Con2)
ad = ((s+1+i)*(s+1-i)*(s+2+i)*(s+2-i))
syms a b c d
Fc = [a b c d]
ac = det(sym(s*eye(4))-(A+B2*Fc))
F = [0 0 0 0;-11 -19 -12 -10]
Fj=[0 0 0 0;-11 -29 -22 -20]
Bj = [0 0;0 0;0 0;0 1]
roots(det((s*eye(4))-(A+B*Fj)))
%% pr 3
clc, clear;
A = [0 1;1 0]
B = [1;0]
Q = [1 0;0 0]
R = 1
syms a b c
Pc = [a b;b c]
rica = A'*Pc+Pc*A-Pc*B*inv(R)*B'*Pc+Q
[x y z]=solve('2*b-a^2+1=0','a+c-a*b=0','2*b-b^2=0')
Pcc = [x(3),y(3);y(3) z(3)]
u = -inv(R)*B'*Pcc
%% pr 4
clc,clear;
A = [0 1;0 0]
B = [0;1]
C = [1 0]
D = 1
syms a b
F = [a b]
Af = A+B*F
Cf = C+D*F
O = [Cf;Cf*Af]
Ff = [-1 0]
Aff = A+B*Ff
Cff = C+D*Ff
Hf=Cff*(sym(s*eye(2))-Aff)^-1*B+D
%% pr 5
clc,clear;
A = [0 1;0 -1]
B = [0;1]
Con = ctrb(A,B)
rank(Con)