#LyX 1.6.5 created this file. For more info see http://www.lyx.org/ \lyxformat 345 \begin_document \begin_header \textclass scrreprt \begin_preamble \usepackage[czech]{babel} \end_preamble \use_default_options true \language czech \inputencoding auto \font_roman default \font_sans default \font_typewriter default \font_default_family default \font_sc false \font_osf false \font_sf_scale 100 \font_tt_scale 100 \graphics default \paperfontsize default \spacing single \use_hyperref false \papersize a4paper \use_geometry false \use_amsmath 1 \use_esint 1 \cite_engine basic \use_bibtopic false \paperorientation portrait \secnumdepth 2 \tocdepth 2 \paragraph_separation indent \defskip medskip \quotes_language german \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \author "" \author "" \end_header \begin_body \begin_layout Standard \align left \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty} \end_layout \end_inset \end_layout \begin_layout Standard \align center \size large České vysoké učení technické v Praze \end_layout \begin_layout Standard \align center \size large Fakulta jaderná a fyzikálně inženýrská \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard \align center Katedra matematiky \end_layout \begin_layout Standard \align center Obor: Inženýrská informatika \end_layout \begin_layout Standard \align center Zaměření: Softwarové inženýrství \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard \align center \begin_inset Graphics filename logo_cvut.eps lyxscale 20 scale 20 \end_inset \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard \align center \size larger \color black Iterativní lokální dynamické programování pro návrh duálního řízení \end_layout \begin_layout Standard \begin_inset VSpace smallskip \end_inset \end_layout \begin_layout Standard \align center \size larger \color black Iterative local dynamic programming for dual control \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard \align center \size largest \color black BAKALÁŘSKÁ \size larger \size largest PRÁCE \end_layout \begin_layout Standard \begin_inset VSpace vfill \end_inset \end_layout \begin_layout Standard \align center Vypracoval: Michal Vahala \end_layout \begin_layout Standard \align center Vedoucí práce: Ing. Václav Šmídl, Ph.D. \end_layout \begin_layout Standard \align center Rok: 2010 \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty} \end_layout \end_inset \end_layout \begin_layout Standard zadání práce \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty}~ \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset VSpace vfill \end_inset \end_layout \begin_layout Subsubsection* Prohlášení \end_layout \begin_layout Standard Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard \noindent \align left V Praze dne \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \begin_inset space \hfill{} \end_inset \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \SpecialChar \ldots{} \end_layout \begin_layout Standard \noindent \align block \begin_inset space \hfill{} \end_inset Michal Vahala \begin_inset ERT status open \begin_layout Plain Layout ~~ \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty}~ \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset VSpace vfill \end_inset \end_layout \begin_layout Subsubsection* Poděkování \end_layout \begin_layout Standard Především bych chtěl poděkovat vedoucímu práce Ing. Václavu Šmídlovi, Ph.D. za odborné vedení, cenné rady a připomínky. Dále pak svým rodičům za poskytnuté zázemí a v neposlední řadě i své přítelkyni Bc. Pavle Procházkové za trpělivost a podporu. \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Standard \begin_inset space \hfill{} \end_inset Michal Vahala \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty} \end_layout \end_inset \end_layout \begin_layout Description \emph on Název \begin_inset space \space{} \end_inset práce: \emph default \color black \begin_inset ERT status open \begin_layout Plain Layout ~ \end_layout \end_inset \begin_inset Newline newline \end_inset Iterativní lokální dynamické programování pro návrh duálního řízení \end_layout \begin_layout Description \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Description \emph on Autor: \emph default Michal Vahala \end_layout \begin_layout Description \emph on Obor: \emph default Inženýrská informatika \end_layout \begin_layout Description \emph on Druh \begin_inset space \space{} \end_inset práce: \emph default Bakalářská práce \end_layout \begin_layout Description \emph on Vedoucí \begin_inset space \space{} \end_inset práce: \emph default Ing. Václav Šmídl, Ph.D. \end_layout \begin_layout Description \emph on Abstrakt: \emph default Tato práce se zabývá algoritmem \emph on iterativního lokálního dynamického programování \emph default jako jednou z metod pro řešení problému duálního řízení. Zmiňovaný algoritmus byl implementován pro jednoduchý systém, integrátor s neznámým ziskem. Dosažené výsledky byly porovnány s řízením získaným pomocí jiných metod, zejména použitím principu separace. Dále byl algoritmus testován i pro složitější systém, konkrétně jde o synchronn í motor s permanentními magnety. Práce obsahuje obecnou teorii týkající se duálního řízení, popis užitých algoritmů a systémů pro testování a konkrétní přehled získaných výsledků. Závěrem jsou diskutovány vlastnosti a použitelnost algoritmu \emph on iterativního lokálního dynamického programování. \end_layout \begin_layout Description \emph on Klíčová \begin_inset space \space{} \end_inset slova: \emph default duální řízení, dynamické programování, iterativní lokální dynamické programován í, integrátor s neznámým ziskem, synchronní motor s permanentními magnety \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Description \emph on Title: \emph default \color black \begin_inset ERT status open \begin_layout Plain Layout ~ \end_layout \end_inset \begin_inset Newline newline \end_inset Iterative local dynamic programming for dual control \end_layout \begin_layout Description \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Description \emph on Author: \emph default Michal Vahala \end_layout \begin_layout Description \emph on Abstract: \emph default The thesis is concerned with the \emph on iterative local dynamic programming \emph default algorithm as one of the methods used for solving a dual control problem. The algorithm has been implemented for a simple system -- integrator with an unknown gain. Obtained results have been compared with a control designed by other methods, especially by using a separation principle. Next, the algorithm has been tested on a more complicated system, namely permanent magnet synchronous machine. The thesis contains general dual control theory, used algorithms and systems descriptions and list of gained results. Lastly, the features and usability of the \emph on iterative local dynamic programming \emph default algorithm are discussed. \end_layout \begin_layout Description \emph on Key \begin_inset space \space{} \end_inset words: \emph default dual control, dynamic programming, iterative local dynamic programming, integrator with unknown gain, permanent magnet synchronous machine \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty} \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset CommandInset toc LatexCommand tableofcontents \end_inset \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash thispagestyle{empty} \end_layout \end_inset \end_layout \begin_layout Chapter* Seznam použitého označení \end_layout \begin_layout Labeling \labelwidthstring 00.00.0000 \emph on iLDP \emph default iterativní lokální dynamické programování \end_layout \begin_layout Labeling \labelwidthstring 00.00.0000 \emph on LQG \emph default lineárně kvadraticky gaussovské řízení (Linear-Quadratic-Gaussian) \end_layout \begin_layout Labeling \labelwidthstring 00.00.0000 \emph on iLQG \emph default iterativní LQG \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Addchap Úvod \end_layout \begin_layout Standard Skutečný svět se nikdy nechová přesně podle matematických rovnic, protože ty jsou vždy jen jakýmsi zjednodušením nebo přiblížením. V reálném světě se vyskytuje mnoho neznámých veličin, poruch, nepředvídatelných vlivů a ani naše měřící přístroje nejsou přesné. Chceme-li efektivně řídit nějaký systém, musíme si být těchto vlivů vědomi a zahrnout je do našich uvažování. Situace se však ještě může zkomplikovat, když jeden nebo více parametrů neznáme. To může nastat z různých důvodů, například příslušné čidlo nebo měřící přístroj nemůžeme nebo nechceme (například z důvodu vysoké ceny) instalovat a tedy o velikosti příslušné hodnoty můžeme jen usuzovat ze známých dat. Ještě složitější situace nastane, když uvažujeme neznámý parametr proměnný. \end_layout \begin_layout Standard \color black Máme tedy dva cíle, musíme systém co nejlépe řídit a současně se snažit o co nejpřesnější určení neznámých parametrů. Tyto dva postupy jsou však obecně v rozporu, protože parametry se nejlépe určují, když je systém vybuzen a nechová se optimálně. Právě tento rozpor a nalezení kompromisu, který povede k jeho řešení, je podstatou duálního řízení. \end_layout \begin_layout Standard \color black Pro přiblížení ilustrujme problém na jednoduchém příkladě: Uvažujme elektromotor s možností řídit napětí na vstupu motoru a měřit příslušné proudy. Jedná se tedy o systém se dvěma vstupy a dvěma výstupy. Cílem našeho řízení je dosažení požadovaných otáček rotoru. Ovšem otáčky a ani polohu hřídele měřit nemůžeme. Máme o nich však znalost v podobě počátečních středních hodnot a variancí. Naší snahou je co nejpřesněji určit hodnotu otáček a polohy hřídele a současně systém řídit tak, abychom dosáhli požadované hodnoty otáček. Tyto dvě snahy jsou ale v rozporu, protože nejvíce informací o neznámých parametrech získáme, když je motor vybuzen. Tedy například se prudce rozjíždí, brzdí, rychle mění rychlost nebo kmitá, což se projevuje v proudech, které máme možnost měřit. Ale právě vybuzení motoru je v rozporu se snahou o dobré řízení, protože chyba, které se dopustíme, je většinou nepřijatelná. Naopak, když se systém snažíme řídit bez dostatečné znalosti jeho parametrů, s velkou pravděpodobností selžeme. \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard Námětem této bakalářské práce je algoritmus \emph on iterativního lokálního dynamického programování \emph default ( \emph on iLDP \emph default ) jako jedna z metod pro řešení problému duálního řízení. Algoritmus byl navržen a popsán v článku \color black \begin_inset CommandInset citation LatexCommand cite key "TodorovTassaILDP" \end_inset \color inherit . Jak už prozrazuje název algoritmu, jedná se o iterační metodu. Tedy stručně řečeno, algoritmus vyjde od nějakého počátečního řízení, které je ovšem nutno dodat jako apriorní informaci a v cyklech (iteracích) tuto řídící strategii vylepšuje za účelem získání řízení optimálního. Dále se jedná o metodu lokální, což můžeme jednoduše chápat tak, že kandidáti na \begin_inset Quotes gld \end_inset vylepšení \begin_inset Quotes grd \end_inset řízení jsou vybíráni z jistého, zatím blíže nespecifikovaného okolí původní řídící strategie. Nakonec algoritmus využívá obecné schéma dynamického programování, které bude blíže popsáno v dalším textu. \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Standard Cílem této práce bylo seznámit se s obecnou tématikou duálního řízení a detailněji s konkrétním algoritmem - iterativním lokálním dynamickým programová ním. Následně tento algoritmus implementovat a aplikovat na jednoduchý systém. Otestovat jeho funkčnost a schopnost řídit, a to i v porovnání s jinými metodami a algoritmy. Dále se pokusit implementovat algoritmus \emph on iLDP \emph default pro složitější systém blíže praktické aplikaci, konkrétně se jedná o synchronní motor s permanentními magnety. Otestovat funkčnost a případně srovnat s dostupnými výsledky jiných řídících strategií. Na základě získaných výsledků posoudit výhody a nevýhody algoritmu a jeho použitelnost pro další úlohy. \end_layout \begin_layout Standard Hlavním přínosem práce je otestování vlastností algoritmu \emph on iLDP \emph default na jiných problémech, než pro které byla vyvinuta autory; objevení kladů a záporů algoritmu a dále díky srovnání s jinými algoritmy získání přehledu, pro které praktické aplikace je vhodnější, respektive méně vhodný než srovnávan é metody. Prvotní očekávání pro srovnání algoritmu \emph on iLDP \emph default a řízení získaného pomocí principu separace jsou, že \emph on iLDP \emph default bude pomalejší co do výpočetního času, avšak přesnost získaných výsledků bude lepší. Dále je očekávána nezanedbatelná závislost výsledného řízení na volbě použitých aproximací. \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Chapter Teorie duálního řízení \begin_inset CommandInset label LatexCommand label name "cha:Teorie-duálního-řízení" \end_inset \end_layout \begin_layout Section Základní pojmy \end_layout \begin_layout Subsection Systém a řízení \end_layout \begin_layout Subsubsection Systém \end_layout \begin_layout Standard Základním pojmem, se kterým budeme v textu pracovat, je \emph on systém \emph default . Obdobně jako základní pojmy zejména v matematických vědách (bod, množina, algoritmus,\SpecialChar \ldots{} ), nelze tento pojem exaktně definovat. Systém si můžeme představit jako jistý \begin_inset Quotes gld \end_inset objekt \begin_inset Quotes grd \end_inset , často bude reprezentovat objekt skutečného světa. Hlavní vlastností systému je, že má zpravidla jeden nebo více vstupů, pomocí kterých mu můžeme předávat informaci -- řízení a jeden nebo více výstupů, což jsou hodnoty, které pozorujeme. Co se odehrává uvnitř systému však obecně nevíme. Řízení, které budeme dodávat systému na vstup, bude v textu značeno písmenem \emph on \begin_inset Formula $u$ \end_inset \emph default . Písmenem \emph on \begin_inset Formula $y$ \end_inset \emph default bude označena pozorovaná hodnota na výstupu. \end_layout \begin_layout Standard Chování systému, to je jakým výstupem reaguje na vstup, popisujeme dle \begin_inset CommandInset citation LatexCommand cite key "MelicharLS" \end_inset obecně diferenciální rovnicí, respektive soustavou diferenciálních rovnic vyšších řádů. Jedná se o takzvaný \color black vnější popis \color inherit . Tento druh popisu pohlíží na systém \begin_inset Quotes gld \end_inset zvenku \begin_inset Quotes grd \end_inset bez skutečné znalosti, co se odehrává uvnitř systému a jaká je jeho podstata. Vnější popis obvykle obdržíme při odvození modelu systému z fyzikálních rovnic. Omezení, která z něj plynou, se snažíme odstranit zavedením \color black vnitřního (stavového) popisu \color inherit , kdy soustavu diferenciálních rovnic vyššího řádu převedeme vhodnou volbou nových proměnných \emph on \begin_inset Formula $x$ \end_inset \series bold \series default \emph default na soustavu diferenciálních rovnic prvního řádu. Proměnné \emph on \begin_inset Formula $x$ \end_inset \series bold \series default \emph default označujeme jako \color black stavové proměnné \color inherit . \end_layout \begin_layout Subsubsection Řízení \end_layout \begin_layout Standard Naším úkolem je pro zadaný systém nalézt regulátor, tedy obecně řízení \emph on \begin_inset Formula $u$ \end_inset \emph default takové, které dodané na vstup způsobí, že systém se bude \begin_inset Quotes gld \end_inset chovat podle našich požadavků \begin_inset Quotes grd \end_inset . To zpravidla znamená, že hodnoty výstupní veličiny \series bold \emph on \begin_inset Formula $y$ \end_inset \series default \emph default dosáhnou nebo se přiblíží s danou přesností požadované hodnotě v podobě referenčního signálu, který regulátor dostává z vnějšku a současně dodrží předem stanovená omezení. Práce je ovšem zaměřena na řízení složitějších systémů, u kterých jeden nebo více parametrů neznáme přesně. Tedy některý (více) z koeficientů v rovnicích popisujících systém není znám. Máme však o něm jistou statistickou informaci v podob \color black ě jeho \color inherit očekávané hodnoty a variance. Navíc je-li systém nelineární, jsou výsledné rovnice příliš složité a tedy analyticky neřešitelné. Pro numerické řešení jsou rovnice systému zpravidla převáděny do diskrétního tvaru. \end_layout \begin_layout Standard Řízení obecně dělíme podle \begin_inset CommandInset citation LatexCommand cite key "MelicharLS" \end_inset na dva typy: \emph on Přímovazební řízení \emph default užíváme v případě, kde je k dispozici přesný matematický model systému a je vyloučen výskyt neurčitostí. Toto řízení nevyužívá žádné zpětné informace od systému a regulátor pracuje pouze s referenčním signálem. Naproti tomu \emph on zpětnovazební řízení \emph default využívá i informace o skutečném výstupu systému a snaží se tak eliminovat chyby v důsledku neurčitostí a nepřesnosti modelu. \end_layout \begin_layout Subsubsection Duální řízení \end_layout \begin_layout Standard Naším cílem je navrhnout regulátor pro zadaný systém s neznámými parametry. Úkoly jsou tedy dva: 1. \emph on opatrnost \emph default - efektivně systém řídit a 2. \emph on buzení \emph default - určit neznámé parametry. Tyto dva přístupy jsou ale obecně v rozporu. Abychom mohli systém dobře řídit, potřebujeme znát parametry co nejpřesněji. Nejvíce informací o parametrech však získáme, když je systém vybuzen a nechová se optimálně. Tyto pojmy není snadné kvantifikovat, ale velmi často se projevují v konkrétníc h řídících schématech. Naším úkolem je pokusit se nalézt nějaký kompromis mezi oběma úkoly. Právě tento přístup je označován jako \emph on duální řízení \emph default \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset . \end_layout \begin_layout Section Dynamické programování \end_layout \begin_layout Subsection Formulace problému \end_layout \begin_layout Standard V textu budeme pracovat zpravidla s diskrétním systémem, ve smyslu systému s diskrétním časem, protože výpočty jsou prováděny ve většině případů problemat iky duálního řízení numericky. Rovnice popisující systém jsou však zpravidla ve spojitém tvaru (model často vychází ze skutečnosti, popřípadě fyzikálních zákonů). V tomto případě provádíme diskretizaci. \end_layout \begin_layout Standard Dále budeme v textu předpokládat konečný časový horizont a ztrátovou funkci aditivní v čase. Je samozřejmě možno uvažovat i složitější úlohy řízení systémů nevyhovujících těmto požadavků, těmi se však zabývat nebudeme. \end_layout \begin_layout Standard Základní problém je formulován podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset následovně: \end_layout \begin_layout Standard \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Standard Uvažujme stavový popis diskrétního dynamického systému \begin_inset Formula \begin{equation} \begin{array}{cc} x_{k+1}=f_{k}(x_{k},u_{k},w_{k}), & k=0,\ldots,N-1\end{array},\label{eq:zakladniproblem}\end{equation} \end_inset kde \begin_inset Formula $x_{k}$ \end_inset je stavová proměnná, \begin_inset Formula $u_{k}$ \end_inset řízení a \begin_inset Formula $w_{k}$ \end_inset náhodná porucha, vše v čase \begin_inset Formula $k$ \end_inset při celkovém časovém horizontu \begin_inset Formula $N$ \end_inset . Na řízení \begin_inset Formula $u_{k}$ \end_inset klademe omezení, že může nabývat pouze hodnot z neprázdné množiny \begin_inset Formula $U_{k}(x_{k})$ \end_inset závislé na stavu \begin_inset Formula $x_{k}$ \end_inset . Náhodná porucha \begin_inset Formula $w_{k}$ \end_inset je charakterizována rozdělením pravděpodobnosti \begin_inset Formula $P_{k}$ \end_inset , které může explicitně záviset na \begin_inset Formula $x_{k}$ \end_inset a \begin_inset Formula $u_{k}$ \end_inset , ne však na předchozích poruchách \begin_inset Formula $w_{k-1},\ldots,w_{0}$ \end_inset . \end_layout \begin_layout Standard Dále uvažujme množinu řízení, jedná se o posloupnost funkcí \begin_inset Formula \[ \pi=\{\mu_{0},\ldots,\mu_{N-1}\},\] \end_inset kde \begin_inset Formula $\mu_{k}$ \end_inset přiřazuje stavu \begin_inset Formula $x_{k}$ \end_inset přípustné řízení \begin_inset Formula $u_{k}=\mu_{k}(x_{k})$ \end_inset , to je takové, že \begin_inset Formula $\mu_{k}(x_{k})\in U_{k}(x_{k})$ \end_inset , množinu přípustných řešení označme \begin_inset Formula $\Pi$ \end_inset . Máme-li dány počáteční stav \begin_inset Formula $x_{0}$ \end_inset a přípustné řešení \begin_inset Formula $\pi$ \end_inset , můžeme stavy \begin_inset Formula $x_{k}$ \end_inset a poruchy \begin_inset Formula $w_{k}$ \end_inset považovat za náhodné veličiny s rozdělemím definovaným systémem rovnic \begin_inset CommandInset ref LatexCommand ref reference "eq:zakladniproblem" \end_inset , kde za řízení \begin_inset Formula $u_{k}$ \end_inset dosadíme hodnotu funkce \begin_inset Formula $\mu_{k}$ \end_inset v \begin_inset Formula $x_{k}$ \end_inset . \end_layout \begin_layout Standard Pro dané ztráty v jednotlivých časech -- funkce \begin_inset Formula $g_{k}$ \end_inset , pak definujeme očekávanou ztrátu \begin_inset Formula $\pi$ \end_inset v \begin_inset Formula $x_{0}$ \end_inset jako \begin_inset Formula \[ J_{\pi}(x_{0})=\mathbf{E}\left\{ g_{N}(x_{N})+\sum_{k=0}^{N-1}g_{k}\left(x_{k},\mu_{k}(x_{k}),w_{k}\right)\right\} \] \end_inset kde je očekávaná hodnota počítána přes náhodné veličiny \begin_inset Formula $w_{k}$ \end_inset a \begin_inset Formula $x_{k}$ \end_inset . Optimální řízení \begin_inset Formula $\pi^{*}$ \end_inset je právě to, které minimalizuje ztrátu \begin_inset Formula \[ J_{\pi^{*}}(x_{0})=\min_{\pi\in\Pi}J_{\pi}(x_{0}).\] \end_inset Optimální ztrátu označme \begin_inset Formula $J^{*}(x_{0})$ \end_inset . \end_layout \begin_layout Subsection Přístup dynamického programování \end_layout \begin_layout Standard Dynamické programování dle \begin_inset CommandInset citation LatexCommand cite key "ViriusZA" \end_inset je jedním ze způsobů návrhu algoritmů pro řešení jistých typu optimalizačních problémů. Konkrétně se uplatňuje v případě, že se jedná o diskrétní optimalizační úlohu; na řešení daného problému můžeme nahlížet jako na konečnou posloupnost rozhodnutí a platí \emph on princip optimality \emph default . \end_layout \begin_layout Subsubsection Princip optimality \end_layout \begin_layout Standard Nechť \begin_inset Formula $\pi^{*}=\left\{ \mu_{0}^{*},\mu_{1}^{*},\ldots,\mu_{N-1}^{*}\right\} $ \end_inset je optimální řídící strategie pro \color black základní \color inherit problém a předpokládejme, že když aplikujeme řízení \begin_inset Formula $\pi^{*}$ \end_inset , daný stav \begin_inset Formula $x_{i}$ \end_inset se vyskytne v čase \begin_inset Formula $i$ \end_inset s pozitivní pravděpodobností. Uvažujme podproblém, kdy ve stavu \begin_inset Formula $x_{i}$ \end_inset a čase \begin_inset Formula $i$ \end_inset chceme minimalizovat \emph on náklady na pokračování \emph default (v anglické literatuře označováno jako \color black \begin_inset Quotes gld \end_inset cost-to-go \color inherit \begin_inset Quotes grd \end_inset ) od času \begin_inset Formula $i$ \end_inset do \begin_inset Formula $N$ \end_inset \begin_inset Formula \[ \mathbf{E}\left\{ g_{N}(x_{N})+\sum_{k=i}^{N-1}g_{k}(x_{k},\mu_{k}(x_{k}),w_{k})\right\} \] \end_inset Potom úsek strategie \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none \begin_inset Formula $\left\{ \mu_{i}^{*},\mu_{i+1}^{*},\ldots,\mu_{N-1}^{*}\right\} $ \end_inset je optimální pro tento podproblém. \begin_inset VSpace medskip \end_inset \end_layout \begin_layout Standard Intuitivně je princip optimality velmi jednoduchý. Jestliže úsek strategie \begin_inset Formula $\left\{ \mu_{i}^{*},\mu_{i+1}^{*},\ldots,\mu_{N-1}^{*}\right\} $ \end_inset nebude optimální, budeme schopni dále zredukovat cenu přechodem k optimální strategii pro podproblém. \end_layout \begin_layout Standard Princip optimality umožňuje optimální strategii konstruovat postupně. Nejdříve nalezneme optimální strategii pro koncový podproblém zahrnující poslední krok. Poté rozšiřujeme podproblém od konce přidáním předposledního kroku a tak dále. Takto může být vytvořena optimální strategie pro celý problém. \end_layout \begin_layout Standard Algoritmus dynamického programování je tedy založen na následující myšlence: Algoritmus pracuje iterativně a řeší \color black koncové \color inherit podproblémy pro daný časový úsek, při tom využívá řešení předchozích \color black koncových \color inherit podproblémů pro kratší časové úseky. Převzato z \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset . \end_layout \begin_layout Subsubsection Formulace algoritmu dynamického programování \end_layout \begin_layout Standard Podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset , pro každý počáteční stav \begin_inset Formula $x_{0}$ \end_inset je optimální cena \begin_inset Formula $J^{*}(x_{0})$ \end_inset základního problému rovna \begin_inset Formula $J_{0}(x_{0})$ \end_inset , získané z posledního kroku následujícího algoritmu, který prochází zpět časy od \begin_inset Formula $N-1$ \end_inset do \begin_inset Formula $0$ \end_inset : \begin_inset Formula \[ J_{N}(x_{N})=g_{N}(x_{N})\] \end_inset \end_layout \begin_layout Standard \begin_inset Formula \begin{equation} J_{k}(x_{k})=\min_{u_{k}\in U_{k}(x_{k})w_{k}}\mathbf{E}\left\{ g_{k}(x_{k},u_{k},w_{k})+J_{k+1}(f_{k}(x_{k},u_{k},w_{k}))\right\} \label{eq:Jkeqmin}\end{equation} \end_inset \begin_inset Formula \[ k=0,1,\ldots,N-1\] \end_inset \end_layout \begin_layout Standard kde je očekávaná hodnota počítána podle náhodné veličiny \begin_inset Formula $w_{k}$ \end_inset , která obecně závisí na \begin_inset Formula $x_{k}$ \end_inset a \begin_inset Formula $u_{k}$ \end_inset . Dále, když \begin_inset Formula $u_{k}^{*}=\mu_{k}^{*}(x_{k})$ \end_inset minimalizuje pravou stranu rovnice \begin_inset CommandInset ref LatexCommand eqref reference "eq:Jkeqmin" \end_inset pro každé \begin_inset Formula $x_{k}$ \end_inset a \begin_inset Formula $k$ \end_inset , stretegie \begin_inset Formula $\pi^{*}=\left\{ \mu_{1}^{*},\ldots,\mu_{N-1}^{*}\right\} $ \end_inset je optimální. \begin_inset VSpace medskip \end_inset \end_layout \begin_layout Standard Hodnotu \begin_inset Formula $J_{k}(x_{k})$ \end_inset je možno interpretovat jako optimální cenu pro \emph on \begin_inset Formula $(N-k)$ \end_inset \emph default -tý krok problému začínajícího ve stavu \begin_inset Formula $x_{k}$ \end_inset a čase \begin_inset Formula $k$ \end_inset a končícího v čase \begin_inset Formula $N$ \end_inset . Následně označujeme \begin_inset Formula $J_{k}(x_{k})$ \end_inset náklady na pokračování ( \color black \begin_inset Quotes gld \end_inset cost-to-go \color inherit \begin_inset Quotes grd \end_inset ) ve stavu \begin_inset Formula $x_{k}$ \end_inset a čase \begin_inset Formula $k$ \end_inset , a \begin_inset Formula $J_{k}$ \end_inset označujeme jako funkci nákladů na pokračování ( \color black \begin_inset Quotes gld \end_inset cost-to-go \color inherit function \begin_inset Quotes grd \end_inset ) v čase \begin_inset Formula $k$ \end_inset . \end_layout \begin_layout Standard Ideálně bychom chtěli využít algoritmus dynamického programování k získání \begin_inset Formula $J_{k}$ \end_inset vyjádřené v uzavřeném tvaru nebo k získání optimální strategie. Existuje mnoho případů, kdy je daná úloha řešitelná analyticky, obzvláště za zjednodušujících předpokladů. To je velmi užitečné zejména pro lepší náhled do problematiky a jako vodítko pro složitější modely. Avšak ve většině případů není analytické řešení možné, pak je třeba použít numerické řešení pomocí algoritmu dynamického programování. Tento přístup může být časově velmi náročný, zejména minimalizaci v rovnici \begin_inset CommandInset ref LatexCommand eqref reference "eq:Jkeqmin" \end_inset je třeba provést pro každou hodnotu \begin_inset Formula $x_{k}$ \end_inset . Stavový prostor musí být diskretizován, nejedná-li se o konečnou množinu, a výpočetní nároky pak narůstají proporcionálně k počtu možných hodnot \begin_inset Formula $x_{k}$ \end_inset . Nicméně dynamické programování je pouze obecný přístup pro iterativní optimaliz aci při uvažování nejistoty v systému. \end_layout \begin_layout Section Vliv neznalosti na systém \end_layout \begin_layout Subsection Úplná a neúplná stavová informace \end_layout \begin_layout Standard V optimálním případě by bylo možno měřit všechny stavové veličiny systému a na jejich základě libovolným způsobem upravovat jeho dynamické vlastnosti. Ve skutečnosti ale zpravidla není možné všechny stavy změřit a musíme se rozhodovat pouze na základě informací, které máme k dispozici. V takovém případě mluvíme o \emph on neúplné informaci o stavu systému \emph default \begin_inset CommandInset citation LatexCommand cite key "StechaTDS,BertsekasDPOC" \end_inset . Může to být způsobeno například nedostupností hodnot některých stavů, použité měřící přístroje mohou být nepřesné nebo náklady na získání přesné hodnoty stavu mohou být příliš omezující. Případy tohoto typu modelujeme zpravidla tak, že v každém kroku regulátor obdrží jisté pozorování skutečné hodnoty stavu, které ovšem může být ovlivněno a narušeno stochastickou nejistotou. Teoreticky se však problém s neúplnou informací o stavu neodlišuje od úloh s úplnou stavovou informací, protože existují způsoby, jak převést (redukovat) systém s neúplnou informací na systém s úplnou. Tyto postupy obecně vedou na algoritmy využívající dynamické programování, ale jsou výpočetně mnohem náročnější, než v případě úplné informace. Dva možné postupy redukce převzaté z \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset budou následovat po formulaci problému: \end_layout \begin_layout Subsubsection Formulace problému s neúplnou informací o stavu \end_layout \begin_layout Standard Nejdříve formulujme základní problém s neúplnou stavovou informací, který následně redukujeme na systém s informací úplnou. Uvažujme rozšíření základního problému \begin_inset CommandInset ref LatexCommand ref reference "eq:zakladniproblem" \end_inset , kde ale regulátor, namísto přístupu ke stavu systému, získává pouze pozorování \begin_inset Formula $z_{k}$ \end_inset ve tvaru \begin_inset Formula \begin{equation} z_{0}=h_{0}(x_{0},v_{0}),\quad z_{k}=h_{k}(x_{k},u_{k-1},v_{k}),\quad k=1,2,\ldots,N-1,\label{eq:zaklprobneuplnystav}\end{equation} \end_inset kde \begin_inset Formula $v_{k}$ \end_inset reprezentuje náhodnou poruchu pozorování charakterizovanou rozdělením pravděpod obnosti \begin_inset Formula $P_{v_{k}}$ \end_inset , která závisí na současném stavu a všech předchozích stavech, řízeních a poruchách. Dále také počáteční stav \begin_inset Formula $x_{0}$ \end_inset považujeme za náhodnou veličinu s rozdělením \begin_inset Formula $P_{x_{0}}$ \end_inset . \end_layout \begin_layout Standard Soubor informací dostupných regulátoru v čase \begin_inset Formula $k$ \end_inset označme \begin_inset Formula $I_{k}$ \end_inset informačním vektorem. Tedy \begin_inset Formula \begin{eqnarray*} I_{k} & = & (z_{0},\ldots,z_{k},u_{0},\ldots,u_{k-1}),\quad k=1,\ldots,N-1,\\ I_{0} & = & z_{0}.\end{eqnarray*} \end_inset Uvažujme množinu přípustných řízení jako posloupnost funkcí \begin_inset Formula $\pi=\{\mu_{0},\ldots,\mu_{N-1}\}$ \end_inset , kde každá funkce \begin_inset Formula $\mu_{k}$ \end_inset přiřazuje informačnímu vektoru \begin_inset Formula $I_{k}$ \end_inset řízení \begin_inset Formula $\mu_{k}(I_{k})\in U_{k}$ \end_inset , pro všechna \begin_inset Formula $I_{k}$ \end_inset , kde \begin_inset Formula $k=0,\ldots,N-1$ \end_inset . Chceme najít přípustnou řídící strategii, to jest posloupnost \begin_inset Formula $\pi$ \end_inset , která minimalizuje očekávanou ztrátu \begin_inset Formula \[ J_{\pi}=\mathbf{E}\left\{ g_{N}(x_{N})+\sum_{k=0}^{N-1}g_{k}\left(x_{k},\mu_{k}(I_{k}),w_{k}\right)\right\} ,\] \end_inset kde je očekávaná hodnota počítána přes náhodné veličiny \begin_inset Formula $x_{0}$ \end_inset a \begin_inset Formula $w_{k},v_{k}$ \end_inset pro \begin_inset Formula $k=0,\ldots,N-1$ \end_inset . Veličiny \begin_inset Formula $x_{k}$ \end_inset a \begin_inset Formula $z_{k}$ \end_inset se vypočítají z rovnic \begin_inset CommandInset ref LatexCommand ref reference "eq:zakladniproblem" \end_inset respektive \begin_inset CommandInset ref LatexCommand ref reference "eq:zaklprobneuplnystav" \end_inset , přičemž v nich položíme \begin_inset Formula $u_{k}=\mu_{k}(I_{k})$ \end_inset . \end_layout \begin_layout Subsubsection Redukce na systém s úplnou stavovou informací \end_layout \begin_layout Standard Tento postup je založen na myšlence definovat nový systém, jehož stav v čase \begin_inset Formula $k$ \end_inset je množina všech hodnot, kterých může využít regulátor při tvorbě řízení. Jako stav nového systému tedy volíme informační vektor \begin_inset Formula $I_{k}$ \end_inset a získáme systém \begin_inset Formula \begin{equation} I_{k+1}=(I_{k,}z_{k+1},u_{k}),\quad I_{0}=z_{0},\quad k=0,\ldots,N-2.\label{eq:rednewsystem}\end{equation} \end_inset Na tento systém povahy základního problému s úplnou informací můžeme pohlížet tak, že \begin_inset Formula $I_{k}$ \end_inset je stav. Řízení \begin_inset Formula $u_{k}$ \end_inset a pozorování \begin_inset Formula $z_{k}$ \end_inset lze pak chápat jako náhodné poruchy. Dále rozdělení pravděpodobnosti \begin_inset Formula $z_{k+1}$ \end_inset závisí explicitně pouze na stavu \begin_inset Formula $I_{k}$ \end_inset a řízení \begin_inset Formula $u_{k}$ \end_inset . Ztrátovou funkci vyjádřenou pro nový systém je možno zapsat jako \begin_inset Formula \[ \mathbf{E}\left\{ g_{k}\left(x_{k},u_{k},w_{k}\right)\right\} =\mathbf{E}\left\{ \mathbf{E}_{x_{k},w_{k}}\left\{ g_{k}\left(x_{k},u_{k},w_{k}\right)\mid I_{k},u_{k}\right\} \right\} .\] \end_inset Tedy ztráta během jednoho kroku vyjádřená jako funkce nového stavu \begin_inset Formula $I_{k}$ \end_inset a řízení \begin_inset Formula $u_{k}$ \end_inset je \begin_inset Formula \begin{equation} \tilde{g}_{k}(I_{k,}u_{k})=\mathbf{E}_{x_{k},w_{k}}\left\{ g_{k}\left(x_{k},u_{k},w_{k}\right)\mid I_{k},u_{k}\right\} .\label{eq:rednewztrata}\end{equation} \end_inset Původní základní problém s neúplnou stavovou informací byl tedy převeden na úlohu s úplnou stavovou informací s rovnicí popisující systém \begin_inset CommandInset ref LatexCommand ref reference "eq:rednewsystem" \end_inset a ztrátou během jednoho kroku \begin_inset CommandInset ref LatexCommand ref reference "eq:rednewztrata" \end_inset . Nyní je pro něj možno napsat algoritmus dynamického programování. \end_layout \begin_layout Subsubsection Postačující statistika \end_layout \begin_layout Standard Při užití algoritmu dynamického programování za neúplné stavové informace je hlavní problém v jeho vyhodnocování ve stavovém prostoru, jehož dimenze neustále roste. S každým dalším měřením dimenze stavu a tedy informační vektor \begin_inset Formula $I_{k}$ \end_inset narůstá, proto se snažíme redukovat množství dat skutečně potřebných pro účely řízení. Hledáme tedy popis známý jako \emph on postačující statistika \emph default , který bude mít menší dimenzi než \begin_inset Formula $I_{k}$ \end_inset , ale současně zahrne veškerý důležitý obsah \begin_inset Formula $I_{k}$ \end_inset potřebný pro řízení. Jako postačující statistiku označme funkci \begin_inset Formula $S_{k}$ \end_inset informačního vektoru \begin_inset Formula $I_{k}$ \end_inset , tedy \begin_inset Formula $S_{k}(I_{k})$ \end_inset takovou, že minimalizuje ztrátu v algoritmu dynamického programování přes všechna přípustná řízení. To můžeme zapsat pro vhodnou funkci \begin_inset Formula $H_{k}$ \end_inset jako \begin_inset Formula \begin{eqnarray*} J_{k}(I_{k}) & = & \min_{u_{k}\in U_{k}}H_{k}(S_{k}(I_{k}),u_{k}).\end{eqnarray*} \end_inset Po funkci \begin_inset Formula $S_{k}$ \end_inset samozřejmě chceme, aby byla charakterizována menší množinou čísel, než informační vektor \begin_inset Formula $I_{k}$ \end_inset , abychom získali výhody z jejího použití. Obecně existuje mnoho funkcí, které mohou sloužit jako postačující statistika. Triviálním příkladem může být identita \begin_inset Formula $S_{k}(I_{k})=I_{k}$ \end_inset . \end_layout \begin_layout Standard Závisí-li rozdělení pravděpodobnosti poruchy pozorování \begin_inset Formula $v_{k}$ \end_inset explicitně pouze na bezprostředně předcházejícím stavu, řízení a poruše systému, tedy na \begin_inset Formula $x_{k},u_{k},w_{k}$ \end_inset , a nezávisí na předchozích hodnotách \begin_inset Formula $x_{k-1},\ldots,x_{0},u_{k-1},\ldots,u_{0},w_{k-1},\ldots,w_{0},v_{k-1},\ldots,v_{0}$ \end_inset , můžeme za postačující statistiku volit podmíněné rozdělení pravděpodobnosti \begin_inset Formula $P_{x_{k}|I_{k}}$ \end_inset , o kterém lze ukázat (viz \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset ), že \begin_inset Formula \[ J_{k}(I_{k})=\min_{u_{k}\in U_{k}}H_{k}(P_{x_{k}|I_{k}},u_{k})=\overline{J}_{k}(P_{x_{k}|I_{k}}),\] \end_inset kde \begin_inset Formula $H_{k}$ \end_inset a \begin_inset Formula $\overline{J}_{k}$ \end_inset jsou vhodné funkce. Optimální řízení pak získáme ve tvaru funkcí podmíněného rozdělení pravděpodobn osti \begin_inset Formula $\mu_{k}(I_{k})=\overline{\mu}_{k}(P_{x_{k}|I_{k}})$ \end_inset pro \begin_inset Formula $k=0,\ldots,N-1$ \end_inset . Tato reprezentace může být velmi užitečná, protože nám umožňuje rozložit optimální řízení na dvě nezávislé časti: \end_layout \begin_layout Enumerate \emph on pozorovatel \emph default (estimátor), který v čase \begin_inset Formula $k$ \end_inset použije měření \begin_inset Formula $z_{k}$ \end_inset a řízení \begin_inset Formula $u_{k-1}$ \end_inset k vygenerování rozdělení pravděpodobnosti \begin_inset Formula $P_{x_{k}|I_{k}}$ \end_inset \end_layout \begin_layout Enumerate \emph on regulátor \emph default (akurátor), který generuje vstupy (řízení) pro systém jako funkci rozdělení pravděpodobnosti \begin_inset Formula $P_{x_{k}|I_{k}}$ \end_inset \end_layout \begin_layout Standard Tento rozklad pak umožňuje navrhovat každou z částí samostatně podle charakteru konkrétní úlohy. \end_layout \begin_layout Subsection Kalmanův filtr \begin_inset CommandInset label LatexCommand label name "sub:Kalmanův-filtr" \end_inset \end_layout \begin_layout Standard Chceme řešit následující problém, viz \begin_inset CommandInset citation LatexCommand cite key "StechaTDS" \end_inset : Máme lineární systém s neúplnou stavovou informací a snažíme se odhadnout (rekonstruovat, estimovat) stav systému z měřitelných vstupních a výstupních veličin. Dále předpokládejme, že měření výstupu a popřípadě i vstupu je zatíženo chybou měření. Tyto nepřesnosti měření můžeme modelovat jako aditivní šum. Odhadování (rekonstrukci, estimaci) potom navrhujeme pomocí stochastických metod. Řešení vede na takzvaný \emph on Kalmanův filtr \emph default . \end_layout \begin_layout Standard \begin_inset VSpace medskip \end_inset \end_layout \begin_layout Standard Následující formulace problému a popis algoritmu Kalmanova filtru je převzat z \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset , kde lze také nalézt odvození příslušných rovnic: Máme dva náhodné vektory \begin_inset Formula $x$ \end_inset a \begin_inset Formula $y$ \end_inset , které jsou svázány sdruženým rozdělením pravděpodobnosti tak, že hodnota jednoho poskytuje informaci o hodnotě druhého. Známe hodnotu \begin_inset Formula $y$ \end_inset a chceme určit (odhadnout) hodnotu \begin_inset Formula $x$ \end_inset tak, aby střední kvadratická odchylka mezi \begin_inset Formula $x$ \end_inset a jeho odhadem byla minimální. \end_layout \begin_layout Standard Takový odhad můžeme zístat v nejjednodušším případě metodou nejmenších čtverců, ale pro tento způsob je třeba velkého počtu měření. Jako lepší způsob se ale jeví využít sekvenční struktury problému a iterativně použít Kalmanův filtr, kdy odhad v čase \begin_inset Formula $k+1$ \end_inset získáme na základě jednoduchých rovnic pouze z předchozího odhadu a nového měření v čase \begin_inset Formula $k$ \end_inset , žádná předchozí měření nejsou explicitně zahrnuta. \end_layout \begin_layout Standard V dalším textu označme \begin_inset Formula $\hat{x}_{k|k-1}$ \end_inset apriorní odhad stavu, tedy odhad stavu v čase \begin_inset Formula $k$ \end_inset na základě informací až do času \begin_inset Formula $k-1$ \end_inset . Analogicky \begin_inset Formula $\Sigma_{k|k-1}$ \end_inset označuje apriorní kovarianční matici. Aposteriorní odhad stavu označme \begin_inset Formula $\hat{x}_{k|k}$ \end_inset , to jest odhad v čase \begin_inset Formula $k$ \end_inset na základě informací až do času \begin_inset Formula $k$ \end_inset . Aposteriorní kovarianční matice je pak označena \begin_inset Formula $\Sigma_{k|k}$ \end_inset . \end_layout \begin_layout Standard \begin_inset VSpace bigskip \end_inset \end_layout \begin_layout Subsubsection Systém \end_layout \begin_layout Standard Uvažujme lineární dynamický systém bez řízení ( \begin_inset Formula $u_{k}\equiv0$ \end_inset ) ve tvaru \begin_inset Formula \[ x_{k+1}=A_{k}x_{k}+w_{k},\; k=0,1,\ldots,N-1,\] \end_inset kde \begin_inset Formula $x_{k}$ \end_inset je vektor stavu, \begin_inset Formula $w_{k}$ \end_inset je vektor náhodné poruchy a matice \begin_inset Formula $A_{k}$ \end_inset považujeme za známé. Dále rovnice měření je \begin_inset Formula \[ z_{k}=C_{k}x_{k}+v_{k},\; k=0,1,\ldots,N-1,\] \end_inset kde \begin_inset Formula $z_{k}$ \end_inset je vektor pozorování (měřených veličin) a \begin_inset Formula $v_{k}$ \end_inset vektor šumu. Nechť \begin_inset Formula $x_{0},w_{0},\ldots,w_{N-1},v_{0},\ldots,v_{N-1}$ \end_inset jsou vektory nezávislých náhodných veličin s daným rozdělením pravděpodobnosti, takovým, že \begin_inset Formula \[ \mathrm{E}\{w_{k}\}=\mathrm{E}\{v_{k}\}=0,\; k=0,1,\ldots,N-1.\] \end_inset Označme \begin_inset Formula \[ S=\mathrm{E}\left\{ \left(x_{0}-\mathrm{E}\{x_{0}\}\right)\left(x_{0}-\mathrm{E}\{x_{0}\}\right)^{T}\right\} ,\; M_{k}=\mathrm{E}\{w_{k}w_{k}^{T}\},\; N_{k}=\mathrm{E}\{v_{k}v_{k}^{T}\},\] \end_inset a nechť matice \begin_inset Formula $N_{k}$ \end_inset je pozitivně definitní pro všechny časy \begin_inset Formula $k$ \end_inset . \end_layout \begin_layout Subsubsection Algoritmus Kalmanova filtru \end_layout \begin_layout Standard Předpokládejme, že máme spočítaný odhad \begin_inset Formula $\hat{x}_{k|k-1}$ \end_inset společně s kovarianční maticí \begin_inset Formula $\Sigma_{k|k-1}=\mathrm{E}\left\{ \left(x_{k}-\hat{x}_{k|k-1}\right)\left(x_{k}-\hat{x}_{k|k-1}\right)^{T}\right\} $ \end_inset . V čase \begin_inset Formula $k$ \end_inset získáme další měření \begin_inset Formula $z_{k}=C_{k}x_{k}+v_{k}$ \end_inset . Nyní můžeme získat aposteriorní odhad stavu \begin_inset Formula $\hat{x}_{k|k}$ \end_inset v čase \begin_inset Formula $k$ \end_inset jako \begin_inset Formula \begin{equation} \hat{x}_{k|k}=\hat{x}_{k|k-1}+\Sigma_{k|k-1}C_{k}^{T}\left(C_{k}\Sigma_{k|k-1}C_{k}^{T}+N_{k}\right)^{-1}\left(z_{k}-C_{k}\hat{x}_{k|k-1}\right),\label{eq:kalmanaposkk}\end{equation} \end_inset dále pak apriorní odhad stavu \begin_inset Formula $\hat{x}_{k+1|k}$ \end_inset v čase \begin_inset Formula $k+1,$ \end_inset tedy \begin_inset Formula $\hat{x}_{k+1|k}=A_{k}\hat{x}_{k|k}$ \end_inset . Apriorní kovarianční matici v čase \begin_inset Formula $k+1$ \end_inset vypočítáme z \begin_inset Formula \[ \Sigma_{k+1|k}=A_{k}\Sigma_{k|k}A_{k}^{T}+M_{k},\] \end_inset kde aposteriorní kovarianční matici \begin_inset Formula $\Sigma_{k|k}=\mathrm{E}\left\{ \left(x_{k}-\hat{x}_{k|k}\right)\left(x_{k}-\hat{x}_{k|k}\right)^{T}\right\} $ \end_inset můžeme získat z rovnice \begin_inset Formula \[ \Sigma_{k|k}=\Sigma_{k|k-1}-\Sigma_{k|k-1}C_{k}^{T}\left(C_{k}\Sigma_{k|k-1}C_{k}^{T}+N_{k}\right)^{-1}C_{k}\Sigma_{k|k-1}.\] \end_inset Přidáním počátečních podmínek \begin_inset Formula $\hat{x}_{0|-1}=\mathrm{E}\{x_{0}\}$ \end_inset a \begin_inset Formula $\Sigma_{0|-1}=S$ \end_inset získáme \emph on algoritmus Kalmanova filtru \emph default , který ve své podstatě rekurzivně generuje posloupnost lineárních odhadů založených na metodě nejmenších čtverců. \end_layout \begin_layout Standard Dále je možno vyjádřit rovnici \begin_inset CommandInset ref LatexCommand ref reference "eq:kalmanaposkk" \end_inset ve tvaru \begin_inset Formula \[ \hat{x}_{k|k}=A_{k-1}\hat{x}_{k-1|k-1}+\Sigma_{k|k}C_{k}^{T}N_{k}^{-1}\left(z_{k}-C_{k}A_{k-1}\hat{x}_{k-1|k-1}\right),\] \end_inset který při uvažování systému se vstupem \begin_inset Formula \[ x_{k+1}=A_{k}x_{k}+B_{k}u_{k}+w_{k},\; k=0,1,\ldots,N-1,\] \end_inset umožňuje vypočítat rekurzivně aposteriorní odhady stavů \begin_inset Formula $\hat{x}_{k|k}$ \end_inset v časech \begin_inset Formula $k$ \end_inset z rovnice \begin_inset Formula \[ \hat{x}_{k|k}=A_{k-1}\hat{x}_{k-1|k-1}+B_{k-1}u_{k-1}+\Sigma_{k|k}C_{k}^{T}N_{k}^{-1}\left(z_{k}-C_{k}A_{k-1}\hat{x}_{k-1|k-1}\right),\] \end_inset přičemž rovnice pro výpočet aposteriorní kovarianční matice \begin_inset Formula $\Sigma_{k|k}$ \end_inset zůstávají nezměněny. \end_layout \begin_layout Section Spojité systémy \end_layout \begin_layout Subsection Deterministické systémy se spojitým časem \end_layout \begin_layout Standard I když zpravidla pracujeme s diskrétními systémy, zejména z důvodů výpočtů na počítači, teorie optimálního řízení spojitých systémů může být velmi užitečná. Poskytuje totiž důležité principy, které jsou velmi často používány při návrhu algoritmů pro duální řízení. Konkrétně se jedná o Hamilton-Jacobi-Bellmanovu rovnost a Pontryaginův princip minima. \end_layout \begin_layout Subsubsection Spojitý systém \end_layout \begin_layout Standard Dynamický systém se spojitým časem uvažujeme dle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset ve tvaru \begin_inset Formula \begin{eqnarray} \dot{x}(t) & = & f(x(t),u(t)),\;0\leq t\leq T,\label{eq:spojsystemHJBP}\\ x(0) & = & x_{0},\nonumber \end{eqnarray} \end_inset kde \begin_inset Formula $x(t)$ \end_inset je stavový vektor v čase \begin_inset Formula $t$ \end_inset , \begin_inset Formula $\dot{x}(t)$ \end_inset je vektor prvních derivací podle času v čase \begin_inset Formula $t$ \end_inset , \begin_inset Formula $u(t)\in U$ \end_inset je řídící vektor v čase \begin_inset Formula $t$ \end_inset , \begin_inset Formula $U$ \end_inset je množina omezení řízení a \begin_inset Formula $T$ \end_inset je časový horizont. O funkci \begin_inset Formula $f$ \end_inset předpokládáme, že je spojitě diferencovatelná vzhledem k \begin_inset Formula $x$ \end_inset a spojitá vzhledem k \begin_inset Formula $u$ \end_inset . Rovnice \begin_inset CommandInset ref LatexCommand ref reference "eq:spojsystemHJBP" \end_inset představuje soustavu \begin_inset Formula $n$ \end_inset diferenciálních rovnic prvního řádu. Naším cílem je nalezení přípustné řídící trajektorie \begin_inset Formula $\left\{ u(t)\mid t\in[0,T]\right\} $ \end_inset a odpovídající stavové trajektorie \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none \begin_inset Formula $\left\{ x(t)\mid t\in[0,T]\right\} $ \end_inset takové, že minimalizují ztrátovou funkci ve tvaru \begin_inset Formula \[ h(x(T))+\int_{0}^{T}g\left(x(t),u(t)\right)dt,\] \end_inset o funkcích \begin_inset Formula $g$ \end_inset a \begin_inset Formula $h$ \end_inset předpokládáme, že jsou spojitě diferencovatelné vzhledem k \begin_inset Formula $x$ \end_inset a \begin_inset Formula $g$ \end_inset je spojitá vzhledem k \begin_inset Formula $u$ \end_inset . \end_layout \begin_layout Subsubsection Hamilton-Jacobi-Bellmanova rovnost \end_layout \begin_layout Standard Hamilton-Jacobi-Bellmanova rovnost je parciální diferenciální rovnicí, která je splněna optimální funkcí nákladů na pokračování \begin_inset Formula $J^{*}(t,x)$ \end_inset . Tato rovnice je analogií algoritmu dynamického programování ve spojitém čase. Rovnici lze psát podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset ve tvaru \begin_inset Formula \begin{eqnarray} 0 & = & \min_{u\in U}\left[g(x,u)+\nabla_{t}J^{*}(t,x)+\nabla_{x}J^{*}(t,x)^{T}f(x,u)\right],\quad\forall t,x,\label{eq:hjbrovnostJ}\\ J^{*}(T,x) & = & h(x).\nonumber \end{eqnarray} \end_inset Jedná se tedy o parciální diferenciální rovnici s okrajovou podmínkou. O funkci \begin_inset Formula $J^{*}(t,x)$ \end_inset jsme předpokládali diferencovatelnost, apriorně ale její diferencovatelnost neznáme a tedy nevíme, jestli \begin_inset Formula $J^{*}(t,x)$ \end_inset řeší rovnici \begin_inset CommandInset ref LatexCommand ref reference "eq:hjbrovnostJ" \end_inset . Můžeme však použít následující tvrzení, jehož formulaci i důkaz lze nalézt v \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset : \end_layout \begin_layout Description Věta \begin_inset space \space{} \end_inset o \begin_inset space \space{} \end_inset dostatečnosti: \begin_inset ERT status open \begin_layout Plain Layout ~ \end_layout \end_inset \begin_inset Newline newline \end_inset Nechť je funkce \begin_inset Formula $V(t,x)$ \end_inset spojitě diferencovatelná vzhledem k \begin_inset Formula $t$ \end_inset a \begin_inset Formula $x$ \end_inset a nechť je řešením Hamilton-Jacobi-Bellmanovy rovnosti: \begin_inset Formula \begin{eqnarray} 0 & = & \min_{u\in U}\left[g(x,u)+\nabla_{t}V(t,x)+\nabla_{x}V(t,x)^{T}f(x,u)\right],\quad\forall t,x,\label{eq:hjbrovnostV}\\ V(T,x) & = & h(x),\quad\forall x.\nonumber \end{eqnarray} \end_inset Předpokládejme dále, že \begin_inset Formula $\mu^{*}(t,x)$ \end_inset dosáhne minima v rovnosti \begin_inset CommandInset ref LatexCommand ref reference "eq:hjbrovnostV" \end_inset pro všechna \begin_inset Formula $t$ \end_inset a \begin_inset Formula $x$ \end_inset . Nechť \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none \begin_inset Formula $\left\{ x^{*}(t)\mid t\in[0,T]\right\} $ \end_inset označuje stavovou trajektorii získanou při dané počáteční podmínce \begin_inset Formula $x^{*}(0)=x_{0}$ \end_inset a řídící trajektorii \family default \series default \shape default \size default \emph default \bar default \noun default \color inherit \begin_inset Formula $u^{*}(t)=\mu^{*}(t,x^{*}(t)),\; t\in[0,T]$ \end_inset . Pak \begin_inset Formula $V$ \end_inset je rovno optimální funkci nákladů na pokračování, tedy \begin_inset Formula \[ V(t,x)=J^{*}(t,x),\quad\forall t,x.\] \end_inset Navíc řídící trajektorie \begin_inset Formula $\left\{ u^{*}(t)\mid t\in[0,T]\right\} $ \end_inset je optimální. \end_layout \begin_layout Subsubsection Pontryaginův princip minima \end_layout \begin_layout Standard Pontryaginův princip minima je důležitým teorémem optimálního řízení. Poskytuje nutnou (ne však postačující) podmínku pro optimální trajektorii, je úzce spřízněn s Hamilton-Jacobi-Bellmanovou rovností a lze ho z ní podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset také odvodit. Princip minima je výhodné formulovat pomocí Hamiltoniánu. Označme \begin_inset Formula $p$ \end_inset gradient optimální funkce nákladů na pokračování pro optimální stavovou trajektorii \begin_inset Formula $p(t)=\nabla_{x}J^{*}\left(t,x^{*}(t)\right)$ \end_inset a definujme Hamiltonián jako funkci zobrazující trojice vektorů \begin_inset Formula $(x,u,p)$ \end_inset do reálných čísel \begin_inset Formula \[ H(x,u,p)=g(x,u)+p^{T}f(x,u).\] \end_inset Rovnice pro systém pak může být zapsána v kompaktním tvaru \begin_inset Formula \[ \dot{x}^{*}(t)=\nabla_{p}H\left(x^{*}(t),u^{*}(t),p(t)\right).\] \end_inset Obdobně může být zapsána pro \begin_inset Formula $p$ \end_inset takzvaná \emph on adjungovaná rovnice \emph default \begin_inset Formula \[ \dot{p}(t)=-\nabla_{x}H\left(x^{*}(t),u^{*}(t),p(t)\right).\] \end_inset Pontryaginův princip minima je podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset formulován následovně: \end_layout \begin_layout Description Princip \begin_inset space \space{} \end_inset minima: \begin_inset ERT status open \begin_layout Plain Layout ~ \end_layout \end_inset \begin_inset Newline newline \end_inset Nechť \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none \begin_inset Formula $\left\{ u^{*}(t)\mid t\in[0,T]\right\} $ \end_inset je optimální řídící trajektorie a nechť \begin_inset Formula $\left\{ x^{*}(t)\mid t\in[0,T]\right\} $ \end_inset je odpovídající stavová trajektorie, to jest \begin_inset Formula \[ \dot{x}^{*}(t)=f\left(x^{*}(t),u^{*}(t)\right),\quad x^{*}(0)=x_{0}.\] \end_inset Nechť dále \begin_inset Formula $p(t)$ \end_inset je řešením adjungované rovnice \begin_inset Formula \[ \dot{p}(t)=-\nabla_{x}H\left(x^{*}(t),u^{*}(t),p(t)\right),\] \end_inset s okrajovou podmínkou \begin_inset Formula $p(T)=\nabla h\left(x^{*}(T)\right)$ \end_inset . Pak pro všechna \begin_inset Formula $t\in[0,T]$ \end_inset \begin_inset Formula \[ u^{*}(t)=\arg\min_{u\in U}H\left(x^{*}(t),u,p(t)\right).\] \end_inset Navíc existuje konstanta \begin_inset Formula $C$ \end_inset taková, že \begin_inset Formula \[ H\left(x^{*}(t),u^{*}(t),p(t)\right)=C,\quad\forall t\in[0,T].\] \end_inset \end_layout \begin_layout Section Algoritmy pro duální řízení \end_layout \begin_layout Standard Metody pro nalezení optimálního řízení lze obecně rozdělit do dvou základních kategorií na \emph on globální \emph default a \emph on lokální \emph default viz \begin_inset CommandInset citation LatexCommand cite key "TodorovWeiweiILQG,TodorovTassaILDP" \end_inset \emph on . \emph default \end_layout \begin_layout Standard Globální metody, používané zejména v posilovaném učení \color black ( \begin_inset Quotes gld \end_inset Reinforcement Learning \color inherit \begin_inset Quotes grd \end_inset ), jsou založeny na na \color black Bellmanově principu optimality, Hamilton-Jacobi-Bellmanově rovnosti \color inherit a dynamickém programování. Tyto algoritmy hledají globálně optimální zpětnovazební řízení pro všechny stavy obecného stochastického systému a proto podléhají nebezpečí \begin_inset Quotes gld \end_inset problému dimenzionality \begin_inset Quotes grd \end_inset nebo také rozměrnosti (z anglického \begin_inset Quotes eld \end_inset curse of dimensionality \begin_inset Quotes erd \end_inset doslovně - \emph on kletba rozměrnosti \emph default ). Jednoduše můžeme tento problém chápat tak, že při numerickém řešení úlohy jsou počítačem procházeny všechny body diskretizovaného stavového a řídícího prostoru, jejichž počet s rostoucím počtem dimenzí extrémně (exponenciálně) rychle roste. Výpočet pro mnohadimenzionální úlohy se pak stává co do paměťových nároků, ale hlavně z hlediska výpočetního času prakticky nerealizovatelným. \end_layout \begin_layout Standard Lokální metody, častěji studované v teorii řízení, souvisí s \color black Pontryaginovým principem maxima \color inherit . Jejich podstatou je nalezení řízení, které je pouze lokálně optimální v okolí nějaké \begin_inset Quotes gld \end_inset extremální \begin_inset Quotes grd \end_inset trajektorie. Většinou je užito deterministických prostředků jako řešení soustavy obyčejných diferenciálních rovnic (například střelbou nebo relaxací). Tento přístup ale vede na přímovazební \color red \color black řízení \color red \color inherit a nelze užít pro stochastické úlohy. Vyhýbá se ale problému dimenzionality, což umožňuje řešit i komplexnější problémy. \end_layout \begin_layout Standard V poslední době je snaha vyvíjet nové algoritmy, které kombinují výhody obou výše zmíněných přístupů. Příkladem může být \emph on iterativní LQG \emph default ( \emph on iLQG \emph default ). Tento algoritmus je založen na linearizaci nelineární úlohy v každém bodě reprezentativní trajektorie a následném řešení modifikované Riccatiho rovnice. Výhodou \emph on iLQG \emph default je, že jejím výsledkem je zpětnovazební řízení. Metoda je ale stále deterministická a nedokáže se vypořádat s nekvadratickými ztrátovými funkcemi a požadavky na omezené řízení. \end_layout \begin_layout Standard S výše zmíněnými problémy se snaží vypořádat modifikovaná \emph on iLQG \emph default , která bude použita pro srovnání s ústřední metodou této práce \emph on iLDP \emph default . Do kategorie smíšených metod spadá i metoda \emph on iLDP \emph default , která bude podrobně popsána v následující kapitole. \end_layout \begin_layout Chapter Algoritmy pro návrh řízení \begin_inset CommandInset label LatexCommand label name "cha:Algoritmy-pro-návrh" \end_inset \end_layout \begin_layout Section Výběr algoritmů pro srovnání \end_layout \begin_layout Subsection Princip separace \end_layout \begin_layout Standard \emph on Princip separace \emph default nebo také \emph on separační teorém pro lineární systémy s kvadratickou ztrátovou funkcí \emph default zaujímá důležité místo v moderní teorii řízení. Intuitivně je velmi jednoduchý. Podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset je formulován následovně: \end_layout \begin_layout Standard Optimální řízení pro lineární systém může být rozděleno do dvou částí: \end_layout \begin_layout Enumerate \emph on pozorovatel \emph default (estimátor), který využívá měřená data k odhadu stavu systému, \end_layout \begin_layout Enumerate \emph on regulátor \emph default (akurátor), který generuje ze stavu, respektive jeho odhadu, řízení pro systém. \end_layout \begin_layout Standard Navíc část optimálního řízení označená jako \emph on pozorovatel \emph default je optimálním řešením problému určování (estimace) stavu nezávisle na uvažování řízení a část označená jako \emph on regulátor \emph default je optimální řešení řídícího problému za předpokladu úplné stavové informace. Každá část tedy může být navrhována nezávisle na sobě jako optimální řešení příslušných problémů estimace a regulace. \end_layout \begin_layout Subsection LQG \begin_inset CommandInset label LatexCommand label name "sub:LQGkp1" \end_inset \end_layout \begin_layout Standard Řízení \emph on LQG \emph default (z anglického \begin_inset Quotes gld \end_inset Linear-Quadratic-Gaussian \begin_inset Quotes grd \end_inset ) je primárně navrženo pro řízení lineárních systémů s kvadratickou ztrátovou funkcí a Gaussovským šumem. Existují však různé modifikace i pro nelineární systémy. Algoritmus \emph on LQG \emph default je založen právě na \emph on principu separace \emph default , \emph on \emph default kdy pozorovatel a regulátor jsou navrhovány zvlášť. Optimálním pozorovatelem je zde Kalmanův filtr a lze jej užít například ve tvaru, jak byl uveden v části \begin_inset CommandInset ref LatexCommand ref reference "sub:Kalmanův-filtr" \end_inset . Optimálním regulátorem pak řízení označované jako LQ regulátor, které může být formulováno podle \begin_inset CommandInset citation LatexCommand cite key "BertsekasDPOC" \end_inset následovně: \end_layout \begin_layout Paragraph LQ regulátor \end_layout \begin_layout Standard pro lineární systém \begin_inset Formula \[ x_{k+1}=A_{k}x_{k}+B_{k}u_{k}+w_{k},\quad k=0,1,\ldots,N-1,\] \end_inset s kvadratickou ztrátovou funkcí \begin_inset Formula \[ \mathbf{E}\left\{ x_{N}^{T}Q_{N}x_{N}+\sum_{k=0}^{N-1}\left(x_{k}^{T}Q_{k}x_{k}+u_{k}^{T}R_{k}u_{k}\right)\right\} ,\] \end_inset při uvažování neúplné stavové informace je optimální řízení v každém čase rovno \begin_inset Formula \[ \mu_{k}^{*}(I_{k})=L_{k}\mathrm{E}\left\{ x_{k}\mid I_{k}\right\} ,\] \end_inset kde matice \begin_inset Formula $L_{k}$ \end_inset je dána rovností \begin_inset Formula \[ L_{k}=-\left(R_{k}+B_{k}^{T}K_{k+1}B_{k}\right)^{-1}B_{k}^{T}K_{k+1}A_{k},\] \end_inset přičemž matice \begin_inset Formula $K_{k}$ \end_inset získáme rekurzivně z Riccatiho rovnice \begin_inset Formula \begin{eqnarray*} K_{N} & = & Q_{N},\\ K_{k} & = & A_{k}^{T}\left(K_{k+1}-K_{k+1}B_{k}\left(R_{k}+B_{k}^{T}K_{k+1}B_{k}\right)^{-1}B_{k}^{T}K_{k+1}\right)A_{k}+Q_{k}.\end{eqnarray*} \end_inset \end_layout \begin_layout Subsection Zobecněné iterativní LQG řízení \end_layout \begin_layout Standard V článku \begin_inset CommandInset citation LatexCommand cite key "TodorovWeiweiILQG" \end_inset je popsán algoritmus \emph on zobecněného iterativního LQG \emph default řízení ( \emph on iLQG \emph default ) pro účely nalezení lokálního zpětnovazebního řízení nelineárních stochastickýc h systémů s kvadratickou ztrátou, ale navíc lze požadovat i omezené vstupy. Obecně zahrnutí požadavku na omezené vstupy do ztrátové funkce způsobí porušení její kvadratičnosti, zmiňovaný algoritmus však řeší problém jinak, konkrétně následnou korekcí rovnic pro výpočet řízení. Dále s nelinearitou se algoritmus vypořádává tak, že systém v každém časovém kroku linearizuje vzhledem k reprezentativní trajektorii. Linearizovaný systém je pak řešen klasickým přístupem \emph on LQG \emph default , avšak v jeho průběhu je do výpočtů ještě zasahováno. Jsou prováděny úpravy dílčích výsledků a opravy chyb z důvodu práce s linearizo vaným nelineárním systémem pro zajištění konvergence algoritmu. Samotný algoritmus je odvozen a detailně popsán v \begin_inset CommandInset citation LatexCommand cite key "TodorovWeiweiILQG" \end_inset , odkud je převzat následující zestručněný popis: \end_layout \begin_layout Paragraph iLQG lokální řízení \end_layout \begin_layout Standard pro obecně nelineární stochastický systém \begin_inset Formula \begin{eqnarray} x_{k+1} & = & x_{k}+f(x_{k},u_{k})\cdot\Delta k+F(x_{k},u_{k})\cdot e_{k},\; k=0,1,\ldots,N-1,\label{eq:systemilqgdef}\\ x_{(k=0)} & = & x_{0},\nonumber \end{eqnarray} \end_inset se ztrátovou funkcí \begin_inset Formula \[ \mathrm{E}\left\{ h(x_{N})+\sum_{k=0}^{N-1}l(k,x_{k},u_{k})\right\} \] \end_inset je lokálně optimální řízení, které konstruujeme iterativně. Každá iterace začíná s posloupností přímovazebních řízení \begin_inset Formula $\overline{u}_{k}$ \end_inset a odpovídající bezšumovou trajektorií \begin_inset Formula $\overline{x}_{k}$ \end_inset získanou aplikací \begin_inset Formula $\overline{u}_{k}$ \end_inset na systém \begin_inset CommandInset ref LatexCommand ref reference "eq:systemilqgdef" \end_inset s nulovým šumem. To je možno provést například pomocí Eulerovy integrace. Pak linearizujeme systém a kvadratizujeme ztrátu podél trajektorií \begin_inset Formula $\overline{x}_{k}$ \end_inset a \begin_inset Formula $\overline{u}_{k}$ \end_inset . Následně získaný lineární systém s kvadratickou ztrátou vyjádříme v odchylkách stavových a řídících veličin od bezšumové trajektorie \begin_inset Formula $\delta x_{k}=x_{k}-\overline{x}_{k}$ \end_inset a \begin_inset Formula $\delta u_{k}=u_{k}-\overline{u}_{k}$ \end_inset . Veličiny charakterizující modifikovaný problém získané v každém čase \begin_inset Formula $k$ \end_inset z \begin_inset Formula $(\overline{x}_{k},\overline{u}_{k})$ \end_inset jsou \begin_inset Formula \begin{eqnarray*} A_{k} & = & I+\frac{\partial f}{\partial x}\cdot\Delta k,\quad B_{k}=\frac{\partial f}{\partial u}\cdot\Delta k,\\ \mathbf{c}_{i,k} & = & F^{[i]}\cdot\sqrt{\Delta k},\quad C_{i,k}=\frac{\partial F^{[i]}}{\partial u}\cdot\sqrt{\Delta k},\\ q_{k} & = & l\cdot\Delta k,\quad\mathbf{q}_{k}=\frac{\partial l}{\partial x}\cdot\Delta k,\\ Q_{k} & = & \frac{\partial^{2}l}{\partial x\partial x}\cdot\Delta k,\quad P_{k}=\frac{\partial^{2}l}{\partial u\partial x}\cdot\Delta k,\\ \mathbf{r}_{k} & = & \frac{\partial l}{\partial u}\cdot\Delta k,\quad R_{k}=\frac{\partial^{2}l}{\partial u\partial u},\end{eqnarray*} \end_inset kde \begin_inset Formula $F^{[i]}$ \end_inset označuje \begin_inset Formula $i$ \end_inset -tý sloupec matice \begin_inset Formula $F$ \end_inset a veličiny \begin_inset Quotes gld \end_inset q \begin_inset Quotes grd \end_inset se počítají v čase \begin_inset Formula $k=N$ \end_inset z funkce \begin_inset Formula $h$ \end_inset namísto \begin_inset Formula $l$ \end_inset . \end_layout \begin_layout Standard Dále zaveďme označení \begin_inset Formula \begin{eqnarray*} \mathbf{g}_{k} & = & \mathbf{r}_{k}+B_{k}^{T}\mathbf{s}_{k+1}+\sum_{i}C_{i,k}^{T}S_{k+1}\mathbf{c}_{i,k},\\ G_{k} & = & P_{k}+B_{k}^{T}S_{k+1}A_{k},\\ H_{k} & = & R_{k}+B_{k}^{T}S_{k+1}B_{k}+\sum_{i}C_{i,k}^{T}S_{k+1}C_{i,k}.\end{eqnarray*} \end_inset Zpětnovazební řízení pak hledáme ve tvaru \begin_inset Formula $\delta u_{k}(\delta x)=\mathbf{l}_{k}+L_{k}\delta x$ \end_inset , kde \begin_inset Formula $\mathbf{l}_{k}=-H_{k}^{-1}\mathbf{g}_{k}$ \end_inset a \begin_inset Formula $L_{k}=-H_{k}^{-1}G_{k}$ \end_inset . Přičemž parametry \begin_inset Formula $S_{k}$ \end_inset a \begin_inset Formula $\mathbf{s}_{k}$ \end_inset jsou počítány rekurzivně z rovnic \begin_inset Formula \begin{eqnarray} S_{k} & = & Q_{k}+A_{k}^{T}S_{k+1}A_{k}+L_{k}^{T}H_{k}L_{k}+L_{k}^{T}G_{k}+G_{k}^{T}L_{k},\label{eq:rovniceSproiLQG}\\ \mathbf{s}_{k} & = & \mathbf{q}_{k}+A_{k}^{T}\mathbf{s}_{k+1}+L_{k}^{T}H_{k}\mathbf{l}_{k}+L_{k}^{T}\mathbf{g}_{k}+G_{k}^{T}\mathbf{l}_{k}.\nonumber \end{eqnarray} \end_inset V důsledku linearizace obecně nelineárního systému mohou vyjít některá vlastní čísla matice \begin_inset Formula $H$ \end_inset nulová nebo záporná. Řešení tohoto problému spolu s ošetřením požadavku na omezené vstupy \begin_inset Formula $u$ \end_inset je detailně popsáno v \begin_inset CommandInset citation LatexCommand cite key "TodorovWeiweiILQG" \end_inset . Pokud však nepotřebujeme vyhovět požadavku na nekladná vlastní čísla matice \begin_inset Formula $H$ \end_inset a omezené vstupy, lze rovnice \begin_inset CommandInset ref LatexCommand ref reference "eq:rovniceSproiLQG" \end_inset zjednodušit a pokud dále šum nezávisí na řízení (tedy \begin_inset Formula $C_{i,k}=0$ \end_inset ), rovnice \begin_inset CommandInset ref LatexCommand ref reference "eq:rovniceSproiLQG" \end_inset se redukuje na Riccatiho rovnici klasického LQ regulátoru. \end_layout \begin_layout Section Algoritmus iterativního lokálního dynamického programování \end_layout \begin_layout Standard Algoritmus \emph on iLDP \emph default byl vytvořen pro účely nalezení stochastického optimálního řízení v mnohadimenz ionálních stavových a řídících prostorech. Tento případ je častý zejména při řízení biologických pohybů. Metoda je popsána autory v článku \begin_inset CommandInset citation LatexCommand cite key "TodorovTassaILDP" \end_inset \emph on \emph default a z tohoto zdroje je také převzata \emph on . \end_layout \begin_layout Standard Základní popis algoritmu, tak jak ho autoři podali, je však pouze šablonou a mnoho detailů a dílčích částí je ponecháno na vyřešení při konkrétní realizaci. To se týká hlavně použitých aproximací pro jednotlivé funkce, zejména aproximac e Bellmanovy funkce a aproximace hledaného regulátoru. Dále, protože algoritmus využívá hledání minima, není v základním popisu algoritmu vyřešen konkrétní typ minimalizace. Použitý minimalizační algoritmus se samozřejmě liší podle konkrétního problému, zejména jedná-li se o minimalizaci omezenou nebo neomezenou. Ještě je třeba zmínit, že pro algoritmus je nutno zvolit parametr \begin_inset Quotes gld \end_inset velikosti \begin_inset Quotes grd \end_inset okolí, protože se jedná o lokální metodu. \end_layout \begin_layout Standard \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Subsection Formulace problému \end_layout \begin_layout Standard Naším úkolem je nalézt řízení \begin_inset Formula $u=\pi(t,x)$ \end_inset , které minimalizuje očekávanou ztrátu \end_layout \begin_layout Standard \align center \begin_inset Formula \[ J(\pi)=E_{\omega}\left(h(x)+\int_{0}^{T}l(x,\pi(t,x))dt\right),\] \end_inset \end_layout \begin_layout Standard obecně pro spojitý systém: \end_layout \begin_layout Standard \begin_inset Formula \begin{eqnarray} d\mathbf{x} & = & f(x,u)dt+F(x,u)d\omega,\nonumber \\ x(0) & = & x_{0},\label{eq:systemSpoj}\\ t & \in & [0,T],\nonumber \end{eqnarray} \end_inset \end_layout \begin_layout Standard v diskrétním tvaru: \end_layout \begin_layout Standard \begin_inset Formula \begin{eqnarray} x_{k+1}-x_{k} & = & f(x,u)\cdot\Delta k+F(x,u)e_{k},\nonumber \\ x_{(k=0)} & = & x_{0},\label{eq:systemDis}\\ k & \in & \{0,1,\ldots,N\},\nonumber \\ \Delta k & = & \frac{T}{N},\nonumber \end{eqnarray} \end_inset \end_layout \begin_layout Standard kde hledáme řízení \begin_inset Formula $u=\pi(k,x)$ \end_inset , které minimalizuje očekávanou ztrátu \end_layout \begin_layout Standard \begin_inset Formula \[ J(\pi)=E\left(h(x)+\sum_{k=0}^{N-1}l_{k}(x,\pi(k,x))\cdot\Delta k\right).\] \end_inset \end_layout \begin_layout Subsection Osnova algoritmu \begin_inset CommandInset label LatexCommand label name "sub:iLDP-Osnova-algoritmu" \end_inset \end_layout \begin_layout Standard Algoritmus pracuje iteračně, každá iterace začne s řízením \begin_inset Formula $\pi$ \end_inset a vytvoří zlepšení \begin_inset Formula $\pi'$ \end_inset . Přičemž prvotní řešení \begin_inset Formula $\pi_{0}$ \end_inset musíme algoritmu dodat jako apriorní informaci. Pro zajištění globální konvergence je možno nové řešení hledat jako konvexní kombinaci starého a algoritmem nalezeného řešení \begin_inset Formula \[ \pi^{nové}=\alpha\pi'+(1-\alpha)\pi;\;0<\alpha\leq1;\; J(\pi^{nové}) \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P\setminus\hat{b}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0432 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0909 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 4.4083e+17 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0851 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.2129 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.3361e+22 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0609 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 103.4646 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 6.2953e+25 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.2402 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 2.2735e+06 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 7.8254e+29 \end_layout \end_inset \end_inset \begin_inset Newline newline \end_inset \end_layout \begin_layout Standard Z tabulky je patrno, že řízení \emph on CE \emph default dosahuje nízké ztráty při dostatečné znalosti neznámého parametru \begin_inset Formula $b$ \end_inset , tedy při nízké varianci \begin_inset Formula $P$ \end_inset , ovšem za předpokladu, že se se střední hodnotou parametru \begin_inset Formula $b$ \end_inset nacházíme dostatečně daleko od nuly. Právě nulová hodnota je pro metodu \emph on CE \emph default kritická, což se snažíme do jisté míry kompenzovat přidáním malého parametru \begin_inset Formula $\varepsilon$ \end_inset . Jak je ale vidět v posledním sloupci tabulky, pro volbu \begin_inset Formula $\hat{b}=0$ \end_inset se jeví \emph on CE \emph default jako nepoužitelné. Dále se jedná o neduální metodu; při velké varianci, a tedy neznalosti o skutečné hodnotě parametru \begin_inset Formula $b$ \end_inset , dosahujeme velké ztráty. \end_layout \begin_layout Subsubsection sLQ \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P\setminus\hat{b}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0485 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0325 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0635 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.2078 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0729 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 18.6880 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.1987 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 5.7873e+05 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \end_inset \begin_inset Newline newline \end_inset \end_layout \begin_layout Standard \color black Pro algortimus \emph on sLQ \emph default je z tabulky průměrných ztrát zřejmé, že algoritmus zcela selhává pro střední hodnotu \begin_inset Formula $\hat{b}=0$ \end_inset a v tomto případě vůbec nenalézá řízení. Pro střední hodnoty \begin_inset Formula $\hat{b}=1$ \end_inset a \begin_inset Formula $\hat{b}=10$ \end_inset , které jsou dostatečně daleko od nuly, již metoda nalézá ve většině případů použitelné řízení a ztráta je pak vyrovnaná, zejména při konkrétní volbě \begin_inset Formula $\hat{b}=10$ \end_inset . V důsledku neduálnosti algoritmu se však projevuje nárůst variance zvýšením průměrné ztráty. Při volbě \begin_inset Formula $\hat{b}=1$ \end_inset je ztráta již příliš vysoká pro variance \begin_inset Formula $P=1$ \end_inset a \begin_inset Formula $P=10$ \end_inset a řízení dosahuje nepřijatelně velké ztráty. \end_layout \begin_layout Subsubsection LQ \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P\setminus\hat{b}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0323 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0461 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0237 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0447 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0994 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0592 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0626 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0252 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0622 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0762 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0329 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0472 \end_layout \end_inset \end_inset \begin_inset Newline newline \end_inset \end_layout \begin_layout Standard Algoritmus \emph on LQ \emph default se jeví jako nejlepší ze zde testovaných algoritmů. A to ve srovnání s ostatními, ale i jak je patrno z tabulky průměrných ztrát. Dosažená hodnota průměrné ztráty je velmi nízká, a to pro všechny případy volby parametrů \begin_inset Formula $\hat{b}$ \end_inset a \begin_inset Formula $P$ \end_inset . Uvažujeme samozřejmě verzi LQ řízení pro upravený systém, kdy je zahrnut do stavových proměnných i odhad skutečného parametru \begin_inset Formula $b$ \end_inset v podobě jeho střední hodnoty a variance jako postačující statistiky. Protože algoritmus nalézá dobré řízení i při vyšší neznalosti a určuje skutečnou hodnotu parametru \begin_inset Formula $b$ \end_inset , jedná se o duální přístup. To můžeme pozorovat při volbě \begin_inset Formula $\hat{b}=0$ \end_inset , kdy neduální přístupy selhávají kvůli předpokladu \begin_inset Formula $b=\hat{b}=0$ \end_inset , ale duální metoda dokáže odhadnout skutečnou nenulovou hodnotu \begin_inset Formula $b$ \end_inset a nalézt řízení. \emph on LQ \emph default je však na rozdíl od složitějších algoritmů řešen pouze linearizací v každém časovém kroku, ale bez aproximací a numerických výpočtů. \end_layout \begin_layout Subsubsection iLQG \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P\setminus\hat{b}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0374 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0418 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.9138 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0372 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0663 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 2.1010 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0445 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.5009 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 2.2043 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0691 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.9873 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 2.2035 \end_layout \end_inset \end_inset \begin_inset Newline newline \end_inset \end_layout \begin_layout Standard Ztráty dosažené aplikací \emph on iLQG \emph default na jednoduchý systém, jak je vidět v tabulce, jsou celkově relativně nízké. Problematičtější chování vykazuje metoda při volbě střední hodnoty \begin_inset Formula $\hat{b}=0$ \end_inset , kdy se ztráta pro všechny volby variance \begin_inset Formula $P$ \end_inset pohybuje okolo \begin_inset Formula $2$ \end_inset . I když hodnota ztráty v tomto případě není ideální, nemusí to však přímo znamenat nedosažení požadované hodnoty. Chování výstupní trajektorie je patrné z uvedených grafů v části \begin_inset CommandInset ref LatexCommand ref reference "sub:Průběh-skutečné-hodnoty-y" \end_inset . Pro \begin_inset Formula $\hat{b}=1$ \end_inset začne ztráta znatelně růst až při volbě variance \begin_inset Formula $P=1$ \end_inset a více, tedy když se začnou vyskytovat realizace skutečného parametru \begin_inset Formula $b$ \end_inset blízko problematické nuly. Střední hodnota \begin_inset Formula $\hat{b}=10$ \end_inset pak není problematická pro žádnou hodnotu \begin_inset Formula $P$ \end_inset . Obdobně jako pro případ algoritmu \emph on LQ \emph default můžeme na základě výsledků označit \emph on iLQG \emph default za duální algoritmus. \end_layout \begin_layout Subsubsection iLDP \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P\setminus\hat{b}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0571 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0820 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 6.4312 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0423 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.1202 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.0432 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.5862e+016 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1.1097 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \end_inset \begin_inset Newline newline \end_inset \end_layout \begin_layout Standard Algoritmus \emph on iLDP \emph default se vyznačuje problematickým chováním, jak už bylo uvedeno v porovnání s ostatními metodami, pro skutečnou hodnotu neznámého parametru \begin_inset Formula $b$ \end_inset blízko nuly. V tabulce průměrných ztrát můžeme vypozorovat, že ztráta je příliš vysoká právě v případě, kdy je střední hodnota \begin_inset Formula $\hat{b}=0$ \end_inset , a dále je-li \begin_inset Formula $\hat{b}=1$ \end_inset a současně je variance \begin_inset Formula $P=1$ \end_inset nebo \begin_inset Formula $P=10$ \end_inset , tedy je vyšší pravděpodobnost výskytu realizací skutečné hodnoty \begin_inset Formula $b$ \end_inset blízkých nule. V ostatních případech dosahuje řízení získané pomocí algoritmu \emph on iLDP \emph default relativně nízké průměrné ztráty. \end_layout \begin_layout Subsection Průběh skutečné hodnoty \begin_inset CommandInset label LatexCommand label name "sub:Průběh-skutečné-hodnoty-y" \end_inset \end_layout \begin_layout Standard Pro ilustraci vývoje hodnoty veličiny \begin_inset Formula $y$ \end_inset , kterou chceme řídit z \begin_inset Formula $y_{0}$ \end_inset na požadovanou hodnotu \begin_inset Formula $y_{r}$ \end_inset , jsou v této části uvedeny příklady grafů průběhů \begin_inset Formula $y$ \end_inset pro jednotlivé algoritmy. \end_layout \begin_layout Itemize Na grafech Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:porovnani-prubehu-y" \end_inset je možné porovnat průběhy \begin_inset Formula $y$ \end_inset jako řešení jednotlivých algoritmů. V obou případech je volena střední hodnota \begin_inset Formula $\hat{b}=1$ \end_inset a variance je na prvním grafu \begin_inset Formula $P=0,01$ \end_inset a na druhém \begin_inset Formula $P=0,1$ \end_inset . Je možno pozorovat, jak s rostoucí variancí poskytují některé algoritmy horší výsledek. \begin_inset Float figure wide false sideways false status collapsed \begin_layout Plain Layout \begin_inset Graphics filename comptray.eps scale 90 \end_inset \begin_inset Caption \begin_layout Plain Layout Porovnání průběhu hodnoty \begin_inset Formula $y$ \end_inset pro jednotlivé algoritmy \end_layout \end_inset \end_layout \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "Flo:porovnani-prubehu-y" \end_inset \end_layout \end_inset \end_layout \begin_layout Itemize Grafy Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-y-js" \end_inset ( \emph on CE \emph default ) zobrazují průběhy hodnot \begin_inset Formula $y$ \end_inset při užití řízení \emph on CE \emph default . Je volena střední hodnota \begin_inset Formula $\hat{b}=1$ \end_inset a postupně všechny testované variance \begin_inset Formula $P$ \end_inset . Každá z barevných čar pak reprezentuje jednu vzorkovou trajektorii, kterých bylo celkem \begin_inset Formula $100$ \end_inset . Šum způsobuje, že každá z generovaných trajektorií má trochu jiný průběh, a tedy všechny nesplývají v jednu, ale tvoří jakousi \begin_inset Quotes gld \end_inset trubici \begin_inset Quotes grd \end_inset . To je nejvíce patrné zejména pro volbu variance \begin_inset Formula $P=0,01$ \end_inset . Průměrováním této \begin_inset Quotes gld \end_inset trubice \begin_inset Quotes grd \end_inset je pak získávána průměrná trajektorie použitá například v grafu Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:porovnani-prubehu-y" \end_inset . Při vyšších variancích \begin_inset Formula $P$ \end_inset se pak již projevuje i vliv chyby v důsledku neznalosti skutečné hodnoty parametru \begin_inset Formula $b$ \end_inset , protože jej předpokládáme rovný jeho střední hodnotě. Pro \begin_inset Formula $P=0,1$ \end_inset lze pozorovat, že některé trajektorie, jedná se o ty, kdy je skutečná hodnota \begin_inset Formula $b$ \end_inset blízko střední hodnotě \begin_inset Formula $\hat{b}$ \end_inset , mají požadovaný průběh. Naopak lze zřetelně odlišit případy, kdy došlo k nepříznivé realizaci \begin_inset Formula $b$ \end_inset . V těchto případech \begin_inset Formula $y$ \end_inset vůbec nedosahuje požadované hodnoty \begin_inset Formula $y_{r}$ \end_inset a naopak kolem ní osciluje. Při volbě ještě větších variancí pak narůstá četnost trajektorií, které místo přiblížení požadované hodnotě dokonce divergují. \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename tubeCE.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename tubeSLQ.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on CE \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on sLQ \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename tubeLQ.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename tubeILQG.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on LQ \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on iLQG \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename tubeILDP.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on iLDP \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \end_layout \end_inset \end_inset \begin_inset Caption \begin_layout Plain Layout Průběhy hodnot \begin_inset Formula $y$ \end_inset při volbě \begin_inset Formula $\hat{b}=1$ \end_inset pro jednotlivé algoritmy \end_layout \end_inset \end_layout \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "Flo:prubehy-y-js" \end_inset \end_layout \end_inset \end_layout \begin_layout Itemize Průběhy \begin_inset Formula $y$ \end_inset při volbě \begin_inset Formula $\hat{b}=1$ \end_inset s \emph on sLQ \emph default řízením jsou zobrazeny na grafech Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-y-js" \end_inset ( \emph on sLQ \emph default ). Význam jednotlivých barevných čar je v tomto i následujících bodech analogický jako v předchozím bodě. Podobně je možno pozorovat růst počtu \begin_inset Quotes gld \end_inset nevyhovujících \begin_inset Quotes grd \end_inset trajektorií \begin_inset Formula $y$ \end_inset s růstem variance \begin_inset Formula $P$ \end_inset . \end_layout \begin_layout Itemize Při \emph on LQ \emph default řízení, s průběhy \begin_inset Formula $y$ \end_inset na grafech Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-y-js" \end_inset ( \emph on LQ \emph default ), je dosaženo dobrých výsledků, kdy \begin_inset Formula $y$ \end_inset již od času \begin_inset Formula $2$ \end_inset sleduje požadovanou hotnotu \begin_inset Formula $y_{r}$ \end_inset . Samozřejmě je zde nutno přihlédnout k chybě v důsledku šumu, tedy jednotlivé vzorkové trajektorie opět tvoří \begin_inset Quotes gld \end_inset trubici \begin_inset Quotes grd \end_inset okolo požadované hodnoty. \end_layout \begin_layout Itemize Grafy Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-y-js" \end_inset ( \emph on iLQG \emph default ) zobrazují trajektorie \begin_inset Formula $y$ \end_inset pro \emph on iLQG \emph default řízení. Zde je zajímavé, že narozdíl od případů pro \emph on CE \emph default a \emph on sLQ \emph default řízení, kdy docházelo k oscilacím a divergujícím trajektoriím, v tomto případě dochází spíše k odchýlení trajektorie od požadovaného průběhu. První dvě řízení totiž nejsou duální a užíváme principu \begin_inset Quotes gld \end_inset certainty equivalence \begin_inset Quotes grd \end_inset . Tedy algoritmy navrhnou řídící zákrok, ten je ale vzhledem k chybnému předpokla du o hodnotě parametu \begin_inset Formula $b$ \end_inset špatný a \begin_inset Formula $y$ \end_inset nabude jiné hodnoty, než jsme zamýšleli. V dalším kroku se snažíme vrátit, ale řídící zákrok je opět špatný. Následně může dojít k oscilacím nebo dokonce k divergenci. Chyby jsou zde způsobeny velkým rozdílem skutečné hodnoty parametu \begin_inset Formula $b$ \end_inset od jeho střední hodnoty, se kterou počítáme. Naproti tomu v případě duálního algoritmu \emph on iLQG \emph default odhadujeme neznámý parametr \begin_inset Formula $b$ \end_inset a chyby jsou zde v důsledku nepřesných výpočtů a následné linearizace vůči špatné trajektorii, zejména při skutečné hodnotě \begin_inset Formula $b$ \end_inset blízko nuly. Delší čas potřebný pro dosažení požadované hodnoty může však být způsoben tím, že řídící strategie je navrhována pouze jednou (v rámci iterace), pro celý časový horizont. Zlepšení, tedy rychlejšího dosažení požadované hodnoty, by mohlo být dosaženo využitím \emph on ubíhajícího horizontu \emph default ( \begin_inset Quotes gld \end_inset receding horizon \begin_inset Quotes grd \end_inset ) podobně jako pro \emph on LQG \emph default řízení synchronního motoru. \end_layout \begin_layout Itemize Na závěr grafy průběhů \begin_inset Formula $y$ \end_inset pro algoritmus \emph on iLDP \emph default jsou na Obrázku \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-y-js" \end_inset ( \emph on iLDP \emph default ). Pro tento algoritmus je problematická skutečná hodnota parametru \begin_inset Formula $b=0$ \end_inset . A protože algoritmus využívá výpočtů na vzorkových trajektoriích reprezentující ch okolí, dokonce i jedna z trajektorií, která se výrazným způsobem odchýlí od ostatních, a tedy od očekávaného průběhu \begin_inset Formula $y$ \end_inset , může narušit výsledek, nebo dokonce samotný běh algoritmu. To je možno pozorovat pro volbu \begin_inset Formula $P=1$ \end_inset , kdy \begin_inset Formula $y$ \end_inset výrazně diverguje od požadované hodnoty \begin_inset Formula $y_{r}$ \end_inset . A dále v případě \begin_inset Formula $P=10$ \end_inset algoritmus vůbec nedokončí výpočet. \end_layout \begin_layout Section Výsledky pro synchronní motor \end_layout \begin_layout Standard V této části jsou uvedeny výsledky pro úlohu nalezení řízení synchronního motoru s permanentními magnety. Funkční řízení se však podařilo nalézt pouze pomocí algoritmu \emph on LQG \emph default . Použitelnou implementaci algoritmu \emph on iLDP \emph default se nepodařilo vytvořit, tento problém bude rozebrán v diskuzi (část \begin_inset CommandInset ref LatexCommand ref reference "sec:Diskuze" \end_inset ), a tedy budou uvedeny výsledky pouze pro metodu \emph on LQG \emph default . \end_layout \begin_layout Subsection Specifikace parametrů a konstant \end_layout \begin_layout Standard Pro výpočet řízení modelu synchronního motoru s permanentními magnety byly v části \begin_inset CommandInset ref LatexCommand ref reference "sec:Synchronní-motor-PMSP-upravy" \end_inset uvedeny příslušné rovnice. Následně byly odvozeny detaily konkrétní implementace pro použité algoritmy. Pro získání výsledků a ověření použitelnosti řízení je však ještě třeba specifikovat konkrétní hodnoty jednotlivých konstant a parametrů. \end_layout \begin_layout Subsubsection Konstanty v rovnicích motoru \end_layout \begin_layout Standard Pro účely testování algoritmů volíme konstanty následovně: \begin_inset Formula \begin{eqnarray*} R_{s} & = & 0,28;\\ L_{s} & = & 0,003465;\\ \Psi_{PM} & = & 0,1989;\\ B & = & 0;\\ T_{L} & = & 0;\\ k_{p} & = & 1,5;\\ p_{p} & = & 4,0;\\ J & = & 0,04;\\ \Delta k & = & 0,000125.\end{eqnarray*} \end_inset Což vede na zjednodušené koeficienty: \begin_inset Formula \begin{eqnarray*} a & = & 0,9898;\\ b & = & 0,0072;\\ c & = & 0,0361;\\ d & = & 1;\\ e & = & 0,0149.\end{eqnarray*} \end_inset \end_layout \begin_layout Subsubsection Kovarianční matice \end_layout \begin_layout Standard Kovarianční matice \begin_inset Formula $M_{k}$ \end_inset a \begin_inset Formula $N_{k}$ \end_inset předpokládáme známé a pro účely testování je volíme následovně: \begin_inset Formula \begin{eqnarray*} M_{k} & = & \mathrm{diag\left(0,0013;\:0,0013;\:5e-6;\:1e-10\right),}\\ N_{k} & = & \mathrm{diag}\left(0,0006;\:0,0006\right).\end{eqnarray*} \end_inset \end_layout \begin_layout Subsubsection Omezení na vstupy \end_layout \begin_layout Standard Na vstupy \begin_inset Formula $u_{k}$ \end_inset klademe omezení \begin_inset Formula $u_{\alpha}^{2}+u_{\beta}^{2}\leq u_{max}^{2}$ \end_inset , kde volíme \begin_inset Formula \begin{eqnarray*} u_{max} & = & 100.\end{eqnarray*} \end_inset \end_layout \begin_layout Subsubsection Ztrátová funkce \end_layout \begin_layout Standard Do ztrátové funkce je třeba zvolit jediný parametr, a to prvek \begin_inset Formula $r$ \end_inset na diagonále matice \begin_inset Formula $R$ \end_inset . Tento parametr odpovídá penalizaci za vstupy, ale vstupy chceme upravit pouze tak, aby splňovaly výše uvedenou podmínku. Je tedy třeba parametr \begin_inset Formula $r$ \end_inset experimentálně naladit. Jako vhodná volba se na základě experimentů jeví hodnota \begin_inset Formula \begin{eqnarray*} r & = & 0,000001.\end{eqnarray*} \end_inset \end_layout \begin_layout Subsubsection Časový horizont a vzorky \end_layout \begin_layout Standard Časový horizont je volen \begin_inset Formula $K=20$ \end_inset a vzorkových trajektorií je podobně jako v předchozím případě jednoduchého systému zvoleno \begin_inset Formula $N=100$ \end_inset . \end_layout \begin_layout Subsubsection Požadovaná hodnota \end_layout \begin_layout Standard Jako hodnotu požadovaných otáček volíme \begin_inset Formula \begin{eqnarray*} \overline{\omega} & = & 1,15.\end{eqnarray*} \end_inset Uvážíme-li relativně malou periodu vzorkování \begin_inset Formula $\Delta k$ \end_inset , tato hodnota se jeví jako dosažitelnou z počáteční hodnoty \begin_inset Formula $\omega_{0}$ \end_inset při použitém časovém horizontu \begin_inset Formula $K$ \end_inset . \end_layout \begin_layout Subsubsection Počáteční podmínky \end_layout \begin_layout Standard Poslední, co je třeba zvolit, jsou počáteční podmínky pro testovaný systém. Ty samozřejmě neznáme přesně. Nemůžeme totiž měřit stav, zejména polohu a otáčky hřídele. Abychom mohli testovat chování algoritmu při rostoucí potřebě duálního přístupu, podobně jako pro jednoduchý systém budeme volit stejné střední hodnoty, ale postupně rostoucí varianci. To se bude týkat variance polohy hřídele, to jest úhlu natočení. Volíme tedy počáteční střední hodnoty: \begin_inset Formula \begin{eqnarray*} \hat{i}_{\alpha,0} & = & 0,\\ \hat{i}_{\beta,0} & = & 0,\\ \hat{\omega}_{0} & = & 1,\\ \hat{\vartheta}_{0} & = & \frac{\pi}{2}.\end{eqnarray*} \end_inset A počáteční variance jsou postupně: \begin_inset Formula \begin{eqnarray*} P_{0} & = & \mathrm{diag\left(0,01;\:0,01;\:0,01;\:0,01\right),}\\ P_{0} & = & \mathrm{diag}\left(0,01;\:0,01;\:0,01;\:0,1\right),\\ P_{0} & = & \mathrm{diag}\left(0,01;\:0,01;\:0,01;\:1\right),\\ P_{0} & = & \mathrm{diag}\left(0,01;\:0,01;\:0,01;\:10\right).\end{eqnarray*} \end_inset \end_layout \begin_layout Subsection Pozorované výsledky \end_layout \begin_layout Standard Algoritmus \emph on LQG \emph default implementovaný pro účely nalezení řízení synchronního motoru v této práci je sice navržen tak, aby dobře zvládal šum (pomocí rozšířeného Kalmanova filtru), ale nejedná se o duální metodu. Tedy s rostoucí variancí neznámých hodnot stavu, zejména polohy hřídele motoru, kterou sledujeme, poskytuje algoritmus horší řízení a dosahuje tedy i vyšší ztráty. O tom se můžeme přesvědčit v tabulce průměrných ztrát sestavené na základě simulací. \end_layout \begin_layout Standard Simulace byly provedeny analogickým postupem jako pro jednoduchý systém, kdy průměrná ztráta je střední hodnotou ze ztrát dosažených pro každou z \begin_inset Formula $N$ \end_inset vzorkových trajektorií s různou náhodnou realizací počátečních podmínek a šumu. Ztráta pro jednotlivou vzorkovou trajektorii je opět počítána pouze na základě odchylky od požadované hodnoty, tedy jako \begin_inset Formula \[ J=\sum_{k=0}^{K-1}\left(\omega_{k+1}-\overline{\omega}_{k+1}\right)^{2}=\sum_{k=0}^{K-1}\psi_{k+1}^{2}.\] \end_inset Dále označíme \begin_inset Formula $P_{\vartheta}=P_{0}^{(4,4)}$ \end_inset , tedy právě počáteční varianci polohy hřídele, kterou budeme měnit a v závislosti na této změně pozorovat dosažené ztráty. Pak jsou dosažené průměrné ztráty \begin_inset Formula $\overline{J}$ \end_inset pomocí algoritmu \emph on LQG \emph default následující: \end_layout \begin_layout Subsubsection Tabulka průměrných ztrát \end_layout \begin_layout Standard \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P_{\vartheta}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,01 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 1 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 10 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \emph on \begin_inset Formula $\overline{J}$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,0776 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 0,1074 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 3,3982 \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout NaN \end_layout \end_inset \end_inset \end_layout \begin_layout Subsubsection Průběhy stavových veličin \end_layout \begin_layout Standard Ještě lépe je možno pozorovat výsledky algoritmu při rostoucí varianci na grafech průběhů stavových veličin systému. Podobně jako pro jednoduchý systém jsou zde různými barvami zobrazeny jednotliv é vzorkové trajektorie, které tvoří \begin_inset Quotes gld \end_inset trubici \begin_inset Quotes grd \end_inset v důsledku šumu. Protože je algoritmus \emph on LQG \emph default neduální, s rostoucí variancí poskytuje špatné řízení, a to zpravidla v těch případech, kdy skutečné hodnoty polohy hřídele \begin_inset Formula $\vartheta$ \end_inset jsou vzdáleny střední hodnotě, se kterou počítáme. Jednotlivé průběhy jsou zachyceny v grafech Obrázek \begin_inset CommandInset ref LatexCommand ref reference "Flo:prubehy-pmsm" \end_inset pro volby variance \begin_inset Formula $P_{\vartheta}=0,01$ \end_inset , \begin_inset Formula $P_{\vartheta}=0,1$ \end_inset , \begin_inset Formula $P_{\vartheta}=1$ \end_inset a \begin_inset Formula $P_{\vartheta}=10$ \end_inset . \begin_inset Float figure wide false sideways false status open \begin_layout Plain Layout \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename pmsm001.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename pmsm01.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P_{\vartheta}=0,01$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P_{\vartheta}=0,1$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename pmsm1.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Graphics filename pmsm10.eps scale 44 \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P_{\vartheta}=1$ \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout \begin_inset Formula $P_{\vartheta}=10$ \end_inset \end_layout \end_inset \end_inset \begin_inset Caption \begin_layout Plain Layout Průběhy hodnot stavových veličin dle volby \begin_inset Formula $P_{\vartheta}$ \end_inset \end_layout \end_inset \end_layout \begin_layout Plain Layout \begin_inset CommandInset label LatexCommand label name "Flo:prubehy-pmsm" \end_inset \end_layout \end_inset \end_layout \begin_layout Section Diskuze \begin_inset CommandInset label LatexCommand label name "sec:Diskuze" \end_inset \end_layout \begin_layout Standard Nyní srovnáme dosažené výsledky pro jednotlivé algoritmy a budeme diskutovat jejich přednosti, nedostatky a použitelnost pro řešení konkrétních úloh. Pro úlohu nalezení řízení synchronního motoru s permanentními magnety byly implementovány dva algoritmy. Konkrétně se jednalo o algoritmy \emph on iLDP \emph default a \emph on LQG \emph default , přičemž je třeba podotknout, že funkční implementaci \emph on iLDP \emph default se nepodařilo vytvořit. K dispozici je pro tuto úlohu pouze jeden algoritmus, který nalezne řízení, a srovnání tedy není možné. Z tohoto důvodu budou tedy jednotlivé algoritmy srovnány pouze na základě výsledků pro jednoduchý systém. Algoritmus \emph on iLDP \emph default , na který je zaměřena tato práce, bude diskutován v samostatné části. \end_layout \begin_layout Subsection Porovnání algoritmů \end_layout \begin_layout Standard Algoritmy jsou porovnány na základě výsledků simulací pro jednoduchý systém. Jedná se o integrátor s neznámým ziskem, tedy lineární a časově invariantní systém. Systém je však na mezi stability, což může být příčinou problémů některých algoritmů. Další problém může nastat, když by hodnota neznámého parametru \begin_inset Formula $b$ \end_inset byla nulová. Z rovnice jednoduchého systému \begin_inset Formula \[ y_{k+1}=y_{k}+bu_{k}+\sigma e_{k},\] \end_inset pak plyne, že neexistuje žádné řízení \begin_inset Formula $u_{k}$ \end_inset , které by dosáhlo změny stavu \begin_inset Formula $y_{k}$ \end_inset na požadovanou hodnotu (není-li již tato hodnota triviálně dosažena). Přičemž neznámý parametr \begin_inset Formula $b$ \end_inset považujeme za náhodnou veličinu s normálním rozdělením, a tedy neuvažujeme-li degenerované rozdělení, je pravděpodobnost dosažení přesné hodnoty \begin_inset Formula $b=0$ \end_inset nulová. Degenerované rozdělení ale dostáváme, když považujeme hodnotu \begin_inset Formula $b$ \end_inset za známou například použitím principu \begin_inset Quotes gld \end_inset certainty equivalence \begin_inset Quotes grd \end_inset , kdy předpokládáme hodnotu parametu rovnou jeho střední hodnotě. Je-li současně střední hodnota rovna nule, nastává kritický případ, kdy řízení založeno na tomto předpokladu musí selhat. \end_layout \begin_layout Subsubsection CE \end_layout \begin_layout Standard Řízení \emph on CE \emph default je nejjednodušší metodou použitou v této práci. Využíváme předpokladu, že skutečnou hodnotu neznámého parametru \begin_inset Formula $b$ \end_inset známe, a tedy ji pokládáme rovnu jeho střední hodnotě \begin_inset Formula $\mathrm{E}b$ \end_inset . Je-li ale skutečná hodnota neznámého parametru \begin_inset Formula $b$ \end_inset příliš vzdálená od střední hodnoty, se kterou počítáme, řízení samozřejmě selhává. Tento přístup tedy není duální, a jak bylo možno pozorovat na výsledcích simulací, s rostoucí variancí \begin_inset Formula $P$ \end_inset parametru \begin_inset Formula $b$ \end_inset dosahuje větší ztráty. \end_layout \begin_layout Standard Dalším problémem tohoto přístupu je volba střední hodnoty \begin_inset Formula $0$ \end_inset , kdy zřejmě z tvaru rovnice regulátoru hrozí dělení nulou. Přičtením malého parametru \begin_inset Formula $\varepsilon$ \end_inset sice můžeme problém dělení nulou odstranit, ale použitelné řízení nezískáme. Potřebovali bychom tedy přičíst větší hodnotu \begin_inset Formula $\varepsilon$ \end_inset , což ale způsobí nepřesnost při střední hodnotě \begin_inset Formula $\mathrm{E}b$ \end_inset dále od nuly. Ideální by tedy bylo vždy \begin_inset Quotes gld \end_inset naladit \begin_inset Quotes grd \end_inset parametr \begin_inset Formula $\varepsilon$ \end_inset podle konkrétní volby střední hodnoty \begin_inset Formula $\mathrm{E}b$ \end_inset , což ale velmi snižuje univerzálnost metody. Dalším možným způsobem je místo malého parametu \begin_inset Formula $\varepsilon$ \end_inset přičítat varianci \begin_inset Formula $P$ \end_inset . Na základě tohoto postupu byl pak vytvořen návrh aproximace regulátoru pro algoritmus \emph on iLDP \emph default . Zdokonalování návrhu řízení \emph on CE \emph default však nebylo předmětné v této práci, protože záměrem bylo využít \emph on CE \emph default jako nejjednoduššího neduálního přístupu pro srovnání s ostatními \begin_inset Quotes gld \end_inset dokonalejšími \begin_inset Quotes grd \end_inset algoritmy. \end_layout \begin_layout Standard Návrh řízení \emph on CE \emph default tedy můžeme stručně zhodnotit tak, že je sice velmi jednoduchý, ale neduální, a vykazuje značně problematické chování pro střední hodnotu \begin_inset Formula $\mathrm{E}b=0$ \end_inset . \end_layout \begin_layout Subsubsection sLQ \end_layout \begin_layout Standard Označení \emph on sLQ \emph default bylo použito pro klasické LQ řízení aplikované na základní verzi jednoduchého systému bez dodatečných úprav. Protože je ale skutečná hodnota parametru \begin_inset Formula $b$ \end_inset v rovnicích neznámá a není nijak odhadována algoritmem, využívá se zde principu \begin_inset Quotes gld \end_inset certainty equivalence \begin_inset Quotes grd \end_inset a předpokládáme, že skutečná hodnota parametru \begin_inset Formula $b$ \end_inset je rovna jeho střední hodnotě \begin_inset Formula $\mathrm{E}b$ \end_inset . \end_layout \begin_layout Standard LQ řízení je primárně navrženo pro řízení lineárních systémů s kvadratickou ztrátovou funkcí. Tomuto zadání základní verze jednoduchého systému plně vyhovuje. Řízení je pak hledáno ve tvaru lineární funkce, kde řízení je lineární funkcí stavu. \end_layout \begin_layout Standard Již z tvaru rovnice základní verze jednoduchého systému je zřejmé, že předpoklád áme-li parametr \begin_inset Formula $b$ \end_inset rovný střední hodnotě \begin_inset Formula $\mathrm{E}b=0$ \end_inset , úloha nemá smysl, protože libovolné řízení \begin_inset Formula $u_{k}$ \end_inset nemůže dosáhnout změny stavu. V tomto případě řízení \emph on sLQ \emph default nelze použít, jak je také vidět v tabulce průměrných ztrát. \end_layout \begin_layout Standard Je třeba uvést, že se nejedná o duální metodu, a tedy s rostoucí variancí neznámého parametru dosahujeme vyšší ztráty. Dosažené výsledky jsou pak podobné jako u \emph on CE \emph default . Kromě případu \begin_inset Formula $\mathrm{E}b=0$ \end_inset , kdy \emph on sLQ \emph default zcela selhává, je však dosaženo nepatrně nižší průměrné ztráty. \end_layout \begin_layout Subsubsection LQ \end_layout \begin_layout Standard Přístupem \emph on LQ \emph default je označena verze lineárně-kvadratického řízení, aplikovaného na upravené rovnice jednoduchého systému. Upravená verze rovnic již odhaduje neznámý parametr \begin_inset Formula $b$ \end_inset pomocí odhadů jeho střední hodnoty \begin_inset Formula $\hat{b}$ \end_inset a variance \begin_inset Formula $P$ \end_inset , kdy se tyto dva parametry spolu se stavem \begin_inset Formula $y_{k}$ \end_inset vyvíjejí v čase. Získané rovnice pak již nejsou lineární, linearizujeme je tedy v každém časovém kroku a následně aplikujeme výpočet klasického LQ řízení. Na základě výsledků simulací usuzujeme, že se jedná o duální algoritmus. \end_layout \begin_layout Standard Na rozdíl od složitějších algoritmů nevyužívá \emph on LQ \emph default , kromě linearizace, žádné další nepřesné přístupy, jako aproximace nebo výpočty na vzorkových trajektoriích. To se v simulacích ukazuje velmi výhodným, kdy algoritmus \emph on LQ \emph default dosahuje ve srovnání s ostatními přístupy nejlepších výsledků a dosahuje nízké ztráty ve všech případech volby parametrů. \end_layout \begin_layout Subsubsection iLQG \end_layout \begin_layout Standard Algoritmus \emph on iLQG \emph default je rozšířením základního LQG řízení a je určen i pro složitěší systémy. Lze jej aplikovat i na nelineární systémy s nekvadratickou ztrátovou funkcí v důsledku požadavku na omezení vstupů. V této práci je \emph on iLQG \emph default použit jako mezikrok mezi jednodušším přístupem \emph on LQ \emph default a složitějším algoritmem \emph on iLDP \emph default . Na základě výsledků simulací opěd soudíme, že \emph on iLQG \emph default je duálním algoritmem. \end_layout \begin_layout Standard Základní postup využívaný \emph on iLQG \emph default je nejprve linearizace a pak vyjádření vztahů pomocí matic, které mohou být ještě dále upravovány z důvodu například omezení vstupů nebo zajištění regularity. Dále je třeba zmínit, že se v podstatě jedná o lokální metodu, protože linearizace je prováděna vzhledem k reprezentativní trajektorii a následně se pak počítá v odchylkách od této trajektorie. Reprezentativní trajektorii můžeme získat například simulací bezšumového vývoje systému nebo průměrováním dostatečného počtu vzorkových trajektorií. Algoritmus \emph on iLQG \emph default pak aplikujeme na upravenou verzi rovnic jednoduchého systému, podobně jako v případě \emph on LQ \emph default . \end_layout \begin_layout Standard Jak je možné přesvědčit se v tabulce průměrných ztrát, \emph on iLQG \emph default dosahuje velmi dobrých výsledků (to jest nízké ztráty), je-li zajištěn nízký výskyt realizací skutečné hodnoty \begin_inset Formula $b$ \end_inset blízko nuly. Konkrétně se jedná o případ volby \begin_inset Formula $\hat{b}=10$ \end_inset a libovolného \begin_inset Formula $P$ \end_inset , nebo \begin_inset Formula $\hat{b}=1$ \end_inset a současně \begin_inset Formula $P=0,01$ \end_inset popřípadě \begin_inset Formula $P=0,1$ \end_inset . V opačném případě, pro \begin_inset Formula $\hat{b}=0$ \end_inset , nebo \begin_inset Formula $\hat{b}=1$ \end_inset a současně \begin_inset Formula $P=1$ \end_inset nebo \begin_inset Formula $P=10$ \end_inset , je dosaženo vyšší průměrné ztráty (okolo hodnoty \begin_inset Formula $2$ \end_inset ). Z grafů průběhu pro \emph on iLQG \emph default je pak zřejmé, že v těchto negativních případech mají některé trajektorie dobrý průběh a některé naopak špatný. To je ovšem z hlediska řízení nepřijatelné, aby regulátor někdy poskytl dobré řízení a někdy naopak téměř nepoužitelné. \end_layout \begin_layout Standard S velkou pravděpodobností je tento problém opět způsoben problematickým chováním algoritmu \emph on iLQG \emph default v okolí nuly. Výpočet řízení je totiž při použití tohoto algoritmu značně závislý na volbě reprezentativní trajektorie, kterou když vygenerujeme špatně, dostaneme i špatné řízení. Právě v blízkosti nuly může dojít k nepříznivému generování reprezentativní trajektorie. Vycházíme z \begin_inset Formula $y_{0}=0$ \end_inset , a tedy při kladném parametru \begin_inset Formula $b$ \end_inset generujeme trajektorii do kladných hodnot, nebo se naopak dostáváme do záporných čísel, je-li skutečná hodnota parametru \begin_inset Formula $b$ \end_inset záporná. Tento rozpor pak může způsobit problémy jako špatné řízení a dosažení vyšší ztráty. \end_layout \begin_layout Subsection Hodnocení algoritmu iLDP \end_layout \begin_layout Standard Algoritmus \emph on iterativního lokálního dynamického programování \emph default ( \emph on iLDP \emph default ) je hlavním námětem této práce. Jeho výsledky tedy popíšeme detailněji. Nejdříve uveďme výsledky v porovnání s ostatními algoritmy pro jednoduchý systém. Dále bude zařazena diskuze negativních vlastností algoritmu, které mohly vést k tomu, že se nepodařilo vytvořit funkční implementaci pro sychronní motor. Na závěr bude v samostatné části zařazeno porovnání pozorovaných vlastností \emph on iLDP \emph default s prvotními očekáváními. \end_layout \begin_layout Standard Algoritmus \emph on iLDP \emph default je nejsložitější ze zde prezentovaných metod pro nalezení optimálního řízení, zejména při nutnosti duálního přístupu. Je založen na obecných principech, jmenovitě Hamilton-Jacobi-Bellmanově rovnosti a Pontryaginůvě principu minima. Jedná se o iterační metodu, tedy takovou, která vychází od jistého počátečního řízení a to v iteracích \begin_inset Quotes gld \end_inset vylepšuje \begin_inset Quotes grd \end_inset za účelem dosažení optima. Počáteční řízení však musíme dodat algoritmu jako apriorní informaci a špatné řízení může způsobit nutnost velkého počtu iterací k nalezení optimálníh o řízení nebo v extrémním případě dokonce nenalezení vhodného řízení. Dále algoritmus \emph on iLDP \emph default je lokální metoda a tedy výpočty probíhají na okolí nějaké reprezentativní trajektorie. Toto okolí je třeba zvolit při konkrétní implementaci algoritmu a jeho volba může mít nezanedbatelný vliv na výsledky, které následně \emph on iLDP \emph default poskytne. Algoritmus pak odpovídá obecnému schématu dynamického programování, kde se v diskrétních časových okamžicích napočítávají od nejvyššího času zpět optimální hodnoty Hamiltoniánů, které se postupně uchovávají v Bellmanově funkci. Z nich je také následně odvozeno i optimální řízení. \end_layout \begin_layout Subsubsection Srovnání pro jednoduchý systém \end_layout \begin_layout Standard Při srovnání výsledků pro jednoduchý systém s ostatními algoritmy poskytuje \emph on iLDP \emph default dobré řízení ve všech případech, kdy se skutečné realizace neznámého parametru \begin_inset Formula $b$ \end_inset vyskytují dostatečně daleko od nuly. Tento bod je právě pro algoritmus \emph on iLDP \emph default kritický a výpočet řízení tam zpravidla selhává. Tedy pro volby \begin_inset Formula $\hat{b}=10$ \end_inset a současně \begin_inset Formula $P=0,01$ \end_inset , \begin_inset Formula $P=0,1$ \end_inset a \begin_inset Formula $P=1$ \end_inset , dále pak pro \begin_inset Formula $\hat{b}=1$ \end_inset a současně \begin_inset Formula $P=0,01$ \end_inset dosahuje \emph on iLDP \emph default velmi nízké průměrné ztráty. Nízké průměrné ztráty dosahuje pak ještě pro volbu \begin_inset Formula $\hat{b}=10$ \end_inset a současně \begin_inset Formula $P=10$ \end_inset a \begin_inset Formula $\hat{b}=1$ \end_inset a současně \begin_inset Formula $P=0,1$ \end_inset . Je-li parametr \begin_inset Formula $\hat{b}=1$ \end_inset , pak při \begin_inset Formula $P=1$ \end_inset je dosaženo extrémní hodnoty ztráty a při \begin_inset Formula $P=10$ \end_inset algoritmus dokonce vůbec nenalezne řešení. Podobně pro \begin_inset Formula $\hat{b}=0$ \end_inset při volbě \begin_inset Formula $P=0,01$ \end_inset je dosaženo nepřijatelné průměrné ztráty a pro ostatní volby \begin_inset Formula $P$ \end_inset již vůbec nenalézáme řešení. \end_layout \begin_layout Standard Tedy ve srovnání s ostatními algoritmy poskytuje \emph on iLDP \emph default sice výsledky, které patří mezi nejlepší, ale pouze za předpokladu, že je zaručeno realizování skutečných hodnot \begin_inset Formula $b$ \end_inset dostatečně daleko od nuly. Při srovnávání konkrétních hodnot průměrných ztrát je třeba mít na vědomí, že se hodnoty mohou nepatrně lišit v závislosti na realizaci šumu. \end_layout \begin_layout Subsubsection Diskuze negativních vlastností algoritmu \end_layout \begin_layout Standard V průběhu implementace a testování \emph on iLDP \emph default se objevily jisté komplikace a projevily se negativní vlastnosti tohoto algoritmu. Jedná se zejména o problematické chování při realizaci skutečné hodnoty neznámého parametru \begin_inset Formula $b$ \end_inset blízko nuly pro jednoduchý systém. Dalším problémem je pak otázka vhodné volby aproximací funkcí pro synchronní motor. \end_layout \begin_layout Subsubsection Problematické chování při \begin_inset Formula $b$ \end_inset blízko nuly \end_layout \begin_layout Standard Nejprve se tedy zaměřme na obtíže týkající se jednoduchého systému. Jedním z důvodů, proč systém vykazuje problematické chování pro \begin_inset Formula $b$ \end_inset blízko hodnoty \begin_inset Formula $0$ \end_inset , by mohla být volba aproximace regulátoru. Ten je totiž volen jako \begin_inset Formula \[ \pi(k,x)=\frac{r_{k+1}-K_{1}y_{k}}{K_{2}\hat{b}_{k}+K_{3}P_{k}+K_{4}}.\] \end_inset Algoritmus \emph on iLDP \emph default je duální a odhaduje skutečnou hodnotu neznámého parametru \begin_inset Formula $b$ \end_inset pomocí jeho střední hodnoty \begin_inset Formula $\hat{b}$ \end_inset a variance \begin_inset Formula $P$ \end_inset . Za předpokladu, že by odhadování proběhlo dobře a efektivně, odhad \begin_inset Formula $\hat{b}$ \end_inset se bude blížit skutečné hodnotě \begin_inset Formula $b$ \end_inset , která je ovšem blízko u nuly. Další vlastností předpokládaného dobrého odhadu je, že si jím budeme téměř jisti, a tedy variance \begin_inset Formula $P$ \end_inset se bude také blížit nule. A vyhodnotil-li algoritmus v předchozí iteraci koeficient \begin_inset Formula $K_{4}$ \end_inset jako nepodstatný pro tvar funkce regulátoru, to jest \begin_inset Formula $K_{4}$ \end_inset je opět téměř nulový, dostáváme ve jmenovateli velmi malé číslo, téměř nulové. Funkce regulátoru \begin_inset Formula $\pi$ \end_inset pak vrací i pro malou odchylku \begin_inset Formula $y$ \end_inset od požadované hodnoty (například v důsledku šumu) velký řídící zásah. To je ale principiálně dobře, protože při \begin_inset Formula $b$ \end_inset blízko \begin_inset Formula $0$ \end_inset musíme volit extrémně vysoké řídící zásahy, a to téměř blížící se nekonečnu. Na druhou stranu si je ale třeba uvědomit, že uvažovaná funkce regulátoru je pouze aproximací, a tedy se dopouští jisté chyby. Tato chyba samozřejmě pak při velkém řídícím zásahu také narůstá. Dalším problémem je, že výpočty jsou prováděny na počítači, ten je při výpočtech s malými čísly blízko nuly nebo naopak s velkými čísly značně nepřesný. \end_layout \begin_layout Standard Možností, jak se vyhnout tomuto problému, by bylo volit jiný tvar funkce regulátoru, otázkou by pak ale bylo, jaký. Zvolený tvar regulátoru má totiž několik výhod. Za prvé koeficienty \begin_inset Formula $K_{i}$ \end_inset je možno určit metodou nejmenších čtverců, a tedy jejich výpočet z množiny dvojic \begin_inset Formula $\left\{ x^{(n)},u^{(n)}\right\} $ \end_inset je poměrně jednoduchý. Další výhodou je, že obecný tvar funkce regulátoru vznikl na základě vyjádření řízení \begin_inset Formula $u$ \end_inset z rovnice jednoduchého systému při požadavku dosažení požadované hodnoty v jednom časovém kroku. Získaná funkce by pak měla relativně dobře aproximovat skutečné optimální řízení. \end_layout \begin_layout Standard \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Standard Druhým z možných důvodů problematického chování u nuly je lokalita metody. Výpočty jsou totiž prováděny na okolí tvořeném množinou reprezentativních trajektorií. Generujeme-li reprezentativní trajektorie pro parametr \begin_inset Formula $b$ \end_inset blízko nuly, s velkou pravděpodobností dojde k tomu, že část trajektorií se vygeneruje s předpokladem kladného \begin_inset Formula $b$ \end_inset a část předpokládající \begin_inset Formula $b$ \end_inset záporné. Ovšem pro malé, téměř nulové hodnoty parametru \begin_inset Formula $b$ \end_inset je optimální řídící zásah, jak už bylo zmíněno, extrémně vysoký a v závislosti na tom, je-li předpokládáno \begin_inset Formula $b$ \end_inset kladné nebo záporné, mění se odpovídajícím způsobem i znaménka řídících zásahů. Jako shrnutí popsané situace dostáváme část reprezentativních trajektorií navrhující extrémně vysoký kladný řídící zásah a pak druhou část navrhující naopak extrémně vysoký záporný řídící zásah. Zřejmě z takovýchto dat nelze získat použitelnou a už vůbec ne správnou hodnotu optimálního řízení. \end_layout \begin_layout Standard Vyhnout se výše popsanému problému by bylo možno pouze jinou volbou okolí. Narážíme zde ale opět na obtíže, jak jiné okolí zvolit, abychom se vyhnuli výše popsanému problému. \end_layout \begin_layout Standard Protože ale spolu obě navržené možnosti způsobující problematické chování při \begin_inset Formula $b$ \end_inset blízko \begin_inset Formula $0$ \end_inset do určité míry souvisí, je pravděpodobný i vliv kombinace obou dvou. \end_layout \begin_layout Subsubsection Obtíže s volbou aproximací \end_layout \begin_layout Standard Již byla diskutována problematika volby aproximace okolí a aproximace funkce řízení. Problémy byly popsány pro konkrétní případ jednoduchého systému. Další aproximací, kterou je třeba volit, je aproximace Bellmanovy funkce. Jedná se o skalární funkci více proměnných, která v sobě zachycuje v podstatě celou dynamiku a vývoj systému. Je zpravidla velmi složitá, ale pro potřeby algoritmu se ji snažíme aproximovat lineární kombinací zvolených základních funkcí. Má-li být tato aproximace dostatečně jednoduchá pro výpočty jejích hodnot, ale i koeficientů, může být velmi nepřesnou aproximací skutečné Bellmanovy funkce. \end_layout \begin_layout Standard Protože Bellmanova funkce je základní částí algoritmu \emph on iLDP \emph default , chyby, kterých se dopustíme její aproximací, se následně přenášejí prakticky do všech ostatních částí algoritmu. \end_layout \begin_layout Standard Na druhou stranu se ale chyby v důsledku aproximace dopustíme velmi snadno. Bellmanova funkce může být totiž u složitějších systémů značně komplikovaná na to, aby ji bylo možno aproximovat lineární kombinací základních funkcí. Dalším problémem je pak počet těchto funkcí. Ten s rostoucí dimenzí stavového prostoru rychle narůstá a následně je třeba zajistit dostatek dat v podobě vzorkových trajektorií pro vypočtení jejich koeficientů. \end_layout \begin_layout Standard Volba vhodné aproximace Bellmanovy funkce se tedy jeví jako nejkomplikovanější z dílčích problémů ponechaných autory algoritmu \emph on iLDP \emph default k dořešení při konkrétní implementaci. V článku \begin_inset CommandInset citation LatexCommand cite key "TodorovTassaILDP" \end_inset je sice poskytnut návod volby aproximace ve tvaru lineární kombinace základních funkcí, ale tato volba nemusí být vždy správná. Kdybychom si chtěli udělat představu o průběhu skutečné Bellmanovy funkce, abychom mohli snadněji určit vhodnou aproximaci, narážíme na problém, že Bellmanovu funkci máme zadanou pomocí Hamilto-Jacobi-Bellmanovy rovnosti. \end_layout \begin_layout Standard \begin_inset VSpace defskip \end_inset \end_layout \begin_layout Standard Shrnutí výše zmiňovaných problémů nám tedy dává následující závěr: svoboda ve výběru aproximací nám poskytuje značnou volnost a činí algoritmus univerzáln ím. Na druhou stranu je ale značně omezující, zejména když se nám nepodaří vhodnou aproximaci nalézt. \end_layout \begin_layout Subsection Konfrontace s prvotními očekáváními \end_layout \begin_layout Standard Nyní porovnáme dosažené výsledky algoritmu iLDP s prvotními očekáváními uvedenými v části \begin_inset CommandInset ref LatexCommand ref reference "sub:Předběžný-odhad-vlatností" \end_inset . Vždy je uvedeno nejdříve prvotní očekávání a následně je komentováno, zda bylo potvrzeno: \end_layout \begin_layout Paragraph Výhody \end_layout \begin_layout Itemize duální metoda (lépe se vypořádá s neznalostí oproti neduálním metodám) \end_layout \begin_deeper \begin_layout Itemize toto očekávání bylo potvrzeno, iLDP dosahuje lepších výsledků než neduální metody, což je patrné při rostoucí neznalosti \end_layout \begin_layout Itemize je však třeba podotknout, že musíme mít zajištěnu dostatečnou vzdálenost od kritických bodů pro iLDP, kde pak samozřejmě algoritmus selhává \end_layout \end_deeper \begin_layout Itemize lepší zvládnutí šumu \end_layout \begin_deeper \begin_layout Itemize zvládání šumu lze z provedených simulací těžko posoudit, ovšem lze předpokládat, že iLDP zvládne šum lépe než metody, které přítomnost šumu vůbec neuvažují \end_layout \end_deeper \begin_layout Itemize rychlejší dosažení požadované hodnoty \end_layout \begin_deeper \begin_layout Itemize na rychlost dosažení požadované hodnoty lze na základě výsledků pro jednoduchý systém těžko usuzovat, protože prakticky všechny použité metody dosahují požadované hodnoty (v příznivém případě, kdy nalézají použitelné řízení) hned v čase \begin_inset Formula $k=2$ \end_inset , tedy v prvním možném říditelném kroce \end_layout \begin_layout Itemize pro složitější systém synchronního motoru, kde by bylo srovnání zřetelnější, se nepodařilo implementovat funkční verzi iLDP algoritmu \end_layout \end_deeper \begin_layout Itemize možnost aplikace na mnoharozměrové stavové a řídící prostory \end_layout \begin_deeper \begin_layout Itemize tuto vlastnost uvádějí sami autoři algoritmu iLDP, protože se jedná o lokální metodu, je možné vyhnout se problémům globálních metod a aplikovat algoritmus i na systémy s více rozměry, zůstává zde však problém volby aproximací, který je pak třeba řešit a který se ukazuje jako netriviální \end_layout \end_deeper \begin_layout Itemize univerzálnost (vychází z obecných principů) a svoboda výběru konkrétních aproximací a minimalizací \end_layout \begin_deeper \begin_layout Itemize algoritmus je zřejmě značně univerzální, protože umožňuje zvolit mnoho detailů až při konkrétní implementaci \end_layout \begin_layout Itemize naopak se tato vlastnost v mnoha případech ukazuje být na škodu a dokonce může být i jednou z největších slabin algoritmu iLDP, jelikož nám základní popis algoritmu neříká, jak konkrétní detaily volit \end_layout \end_deeper \begin_layout Paragraph Nevýhody \end_layout \begin_layout Itemize vyšší časová náročnost \end_layout \begin_deeper \begin_layout Itemize vyšší časová náročnost byla potvrzena v průběhu simulací pro potřeby této práce \end_layout \begin_layout Itemize ve srovnání s ostatními přístupy, které řeší danou úlohu vesměs analyticky a jsou založeny hlavně na maticových operacích, algoritmus iLDP používá aproximací, numerické minimalizace a výpočtů na vzorkových trajektoriích, a tedy výpočetní čas je řádově několikrát delší než pro ostatní metody (konkrétní příklad je výpočet \begin_inset Formula $N$ \end_inset vzorkových trajektorií pro vytvoření průběhů \begin_inset Formula $y$ \end_inset pro jednoduchý systém, který trval pro iLDP o tři řády déle než pro všechny ostatní algoritmy) \end_layout \end_deeper \begin_layout Itemize numerické výpočty (minimalizace) \end_layout \begin_deeper \begin_layout Itemize pro numerickou minimalizaci je jednak nutno zvolit vhodné minimalizační algoritmy (v implementacích v této práci byly použity funkce programu \emph on Matlab \emph default \family typewriter fminunc \family default a \family typewriter fmincon \family default pro neomezenou a omezenou minimalizaci), dále numerická minimalizace hledá zpravidla jen lokální minima, je náročnější na výpočetní čas a je méně přesná, a to zejména při výpočtech na aproximovaných funkcích, kde i malá odchylka od správného průběhu původní funkce může dát špatný výsledek velmi vzdálený od správné hodnoty \end_layout \end_deeper \begin_layout Itemize nepřesnost v důsledku aproximace klíčových funkcí v algoritmu a problémy s jejich volbou \end_layout \begin_deeper \begin_layout Itemize algoritmus iLDP pracuje s aproximacemi funkcí řízení a dále s aproximací Bellmanovy funkce, na které je postaven prakticky celý algoritmus; v důsledku toho se chyby způsobené použitím aproximace přenášejí prakticky do všech ostatních výpočtů v algoritmu \end_layout \begin_layout Itemize dalším problémem je pak samotná volba aproximací, která již byla diskutována výše \end_layout \end_deeper \begin_layout Itemize implementační složitost \end_layout \begin_deeper \begin_layout Itemize z jednoho pohledu je implementace algoritmu iLDP jednoduchá, protože je popsán jednoduchou osnovou složenou pouze ze čtyř bodů \end_layout \begin_layout Itemize naopak je ale třeba vyřešit mnoho dílčích detailů, například vytvořit aproximace funkcí a najít vhodnou reprezentaci okolí pro výpočet; samotná implementace se tedy může velmi zkomplikovat a dokonce se nemusí ani podařit vytvoření funkční verze algoritmu \end_layout \end_deeper \begin_layout Itemize lokálnost metody a tedy i nalezeného řešení \end_layout \begin_deeper \begin_layout Itemize jak již bylo zmíněno, iLDP hledá optimální řízení v okolí nějaké reprezentativní trajektorie, a tedy zpravidla není zajištěna optimalita nalezeného řízení v celém stavovém a řídícím prostoru \end_layout \end_deeper \begin_layout Itemize volba okolí (lokální metoda) \end_layout \begin_deeper \begin_layout Itemize při implementaci iLDP je třeba zvolit konkrétní reprezentaci okolí \end_layout \begin_layout Itemize v používaných implementacích je volena jednoduchá možnost, kdy je okolí reprezentováno množinou vzorkových trajektorií, na které jsou pak prováděny další výpočty \end_layout \end_deeper \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Addchap Závěr \end_layout \begin_layout Standard V kapitole \begin_inset CommandInset ref LatexCommand ref reference "cha:Teorie-duálního-řízení" \end_inset této práce je stručně popsána základní teorie duálního řízení a další teoretick é poznatky potřebné k popisu konkrétních algoritmů pro nalezení optimálního řízení. V další kapitole následuje přiblížení jednotlivých algoritmů použitých pro srovnání s ústředním algoritmem této práce: \emph on iterativním lokálním dynamickým programováním \emph default ( \emph on iLDP \emph default ). Jemu je pak věnována druhá polovina kapitoly \begin_inset CommandInset ref LatexCommand ref reference "cha:Algoritmy-pro-návrh" \end_inset . \end_layout \begin_layout Standard Algoritmus \emph on iLDP \emph default byl implementován pro jednoduchý systém. Pro tento systém byly následně implementovány i další algoritmy pro srovnání. Implementace \emph on iLDP \emph default pro složitější systém, synchronní motor s permanentními magnety, se nezdařila z důvodu obtíží při volbě aproximací. Nepodařilo se nalézt takové aproximace zpětnovazebního řízení a Bellmanovy funkce, aby na jejich základě algoritmus \emph on iLDP \emph default nalezl použitelné řízení. Pro složitější systém byl však implementován algoritmus \emph on LQG \emph default , který nalézá funkční řízení. Jedná se ale o neduální metodu, a tedy s rostoucí neznalostí selhává. Konkrétní popisy testovaných systémů a úpravy jejich rovnic pro potřeby jednotlivých algoritmů lze nalézt v kapitole \begin_inset CommandInset ref LatexCommand ref reference "cha:Systémy-pro-testování" \end_inset . \end_layout \begin_layout Standard Kapitola \begin_inset CommandInset ref LatexCommand ref reference "cha:Výsledky" \end_inset obsahuje získané výsledky na základě simulací. Algoritmus \emph on iLDP \emph default je porovnán s ostatními testovanými algoritmy podle dosažených výsledků pro jednoduchý systém. Dále jsou uvedeny výsledky pro složitější systém získané pomocí \emph on LQG \emph default . Na závěr jsou diskutovány problémy týkající se algoritmu \emph on iLDP \emph default , které vedly v jistých případech k problematickému chovaní u jednoduchého systému. Následuje diskuze obtíží implementace \emph on iLDP \emph default pro složitější systém. Nakonec jsou v bodech porovnány skutečné výsledky získané ze simulací a v průběhu implementace s prvotními očekáváními týkajícími se algoritmu \emph on iLDP \emph default . \end_layout \begin_layout Standard Algoritmus \emph on iLDP \emph default byl v této práci otestován i na jiných problémech, než pro které byl vyvinut svými autory. Dále byly objeveny některé kladné, ale hlavně i záporné stránky týkající se jeho implementace a použitelnosti na konkrétní úlohy. V závěrečné kapitole práce byly výsledky dosažené pomocí \emph on iLDP \emph default srovnány s výsledky dosaženými užitím principu separace, tedy pomocí řízení \emph on LQG \emph default . Pro jednoduchý systém bylo provedeno srovnání i s dalšími metodami návrhu řízení. Naopak pro složitější systém jsou k dispozici pouze výsledky získané pomocí \emph on LQG \emph default . \end_layout \begin_layout Standard Výsledky je možno shrnout tak, že \emph on iLDP \emph default je řádově několikrát náročnější na výpočetní čas, ale při větší neznalosti dosahuje lepších výsledků. Je ovšem třeba zajistit, aby se nerealizovaly problematické hodnoty pro tento algoritmus. Naproti tomu \emph on LQG \emph default je rychlejší, ale s rostoucí neznalostí dosahuje špatných výsledků nebo dokonce selhává. Co se týče algoritmu \emph on iLDP \emph default , je třeba ještě zmínit problém týkající se volby aproximací, který se ukazuje být největší slabinou této metody. \end_layout \begin_layout Standard \begin_inset Newpage newpage \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash addcontentsline{toc}{chapter}{Literatura} \end_layout \begin_layout Plain Layout \backslash markboth{Literatura}{Literatura} \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset CommandInset bibtex LatexCommand bibtex btprint "btPrintAll" bibfiles "bpzdroje" options "czechiso" \end_inset \end_layout \end_body \end_document