22.07.2013 Views

Kalmanův filtr

Kalmanův filtr

Kalmanův filtr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Obsah<br />

Kalman˚uv <strong>filtr</strong><br />

Moderní teorie ˇrízení<br />

1 Úvod 1<br />

2 Pˇríklady 6<br />

2.1 Praktick´y návrh Kalmanova <strong>filtr</strong>u . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2.1.1 ˇ Reˇsení pomocí Matlabu . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

3 Domácí úloha 11<br />

Reference 11<br />

1 Úvod<br />

Kalman˚uv <strong>filtr</strong> – pomocí Wienerova <strong>filtr</strong>u [1] lze ˇreˇsit problém optimální <strong>filtr</strong>ace pro<br />

signály, jejichˇz vlastnosti a vzájemné vztahy byly charakterizovány autokorelačními funk-<br />

cemi Pxx(k), Pyy(k) a vzájemnou kovarianční funkcí Pxy(k). Tento popis je moˇzné chápat<br />

jako vnějˇsí popis.<br />

Nyní vyuˇzijeme vnitˇrního (stavového) popisu. Podmínkou ˇreˇsitelnosti úloh <strong>filtr</strong>ace, pre-<br />

dikce a interpolace, formulovan´ych pomocí vnitˇrního popisu systému, je moˇznost odhadovat<br />

stav systému na základě pozorování vstup˚u a v´ystup˚u systému. V deterministické formulaci<br />

problému lze k odhadování stavu sestrojit pozorovatel stavu metodou umíst’ování pól˚u. Ve<br />

stochastické formulaci problému lze úlohu odhadu stavu formulovat ve smyslu optimálního<br />

LMS odhadu stavu a v´ysledn´y optimální pozorovatel stavu se naz´yvá Kalman˚uv <strong>filtr</strong>.<br />

⋆ LMS odhad – lineární odhad minimalizující stˇrední kvadratickou chybu. Kritérium je<br />

JLMS = E ˜x T ˜x , ˜x = x − ˆxLMS , (1)<br />

kde pˇredpokládáme, ˇze hledaná data ˆxLMS(y) jsou pouze afinní funkcí měˇren´ych dat y<br />

Dosadíme do kritéria<br />

ˆxLMS(y) = Ay + b . (2)<br />

E ˜x T ˜x = E trace (˜x T ˜x) = E trace (˜x˜x T ) = trace (E ˜x˜x T ),<br />

1


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 2<br />

kde trace (A) – stopa matice A je součet prvk˚u na diagonále matice A. Tento operátor<br />

komutuje s operátorem stˇrední hodnoty, stopa skaláru je skalár sám a ve stopě součinu matic<br />

je moˇzno matice cyklicky zaměňovat.<br />

Dále pokračujeme<br />

<br />

<br />

T<br />

JLMS = trace E (x − Ay − b) (x − Ay − b) =<br />

<br />

= trace E{xxT − Ayx T − bx T − xyT A T +<br />

+Ayy T A T + by T A T − xb T + Ayb T + bb T <br />

} =<br />

<br />

= trace µxµ T x + P xx − Aµyµ T x − AP yx − bµ T x − µxµ T y A T − P xyA T +<br />

+A µyµ T T<br />

y + P yy A + bµ T y A T − µxb T + Aµyb T + bb T<br />

<br />

=<br />

<br />

= trace µxµ T x + P xx − 2Aµyµ T x − 2AP yx − bµ T x +<br />

+A µyµ T T<br />

y + P yy A − µxb T + 2Aµyb T + bb T<br />

<br />

=<br />

<br />

= trace P xx + A P yy + µyµ T T<br />

y A + (b − µx)(b − µx) T + 2Aµy(b − µx) T <br />

− 2AP yx .<br />

S vyuˇzitím vztah˚u pro derivace stopy matice<br />

dostaneme<br />

Odtud dostaneme<br />

∂<br />

∂Y trace XY Z = X T Z T ,<br />

∂<br />

∂X trace XY X T = 2XY ,<br />

∂<br />

∂A JLMS = 2A P yy + µyµ T <br />

y + 2 (b − µx) µ T y − 2P xy = 0 ,<br />

∂<br />

∂b JLMS = 2 (b − µx) + 2Aµy = 0 .<br />

A = P xyP −1<br />

yy ,<br />

b = µx − P xyP −1<br />

yy µy .<br />

⋆ Optimální lineární odhad minimalizující stˇrední kvadratickou chybu je tedy dán vztahem<br />

