$\left\{ \begin{matrix} x_{1} = x_{2} \\ x_{2} = - x_{1} - 5x_{2} + 4u(t) \\ \end{matrix} \right.\ $
y = x1
Postać wektorowo-macierzowa:
$$\begin{bmatrix}
x_{1} \\
x_{2} \\
\end{bmatrix} = \begin{bmatrix}
0 & 1 \\
- 1 & - 5 \\
\end{bmatrix}*\begin{bmatrix}
x_{1} \\
x_{2} \\
\end{bmatrix} + \lbrack\begin{matrix}
0 \\
4 \\
\end{matrix}\rbrack*u(t)$$
$$\left\lbrack y \right\rbrack = \begin{bmatrix}
1 & 0 \\
\end{bmatrix}*\begin{bmatrix}
x_{1} \\
x_{2} \\
\end{bmatrix} + \lbrack 0\rbrack*u(t)$$
Wprowadź macierze opisujące w przestrzeni stanu układ dynamiczny SISO drugiego rzędu. Za pomocą funkcji dokonujących konwersji postaci modelu znajdź transmitancję operatorową układu. Przedstaw transmitancję w alternatywnych postaciach: iloczynowej (zer-biegunów), sumy ułamków prostych.
Macierze:
$$A = \left| \begin{matrix}
0 & 1 \\
- 1 & - 5 \\
\end{matrix} \right|$$
$$B = \lbrack\begin{matrix}
0 \\
4 \\
\end{matrix}\rbrack$$
$$C = \begin{bmatrix}
1 & 0 \\
\end{bmatrix}$$
D = [0]
Postać transmitancyjna:
$$G\left( s \right) = \frac{a_{n}s^{n} + a_{n - 1}s^{n - 1} + \ldots + a_{1}s + a_{0}}{b_{m}s^{m} + b_{m - 1}s^{m - 1} + \ldots + b_{1}s + b_{0}}$$
$$G\left( s \right) = \frac{0 + 0 + 4}{{1s}^{2} + {5s}^{1} + 1^{0}}$$
Postać zero-biegunowa:
$H\left( s \right) = \ \frac{4}{\left( s + 4,7917 \right)(s + 0,2087)}$
Postać sum ułamków prostych:
$\frac{B\{ s)}{A(s)} = \frac{- 0,8729}{s + 4,7913} + \frac{0,8729}{s + 0,2087}$
Program w matlab:
%wprowadzenie macierzy
A=[0 1;-1 -5]
A =
0 1
-1 -5
>> B=[0;4]
B =
0
4
>> C=[1 0]
C =
1 0
>> D=[0]
D =
0
%konwersja do postaci transmitancji operatorowej
>> [NUM,DEN]=ss2tf(A,B,C,D)
NUM =
0 0 4.0000
DEN =
1.0000 5.0000 1.0000
%przedstawienie transmitancji w postaci iloczynowej(zer-biegunów)
>> [Z,p,k]=tf2zp(NUM,DEN)
Z =
Empty matrix: 0-by-1
p =
-4.7913
-0.2087
k =
4.0000
%przedstawienie transmitancji w postaci sumy ułamków prostych
>> [R,P,K]=residue(NUM,DEN)
R =
-0.8729
0.8729
P =
-4.7913
-0.2087
K =
[]
- Wyznaczyliśmy postać transmitancji operatorowej układu. Do wyznaczenia została użyta funkcja MatLab’a SS2TF.
- Przeprowadziliśmy konwersję do postaci iloczynowej. Licznik transmitancji operatorowej był równy jeden, stąd Z policzona przez program nie dała nam żadnej wartości (licznik odpowiada za zero). Za bieguny odpowiada mianownik transmitancji operatorowej. k odpowiada za wzmocnienie.
Wyznacz (narysuj wykresy czasowe) odpowiedzi skokowej i impulsowej układu. Wyznacz (za pomocą odpowiedniej funkcji) wzmocnienie układu w stanie ustalonym i porównaj jego wartość z odczytaną z wykresu odpowiedzi skokowej układu.
Odpowiedź skokowa
Odpowiedź impulsowa
Program:
>> step(A,B,C,D) %odpowiedź skokowa
>> impulse(NUM,DEN) %odpowiedź impulsowa
>> k=dcgain(A,B,C,D) %wzmocnienie układu
k = 4
- Do przedstawienia transmitancji do postaci sumy ułamków prostych użyliśmy funkcji RESIDUE.
- Wykreśliliśmy na wykresach odpowiedź skokową i impulsową. Odpowiedź skokowa wzrasta i dąży do 4. Odpowiedź impulsowa gwałtownie wzrasta w ciągu pierwszych 2 sekundach a następnie maleje do 0. Wzmocnienie układu wynosi 4.
Zbadaj sterowalność I obserwowalność układu. Wykorzystaj w tym celu funkcje tworzące odpowiednie macierze sterowalności i obserwowalności oraz funkcje „rank”, która wyznacza rząd macierzy.
>> A=[0,1;-1,-5]
A =
0 1
-1 -5
>> B=[0;4]
B =
0
4
>> C=[1,0]
C =
1 0
>> D=[0]
D =
0
>> ster=ctrb(A,B)
ster =
0 4
4 -20
>> o=obsv(A,C)
o =
1 0
0 1
>> rank(ster)
ans =
2
>> rank(o)
ans =
2
Z wyznaczonych rzędów macierzy „ster” i „o” wynika iż dany układ jest sterowalny, gdyż obie wyznaczone przez nas wartości są sobie równe.
Wprowadź model transmitancyjny układu SISO trzeciego rzędu zgodnie z poleceniem prowadzącego ćwiczenia, wykorzystaj jedną z podanych niżej postaci transmitancji i zestawu wartości parametrów.
$$G_{1}\left( s \right) = \frac{1}{s\left( T_{1}s + 1 \right)(T_{2}s + 1)}$$
T1 = 1.0
T2 = 0.5
$$G_{1}\left( s \right) = \frac{1}{s\left( s + 1 \right)(0,5s + 1)} = \frac{1}{s(0,5s^{2} + s + 0,5s + 1)} = \frac{1}{s(0,5s^{2} + 1,5s + 1)} = \frac{1}{0,5s^{3} + 1,5s^{2} + s + 0}$$
>> L=[0,0,0,1]
L =
0 0 0 1
>> M=[0.5,1.5,1,0]
M =
0.5000 1.5000 1.0000 0
>> trans=tf(L,M)
Transfer function:
1
---------------------
0.5 s^3 + 1.5 s^2 + s
6.
G(s)=$\frac{1}{1 + sT_{1}}$ układ inercyjny
Program:
L=[0,1]
M=[0.5,1]
nyquist(L,M)
bode(L,M)
Wykresy:
G(s)=$\frac{1}{s(1 + sT_{1})}$ układ całkowania
Program:
L=[0,0,1]
M=[0.5,1,0]
nyquist(L,M)
bode(L,M)
Wykresy:
G(s)=$\frac{(1 + sT_{3})}{\left( 1 + sT_{1} \right)(1 + sT_{2})}$ układ inercyjny
Program:
L=[0,2,1]
M=[0.5,1.5,1]
nyquist(L,M)
bode(L,M)
Wykresy:
G(s)=$\frac{(1 + sT_{3})}{\left( 1 + sT_{1} \right)(1 + sT_{2})}$ układ różniczkujący
Program:
L=[0,0,2,1];
M=[0.5,1.5,1,0];
bode(L,M)
nyquist(L,M)
Wykresy: