Łukasz Skrodzki, gr. I6Y3S1
1/8
Warszawa, dn. 9.01.2008r.
Wojskowa Akademia Techniczna
im. Jarosława Dąbrowskiego
w Warszawie
Laboratorium przedmiotu
'Wprowadzenie do automatyki'
zajęcia 5
Temat:”Modelowanie liniowych układów dynamicznych w środowisku
MATLAB”
Słuchacz
:
Łukasz Skrodzki
grupa
:
I6Y3S1
rok akademicki
:
2007/2008
semsetr:
III
prowadzący
:
mgr inż. Małgorzata Rudnicka – Schmidt
data przeprowadzenia ćwiczenia
: 9.01.2008r.
Łukasz Skrodzki, gr. I6Y3S1
2/8
I. Treść zadania:
1. Utworzyć w środowisku MATLAB modele podstawowych członów dynamicznych o
podanych transmitancjach Laplace’a:
- całkującego
s
k
Hc(s)
=
- inercyjnego
1
Ts
k
Hi(s)
+
=
- oscylacyjnego
1
Ts
2
s
T
k
Ho(s)
2
2
+
+
=
ξ
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
Rys. 5
Wyświetlić odpowiedzi skokowe układów (z pkt 2, 3, 4).
5. Dany jest układ opisany równaniami
- stanu:
)
u(t
(t)
x
a
(t)
x
a
(t)
x
(t)
x
(t)
x
2
1
1
0
2
2
1
+
−
−
=
=
˙
˙
- wyjścia:
)
t
(
x
b
)
t
(
y
1
0
=
- warunki początkowe:
0
(0)
x
0
(0)
x
2
1
=
=
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ć odpowiedź skokową
uwaga: w tym celu należy:
- wyznaczyć transformatę sygnału wyjściowego ,
- rozłożyć ją na ułamki proste (funkcja residue),
H(s)
-
Łukasz Skrodzki, gr. I6Y3S1
3/8
- utworzyć wektor czasu, np. za pomocą funkcji linspace:
t=linspace(0,tk,lp);
funkcja linspace generuje wektor długości lp wartości z przedziału [0,tk]
rozłożonych równomiernie,
- wyznaczyć odpowiedź ze wzoru:
t
p
n
t
p
2
t
p
1
n
2
1
e
r
...
e
r
e
r
)
t
(
y
+
+
+
=
g/ narysować odpowiedź za pomocą funkcji plot
h/ opisać osie, nanieść tytuł, nanieść siatkę
i/ porównać wykresy z punktów e i g
II. Rozwiązanie:
AD 1.
k = 2.500
T = 0.100
ksi = 0.200
a)Transmitancja:
s
k
Hc(s)
=
Odpowiedź skokowa:
b)Transmitancja:
1
Ts
k
Hi(s)
+
=
Odpowiedź skokowa:
Łukasz Skrodzki, gr. I6Y3S1
4/8
c) Transmitancja:
1
Ts
2
s
T
k
Ho(s)
2
2
+
+
=
ξ
Łukasz Skrodzki, gr. I6Y3S1
5/8
Ad 2:
Transmitancja: H
Hc∗Hi
s=
k
2
Ts
2
s
Odpowiedź skokowa:
Ad 3:
Transmitancja: H
HiHo
s =
k T
2
s
2
2 TsTs2
T
3
s
3
T
2
s
2
2 1Ts 2 11
Odpowiedź skokowa:
Łukasz Skrodzki, gr. I6Y3S1
6/8
Ad 4:
k = 8,
kk = 5,
T1 = 0.3
T2 = 0.15,
Ti = 0.052
Transmitancja:
H s=
k k
k
T
i
s1
s
4
T
1
T
2
T
i
s
3
T
1
T
2
T
1
T
i
T
2
T
i
s
2
T
i
T
1
−
s k T
i
k
k
−
k
Odpowiedź skokowa:
Ad 5:
b0 = 250.000
a0 = 100.000,
a1 = 4.000,
a2 = 1.000
Opis w postaci wektorowo-macierzowej:
A=
{
0
1
−
a
0
−
a
1
}
B=
{
0
1
}
C=
{
b
0
0
}
D={0}
Transmitancja Laplace'a: H =
b
0
s
2
4sa
0
Transmitancja w postaci zero-biegunowej: H
zp
=
b
0
s
2
4sa
0
Łukasz Skrodzki, gr. I6Y3S1
7/8
Układ nie ma zer, natomiast bieguny układu to: p=
{
−
2.00009.7980i
−
2.0000−9.7980i
}
Wykres odpowiedzi skokowej układu:
Aby wyznaczyć odpowiedź skokową posłużyłem się następującą sekwencją komend:
>>[l m] = tfdata(H, 'v');
%pobranie licznika i mianownika transmitancji w postaci wektorów
>>[r, p, k] = residue(l, m);
%rozkład na ułamki proste
>>t = linspace(0,5,100);
%utworzenie 100 elementowego wektora czasu z przedziału
<0;5>
>>for i=1:100
%pętla licząca y(t) według podanego
>>y(i)= r(1)*exp(p(1)*t(i))+r(2)*exp(p(2)*t(i));
%wcześniej wzoru
>>end
>>plot(t, y)
%narysowanie wykresu odpowiedzi
W wyniku wykonania powyższego fragmentu kodu uzyskałem następujący wykres:
Łukasz Skrodzki, gr. I6Y3S1
8/8
Wykresy obu odpowiedzi są takie same.