ˆxLMS(y) = µx + P xyP −1<br />

yy (y − µy) . (3)<br />

D˚uleˇzitou vlastností odhadu ˆxLMS je právě skutečnost, ˇze závisí pouze na prvních dvou mo-<br />

mentech – stˇredních hodnotách µx, µy a kovariančních maticích P xy, P yy. Platí samozˇrejmě<br />

vlastnost E {ˆxLMS(y)} = µx. Kovarianční matici m˚uˇzeme odvodit následovně<br />

x = E − ˆxLMS(y) x − ˆxLMS(y) T <br />

=<br />

= E<br />

P ˜xLMS (x − µx) − P xyP −1<br />

yy (y − µy) (x − µx) − P xyP −1<br />

yy (y − µy) T <br />

=<br />

= P xx − P xyP −1<br />

yy P yx − P xyP −1<br />

yy P yx + P xyP −1<br />

yy P yyP −1<br />

yy P yx .<br />

⋆ Kovarianční matice chyby odhadu tedy je<br />

P ˜xLMS = P xx − P xyP −1<br />

yy P yx . (4)


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 3<br />

⋆ Stochastick´y systém – lineární, diskrétní, pozorovateln´y<br />

x(k + 1) = Mx(k) + Nu(k) + v(k) (5)<br />

y(k) = Cx(k) + Du(k) + e(k) ,<br />

kde ˇsum procesu v(k) a ˇsum měˇrení e(k) jsou diskrétní bílé posloupnosti s nulovou stˇrední<br />

hodnotou<br />

E<br />

v(k)<br />

e(k)<br />

<br />

= 0 (6)<br />

a známou kovarianční maticí<br />

⎧<br />

T<br />

⎨<br />

v(k1) v(k2)<br />

E<br />

⎩ e(k1) e(k2)<br />

⎫ ⎬<br />

⎭ =<br />

<br />

Q S<br />

S T <br />

<br />

= 1 k1 = k2<br />

δ(k1 − k2) , δ(k1 − k2)<br />

. (7)<br />

R<br />

= 0 k1 = k2<br />

Z (7) vidíme, ˇze jsou ˇsumy navzájem korelované, ale v r˚uzn´ych časev´ych okamˇzicích jsou jiˇz<br />

nezávislé. Kovarianční matice jsou symetrické a uvaˇzujeme Q ≥ 0, R > 0.<br />

Pˇredpokládejme, ˇze v k-tém kroku algoritmu známe apriorní odhad stavu x(k) (tj. odhad<br />

vyuˇzívající data aˇz do času k−1, ale neberoucí v úvahu data y(k)), jehoˇz podmíněnou stˇrední<br />

hodnotu budeme značit<br />

ˆx(k| k − 1)<br />

pˇritom první index označuje běˇzn´y čas a druh´y index poslední měˇrení, které je uˇzito k určení<br />

odhadu. Kovarianční matici chyby odhadu stavu budeme značit<br />

P (k| k − 1) .<br />

Počáteční stav systému je tedy charakterizován stˇrední hodnotou ˆx(0) = ˆx(0| − 1) a kova-<br />

rianční maticí P (0) = P (0| − 1).<br />

Po změˇrení hodnoty v´ystupu y(k) chceme tyto hodnoty aktualizovat a získat aposteriorní<br />

odhad stavu (tj. odhad zahrnující měˇrení y(k))<br />

ˆx(k| k)<br />

a pˇrísluˇsnou kovarianční matici chyby odhadu<br />

P (k| k).<br />

Kalman˚uv <strong>filtr</strong> pro nekorelované ˇsumy procesu a měˇrení – v tomto pˇrípadě je<br />

matice S = 0.<br />

Nejprve odvodíme v´yvoj stˇrední hodnoty<br />

ˆx(k + 1| k − 1) = E {Mx(k) + Nu(k) + v(k)} = M ˆx(k| k − 1) + Nu(k)<br />

ˆy(k| k − 1) = E {Cx(k) + Du(k) + e(k)} = C ˆx(k| k − 1) + Du(k) ,<br />

(8)


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 4<br />

její chyby<br />

˜x(k + 1| k − 1) = x(k + 1) − ˆx(k + 1| k − 1) = M ˜x(k| k − 1) + v(k)<br />

˜y(k| k − 1) = y(k) − ˆy(k| k − 1) = C ˜x(k| k − 1) + e(k)<br />

a kovarianční matice chyby odhadu<br />

⎧<br />

