|
Identyfikacja systemów dynamicznych na przykładzie prostego obwodu elektrycznego
dla początkujących
Marcin Maślanka
student
V roku, spec. Automatyka i Metrologia, IMiR, AGH
Streszczenie
- Na
podstawie danej odpowiedzi skokowej identyfikowanego układu RLC oraz
znanej pojemności C, wyznaczono pozostałe parametry obwodu korzystając z trzech różnych
metod identyfikacji. Przedstawiono podstawy teoretyczne wykorzystanych metod, dołączono
także kody źródłowe m-plików realizujących wszystkie obliczenia.
Wykorzystano pakiet Matlab 5.3, Control System Toolbox 4.2,
System Identification Toolbox 4.0.5
SPIS
TREŚCI
1.
Przygotowanie dostarczonych danych empirycznych
2. Opis modelu rozpatrywanego systemu dynamicznego
3. Identyfikacja modelu parametrycznego ARX
3.1 Wstęp teoretyczny
3.2 Dobór optymalnej struktury modelu
3.3 Wyznaczenie szukanych parametrów układu
4. Identyfikacja na podstawie analizy odpowiedzi skokowej
4.1 Określenie cech charakterystycznych odpowiedzi skokowej
4.2 Wyznaczenie szukanych parametrów układu
4.3 Test symulacyjny
5. Identyfikacja na podstawie analizy charakterystyki amplitudowo – fazowej
5.1 Wykreślenie charakterystyki amplitudowo-fazowej i lokalizacja punktów charakterystycznych
5.2 Wyznaczenie szukanych parametrów układu
5.3 Test symulacyjny
6. Podsumowanie
6.1 Zestawienie wyników
6.2 Komentarz
Literatura
1. Przygotowanie dostarczonych danych empirycznych
Dostarczone dane empiryczne (zbiór obserwacji) obejmują
szeregi czasowe sygnału wymuszającego oraz odpowiedzi układu na sygnał
wymuszający przy znanej częstotliwości próbkowania. Plik part0.m
(2kB) odczytuje w środowisku Matlab dostarczone w formie MAT-pliku dane (rr17.mat
- 48kB) i przedstawia je w formie graficznej.
Rys.1 (8kB) przedstawia wynik działania funkcji part0.m (2kB).
Dane empiryczne obejmują odpowiedź układu na wymuszenie sygnałem
prostokątnym o jednostkowej amplitudzie, częstotliwości 2.5 [Hz] i czasie
trwania 2.5 okresu. Częstotliwość próbkowania wynosi 20 [kHz], ilość próbek:
20000.
Do celów identyfikacji zostaje wyodrębniony jeden z przebiegów przejściowego
stanu nieustalonego odpowiedzi. Wybrano przebieg stanu nieustalonego odpowiadający
trzeciemu półokresowi sygnału wymuszenia. Przebieg ten odpowiada fragmentom
dostarczonych szeregów czasowych o indeksach od 801 do 1200.
Zakłada się liniowość badanego układu. Jeżeli zatem parametry układu nie
zależą od amplitudy sygnału wymuszającego można przeskalować badany
przebieg stanu nieustalonego do przebiegu jak na rys.2
(8kB), dokonując operacji zapisanej w notacji Matlaba jako: y=(y-min(y))/2; gdzie:
y- odpowiedź układu na wymuszenie.
Tak przygotowany zestaw danych wykorzystywany będzie w stosowanych
procedurach identyfikacji rozpatrywanego systemu.
Przyjmuje się następujące oznaczenia:
u – szereg czasowy wymuszający (wg rys.2 -
8kB)
y – szereg czasowy odpowiedzi układu na sygnał wymuszający (wg rys.2
- 8kB)
Parametry sygnałów u, y: Fs= 20 [kHz], t0= 0, ilość próbek:
400.
Znana pojemność układu wynosi: C= 0.6[mikro F].
2. Opis modelu rozpatrywanego systemu dynamicznego
Rozpatrywane jest połączenie szeregowe elementów RLC jak na rysunku poniżej.
C= 0.6[mikro F]
Za model tego układu przyjmuje się liniowy model SISO (wartość amplitudy
sygnału wejściowego nie ma wpływu na parametry modelu, rozpatrywane jest
jedno wejście i jedno wyjście), sygnałem wejściowym do układu jest napięcie
U1, sygnałem wyjściowym jest napięcie natomiast U2.
Poniżej wyznaczona zostaje transmitancja operatorowa tego modelu.
Napięcie na rezystorze wynosi:
 mierzone w tym układzie napięcie na kondensatorze wynosi:
 napięcie na cewce:
 zatem zapisując równanie Kirchhoffa dla tego obwodu otrzymuje się:
 Po przekształceniu Laplace’a:

