WDA lab cw5


LABORATORIUM
WPROWADZENIE DO AUTOMATYKI
Ćwiczenie 5
Modelowanie liniowych układów dynamicznych w środowisku MATLAB
Modele lti
Układ liniowy, ciągły, opisuje:
- równanie stanu:
(n) (n-1)
&
an x(t) + an-1 x (t) +...+ a1x(t) + a0x(t) = u(t)
- równanie wyjścia:
(m) (m-1)
&
bm x (t) + bm-1 x (t) +...+b1x(t) +b0x(t) = y(t)
Transmitancją Laplace a liniowego układu jest stosunek transformat Laplace a
sygnału wyjściowego Y(s) do wejściowego U(s) przy zerowych warunkach
poczÄ…tkowych.
Y(s) bmsm + bm-1sm-1 + ... + b1s + b0
H(s) = =
U(s) ansn + an-1sn-1 + ... + a1s + a0
Biblioteka MATLABA Control System Toolbox zawiera funkcje umo\liwiajÄ…ce
modelowanie układów (tworzenie tzw. modeli lti (ang. linear time invariant)).
Do tworzenia obiektu opisanego transmitancją słu\y funkcja tf.
Jej wywołanie ma postać:
H=tf([bm bm-1 & b1 b0],[an an-1 & a1 a0]),
(H - przyjęta przez u\ytkownika nazwa obiektu, słu\ąca do jego identyfikacji)
a efektem działania jest:
bmsm + bm-1sm-1 + ... + b1s + b0
ansn + an-1sn-1 + ... + a1s + a0
Przykład1: Aby utworzyć obiekt o transmitancji:
3
H(s) = , nale\y wywołać funkcję: H=tf([3],[1 1])
s + 1
lub wcześniej wprowadzić wektory współczynników wielomianów licznika
i mianownika:
l=[3] m=[1 1]
a następnie wywołać funkcję: H=tf(l,m)
1
Transmitancję układu mo\na równie\ przedstawić w postaci zero-biegunowej:
bm (s - z1)Å"(s - z2 )Å"...(s - zm )
H(s) = Å" ,
an (s -p1)Å"(s -p2 )Å"...(s -pn )
gdzie: z1, z2,& zm zera transmitancji (pierwiastki wielomianu licznika)
p1, p2,& pn bieguny transmitancji (pierwiastki wielomianu mianownika)
Do modelowania układów opisanych transmitancją w postaci zero- biegunowej
słu\y w MATLABIE funkcja zpk:
bm
H = zpk([z1 z2...zm],[p1p2...pn], )
an
Opis układu w przestrzeni stanów
Równowa\nym równaniu ró\niczkowemu n - tego stopnia jest układ n równań
pierwszego stopnia. W przypadku układu liniowego rzędu n, lecz o jednym wejściu i
wyjściu (układ jednowymiarowy) równania stanu mają postać:
&
x1(t) = a11x1(t) + a12x2(t) + ... + a1nxn(t) + b1u(t)
&
x2(t) = a21x1(t) + a22x2(t) + ... + a2nxn(t) + b2u(t)
...................
&
xn(t) = an1x1(t) + an2x2(t) + ... + annxn(t) + bnu(t)
równania wyjścia:
y(t) = c x (t) + c x (t) + ... + c x (t) + du(t)
1 1 2 2 n n
Powy\sze równania mo\na zapisać krócej:
&
x(t) = Ax(t) + Bu(t)
y(t) = Cx(t) + Du(t)
Podany sposób opisu nazywa się opisem w przestrzeni stanów.
Dla układu opisanego równaniami stanu i wyjścia mo\na w MATLABIE stworzyć
model lti za pomocÄ… funkcji ss.
Jej wywołanie ma postać:
H=ss(A,B,C,D)
2
Konwersje modeli
Funkcje tf, ss, zpk nie tylko tworzÄ… nowe obiekty, lecz umo\liwiajÄ… konwersje modeli
z jednej postaci na innÄ….
Funkcja tf  konwersja z dowolnej innej postaci (H) na opis w postaci
transmitancji Laplace a
wywołanie: Ht=tf(H)
Funkcja ss  konwersja z dowolnej innej postaci (H) na opis w przestrzeni
stanów
wywołanie: Hs=ss(H)
Funkcja zpk  konwersja z dowolnej innej postaci (H) na opis za pomocÄ…
transmitancji w postaci zero-biegunowej
wywołanie: Hz=zpk(H)
Konwersji modeli mo\na równie\ dokonać za pomocą funkcji:tf2ss, ss2tf, tf2zp, zp2tf
[A,B,C,D]=tf2ss(l,m)
[l,m]=ss2tf(A,B,C,D)
[z,p,k]=tf2zp(l,m)
[l,m]=zp2tf(z,p,k)
Uwaga: W celu wyświetlenia opisu istniejącego obiektu wystarczy wprowadzić
nazwÄ™ obiektu, np.:
H
Wyznaczanie transmitancji układów zło\onych
MATLAB umo\liwia wyznaczanie transmitancji (modeli) układów zło\onych.
Model lti układu zło\onego z szeregowo połączonych dwóch obiektów H1
i H2
H1 H2
Rys. 1
otrzymamy mno\Ä…c H1 i H2
H=H1*H2
Jeśli mamy n szeregowo połączonych obiektów model zło\ony przyjmuje
3
postać:
H=H1*H2*& .*Hn
Obiekt lti będący równoległym połączeniem dwóch obiektów H1 i H2
H1
+
+
+
-
H2
Rys. 2
otrzymamy sumujÄ…c H1 i H2
H=H1ąH2 (nale\y pamiętać o uwzględnieniu znaków  +/- )
Dla n równolegle połączonych obiektów otrzymujemy model w postaci:
H=H1ąH2ą & . ąHn (z uwzględnieniem odpowiednich znaków  + lub  - )
Model lti układu zamkniętego
Obliczenie modelu lti dla układu zamkniętego (z ujemnym lub dodatnim sprzę\eniem
zwrotnym) umo\liwia funkcja feedback
H
Rys. 1
F
Rys. 3
W=feedback(H,F,Ä…1)
Trzeci parametr funkcji feedback mo\e przyjmować wartości:
4
1 dla dodatniego sprzÄ™\enia zwrotnego,
-1 (mo\na pominąć) dla ujemnego sprzę\enia zwrotnego.
Przykład: Aby wyznaczyć transmitancję układu podanego na rys. 4
H
W
-
Rys. 4
nale\y zastosować funkcję : W=feedback(H,1,-1), trzeci parametr mo\na pominąć:
W=feedback(H,1)
Pobieranie danych z modeli lti
Dla modelu H (jednowymiarowego) wywołanie:
[l,m]=tfdata(H, v ) zwraca wektory współczynników licznika (l)
i mianownika (m) transmitancji
b
m
[z,p,k]=zpkdata(H, v ) zwraca wektory zer (z), biegunów (p) i wartość (k)
a
n
[A,B,C,D]=ssdata(H) zwraca macierze A, B, C, D
Obliczanie odpowiedzi skokowych, wykonywanie wykresów
Funkcja step
Do obliczenia i wyświetlenia odpowiedzi skokowej słu\y funkcja step:
step(H) - wyświetlenie odpowiedzi skokowej dla modelu H (czas
symulacji i liczba punktów są wybierane automatycznie)
step(H,t) - wyświetlenie odpowiedzi skokowej dla modelu H (wektor czasu t
jest zadawany)
step(H1, H2,& ) - wyświetlenie odpowiedzi skokowej dla modeli H1, H2,&
step(H1, H2,& , t) - wyświetlenie odpowiedzi skokowej dla modeli H1, H2,&
(wektor czasu t jest zadawany, mo\na go wcześniej
utworzyć np. za pomocą funkcji linspace)
step(H1,  r , H2,  y-- ,& ) - mo\liwa jest specyfikacja kolorów i rodzajów linii
Wywołanie:
5
[y,t]=step(H) - zwraca wektor wyjścia i wektor czasu (wykres odpowiedzi
skokowej nie jest wyświetlany)
[y,t,x]=step(H) - efekt jak wy\ej i dodatkowo zwracany jest wektor stanu
Funkcja plot
plot(x,y) - wyświetla wykres składowych wektora y w funkcji składowych
wektora x
Mo\liwe są te\ wywołania funkcji plot z parametrami umo\liwiającymi specyfikację
kolorów i rodzajów linii oraz wyświetlanie wielu krzywych na jednym wykresie, np.
plot(x1,y1, g- , x2,y2, r-- ,& )
Funkcje pomocnicze : grid on, hold on, ginput, title, xlabel, ylabel, axis,
figure, clf
Wydanie polecenia:
grid on - powoduje nało\enie siatki na wykres
hold on - nało\enie wykresów, tworzonych za pomocą kolejnych wywołań
funkcji plot
[x,y]=ginput - zwraca (w postaci wektorów x i y) współrzędne zaznaczonych
na wykresie punktów
title( tekst ) - powoduje wyświetlenie tytułu na wykresie
xlabel( tekst ) - dodaje opis osi x
ylabel( tekst ) - opisuje oÅ› y
axis([xmin xmax ymin ymax]) - ustawia skalÄ™ na osi x i y
figure(nr) - otwiera nowe okno graficzne
clf - czyszczenie bie\Ä…cego okna graficznego
Funkcja roots
roots(a) funkcja wyznaczajÄ…ca pierwiastki wielomianu
a - wektor współczynników wielomianu
przykład: dla wielomianu W(x)=a3x3 + a2x2 + a1x + a0
gdzie: a = [a3 a2 a1 a0] jest wektorem współczynników
polecenie p=roots(a)
zwraca wektor p pierwiastków wielomianu W(x)
Funkcja residue
Funkcja ta rozkłada na ułamki proste iloraz dwóch wielomianów:
b(s) r(1) r(2) r(n)
= + + ... + + k(s)
a(s) s - p(1) s - p(2) s - p(n)
6
wywołanie:
[r,p,k]=residue(b,a)
gdzie: b,a - wektory współczynników wielomianów licznika i mianownika,
k(s) - wektor współczynników wielomianu  wyniku dzielenia wielomianów b(s)
i a(s), gdy stopień licznika jest wy\szy bądz równy stopniowi mianownika.
Zadanie domowe
a/ Studenta przystępującego do ćwiczenia laboratoryjnego obowiązuje
znajomość pojęć:
- transmitancji operatorowej,
- równania stanu i równania wyjścia,
- odpowiedzi skokowej
b/ Student powinien posiadać umiejętność obliczania transmitancji układów
zło\onych
c/ Studenta obowiązuje znajomość poleceń pakietu MATLAB
wykorzystywanych w ćwiczeniu.
Zadanie laboratoryjne
1. Utworzyć w środowisku MATLAB modele podstawowych członów
dynamicznych o podanych transmitancjach Laplace a:
k
- całkującego Hc(s) =
s
k
- inercyjnego Hi(s) =
Ts +1
k
- oscylacyjnego Ho(s) =
2 2
T s + 2¾Ts + 1
Wyświetlić odpowiedzi skokowe powy\szych układów.
2. Wyznaczyć transmitancję szeregowego połączenia transmitancji
Hc(s) i Hi(s).
3. Wyznaczyć transmitancję równoległego połączenia transmitancji
Hi(s) i Ho(s).
4. Wyznaczyć transmitancję układu zamkniętego z rys. 5
H(s)
-
Rys. 5
Wyświetlić odpowiedzi skokowe układów (z pkt. 2, 3, 4).
5. Dany jest układ opisany równaniami
7
- stanu:
&
x1(t) = x2(t)
&
x2(t) = -a0x1(t) -a1x2(t) +u(t)
- wyjścia:
y(t) = b x (t)
0 1
- warunki poczÄ…tkowe:
x1(0) = 0
x2(0) = 0
a/ zamodelować powy\szy układ w środowisku MATLAB
b/ wyznaczyć transmitancję Laplace a
c/ wyznaczyć transmitancję Laplace a w postaci zero - biegunowej
d/ wyznaczyć zera i bieguny układu
e/ wyświetlić wykres odpowiedzi skokowej korzystając z funkcji step
f/ obliczyć odpowiedz skokową
uwaga: w tym celu nale\y:
- wyznaczyć transformatę sygnału wyjściowego ,
- rozło\yć ją na ułamki proste (funkcja residue),
- utworzyć wektor czasu, np. za pomocą funkcji linspace:
t=linspace(0,tk,lp);
funkcja linspace generuje wektor lp wartości z przedziału [0,tk]
rozło\onych równomiernie,
- wyznaczyć odpowiedz ze wzoru:
1 2 n
y(t) = r1ep t + r2ep t + ... + rnep t
g/ narysować odpowiedz za pomocą funkcji plot
h/ opisać osie, nanieść tytuł, nanieść siatkę
i/ porównać wykresy z punktów e i g
Sprawozdanie
W sprawozdaniu nale\y zamieścić:
1. Dane.
2. Transmitancje i odpowiedzi skokowe układów badanych w pkt. 1-4.
3. Dla układu z punktu 5:
- opis w postaci wektorowo - macierzowej, transmitancji Laplace a
i transmitancji zero - biegunowej,
- wartości obliczonych zer i biegunów układu,
- obliczenia odpowiedzi skokowej,
- wykresy odpowiedzi skokowej.
8


Wyszukiwarka

Podobne podstrony:
WDA lab cw6
WDA lab cw8
WDA lab cw7
Lab cpp
lab 2
T2 Skrypt do lab OU Rozdział 6 Wiercenie 3
IE RS lab 9 overview
lab pkm 3
lab chemia korozja
CW5 doc
lab tsp 3
Lab
Konsp Lab TK ZiIP sem3d 1st

więcej podobnych podstron