T<br />

⎨<br />

˜x(k + 1) ˜x(k + 1)<br />

E<br />

⎩ ˜y(k) ˜y(k)<br />

⎫<br />

<br />

⎬<br />

k − 1<br />

⎭ =<br />

<br />

P xx<br />

P yx<br />

P xy<br />

P yy<br />

<br />

. (10)<br />

Odvodíme P xx<br />

<br />

<br />

T<br />

P xx = E [˜x (k + 1| k − 1)] [˜x (k + 1| k − 1)] =<br />

<br />

<br />

T<br />

= E [M ˜x(k| k − 1) + v(k)] [M ˜x(k| k − 1) + v(k)] =<br />

= E M ˜x(k| k −1)˜x T (k| k −1)M T +v(k)˜x T (k| k −1)M T +M ˜x(k| k −1)v(k)+v(k)v T (k) =<br />

= MP (k| k − 1)M T + 0 + 0 + Q .<br />

Obdobně získáme P xy, P yx a P yy<br />

<br />

P xx<br />

P yx<br />

P xy<br />

P yy<br />

<br />

T<br />

MP (k| k − 1)M + Q<br />

=<br />

CP (k| k − 1)M<br />

T<br />

MP (k| k − 1)C + S<br />

T + S T CP (k| k − 1)C T <br />

.<br />

+ R<br />

(11)<br />

ˇRekli jsme, ˇze pro nekorelované ˇsumy procesu a měˇrení je S = 0. Dosadíme-li nyní do (3),<br />

získáme vztah pro odhad stavu x(k)<br />

ˆx(k + 1| k − 1) = M ˆx(k| k − 1) + Nu(k)+<br />

+MP (k| k − 1)C T CP (k| k − 1)C T + R −1 [y(k) − C ˆx(k| k − 1) − Du(k)].<br />

Dosazením do (4) získáme Riccatiho rovnici pro Kalman˚uv <strong>filtr</strong><br />

P (k + 1| k − 1) = MP (k| k − 1)M T + Q −<br />

− MP (k| k − 1)C T CP (k| k − 1)C T + R −1 CP (k| k − 1)M T .<br />

Rovnice (12) a (13) pˇredstavují algoritmus Kalmanova <strong>filtr</strong>u a dají se rozdělit do dvou<br />

nezávisl´ych krok˚u [1].<br />

⋆ Datov´y (<strong>filtr</strong>ační) krok Kalmanova <strong>filtr</strong>u<br />

kde ε(k| k − 1) je chyba odhadu v´ystupu<br />

ˆx(k| k) = ˆx(k| k − 1) + L ′ (k) ε(k| k − 1) ,<br />

P (k| k) = P (k| k − 1) − L ′ (k)CP (k| k − 1) ,<br />

ε(k| k − 1) = y(k) − C ˆx(k| k − 1) − Du(k)<br />

(9)<br />

(12)<br />

(13)<br />

(14)


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 5<br />

a L ′ (k) je Kalmanovo zesílení datového kroku<br />

L ′ (k) = P (k| k − 1)C T CP (k| k − 1)C T + R −1 . (15)<br />

⋆ Časov´y (predikční) krok Kalmanova <strong>filtr</strong>u<br />

ˆx(k + 1| k) = M ˆx(k| k) + Nu(k) ,<br />

P (k + 1| k) = MP (k| k)M T + Q .<br />

Algoritmus Kalmanova <strong>filtr</strong>u je znázorněn na obr. 1. Poznmenejme, ˇze tento obrázek je pouze<br />

ilustrativní – datov´y krok Kalmanova <strong>filtr</strong>u je moˇzné provést aˇz po změˇrení nov´ych dat, tedy<br />

časov´y krok nemá dva mezikroky jak by se podle obrázku na první pohled zdálo.<br />

x(k-1|k-2)<br />

u(k-1)<br />

y(k-1)<br />

x(k-1|k-1)<br />

x(k|k-1)<br />

u(k)<br />

y(k)<br />

èasový krok<br />

x(k|k)<br />

datový krok<br />

Obrázek 1: Cyklus Kalmanova <strong>filtr</strong>u<br />

Uvědomme si, ˇze Kalmanovo zesílení celého <strong>filtr</strong>u je<br />

x(k+1|k)<br />

èas - t<br />

(16)<br />

L(k) = ML ′ (k). (17)<br />

Dále si vˇsimněme toho, ˇze pokud budou ˇsumy procesu a měˇrení korelované (S = 0), nep˚ujde<br />