zatem transmitancja operatorowa układu:

Ogólna postać transmitancji członu oscylacyjnego ma postać:

czyli:


Przy znanej pojemności C wyznaczenie parametrów R i L sprowadza się zatem do wyznaczenia podanych powyżej
współczynników mianownika transmitancji operatorowej rozpatrywanego układu.
3. Identyfikacja modelu parametrycznego ARX
3.1 Wstęp teoretyczny
W równaniach różniczkowych,
za pomocą których opisywane są zjawiska dynamiczne modelowanych układów
rzeczywistych, lub w ich dyskretnych odpowiednikach – równaniach różnicowych
występuje skończona liczba parametrów, modele takie nazywa się stąd modelami
parametrycznymi.
W przyborniku Matlaba System Identification Toolbox różnice pomiędzy
poszczególnymi modelami parametrycznymi wynikają ze sposobu uwzględnienia wpływu
zakłóceń na funkcjonowanie układu. Jednym z nich jest model autoregresji z
zewnętrznym wymuszeniem ARX
(AutoRegressive with eXogenous input) przedstawiony równaniem [1]:

gdzie:
u(t) - wejście obserwowane w dyskretnej chwili t,
y(t) - wyjście obserwowane w dyskretnej chwili t,
v(t) - zastępcze zakłócenie obserwowane w dyskretnej chwili t (nie
skorelowany sygnał losowy typu „biały szum” o rozkładzie normalnym, z
zerową wartością średnią i stałą wariancją),
t – zmienna losowa o zerowej wartości średniej i stałej wariancji
na - liczba czynników związanych z sygnałem wyjściowym y,
nb - liczba czynników związanych z sygnałem wejściowym u,
Aktualna wartość sygnału wyjściowego zależy zatem od:
- pewnej liczby na poprzednich wartości sygnału wyjściowego y
(autoregresja),
- pewnej liczby
kolejnych wartości sygnału wejściowego u,
-
d wartości sygnału zakłócającego (oznaczonego przez
epsilon).
Pierwiastki mianownika modelu nazywają się biegunami modelu, a pierwiastki
licznika zerami. Model ARX jest stabilny gdy wszystkie jego bieguny leżą wewnątrz
koła jednostkowego na płaszczyźnie zmiennej zespolonej z i jest
minimalnofazowy jeśli warunek ten spełniają również jego zera. Struktura
modelu jest jednoznacznie określona za pomocą trzech parametrów na, nb, nk.
Najprostszą metodę parametryczną stanowi metoda najmniejszych kwadratów. Chcąc
znaleźć model określający zależności między sygnałem wejściowym u
a wyjściowym y na podstawie N próbek odpowiadającym kolejnym chwilom czasu kTP,
k=1,2,...,N, poszukujemy współczynników modelu określonego zapisanym powyżej
równaniem.
Równanie to jest spełnione jedynie w przybliżeniu, kiedy sygnał wejściowy,
wyjściowy i zakłócenie są ze sobą skorelowane, estymator Q dla metody najmniejszych kwadratów jest obciążony - jego wartość oczekiwana
różni się od wartości rzeczywistej, a więc powtarzając identyfikację
wielokrotnie i obliczając średnią uzyskanych wyników otrzymamy wartość
przesuniętą w stosunku do wartości rzeczywistej parametrów. W praktyce określa
się estymator jako nieobciążony gdy stosunek sygnału do szumu jest mniejszy
niż 10%.
Funkcją realizującą identyfikację modelu o takiej postaci metodą MNK (czyli
przybliżającą w sensie najmniejszych kwadratów parametry modelu ARX) jest
funkcja arx , należąca do
biblioteki Identification Toolbox
pakietu Matlab.
Postać wywołania tej funkcji :
th=
arx([y u],[na nb nk])
gdzie: y, u - wektory kolumnowe we/wy,
[na nb nk] - współczynniki zapisanego powyżej równania opisującego model,
'na' określa liczbę biegunów (pierwiastków mianownika), 'nb-1' określa
liczbę zer (pierwiastków licznika),
th - macierz wyniku w formacie THETA, z której poleceniem th2tf
wydobywa się informację o współczynnikach licznika i mianownika
transmitancji dyskretnej otrzymanego modelu.
Ponieważ wektor współczynników [na nb
nk] określający rząd
licznika i mianownika transmitancji oraz opóźnienie nie jest znany
poszukuje się go według kryterium minimalizacji błędu określanego podczas
weryfikacji modelu.
3.2 Dobór optymalnej struktury modelu
Optymalnego doboru struktury modelu dokonuje się metodami
iteracyjnymi według kryterium minimalizacji błędu średniokwadratowego (mean
square fit).
Weryfikacji modelu otrzymanego dla przyjętej arbitralnie struktury dokonuje się
m.in. przy użyciu funkcji compare:
Uruchomienie następujących
poleceń:
arx210
= arx([y u],[2 1 0]); yh
= compare([y
u],arx210);
powoduje wyświetlenie wyników weryfikacji oraz wartości błędu średniokwadratowego
(otrzymany wektor yh to szereg czasowy odpowiedzi symulowanej estymowanego
modelu). Rys.4 (7kB) przedstawia przykładowy wynik
weryfikacji modelu arx210 wygenerowany przez funkcję compare.
W celu szybkiego dokonania analizy większej liczby struktur modeli
zastosowano postępowanie automatycznie generujące najlepsze wyniki weryfikacji
poszukiwane wśród wszystkich możliwych struktur o parametrach z zakresu
<1,4>.
Macierz parametrów wygenerowano poleceniem:
nn2
= struc(1:4, 1:4, 1:4);
polecenie:
v1
= arxstruc([y u],[y u],nn2);
generuje macierz wyników weryfikacji, z której funkcja selstruc
wydobywa optymalne parametry [na nb nk]:
nn3
= selstruc(v1,c)
gdzie:
c - (np.: 'aic', 'mdl') kryterium informacyjne nadparametryzacji, według
którego określana jest optymalna struktura modelu (w funkcji błędu średniokwadratowego,
liczby estymowanych współczynników poszukiwanej transmitancji i ilości próbek
danych, na podstawie których dokonywana jest estymacja).
Optymalna struktura zwracana przez funkcję selstruc to: [3 2 1] o
wartości błędu średniokwadratowego: Fit= 0.015504.
Czasowy rozkład błędu przedstawiony został na rys.5
(8kB).
A oto jak przedstawiają się wartości błędu średniokwadratowego
w zależności od dobranej struktury modelu:
|
[na nb nk] |
błąd |
| 210 |
0.027961 |
| 211 |
0.009337 |
| 212 |
0.009319 |
| 213 |
0.027944 |
|
214 |
0.046498 |
|
220 |
0.027961 |
|
221 |
0.009337 |
|
222 |
0.009319 |
| 223 |
0.027943 |
| 224 |
0.046498 |
| 310 |
0.034119 |
| 311 |
0.015504 |
| 312 |
0.003194 |
| 313 |
0.021816 |
| 314 |
0.040408 |
| 320 |
0.034119 |
| 321 |
0.015504 |
| 322 |
0.003194 |
| 323 |
0.021816 |
| 324 |
0.040407 |
Do dalszej analizy wybrano wyznaczoną przez funkcją selstruc strukturę
o parametrach [3 2 1], (pomimo tego, że struktura [2 1 0] powinna teoretycznie
najlepiej odwzorowywać opisany w pkt.2 model idealny):
arx321
= arx([y u],[3 2 1]);
3.3 Wyznaczenie szukanych parametrów układu
Z utworzonej macierzy arx321
formatu THETA uzyskuje się za pomocą funkcji th2tf współczynniki
licznika i mianownika transmitancji dyskretnej otrzymanego modelu:
[l,m]=
th2tf(arx321,1);
Transmitancja dyskretna szukanego modelu wynosi
(transmitancję wyświetlono poleceniem: printsys(l,m,’z’)
):
i zostaje wyznaczona poleceniem tf o składni:
gd2= tf(l,m,1/Fs);
Przejście na model ciągły realizuje się za pomocą
funkcji d2c:
gc=
d2c(gd2,’tustin’);

