Transformata Z - Matlab - Akademia Morska w Gdyni
Transkrypt
Transformata Z - Matlab - Akademia Morska w Gdyni
Akademia Morska w Gdyni
Katedra Automatyki Okrętowej
Teoria sterowania
Transformata Z
Matlab
Mirosław Tomera
1. WPROWADZENIE
W układach sterowania coraz częściej stosowane są regulatory cyfrowe i stąd konieczność określania
równań, które opisują sygnały cyfrowe i dyskretne. Tak jak równania różniczkowe stosowane są do
opisu układów z sygnałami analogowymi, tak równania różnicowe stosowane są dla układów
z sygnałami dyskretnymi lub cyfrowymi. Równania różnicowe używane są również do aproksymacji
równań różniczkowych w celu zapisania ich w programach komputerowych wykorzystywanych
w różnego rodzaju symulacjach.
Rachunek operatorowy Laplace’a może być stosowany do rozwiązywania liniowych równań
różniczkowych zwyczajnych, natomiast transformata Z jest metodą wykorzystywaną do
rozwiązywania liniowych równań różnicowych i układów liniowych z danymi dyskretnymi lub
cyfrowymi. Zmienna z jest liczbą zespoloną.
2. PRZEKSZTAŁCENIE
TRANSFORMATY Z
RÓWNANIA
RÓŻNICOWEGO
DO
POSTACI
Podobnie jak w przypadku transformaty Laplace'a, wprowadzenie transformaty Z ma na celu
umożliwienie wykonywania matematycznych operacji algebraicznych co może być wykonywane w
dziedzinie zmiennej zespolonej z, ostateczna odpowiedź czasowa wyznaczana jest przez zastosowanie
odwrotnej transformaty Z. Odwrotna transformata Z funkcji Y(z) daje informacje tylko o y(kT), a nie
o y(t). Innymi słowy transformata Z zachowuje informacje tylko w chwilach próbkowania.
Sygnały występujące w dyskretnych chwilach czasu opisywane są przez równania różnicowe.
W tym podrozdziale pokazane zostanie w jaki sposób dokonuje się zastąpienia równania różnicowego
odpowiadającą mu transformatą Z. W tabeli 1 znajdują się podstawowe twierdzenia w oparciu o które
dokonuje się przekształcenia równania różnicowego do postaci transformaty Z. Na podstawie
równania różnicowego w sposób sekwencyjny można dokonać wyznaczenia dyskretnego sygnału
czasowego. Takie same wartości próbek sygnału dyskretnego można uzyskać rozwiązując równanie
różnicowe metodą transformaty Z. Poniższy przykład ilustruje sposób wyznaczenia transformaty Z dla
równania różnicowego.
Przykład 1
Dla poniższego równania różnicowego układu II rzędu, wyznacz odpowiadająca mu
transformatę Z.
y(k
2)
y(k 1) + 0.5y(k) = 5 1(k)
(1.1)
gdzie 1(k) jest jednostkową funkcją skokową. Wartości pierwszych próbek są następujące:
y (0) = 1, y (1) = 2.
Ostatnia aktualizacja: 2015-03-12
M. Tomera
1
Teoria sterowania
Transformata Z
Matlab
Tabela 1. Podstawowe twierdzenia transformaty Z
1. Dodawanie i odejmowanie
Z { f1 (kT )
f1 (kT )} = aF1 ( z )
F2 ( z )
2. Mnożenie przez stałą
Z {af (kT )} = aZ { f (kT )} = a F (z)
3. Przesunięcie w dziedzinie rzeczywistej
Z { f (k n)T } = z
n
(opóźnienie czasowe)
F (z)
n 1
Z { f (k n)T } = z n F ( z )
f (kT ) z
k
(wyprzedzenie czasowe)
k 0
gdzie: n = liczba całkowita.
3. Przesunięcie w dziedzinie zmiennej zespolonej
Z {e
kT
T
f (kT )} = F ( ze
)
4. Twierdzenie o wartości początkowej
lim f (kT)
lim F ( z )
k
z
0
5. Twierdzenie o wartości końcowej
lim f (kT ) lim (1 z 1 ) F ( z ) ,
k
z 1
pod warunkiem, że (1
z
1
) F ( z ) nie ma żadnych biegunów na zewnątrz ani na okręgu z 1
Rozwiązanie: Dokonując obustronnego przekształcenia Z równania (1.1), przy wykorzystaniu
twierdzeń z tabeli 1 i funkcji z tabeli 2
[ z 2Y ( z )
z 2 y (0)
zy(1)]
[ zY ( z)
zy(0)] + 0.5Y(z) = 5
z
z 1
(1.2)
Podstawiając wartości liczbowe pierwszych próbek do równania (1.2) i wyznaczając Y(z),
otrzymuje się
z 3 6z
z 3 6z
Y ( z)
(1.3)
( z 1)( z 2 z 0.5) z 3 2 z 2 1.5 z 0.5
Dodatkowo można sprawdzić poprawność uzyskanej transformaty (1.3) przy użyciu twierdzenia
o wartości początkowej (tabela 1, pkt. 4)
6
1
3
z
6z
z2
y (0) lim
lim
1
(1.4)
z
( z 1)( z 2 z 0.5) z 1 2 1.5 0.5
z z2
z3
Analizując wzór (1.4) widać, że o wyniku decydują współczynniki przy najwyższych potęgach
licznika i mianownika, czyli sprawdzanie poprawności wyznaczonej transformaty Z dla
równania różnicowego przy użyciu twierdzenia o wartości początkowej jest mało wiarygodne.
Na podstawie transformaty (1.3), przy użyciu twierdzenia o wartości końcowej (tabela 1,
pkt 5) można wyznaczyć również wartość ustaloną funkcji y(k)
z 1
z 3 6z
z2 6
y ( ) lim
lim
10
(1.5)
z 1
z ( z 1)( z 2 z 0.5) z 1 z 2 z 0.5
Ostatnia aktualizacja: 2015-03-12
M. Tomera
2
Teoria sterowania
Transformata Z
Matlab
Tabela 2. Wybrane transformaty Z
f(k)
1.
1 k
0 k
2.
1(k )
3.
k
4.
1 2
k
2!
5.
kn
n!
F(z)
0
0
6.
rk
7.
kr k
8.
sin k
9.
cosk
10.
r k sin k
11.
12.
1
z
z 1
z
(z 1) 2
z ( z 1)
2( z 1) 3
( 1) n
0
n!
z
n
z 1
z
z r
r z
(z r) 2
z sin
z
2 z cos
1
z ( z cos )
2
z
2 z cos
1
2
z
k
r cos k
Ar k cos(k
n
lim
)
2
r sin
2r cos
z
z
r2
z 2 r cos z
z 2 2r cos z r 2
1
1
Ae j z
Ae j z
2
2
z rj
z r j
3. ZNAJDOWANIE ODWROTNYCH TRANSFORMAT Z METODĄ ROZKŁADU NA
UŁAMKI PROSTE
W celu wyznaczenia odwrotnej transformaty funkcja F(z) rozkładana jest na sumę ułamków
zwykłych, a następnie korzysta się z tablicy transformat Z w celu określenia poszukiwanej funkcji
f(kT). Przy rozkładzie na sumę ułamków zwykłych występuje niewielka różnica pomiędzy
transformatami Z i transformatami Laplace'a. Przeglądając tabelę transformat Z (tabela 2), można
zauważyć, że praktycznie każda transformata Z funkcji jest pomnożona w liczniku przez z. Dlatego też
dokonuje się rozkładu funkcji F ( z) z na sumę ułamków zwykłych, a następnie mnoży się wszystkie
składniki przez z. Rozważ następującą funkcję operatorową zapisaną w postaci ilorazu dwóch
wielomianów:
F ( z ) B ( z ) numD bm z m bm 1 z m 1 ... b1 z b0
(1)
z
A( z ) denD a n z n a n 1 z n 1 ... a1 z a 0
Ostatnia aktualizacja: 2015-03-12
M. Tomera
3
Teoria sterowania
Transformata Z
Matlab
w których niektóre ze współczynników a i oraz b j mogą być równe zero. W MATLABIE wektory
wierszowe numD oraz denD określają współczynniki licznika i mianownika funkcji opisanej wzorem
(1). Wobec tego
numD [bm bm 1 ... b0 ]
denD [a n
an
... a0 ]
1
Polecenie
[rD,pD,kD] residue(nu mD,denD)
(2)
wyznacza residua rD, bieguny pD oraz współczynniki stałe kD rozkładu funkcji dyskretnej na ułamki
proste ilorazu dwóch wielomianów B(z)/A(z). Rozkład na ułamki proste ilorazu wielomianów
B(z)/A(z) jest wówczas następujący:
F ( z)
z
B( z )
A( z )
numD
denD
rD(1)
z pD (1)
rD(2)
z pD (2)
rD(n)
z pD (n)
...
kD
(3)
Przykład 2 ilustruje tą metodę.
Przykład 2
Dla funkcji dyskretnej uzyskanej w przykładzie 1
Y ( z)
z3
z
3
2z
2
6z
1.5 z
(2.1)
0.5
wyznacz postać dyskretną y(k) stosując metodę rozkładu na ułamki proste.
Rozwiązanie: W pierwszej kolejności należy podzielić funkcję (2.1) przez z.
Y ( z)
z
z2
z3
2z 2
6
1.5 z
0.5
( z 1)( z
0.5
z2 6
j 0.5)( z
0.5
j 0.5)
(2.2)
Korzystając z funkcji residue znajdującej się w bibliotece Matlaba można łatwo wyznaczyć
parametry rozkładu funkcji opisanej wzorem (2.2) do postaci (3)
Y ( z)
z
10
z 1
5.5 j 6.5
z 0.5 j 0.5
5.5 j 6.5
z 0.5 j 0.5
(2.3)
Po przekształceniu residuów zespolonych do postaci wykładniczej i pomnożeniu obu stron
równania (2.3) przez z, uzyskuje się
Y ( z ) 10
z
z 1
8.5147 e j 2.2731 z
z 0.7071e j 0.7854
8.5147 e j 2.2731 z
z 0.7071e j 0.7854
(2.4)
Korzystając z tablicy transformat Z znajduje się postać czasową funkcji dyskretnej
y (k )
2 1(k ) 11.4018 (0.7071) k cos( 0.7854 k
2.2731)
(2.5)
Uzyskane wynik (2.5) będący rozwiązaniem równania różnicowego z przykładu 1
przedstawiony został na rysunku 2.1. Rozwiązanie przykładu 2 przeprowadzone zostało
z wykorzystaniem następującego kodu Matlaba.
clear
% Wyczyszczenie pamięci roboczej Matlaba
close all
% Zamknięcie wszystkich okienek graficznych
%Licznik i mianownik funkcji dyskretnej
numD = [-1 0 6];
denD = conv([1 -1],[1 -1 0.5]);
% Wyznaczenie parametrów rozkładu na ułamki zwykłe
[rD,pD,kD] = residue( numD, denD);
Ostatnia aktualizacja: 2015-03-12
M. Tomera
4
Teoria sterowania
Transformata Z
Matlab
% Wyznaczenie postaci wykładniczej zespolonego residua
M_rD = abs( rD(2));
theta_rD = angle( rD(2));
% Wyznaczenie postaci wykładniczej zespolonego bieguna
M_pD = abs( pD(2));
theta_pD = angle( pD(2));
% Wygenerowanie kolejnych próbek rozwiązania
for k=0:20,
td(k+1) = k;
yd(k+1) = rD(1) + 2*M_rD*(M_pD)^k*cos(theta_pD*k+theta_rD)
end;
% Wykreślenie uzyskanego rozwiązania
figure(1)
stem(td, yd, 'k-')
xlabel('k')
ylabel('y(k)')
Rozwiązanie równania różnicowego
14
12
10
y(k)
8
6
4
2
0
-2
-4
0
2
4
6
8
10
k
12
14
16
18
20
Rys. 2.1. Wykres funkcji dyskretnej y(k) uzyskany na podstawie wzoru (2.5)
Można dokonać sprawdzenia uzyskanego rozwiązania (2.5) poprzez wygenerowanie
rozwiązania równania różnicowego (1.1) w sposób bezpośredni po dopisaniu dodatkowo
następującego kodu programu Matlaba.
tk(1) = 0; yk(1) = -1; % Wartość pierwszej próbki
tk(2) = 1; yk(2) = -2; % Wartość drugiej próbki
for k=1:19,
tk(k+2) = k+1;
yk(k+2) = yk(k+1) - 0.5*yk(k) + 5;
end;
% Wykreślenie uzyskanych rozwiązań
figure(2)
plot( td, yd, 'ko', tk, yk, 'k*')
xlabel('k')
ylabel('y(k)')
Ostatnia aktualizacja: 2015-03-12
M. Tomera
5
Teoria sterowania
Transformata Z
Matlab
ĆWICZENIA W MATLABIE
M1. Znajdź odwrotne transformaty Z dla k 0
a) Y (z ) =
1
z
2
b) Y (z ) =
6z 2 z
z 2 5z 6
c) Y (z ) =
5z 3 5z 2 8z
( z 1)( z 2 4 z 4)
d) Y (z ) =
3z 2
z
2
z
2 z 10
M2. Znajdź odwrotne transformaty Z dla k 0
a) Y (z ) =
10
( z 1)( z 0.5)
b) Y (z ) =
10 z
( z 1)( z 0.2)
c) Y (z ) =
z
( z 1)( z 0.85)
d) Y (z ) =
5z
( z 1)( z 0.1)
e) Y (z ) =
10 z
( z 1)( z 1)
f) Y (z ) =
z
( z 1)( z 1.5)
g) Y (z ) =
z2
( z 1)( z 0.5)
h) Y (z ) =
10 z ( z 0.2)
( z 1)( z 0.5)( z 0.8)
i) Y (z ) =
j) Y (z ) =
z
( z 1)( z 0.5) 2
z
( z 1)( z 2
z 1)
k) Y (z ) =
2z
( z 1)( z 2 z 1)
l) Y (z ) =
0.386 z
( z 1)( z 1.364 z
2
Ostatnia aktualizacja: 2015-03-12
0.732)
M. Tomera
6
Teoria sterowania
Transformata Z
Matlab
M3. Korzystając z metod transformaty Z, rozwiąż następujące równania różnicowe dla k
0
z uwzględnieniem warunków początkowych:
a) y(k
3) 2.5 y(k
y(0) 1
y(1)
(k )
0.9
y(2)
b) y (k
2) 2.04 y(k 1) 0.54 y(k ) 0.02
0.81
0.56 y (k ) 0.02 (0.9) k
2) 1.54 y (k 1)
y(0) 0
y(1)
0.2
c) y(k 1) 0.8 y(k ) 0.6 cos( 0.2 k )
y(0)
2
d) y(k 3) 2.6 y(k 2) 2.23 y(k 1) 0.63 y(k )
y(0)
1
y(1)
1.1
y(2)
1.18
0.03
(k )
e) y(k 1) 0.8 y(k ) 0.005 k
y(0)
1
f) y(k 1) 0.7 y(k ) 0.4 sin( 0.2 k )
y(0) 1
g) y(k 2) 1.6 y(k 1) 0.65 y(k )
y(0)
3
y(1)
2.8
h) y (k
2) 1.7 y (k 1)
y(0) 0
y(1) 0.1
0.01 1(k )
0.72 y (k ) 0.03 (0.74) k
i) y(k 2) 1.8 y(k 1) 0.81y(k )
y(0) 1
y(1) 0.8
0.05 1(k )
j) y(k
2) 1.8 y(k 1) 0.82 y(k ) 0.01 sin( 0.2 k )
y(0) 2
y(1) 1.7
k) y(k
2) 1.9 y(k 1) 0.94 y(k ) 0.01 cos( 0.3 k )
y(0) 1
y(1) 1.2
l) y (k
2) 1.7 y (k 1)
y(0) 0
y(1) 0.3
0.76 y (k ) 0.01 (0.8) k cos( 0.3 k )
ODPOWIEDZI DO WYBRANYCH ZADAŃ
M1.
a) y (k ) = 0.5
(k )
b) y (k ) = 13( 2) k
0.5 ( 2) k
19( 3) k
Ostatnia aktualizacja: 2015-03-12
M. Tomera
7
Teoria sterowania
Transformata Z
Matlab
c) y (k ) = 2 1(k ) + 3( 2) k + 3k ( 2) k
d) y (k ) = 3.284(3.162) k cos(1.893k 0.418)
M2.
a) y (k ) = 20
(k ) + 20 1(k )
40 (0.5) k
12.5 (0.2) k
b) y (k ) = 12.5 1(k )
c) y (k ) = 0.5405 1(k )
0.5405 ( 0.85) k
d) y (k ) = 5.5556 1(k )
0.5556 (0.1) k
e) y (k ) = 5 1(k )
5 ( 1) k
f) y (k ) = 2 1(k ) + 2 (1.5) k
g) y (k ) = 2 1(k )
h) y (k ) = 80 1(k )
(0.5) k
100 (0.8) k + 20 (0.5) k
4k (0.5) k
i) y (k ) = 4 1(k ) 4 (0.5) k
j) y (k ) = 0.3333 1(k ) + 0.6667 cos(2.0944k 2.0944)
k) y (k ) = 2 1(k ) + 2.3094 cos(1.0472k 2.6180)
l) y (k ) = 1.0489 1(k ) + 1.2317 (0.8556) k cos(0.6483k 2.5898)
M3.
a)
b)
c)
d)
e)
Y ( z)
z 3 1.6 z 2 0.6 z 0.02
0.5 0.2593 0.2778
= 4
=
3
2
z
z
1 z 0.9 z 0.6
z
2.5 z
2.04z
0.54z
k
0.2778 (0.6) k 0.037 (k )
y (k ) = 0.5 1(k ) 0.2593 (0.9)
Y ( z)
0.2 z 0.2
0.5216
1.25
= 3
=
2
z
z 0.9514 z 0.9
z 2.44z 1.946z 0.504
k
k
0.7284(0.5886) k
y (k ) = 0.5216 (0.9514) 1.25 (0.9)
Y ( z)
2 z 2 4.5203z 2.588
1.1189e j 0.8345
= 3
=
z
z 2.7601z 2 2.5681z 0.8
z e j 0.2
y (k ) = 2.2377 cos(0.2k 0.8345) 3.5028 (0.8) k
g)
h)
i)
0.7284
z 0.5886
1.1189e j 0.8345
z e
Y ( z)
z 2 2 z 0.995
= 3
=
z
z 2.8 z 2 2.6 z 0.8
0.125
z 1
0.025
( z 1)
0.125 1(k ) 0.025 k 0.875 (0.8)
2
k
Y ( z)
3z 2 5 z 1.99
0.2
2.7203e j 2.1996
= 3
=
z
z 1 z 0.8062e j 0.1244
z 2.6 z 2 2.25z 0.65
k
y (k ) = 0.2 1(k ) 5.4406 (0.8062) cos(0.1244k 2.1996)
Y ( z)
0.1z 0.044
2.875
= 3
=
2
z
z 0.9
z 2.44z 1.9782z 0.5328
k
k
y (k ) = 2.875 (0.9) 6 (0.8) 3.125(0.74) k
z2
2.8 z
2 z 1.05
2
2.61z 0.81
Ostatnia aktualizacja: 2015-03-12
=
5
z 1
0.0476
z 0
0.875
z 0.8
Y ( z)
z 2 1.9601z 1.0795
1.6740 0.5825e j 2.1878
= 3
=
z
z 0.7
z 2.6601z 2 2.3721z 0.7
z e j 0.2
k
y (k ) = 1.6740 (0.7) 1.1649 cos(0.2k 2.1878)
Y ( z)
= 3
z
z
3.5028
z 0.8
j 0.2
Y ( z)
z 3 1.5 z 2 0.55z 0.03
0.6667
1.1667 0.8810
= 4
=
3
2
z
z 1
z 0.9
z 0.7
z
2.6 z
2.23z
0.63z
k
k
0.8810 (0.7)
0.0476 (k )
y (k ) = 0.6667 1(k ) 1.1667 (0.9)
y (k ) =
f)
0.037
z 0
0.4
z 0.9
6
z 0.8
0.5825e j 2.1878
j 0.2
z e
2.7203e
j 2.1996
z 0.8062e
j 0.1244
3.125
z 0.74
0.6
( z 0.9) 2
M. Tomera
8
Teoria sterowania
Transformata Z
y (k ) = 5 1(k ) 0.4 (0.9) k
j)
Matlab
0.6667 k (0.9) k
Y ( z)
2 z 3 5.8203z 2 5.7243z 1.8980
= 4
=
z
z
3.7601z 3 5.3482z 2 3.4073z 0.82
0.1273e j 2.5144
0.1273e
j 2.5144
1.1354e j 0.2393
1.1354e
j 0.2393
z e j 0.2
z e j 0.2
z 0.9055e j 0.1107 z 0.9055e j 0.1107
y (k ) = 0.2545 cos(0.2k 2.5144) 2.2708 (0.9055) k cos(0.1107k 0.2393)
k)
Y ( z)
= 4
z
z
z3
2.6107z 2
3.8107z
3
5.5703z 2
j 3.0783
0.1002e
2.3475z 0.7096
=
3.6960z 0.9400
0.1002e j 3.0783
0.8762e
j 0.8165
0.8762e j 0.8165
z e j 0.3
z e j 0.3
z 0.9695e j 0.2011 z 0.9695e j 0.2011
y (k ) = 0.2004 cos(0.3k 3.0783) 1.7525 (0.9695) k cos(0.2011k 0.8165)
l)
Y ( z)
= 4
z
z
0.3z 2
3.2285z
0.9015e
3
0.4486z 0.1844
3.9985z 2
j1.5361
=
2.2497z 0.4864
0.9015e j1.5361
0.1190e j1.8368
0.1190e
j1.8368
z 0.8718e j 0.2240 z 0.8718e j 0.2240
z 0.8e j 0.3
z 0.8e j 0.3
k
k
y (k ) = 1.8030 (0.8718) cos(0.224k 1.5361) 0.2380 (0.8) cos(0.3k 1.8368)
LITERATURA
1. Franklin G.F, Powell J.D., Emami-Naeini A.: Digital Control of Dynamic Systems, 3rd ed.
Addison-Wesley Publishing Company, 1998.
2. Kuo B.C.: Automatic Control Systems, John Wiley&Sons, 1995.
Ostatnia aktualizacja: 2015-03-12
M. Tomera
9