algoritmus Kalmanova <strong>filtr</strong>u (rovnice (12) a (13)) rozdělit na datov´y a časov´y krok. V [1]<br />

je vˇsak ukázáno, ˇze úlohu Kalmanova <strong>filtr</strong>u pro korelované ˇsumy procesu a měˇrení lze vˇzdy<br />

pˇrevést na úlohu Kalmanova <strong>filtr</strong>u pro nekorelované ˇsumy procesu a měˇrení.<br />

Kalman˚uv <strong>filtr</strong> je tedy algoritmus generující posloupnost odhad˚u stavu ˆx(k|k) a kova-<br />

riančních matic chyb odhadu P (k|k), pˇričemˇz odhad stavu ˆx(k|k) v kaˇzdém kroku minima-<br />

lizuje kritérium<br />

JLMS = trace P (k|k). (18)


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 6<br />

2 Pˇríklady<br />

2.1 Praktick´y návrh Kalmanova <strong>filtr</strong>u<br />

Pˇríklad 2.1: Pro spojitou soustavu<br />

<br />

A =<br />

<br />

,<br />

<br />

B =<br />

000<br />

0 1 0 0<br />

0 0 1 0<br />

0 0 0 1<br />

−10 −11 −24010 −2539 −54<br />

31940<br />

<br />

, C = [ 1 0 0 0 ], D = [0]<br />

navrhněte časově invariantní Kalman˚uv <strong>filtr</strong>. Periodu vzorkování volte Ts = 0,01 s. Pˇredpo-<br />

kládejte nekorelované ˇsumy procesu a měˇrení.<br />

ˇReˇsení: Systém je pozorovateln´y, takˇze má smysl pokračovat v návrhu. Nejprve pro-<br />

vedeme diskretizaci, abychom získali matice M a N. Návrh Kalmanova <strong>filtr</strong>u spočívá ve<br />

vyˇreˇsení Riccatiho rovnice (13). Tuto rovnici budeme ˇreˇsit sekvenčně ve směru času (na<br />

rozdíl od Riccatiho rovnice pro LQ regulátor, kterou jsme ˇreˇsili zpětně v čase).<br />

Abychom mohli Kalman˚uv <strong>filtr</strong> navrhnout, musíme znát parametry ˇsumu procesu a ˇsumu<br />

měˇrení (kovarianční matice těchto ˇsum˚u Q a R), nebo je nějak odhadnout. Pˇredpokládejme<br />

Q = diag [ 0,01; 0,01; 0,1; 0,1 ] , R = [ 0,05 ].<br />

Budeme tedy iteračně ˇreˇsit rovnici (13) dokud nedosáhneme ustáleného Kalmanova zesílení<br />

(podobně jako u LQ regulátoru). Toto ustálené Kalmanovo zesílení pouˇzijeme pro časově<br />

invariantní <strong>filtr</strong> (viz obr. 6).<br />

L<br />

K<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

−1.5<br />

−2<br />

Kalmanovo zesileni L<br />

−2.5<br />

0 50 100 150 200 250 300<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

−1.5<br />

Kalmanovo zesileni K<br />

−2<br />

0 50 100 150<br />

Diskretni cas − k<br />

200 250 300<br />

Obrázek 2: Pr˚uběh Kalmanova zesílení


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 7<br />

x 1<br />

err<br />

y<br />

err<br />

4<br />

2<br />

0<br />

Skutecny stav systemu<br />

−2<br />

0<br />

5<br />

1 2<br />

Korelace<br />

3<br />

0<br />

−5<br />

−400<br />

0.5<br />

−200 0 200<br />

Chyba odhadu<br />

400<br />

0<br />

−0.5<br />

0 1 2 3<br />

Cas (s)<br />

5<br />

0<br />

x 1p<br />

x 1 , x 1p<br />

Obrázek 3: Pr˚uběh odhadu stavu x1<br />

Vystup systemu<br />

−5<br />

0<br />

40<br />

1 2<br />

Korelace<br />

3<br />

20<br />

0<br />

−20<br />

−400<br />

1<br />

−200 0 200<br />

Chyba odhadu<br />

400<br />

0<br />

−1<br />

0 1 2 3<br />

Cas (s)<br />

y p<br />

y, y p<br />

4<br />

2<br />

0<br />

Odhad stavu<br />

−2<br />

0<br />

10<br />

1 2<br />

Histogram chyby odhadu<br />

3<br />

5<br />

0<br />