po podzieleniu transmitancji obustronnie przez czynnik
maksymalny otrzymuje się:
stąd:


zatem dla tej struktury modelu:
L= 0.402
[H] R= 314.40 [Om]
Wszystkie obliczenia realizuje
funkcja part1.m (3kB)
Nieznaczna modyfikacja M-pliku
part1.m (3kB) pozwala na wygenerowanie szukanych parametrów dla innych struktur
modelu:
|
[na nb nk] |
R [Om] |
L [H] |
| 210, 211, 212, 220, 221 |
300.26 |
0.399 |
| 222 |
341.93 |
0.407 |
|
310, 311,
312, 313, 320, 321, 322 |
314.40 |
0.402 |
4. Identyfikacja na podstawie analizy odpowiedzi skokowej
4.1 Określenie cech charakterystycznych odpowiedzi skokowej
Z rys.6 (7kB) odczytano:
- amplituda A1= 0.55617 (numer próbki odpowiadający amplitudzie A1: 32)
- t1= 0.00155[s]
- amplituda A2= 0.30858 (numer próbki odpowiadający amplitudzie A2: 64)
- t2= 0.00315[s]
4.2 Wyznaczenie szukanych parametrów układu
Poszukiwane parametry L, R wyznaczane są z zależności:


Na podstawie odpowiedzi skokowej wyznaczono:
1. Okres drgań tłumionych: T= 2(t2-t1)=
0.0032[s]
2. Pulsacja drgań tłumionych:

3. Tłumienność:

4. Pulsacja drgań własnych:

5. Okres drgań nietłumionych:

6. Współczynnik tłumienia:

Zatem, poszukiwane parametry wynoszą :


Wszystkie obliczenia realizuje funkcja
part2.m
(3kB).
4.3 Test symulacyjny
Test symulacyjny polega na porównaniu
odpowiedzi układu na zadane wymuszenie z symulowaną odpowiedzią na to
wymuszenie estymowanego modelu. Test stanowi najprostszą z metod weryfikacji
estymowanego modelu.
W celu dokonania testu symulacyjnego przeprowadzono symulację otrzymanego
modelu przy zadanym wymuszeniu u, której wyniki porównano z szeregiem
czasowym y.
Transmitancja operatorowa rozpatrywanego modelu:
num= [1]; den= [T0^2 2*T0*dzeta 1];
gc= tf(num,den);
gdzie:
T0 – okres drgań nietłumionych,
dzeta – współczynnik tłumienia.
Odpowiedź estymowanego modelu na wymuszenie 'u':
yh= lsim(gc,u,t);
Obliczenie błędu średniokwadratowego:
Fit = norm(yh -y)/sqrt(length(y));
Fit= 0.0155
Graficzne przedstawienie wyników testu symulacyjnego zamieszczono na rys.7
(8kB) oraz rys.8 (9kB).
5. Identyfikacja na podstawie analizy charakterystyki amplitudowo – fazowej
5.1 Wykreślenie charakterystyki amplitudowo-fazowej i lokalizacja punktów charakterystycznych
Charakterystykę amplitudowo – fazową realizuje się
przy znanym przebiegu odpowiedzi skokowej jako wykres na płaszczyźnie
zespolonej transformaty Fouriera z szeregu czasowego odpowiedzi impulsowej układu,
którą wyznacza się według zależności:
imp= [y(2)-y(1) y(3)-y(2)
... y(n)-y(n-1)]
gdzie:
y – szereg czasowy odpowiedzi na skok jednostkowy,
n – ilość próbek szeregu y,
imp – szereg czasowy odpowiedzi impulsowej o ilości próbek n-1.
W celu szybkiego obliczenia zdefiniowanego powyżej szeregu odpowiedzi
impulsowej wykorzystano służącą do tego funkcję diff. Polecenie:
imp
= diff(y);
generuje szereg czasowy o przebiegu przestawionym na
rys.9
(8kB).
Obliczana jest następnie N-punktowa (przyjęto: N= 216)
transformata Fouriera z otrzymanego przebiegu:
F= fft(imp,65536);
F= F(1:floor(length(F)/2));
której wykres na płaszczyźnie fazowej stanowi charakterystykę
amplitudowo-fazową (rys.10 - 6kB).
Na
przedstawionym na rys.10 (6kB) wykresie zlokalizowano
punkty charakterystyczne, na podstawie których zostaną obliczone poszukiwane
parametry.
Pierwszy z punktów (P45) określony dla Re= |Im| wyznaczony został jako punkt
przecięcia ch-ki z funkcją Im= - Re (co zostało zobrazowane na wykresie),
drugi punkt (P90) określony jest dla Re = 0.
Znalezione punkty:
P45= 901 P90= 1076
odpowiadające im punkty charakterystyki to F(P45) i F(P90).
5.2 Wyznaczenie szukanych parametrów układu
Poszukiwane parametry L, R wyznaczane są z zależności:


Na podstawie ch-ki amplitudowo-fazowej wyznaczono:
1. Częstotliwość f45 i f90:


2. Pulsacja:


3. Okres drgań nietłumionych:

4. Współczynnik tłumienia: 
Stąd, poszukiwane parametry wynoszą :


Wszystkie obliczenia, także z punktu 5.1 realizuje funkcja
part3.m
(3kB).
5.3 Test symulacyjny
Weryfikację za pomocą testu symulacyjnego przeprowadzono
wg schematu określonego w pkt. 4.3
Transmitancja operatorowa rozpatrywanego modelu:
num= [1];den= [T0^2 2*T0*dzeta 1];
gc= tf(num,den);
gdzie:
T0 - okres drgań nietłumionych,
dzeta - współczynnik tłumienia.
Odpowiedź estymowanego modelu na wymuszenie u:
yh
= lsim(gc,u,t);
Obliczenie błędu średniokwadratowego:
Fit = norm(yh - y)/sqrt(length(y));
Otrzymana wartość błędu: Fit= 0.009464
Graficzne przedstawienie wyników testu symulacyjnego zamieszczono na rys.11 (9kB) oraz
rys.12
(9kB).
6. Podsumowanie
6.1 Zestawienie wyników
| Struktura modelu [na nb
nk] |
R [Om] |
L [H] |
Błąd3 |
| [2 1 0]1 |
300.26 |
0.40 |
0.027961 |
| [2 1 2] |
j.w. |
j.w. |
0.009319 |
| [3 2 1]2 |
314.40 |
0.40 |
0.015504 |
| [3 1 2] |
j.w. |
j.w. |
0.003194 |
| R [Om] |
L [H] |
Błąd3 |
| 307.52 |
0.42 |
0.0155 |
| R [Om] |
L [H] |
Błąd3 |
| 288.28 |
0.39 |
0.009464 |
1
model o strukturze teoretycznie najlepiej dopasowanej do identyfikowanego układu
2 model o najlepszym
dopasowaniu do zbioru obserwacji [y u] wg kryterium informacyjnego Akaike'a
3 błąd średniokwadratowy
porównania odpowiedzi symulowanej estymowanego modelu i odpowiedzi danej w zbiorze
obserwacji
6.2 Komentarz
Kluczowym problemem identyfikacji
jest weryfikacja modelu. W opracowaniu tym estymowane modele poddawano jedynie
testowi symulacyjnemu obliczając błąd średniokwadratowy jako kryterium określające
zgodność modelu z dostarczonym zbiorem obserwacji. Okazuje się jednak, że
kryterium to nie jest wystarczające, a wnioskować o tym można porównując
wartości błędu dla różnych struktur oraz odpowiadające im wartości
szukanych parametrów. Zestawienie wartości błędu dla różnych struktur (tabela),
sugeruje że model [2 1 1] jest bardziej odpowiedni dla danego zbioru obserwacji
niż model [2 1 0], modele o tych strukturach posiadają jednak takie same współczynniki
mianownika transmitancji operatorowej (tabela), a zatem
dają takie same wartości parametrów.
Przy wyborze kryterium określającego ze zbioru estymowanych modeli pewien
szczególny model uważany za najbardziej odpowiedni brano pod uwagę kryterium
informacyjne Akaike’a (w przypadku modeli ARX), wartość błędu średniokwadratowego
i wreszcie informację o układzie rzeczywistym, którego funkcja przejścia była
określona w pkt.2
Za najbardziej odpowiedni przyjmuje się model otrzymany na podstawie
analizy charakterystyki amplitudowo-fazowej oraz model ARX z dwoma biegunami
(na=2), bez zer (poszukiwano w liczniku jednego parametru stąd: nb=1) i bez opóźnienia
nk=0 (modele z opóźnieniem nk=1 lub nk=2 określane są mniejszym błędem średniokwadratowym
lecz dają takie same wartości szukanych parametrów tzn. przy wzroście nk
modyfikowany jest jedynie licznik transmitancji operatorowej, który powinien być
w przyjętym modelu jak najniższego rzędu).
Wyznaczane wartości parametrów wynosiły: R= 300 [Om],
L= 0.4 [H] (podana pojemność układu: C= 0.6 [mikro F])
Literatura
[1] A. Zimmer,
Identyfikacja obiektów i
sygnałów. Teoria i praktyka dla użytkowników MATLABA.
Kraków: PK,
1998
|