−0.4<br />

4<br />

−0.2 0 0.2<br />

Stav a jeho odhad<br />

0.4<br />

2<br />

0<br />

−2<br />

0 1 2 3<br />

Cas (s)<br />

4<br />

2<br />

0<br />

Odhad vystupu<br />

−2<br />

0<br />

10<br />

1 2<br />

Histogram chyby odhadu<br />

3<br />

5<br />

0<br />

−1<br />

5<br />

−0.5 0 0.5<br />

Vystup a jeho odhad<br />

1<br />

0<br />

−5<br />

0 1 2 3<br />

Cas (s)<br />

Obrázek 4: Pr˚uběh odhadu v´ystupu y


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 8<br />

Pokud jsme navrhli Kalman˚uv <strong>filtr</strong> správně, musí b´yt chyba predikce (odhadu) v´ystupu bíl´y<br />

ˇsum. O tom se m˚uˇzeme pˇresvědčit na obr. 4.<br />

Zesílení (dB)<br />

Fáze (°)<br />

−20<br />

−40<br />

−60<br />

−80<br />

−100<br />

−120<br />

−140 0<br />

−90<br />

−180<br />

−270<br />

−360<br />

10 −1<br />

−450<br />

10 0<br />

Prenos U −> odhad X 1<br />

10 1<br />

Frekvence (rad/s)<br />

10 2<br />

10 3<br />

Zesílení (dB)<br />

Fáze (°)<br />

0<br />

−5<br />

−10<br />

−15 0<br />

−45<br />

−90<br />

−135<br />

−180<br />

10 0<br />

−225<br />

Prenos Y −> odhad X 1<br />

10 1<br />

Frekvence (rad/s)<br />

Obrázek 5: Frekvenční vlastnosti časově invariantního Kalmanova <strong>filtr</strong>u<br />

Obrázek 6: Simulinkové schéma časově invariantního Kalmanova <strong>filtr</strong>u<br />

Na obr. 6 vidíme, ˇze časově invariantní Kalman˚uv <strong>filtr</strong> má stejnou strukturu jako pozoro-<br />

vatel stavu. Matice L je ovˇsem navrˇzena optimálně pro kovariance ˇsumu procesu Q a ˇsumu<br />

měˇrení R. ✷<br />

10 2<br />

10 3


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 9<br />

2.1.1 ˇReˇsení pomocí Matlabu<br />

%----- KALMANUV FILTR<br />

randn(’state’,0);%reset generatoru nahodnych cisel<br />

%----- Soustava<br />

load system.mat;<br />

[Ad, Bd, Cd, Dd] = ssdata(c2d(ss(Ac,Bc,Cc,Dc),Ts));<br />

Ns = size(Ad,1); Ny = size(Cd,1);<br />

%----- Kovariancni matice<br />

Qd = diag([0.01, 0.01, 0.1, 0.1]); Rd = 0.05;<br />

Pd = 1000*Qd;%pocatecni hodnota kovariancni matice<br />

%----- Pocatecni podminky<br />

xs = zeros(Ns,1); xp = zeros(Ns,1);<br />

%----- Inicializace historie<br />

N = 300;<br />

uh = [1*ones(1,N)]; eh = zeros(1,N);<br />

xsh = zeros(Ns,N); xph = zeros(Ns,N);<br />

Lh = zeros(Ns,N); Kh = zeros(Ns,N);<br />

ysh = zeros(1,N); yph = zeros(1,N);<br />

%----- Simulace<br />

for t = 1 : N<br />

end<br />

v = chol(Qd)’*randn(Ns,1);<br />

e = chol(Rd)’*randn(1,1);<br />

u = uh(t);<br />

ys = Cd*xs + Dd*u + e;%vystup systemu ys(k)<br />

%----- Datovy krok KF<br />

yp = Cd*xp + Dd*u;%odhad vystupu yp(k|k-1)<br />

ep = ys - yp;%chyba odhadu vystupu e(k|k-1)<br />

L = Pd*Cd’*inv(Cd*Pd*Cd’+Rd);%Kalmanovo zesileni<br />

Pd = Pd - L*Cd*Pd;%kovariancni matice P(k|k)<br />

xp = xp + L*ep;%odhad stavu x(k|k)<br />

yp = Cd*xp + Dd*u;%odhad vystupu y(k|k)<br />

%----- Ulozeni dat<br />

eh(t) = ep; xsh(:,t) = xs; xph(:,t) = xp; ysh(t) = ys;<br />

yph(t) = yp; Lh(:,t) = L; Kh(:,t) = Ad*L;<br />

xs = Ad*xs + Bd*u + v;%stav systemu x(k)<br />

%----- Casovy krok KF<br />

xp = Ad*xp + Bd*u;%odhad stavu x(k+1|k)<br />

Pd = Ad*Pd*Ad’ + Qd;%kovariancni matice P(k+1|k)


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 10<br />

%----- Prubehy stavu<br />

DobaC = (1:N)*Ts;<br />

err = xsh - xph(1:Ns,:);<br />

figure(1);<br />

subplot(3,2,1);<br />

plot(DobaC,xsh(1,:)’,’b’);<br />

ylabel(’x1’);title(’Skutecny stav systemu’);<br />

current=axis;<br />

subplot(3,2,2);<br />

plot(DobaC,xph(1,:)’,’r’);<br />

ylabel(’x1p’);title(’Odhad stavu’);<br />

axis(current);<br />

[C,LAGS]=xcorr(err(1,:));<br />

subplot(3,2,3);<br />

plot(LAGS,C);<br />

title(’Korelace’);<br />

subplot(3,2,4);<br />

hist(err(1,:),N/2);<br />

title(’Histogram chyby odhadu’);<br />

subplot(3,2,5);<br />

plot(DobaC,err(1,:)’);<br />

xlabel(’Cas (sec)’);ylabel(’err’);title(’Chyba odhadu’);<br />

subplot(3,2,6);<br />

plot(DobaC,xsh(1,:)’,’b’);<br />

hold on;<br />

plot(DobaC,xph(1,:)’,’r’);<br />

xlabel(’Cas (sec)’);ylabel(’x1, x1p’);title(’Stav a jeho odhad’);<br />

%-----Frekvencni vlastnosti invariantniho KF<br />

K = Ad*Lh(:,end);<br />

Ak = Ad - K*Cd;<br />

Bk = [Bd - K*Dd,K];<br />

Ck = eye(Ns); Dk = zeros(Ns,2);<br />

[NumKU DenK] = ss2tf(Ak,Bk,Ck,Dk,1);%prenos U -> odhad X<br />

[NumKY DenK] = ss2tf(Ak,Bk,Ck,Dk,2);%prenos Y -> odhad X<br />

figure(Ns+3);<br />

bode(tf(NumKU(1,:),DenK,Ts));<br />

title(’Prenos U -> odhad X 1’);<br />

figure(Ns+4);<br />

bode(tf(NumKY(1,:),DenK,Ts));<br />

title(’Prenos Y -> odhad X 1’);


MODERNÍ TEORIE ˇ RÍZENÍ – Kalman˚uv <strong>filtr</strong> 11<br />

3 Domácí úloha<br />

Pˇríklad 3.1: Proved’te diskretizaci (Ts = 0,01 s) systému z pˇríkladu 2.1. Systém simu-<br />

lujte jako stochastick´y. Pro r˚uzné kovarianční matice Q a R navrhněte časově invariantní<br />

Kalman˚uv <strong>filtr</strong> a porovnejte jeho frekvenční vlastnosti a vlastní čísla matice (M − LC)<br />

v závislosti na kovariančních maticích Q a R. V´ysledky ověˇrte simulacemi v Matlabu.<br />

Navrhněte Kalman˚uv <strong>filtr</strong> pro kovarianční matice Q a R. Stochastick´y systém ale simu-<br />

lujte s jin´ymi kovariancemi ˇsum˚u. Co pˇri simulacích pozorujete?<br />

Dále jen pro dobrovolníky. Pouˇzijte pro ˇrízení systému LQ regulátor a diskutujte rozdíly<br />

pˇri regulaci, pouˇzijeme-li identick´y pozorovatel stavu nebo v´yˇse navrˇzen´y Kalman˚uv <strong>filtr</strong>.<br />

Reference<br />

[1] Havlena, V. Moderní teorie ˇrízení – Doplňkové skriptum. Praha: Vydavatelství<br />

ČVUT, 1999. ISBN 80-01-02036-3<br />

[2] Havlena, V.; ˇ Stecha, J. Moderní teorie ˇrízení. Praha: Vydavatelstní ČVUT, 2000.<br />

[3] Roubal, J.; Pekaˇr, J. Moderní teorie ˇrízení [online]. Poslední revize 2005-01-16<br />

[cit. 2005-01-16], 〈http://dce.felk.cvut.cz/mtr/〉.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!