root/applications/dual/IterativeLocal/text/bpkomplet.lyx @ 908

Revision 908, 85.3 kB (checked in by vahalam, 14 years ago)
Line 
1#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
2\lyxformat 345
3\begin_document
4\begin_header
5\textclass scrreprt
6\use_default_options true
7\language czech
8\inputencoding auto
9\font_roman default
10\font_sans default
11\font_typewriter default
12\font_default_family default
13\font_sc false
14\font_osf false
15\font_sf_scale 100
16\font_tt_scale 100
17
18\graphics default
19\paperfontsize default
20\spacing single
21\use_hyperref false
22\papersize a4paper
23\use_geometry false
24\use_amsmath 1
25\use_esint 1
26\cite_engine basic
27\use_bibtopic false
28\paperorientation portrait
29\secnumdepth 2
30\tocdepth 2
31\paragraph_separation indent
32\defskip medskip
33\quotes_language german
34\papercolumns 1
35\papersides 1
36\paperpagestyle default
37\tracking_changes false
38\output_changes false
39\author ""
40\author ""
41\end_header
42
43\begin_body
44
45\begin_layout Standard
46\align left
47\begin_inset ERT
48status open
49
50\begin_layout Plain Layout
51
52
53\backslash
54thispagestyle{empty}
55\end_layout
56
57\end_inset
58
59
60\end_layout
61
62\begin_layout Standard
63\align center
64
65\size large
66České vysoké učení technické v Praze
67\end_layout
68
69\begin_layout Standard
70\align center
71
72\size large
73Fakulta jaderná a fyzikálně inženýrská
74\end_layout
75
76\begin_layout Standard
77\begin_inset VSpace bigskip
78\end_inset
79
80
81\end_layout
82
83\begin_layout Standard
84\align center
85Katedra matematiky
86\end_layout
87
88\begin_layout Standard
89\align center
90Obor: Inženýrská informatika
91\end_layout
92
93\begin_layout Standard
94\align center
95Zaměření: Softwarové inženýrství
96\end_layout
97
98\begin_layout Standard
99\begin_inset VSpace bigskip
100\end_inset
101
102
103\end_layout
104
105\begin_layout Standard
106\align center
107\begin_inset Graphics
108        filename logo_cvut.eps
109        lyxscale 20
110        scale 20
111
112\end_inset
113
114
115\end_layout
116
117\begin_layout Standard
118\begin_inset VSpace bigskip
119\end_inset
120
121
122\end_layout
123
124\begin_layout Standard
125\align center
126
127\size larger
128\color black
129Iterativní lokální dynamické programování pro návrh duálního řízení
130\end_layout
131
132\begin_layout Standard
133\begin_inset VSpace smallskip
134\end_inset
135
136
137\end_layout
138
139\begin_layout Standard
140\align center
141
142\size larger
143\color black
144Iterative local dynamic programming for dual control
145\end_layout
146
147\begin_layout Standard
148\begin_inset VSpace bigskip
149\end_inset
150
151
152\end_layout
153
154\begin_layout Standard
155\align center
156
157\size largest
158\color black
159BAKALÁŘSKÁ
160\size larger
161 
162\size largest
163PRÁCE
164\end_layout
165
166\begin_layout Standard
167\begin_inset VSpace vfill
168\end_inset
169
170
171\end_layout
172
173\begin_layout Standard
174\align center
175Vypracoval: Michal Vahala
176\end_layout
177
178\begin_layout Standard
179\align center
180Vedoucí práce: Ing.
181 Václav Šmídl, Ph.D.
182\end_layout
183
184\begin_layout Standard
185\align center
186Rok: 2010
187\end_layout
188
189\begin_layout Standard
190\begin_inset Newpage newpage
191\end_inset
192
193
194\end_layout
195
196\begin_layout Standard
197\begin_inset ERT
198status open
199
200\begin_layout Plain Layout
201
202
203\backslash
204thispagestyle{empty}
205\end_layout
206
207\end_inset
208
209
210\end_layout
211
212\begin_layout Standard
213zadání práce
214\end_layout
215
216\begin_layout Standard
217\begin_inset Newpage newpage
218\end_inset
219
220
221\end_layout
222
223\begin_layout Standard
224\begin_inset ERT
225status open
226
227\begin_layout Plain Layout
228
229
230\backslash
231thispagestyle{empty}~
232\end_layout
233
234\end_inset
235
236
237\end_layout
238
239\begin_layout Standard
240\begin_inset VSpace vfill
241\end_inset
242
243
244\end_layout
245
246\begin_layout Subsubsection*
247Prohlášení
248\end_layout
249
250\begin_layout Standard
251Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil
252 jsem pouze podklady uvedené v přiloženém seznamu.
253\end_layout
254
255\begin_layout Standard
256\begin_inset VSpace bigskip
257\end_inset
258
259
260\end_layout
261
262\begin_layout Standard
263\noindent
264\align left
265V Praze dne \SpecialChar \ldots{}
266\SpecialChar \ldots{}
267\SpecialChar \ldots{}
268\SpecialChar \ldots{}
269\SpecialChar \ldots{}
270 
271\begin_inset space \hfill{}
272\end_inset
273
274\SpecialChar \ldots{}
275\SpecialChar \ldots{}
276\SpecialChar \ldots{}
277\SpecialChar \ldots{}
278\SpecialChar \ldots{}
279\SpecialChar \ldots{}
280
281\end_layout
282
283\begin_layout Standard
284\noindent
285\align block
286\begin_inset space \hfill{}
287\end_inset
288
289Michal Vahala
290\begin_inset ERT
291status open
292
293\begin_layout Plain Layout
294
295~~
296\end_layout
297
298\end_inset
299
300
301\end_layout
302
303\begin_layout Standard
304\begin_inset Newpage newpage
305\end_inset
306
307
308\end_layout
309
310\begin_layout Standard
311\begin_inset ERT
312status open
313
314\begin_layout Plain Layout
315
316
317\backslash
318thispagestyle{empty}~
319\end_layout
320
321\end_inset
322
323
324\end_layout
325
326\begin_layout Standard
327\begin_inset VSpace vfill
328\end_inset
329
330
331\end_layout
332
333\begin_layout Subsubsection*
334Poděkování
335\end_layout
336
337\begin_layout Standard
338Děkuji \SpecialChar \ldots{}
339 za \SpecialChar \ldots{}
340
341\end_layout
342
343\begin_layout Standard
344\begin_inset VSpace defskip
345\end_inset
346
347
348\end_layout
349
350\begin_layout Standard
351\begin_inset space \hfill{}
352\end_inset
353
354Michal Vahala
355\end_layout
356
357\begin_layout Standard
358\begin_inset Newpage newpage
359\end_inset
360
361
362\end_layout
363
364\begin_layout Standard
365\begin_inset ERT
366status open
367
368\begin_layout Plain Layout
369
370
371\backslash
372thispagestyle{empty}
373\end_layout
374
375\end_inset
376
377
378\end_layout
379
380\begin_layout Description
381
382\emph on
383Název
384\begin_inset space \space{}
385\end_inset
386
387práce:
388\emph default
389\color black
390
391\begin_inset ERT
392status open
393
394\begin_layout Plain Layout
395
396~
397\end_layout
398
399\end_inset
400
401
402\begin_inset Newline newline
403\end_inset
404
405Iterativní lokální dynamické programování pro návrh duálního řízení
406\end_layout
407
408\begin_layout Description
409\begin_inset VSpace defskip
410\end_inset
411
412
413\end_layout
414
415\begin_layout Description
416
417\emph on
418Autor:
419\emph default
420 Michal Vahala
421\end_layout
422
423\begin_layout Description
424
425\emph on
426Obor:
427\emph default
428 Inženýrská informatika
429\end_layout
430
431\begin_layout Description
432
433\emph on
434Druh
435\begin_inset space \space{}
436\end_inset
437
438práce:
439\emph default
440 Bakalářská práce
441\end_layout
442
443\begin_layout Description
444
445\emph on
446Vedoucí
447\begin_inset space \space{}
448\end_inset
449
450práce:
451\emph default
452 Ing.
453 Václav Šmídl, Ph.D.
454\end_layout
455
456\begin_layout Description
457
458\emph on
459Konzultant:
460\emph default
461 ---
462\end_layout
463
464\begin_layout Description
465
466\emph on
467Abstrakt:
468\emph default
469 abstrakt
470\end_layout
471
472\begin_layout Description
473
474\emph on
475Klíčová
476\begin_inset space \space{}
477\end_inset
478
479slova:
480\emph default
481 klíčová slova
482\end_layout
483
484\begin_layout Standard
485\begin_inset VSpace bigskip
486\end_inset
487
488
489\end_layout
490
491\begin_layout Description
492
493\emph on
494Title:
495\emph default
496\color black
497
498\begin_inset ERT
499status open
500
501\begin_layout Plain Layout
502
503~
504\end_layout
505
506\end_inset
507
508
509\begin_inset Newline newline
510\end_inset
511
512Iterative local dynamic programming for dual control
513\end_layout
514
515\begin_layout Description
516\begin_inset VSpace defskip
517\end_inset
518
519
520\end_layout
521
522\begin_layout Description
523
524\emph on
525Author:
526\emph default
527 Michal Vahala
528\end_layout
529
530\begin_layout Description
531
532\emph on
533Abstract:
534\emph default
535 abstrakt
536\end_layout
537
538\begin_layout Description
539
540\emph on
541Key
542\begin_inset space \space{}
543\end_inset
544
545words:
546\emph default
547 klíčová slova
548\end_layout
549
550\begin_layout Standard
551\begin_inset Newpage newpage
552\end_inset
553
554
555\end_layout
556
557\begin_layout Standard
558\begin_inset ERT
559status open
560
561\begin_layout Plain Layout
562
563
564\backslash
565thispagestyle{empty}
566\end_layout
567
568\end_inset
569
570
571\end_layout
572
573\begin_layout Standard
574\begin_inset CommandInset toc
575LatexCommand tableofcontents
576
577\end_inset
578
579
580\end_layout
581
582\begin_layout Standard
583\begin_inset Newpage newpage
584\end_inset
585
586
587\end_layout
588
589\begin_layout Standard
590\begin_inset ERT
591status open
592
593\begin_layout Plain Layout
594
595
596\backslash
597thispagestyle{empty}
598\end_layout
599
600\end_inset
601
602
603\end_layout
604
605\begin_layout Chapter*
606Seznam použitého označení
607\end_layout
608
609\begin_layout Labeling
610\labelwidthstring 00.00.0000
611iLDP iterativní lokální dynamické programování
612\end_layout
613
614\begin_layout Labeling
615\labelwidthstring 00.00.0000
616LQG lineáně kvadraticky gaussovské řízení (Linear-Quadratic-Gaussian)
617\end_layout
618
619\begin_layout Labeling
620\labelwidthstring 00.00.0000
621iLQG iterativní LQG
622\end_layout
623
624\begin_layout Labeling
625\labelwidthstring 00.00.0000
626
627\color red
628DDP
629\color inherit
630 diferenciální dynamické programování
631\end_layout
632
633\begin_layout Standard
634\begin_inset Newpage newpage
635\end_inset
636
637
638\end_layout
639
640\begin_layout Addchap
641Úvod
642\end_layout
643
644\begin_layout Standard
645Skutečný svět se nikdy nechová přesně podle matematických rovnic, protože
646 ty jsou vždy jen jakýmsi zjednodušením nebo přiblížením.
647 V reálném světě se vyskytuje mnoho neznámých veličin, poruch, nepředvídatelných
648 vlivů a ani naše měřící přístroje nejsou přesné.
649 Chceme-li efektivně řídit nějaký systém, musíme si být těchto vlivů vědomi
650 a zahrnout je do našich uvažování.
651 Situace se však ještě může zkomplikovat, když jeden nebo více parametrů
652 neznáme.
653 To může nastat z různých důvodů, například příšlušné čidlo nebo měřící
654 přístroj nemůžeme nebo nechceme (například z důvodů vysoké ceny) instalovat
655 a tedy o velikosti příslušné hodnoty můžeme jen usuzovat ze známých dat.
656 Ještě složitější situace nastane, když uvažujeme neznámý parametr proměnný.
657 
658\end_layout
659
660\begin_layout Standard
661
662\color black
663Máme tedy dva cíle, musíme systém co nejlépe řídit a současně se snažit
664 o co nejpřesnější určení neznámých parametrů.
665 Tyto dva postupy jsou však obecně v rozporu, protože parametry se nejlépe
666 určují, když je systém vybuzen a nechová se optimálně.
667 Právě tento rozpor a nalezení kompromisu, který povede k jeho řešení, je
668 podstatou duálního řízení.
669\end_layout
670
671\begin_layout Standard
672
673\color black
674Pro přiblížení ilustrujme problém na jednoduchém příkladě: Uvažujme elektromotor
675 s možností řídit napětí na vstupu motoru a měřit příslušné proudy.
676 Jedná se tedy o systém se dvěma vstupy a dvěma výstupy.
677 Cílem našeho řízení je dosažení požadovaných otáček rotoru.
678 Ovšem otáčky a ani polohu hřídele měřit nemůžeme.
679 Máme o nich však znalost v podobě středních hodnot a variancí.
680 Naší snahou je co nejpřesněji určit hodnotu otáček a polohy hřídele a současně
681 systém řídit tak, abychom dosáhly požadované hodnoty otáček.
682 Tyto dvě snahy jsou ale v rozporu, protože nejvíce informací o neznámých
683 parametrech získáme, když je motor vybuzen.
684 Tedy například se prudce rozjíždí, brzdí, rychle mění rychlost nebo kmitá,
685 což se projevuje v proudech, které máme možnost měřit.
686 Ale právě vybuzení motoru je v rozporu se snahou o dobré řízení, protože
687 chyba, které se dopustíme je většinou nepřijatelná.
688 Naopak, když se systém snažíme řídit, bez dostatečné znalosti jeho parametrů,
689 s velkou pravděpodobností selžeme.
690\end_layout
691
692\begin_layout Standard
693\begin_inset VSpace bigskip
694\end_inset
695
696
697\end_layout
698
699\begin_layout Standard
700Námětem této bakalářské práce je algoritmus
701\emph on
702iterativního lokálního dynamického programování
703\emph default
704(iLDP) jako jedna z metod pro řešení problému duálního řízení.
705 Algoritmus byl navržen a popsán v článku
706\color black
707
708\begin_inset CommandInset citation
709LatexCommand cite
710key "TodorovTassaILDP"
711
712\end_inset
713
714
715\color inherit
716.
717 Jak už prozrazuje název algoritmu, jedná se o iterační metodu.
718 Tedy stručně řečeno, algoritmus vyjde od nějakého počátečního řízení, které
719 je ovšem nutno dodat jako apriorní informaci a v cyklech (iteracích) tuto
720 řídící strategii vylepšuje, za účelem získání řízení optimálního.
721 Dále se jedná o metodu lokální, což v můžeme jednoduše chápat tak, že kandidáti
722 na
723\begin_inset Quotes gld
724\end_inset
725
726vylepšení
727\begin_inset Quotes grd
728\end_inset
729
730 řízení jsou vybírání z jistého, zatím blíže nespecifikovaného, okolí původní
731 řídící strategie.
732 Nakonec algoritmus využívá obecné schéma dynamického programování, které
733 bude blíže popsáno v dalším textu.
734\end_layout
735
736\begin_layout Standard
737\begin_inset VSpace bigskip
738\end_inset
739
740
741\end_layout
742
743\begin_layout Standard
744Cílem této práce bylo seznámit se s obecnou tématikou duálního řízení a
745 detailněji s konkrétním algoritmem - iterativním lokálním dynamickým programová
746ním.
747 Následně tento algoritmus implementovat a aplikovat na jednoduchý systém.
748 Otestovat jeho funkčnost a schopnost řídit a to i v porovnání s jinými
749 metodami a algoritmy.
750 
751\emph on
752\color blue
753Dále implementovat algoritmus iLDP pro složitější systém blíže praktické
754 aplikaci, konkrétně se jedná o synchronní motor s permanentními magnety.
755 Opět otestovat funkčnost a případně srovnat s dostupnými výsledky jiných
756 řídících strategii.
757
758\emph default
759\color inherit
760 Na základě získaných výsledků posoudit výhody a nevýhody algoritmu a jeho
761 použitelnost na další úlohy.
762\end_layout
763
764\begin_layout Standard
765Hlavním přínosem práce je otestování vlastností algoritmu iLDP na jiných
766 problémech, než pro které byla vyvinuta autory.
767 Objevení kladů a záporů algoritmu a dále díky srovnání s jinými algoritmy
768 získání přehledu, pro které praktické aplikace je vhodnější respektive
769 méně vhodný než srovnávané metody.
770 Prvotní očekávání pro srovnání algoritmu iLDP a
771\emph on
772\color blue
773principu separace
774\emph default
775\color inherit
776 jsou, že iLDP bude pomalejší co do výpočetního času, avšak přesnost získaných
777 výsledků bude lepší.
778 Dále je očekávána nezanedbatelná závislost výsledného řízení na volbě použitých
779 aproximací a apriorní řídící strategie.
780\end_layout
781
782\begin_layout Standard
783\begin_inset Newpage newpage
784\end_inset
785
786
787\end_layout
788
789\begin_layout Chapter
790Teorie duálního řízení
791\end_layout
792
793\begin_layout Section
794Základní pojmy
795\end_layout
796
797\begin_layout Subsection
798Systém a řízení
799\end_layout
800
801\begin_layout Subsubsection
802Systém
803\end_layout
804
805\begin_layout Standard
806Základním pojmem, se kterým budeme v textu pracovat je
807\emph on
808systém
809\emph default
810.
811 Obdobně jako základní pojmy zejména v matematických vědách (bod, množina,
812 algoritmus,\SpecialChar \ldots{}
813), nelze tento pojem exaktně definovat.
814 Systém si můžeme představit jako jistý
815\begin_inset Quotes gld
816\end_inset
817
818objekt
819\begin_inset Quotes grd
820\end_inset
821
822, často bude reprezentovat objekt skutečného světa.
823 Hlavní vlastností systému je, že má zpravidla jeden nebo více vstupů, pomocí
824 kterých mu můžeme předávat informaci -- řízení a jeden nebo více výstupu,
825 což jsou hodnyty, které pozorujeme.
826 Co se odehrává uvnitř systému však obecně nevíme.
827 Řízení, které budeme dodávat systému na vstup bude v textu značeno písmenem
828 
829\emph on
830
831\begin_inset Formula $u$
832\end_inset
833
834
835\emph default
836.
837 Analogicky bude písmenem
838\emph on
839
840\begin_inset Formula $y$
841\end_inset
842
843
844\emph default
845 označena pozorovaná hodnota na výstupu.
846 
847\end_layout
848
849\begin_layout Standard
850Chování systému, to je jakým výstupem reaguje na vstup, popisujeme dle
851\begin_inset CommandInset citation
852LatexCommand cite
853key "MelicharLS"
854
855\end_inset
856
857 obecně diferenciální rovnicí respektive soustavou diferenciálních rovnic
858 vyšších řádů.
859 Jedná se o takzvaný
860\color black
861vnější popis
862\color inherit
863.
864 Tento druh popisu, pohlíží na systém
865\begin_inset Quotes gld
866\end_inset
867
868zvenku
869\begin_inset Quotes grd
870\end_inset
871
872 bez skutečné znalosti, co se odehrává uvnitř systému a jaká je jeho podstata.
873 Vnější popis obvykle obdržíme při odvození modelu systému z fyzikálních
874 rovnic.
875 Omezení, která z něj plynou, se snažíme odstranit zavedením
876\color black
877vnitřního (stavového) popisu
878\color inherit
879, kdy (soustavu) diferenciálních rovnic vyššího řádu, převedeme vhodnou
880 volbou nových proměnných
881\emph on
882
883\begin_inset Formula $x$
884\end_inset
885
886
887\series bold
888 
889\series default
890\emph default
891na soustavu diferenciálních rovnic prvního řádu.
892 Proměnné
893\emph on
894
895\begin_inset Formula $x$
896\end_inset
897
898
899\series bold
900 
901\series default
902\emph default
903označujeme jako
904\color black
905stavové proměnné
906\color inherit
907.
908\end_layout
909
910\begin_layout Subsubsection
911Řízení
912\end_layout
913
914\begin_layout Standard
915Naším úkolem je pro zadaný systém nalézt regulátor, tedy obecně řízení
916\emph on
917
918\begin_inset Formula $u$
919\end_inset
920
921
922\emph default
923 takové, které dodané na vstup způsobí, že systém se bude
924\begin_inset Quotes gld
925\end_inset
926
927chovat podle našich požadavků
928\begin_inset Quotes grd
929\end_inset
930
931.
932 To zpravidla znamená, že hodnoty výstupní veličiny
933\series bold
934\emph on
935
936\begin_inset Formula $y$
937\end_inset
938
939
940\series default
941\emph default
942 dosáhnou (nebo se přiblíží s danou přesností) požadované hodnotě v podobě
943 referenčního signálu, který regulátor dostavá z vnějšku a současně dodrží
944 předem stanovená omezení.
945 Práce je ovšem zaměřena na řízení složitějších systémů, u kterých jeden
946 nebo více parametrů neznáme přesně.
947 Tedy některý (více) z koeficientů v rovnicích popisujících systém není
948 znám.
949 Máme však o něm jistou statistickou informaci v podob
950\color black
951ě jeho
952\color inherit
953 očekávané hodnoty a variance.
954 Dále je-li systém nelineární, jsou výsledné rovnice příliš složité a tedy
955 analyticky neřešitelné.
956 Pro numerické řešení, jsou rovnice systému zpravidla převáděny do diskrétního
957 tvaru.
958\end_layout
959
960\begin_layout Standard
961Řízení obecně dělíme podle
962\begin_inset CommandInset citation
963LatexCommand cite
964key "MelicharLS"
965
966\end_inset
967
968 na dva typy:
969\emph on
970Přímovazební řízení
971\emph default
972 užíváme v případě, kde je k dispozici přesný matematický model systému
973 a je vyloučen výskyt neurčitostí.
974 Toto řízení nevyužívá žádné zpětné informace od systému a regulátor pracuje
975 pouze s referenčním signálem.
976 Naproti tomu
977\emph on
978zpětnovazební řízení
979\emph default
980 využívá i informace o skutečném výstupu systému a snaží se tak eliminovat
981 chyby v důsledku neurčitostí a chyb způsobenych nepřesností modelu.
982\end_layout
983
984\begin_layout Subsubsection
985Duální řízení
986\end_layout
987
988\begin_layout Standard
989Chceme navrhnout regulátor pro zadaný systém s neznámými parametry.
990 Úkoly jsou tedy dva: 1.
991
992\emph on
993 opatrnost
994\emph default
995 - efektivně systém řídit a 2.
996
997\emph on
998 testování
999\emph default
1000 - určit neznáme parametry.
1001 Tyto dva přístupy jsou ale obecně v rozporu.
1002 Abychom mohli systém dobře řídit, potřebujeme znát parametry co nejpřesněji.
1003 Nejvíce informací o parametrech však získáme, když je systém vybuzen a
1004 nechová optimálně.
1005 Tyto pojmy není snadné kvantifikovat, ale velmi často se projevují v konkrétníc
1006h řídících schématech.
1007 Naším úkolem je pokusit nalézt nějaký kompromis mezi oběma úkoly.
1008 Právě tento přístup je označován jako
1009\emph on
1010duální řízení
1011\emph default
1012 
1013\begin_inset CommandInset citation
1014LatexCommand cite
1015key "BertsekasDPOC"
1016
1017\end_inset
1018
1019.
1020 
1021\end_layout
1022
1023\begin_layout Subsection
1024Formulace problému
1025\end_layout
1026
1027\begin_layout Standard
1028V textu budeme pracovat zpravidla s diskrétním systémem, ve smyslu systému
1029 s diskrétním časem, protože výpočty jsou prováděny ve většině případů problemat
1030iky duálního řízení numericky.
1031 Rovnice popisující systém jsou však zpravidla ve spojitém tvaru, (model
1032 často vychází ze skutečnosti, popřípadě fyzikálních zákonů).
1033 V tomto případě provádíme diskretizaci.
1034\end_layout
1035
1036\begin_layout Standard
1037Základní problém je formulován podle
1038\begin_inset CommandInset citation
1039LatexCommand cite
1040key "BertsekasDPOC"
1041
1042\end_inset
1043
1044 následovně:
1045\end_layout
1046
1047\begin_layout Standard
1048\begin_inset VSpace defskip
1049\end_inset
1050
1051
1052\end_layout
1053
1054\begin_layout Standard
1055Uvažujme stavový popis diskrétního dynamického systému
1056\begin_inset Formula \begin{equation}
1057\begin{array}{cc}
1058x_{k+1}=f_{k}(x_{k},u_{k},w_{k}), & k=0,\ldots,N-1\end{array},\label{eq:zakladniproblem}\end{equation}
1059
1060\end_inset
1061
1062kde
1063\begin_inset Formula $x_{k}$
1064\end_inset
1065
1066 je stavová proměná,
1067\begin_inset Formula $u_{k}$
1068\end_inset
1069
1070 řízení a
1071\begin_inset Formula $w_{k}$
1072\end_inset
1073
1074 náhodná porucha, vše v čase
1075\begin_inset Formula $k$
1076\end_inset
1077
1078 při celkovém časovém horizontu
1079\begin_inset Formula $N$
1080\end_inset
1081
1082.
1083 Na řízení
1084\begin_inset Formula $u_{k}$
1085\end_inset
1086
1087 klademe omezení, že může nabývat pouze hodnot z neprázdné monožiny
1088\begin_inset Formula $U_{k}(x_{k})$
1089\end_inset
1090
1091 závislé na stavu
1092\begin_inset Formula $x_{k}$
1093\end_inset
1094
1095.
1096 Náhodná porucha
1097\begin_inset Formula $w_{k}$
1098\end_inset
1099
1100 je charakterizována rozdělením pravděpodobnosti
1101\begin_inset Formula $P_{k}$
1102\end_inset
1103
1104, které může explicitně záviset na
1105\begin_inset Formula $x_{k}$
1106\end_inset
1107
1108 a
1109\begin_inset Formula $u_{k}$
1110\end_inset
1111
1112, ne však na předchozích poruchách
1113\begin_inset Formula $w_{k-1},\ldots,w_{0}$
1114\end_inset
1115
1116.
1117\end_layout
1118
1119\begin_layout Standard
1120Dále uvažujme množinu řízení, jedná se o posloupnost funkcí
1121\begin_inset Formula \[
1122\pi=\{\mu_{0},\ldots,\mu_{N-1}\},\]
1123
1124\end_inset
1125
1126kde
1127\begin_inset Formula $\mu_{k}$
1128\end_inset
1129
1130 přiřazuje stavu
1131\begin_inset Formula $x_{k}$
1132\end_inset
1133
1134 přípustné řízení
1135\begin_inset Formula $u_{k}=\mu_{k}(x_{k})$
1136\end_inset
1137
1138, to je takové, že
1139\begin_inset Formula $\mu_{k}(x_{k})\in U_{k}(x_{k})$
1140\end_inset
1141
1142, množinu přípustných řešení označme
1143\begin_inset Formula $\Pi$
1144\end_inset
1145
1146.
1147 Máme-li dány počáteční stav
1148\begin_inset Formula $x_{0}$
1149\end_inset
1150
1151 a přípustné řešení
1152\begin_inset Formula $\pi$
1153\end_inset
1154
1155 můžeme stavy
1156\begin_inset Formula $x_{k}$
1157\end_inset
1158
1159 a poruchy
1160\begin_inset Formula $w_{k}$
1161\end_inset
1162
1163 považovat za náhodné veličiny s rozdělemím definovaným systémem rovnic
1164 
1165\begin_inset CommandInset ref
1166LatexCommand ref
1167reference "eq:zakladniproblem"
1168
1169\end_inset
1170
1171, kde za řízení
1172\begin_inset Formula $u_{k}$
1173\end_inset
1174
1175 dosadíme hodnotu funkce
1176\begin_inset Formula $\mu_{k}$
1177\end_inset
1178
1179 v
1180\begin_inset Formula $x_{k}$
1181\end_inset
1182
1183.
1184\end_layout
1185
1186\begin_layout Standard
1187Pro dané ztráty v jednotlivých časech -- funkce
1188\begin_inset Formula $g_{k}$
1189\end_inset
1190
1191, pak definujeme očekávanou ztrátu
1192\begin_inset Formula $\pi$
1193\end_inset
1194
1195 v
1196\begin_inset Formula $x_{0}$
1197\end_inset
1198
1199 jako
1200\begin_inset Formula \[
1201J_{\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\} \]
1202
1203\end_inset
1204
1205kde je očekávaná hodnota počítána přes náhodné veličiny
1206\begin_inset Formula $w_{k}$
1207\end_inset
1208
1209 a
1210\begin_inset Formula $x_{k}$
1211\end_inset
1212
1213.
1214 Optimální řízení
1215\begin_inset Formula $\pi^{*}$
1216\end_inset
1217
1218je právě to, které minimalizuje ztrátu
1219\begin_inset Formula \[
1220J_{\pi^{*}}(x_{0})=\min_{\pi\in\Pi}J_{\pi}(x_{0}).\]
1221
1222\end_inset
1223
1224Optimální ztrátu označme
1225\begin_inset Formula $J^{*}(x_{0})$
1226\end_inset
1227
1228.
1229\end_layout
1230
1231\begin_layout Subsection
1232Dynamické programování
1233\end_layout
1234
1235\begin_layout Standard
1236Dynamické programovní dle
1237\begin_inset CommandInset citation
1238LatexCommand cite
1239key "ViriusZA"
1240
1241\end_inset
1242
1243 je jedním ze způsobů návrhu algoritmů pro řešení jistých typu optimalizačních
1244 problémů.
1245 Konkrétně se uplatňuje v případě, že jde o diskrétní optimalizační úlohu,
1246 na řešení daného problému můžeme nahlížet jako na konečnou posloupnost
1247 rozhodnutí a platí
1248\emph on
1249princip optimality
1250\emph default
1251.
1252\end_layout
1253
1254\begin_layout Subsubsection
1255Princip optimality
1256\end_layout
1257
1258\begin_layout Standard
1259říká, že optimální posloupnost rozhodnutí musí mít následující vlastnost:
1260 
1261\emph on
1262Jestliže jsme už udělali
1263\emph default
1264k
1265\emph on
1266rozhodnutí, musí být všechna následující rozhodnutí optimální vzhledem k
1267 výsledkům rozhodnutí předchozích, jinak nemůžeme dostat optimální řešení
1268 
1269\emph default
1270
1271\begin_inset CommandInset citation
1272LatexCommand cite
1273key "ViriusZA"
1274
1275\end_inset
1276
1277
1278\emph on
1279.
1280\end_layout
1281
1282\begin_layout Subsubsection
1283Princip optimality v teorii řízení
1284\end_layout
1285
1286\begin_layout Standard
1287Nechť
1288\begin_inset Formula $\pi^{*}=\left\{ \mu_{0}^{*},\mu_{1}^{*},\ldots,\mu_{N-1}^{*}\right\} $
1289\end_inset
1290
1291 je optimální řídící strategie pro
1292\color black
1293základní
1294\color inherit
1295 problém a předpokládejme, že když aplikujeme řízení
1296\begin_inset Formula $\pi^{*}$
1297\end_inset
1298
1299, daný stav
1300\begin_inset Formula $x_{i}$
1301\end_inset
1302
1303 se vyskytne v čase
1304\begin_inset Formula $i$
1305\end_inset
1306
1307 s pozitivní pravděpodobností.
1308 Uvažujme podproblém, kdy ve stavu
1309\begin_inset Formula $x_{i}$
1310\end_inset
1311
1312 a čase
1313\begin_inset Formula $i$
1314\end_inset
1315
1316 chceme minimalizovat
1317\emph on
1318náklady na pokračování
1319\emph default
1320 (v anglické literatuře označováno jako
1321\color black
1322
1323\begin_inset Quotes gld
1324\end_inset
1325
1326cost-to-go
1327\color inherit
1328
1329\begin_inset Quotes grd
1330\end_inset
1331
1332) od času
1333\begin_inset Formula $i$
1334\end_inset
1335
1336 do
1337\begin_inset Formula $N$
1338\end_inset
1339
1340
1341\begin_inset Formula \[
1342\mathbf{E}\left\{ g_{N}(x_{N})+\sum_{k=i}^{N-1}g_{k}(x_{k},\mu_{k}(x_{k}),w_{k})\right\} \]
1343
1344\end_inset
1345
1346Potom úsek strategie
1347\family roman
1348\series medium
1349\shape up
1350\size normal
1351\emph off
1352\bar no
1353\noun off
1354\color none
1355
1356\begin_inset Formula $\left\{ \mu_{i}^{*},\mu_{i+1}^{*},\ldots,\mu_{N-1}^{*}\right\} $
1357\end_inset
1358
1359 je optimální pro tento podproblém.
1360\begin_inset VSpace medskip
1361\end_inset
1362
1363
1364\end_layout
1365
1366\begin_layout Standard
1367Intuitivně je princip optimality velmi jednoduchý.
1368 Jestliže úsek strategie
1369\begin_inset Formula $\left\{ \mu_{i}^{*},\mu_{i+1}^{*},\ldots,\mu_{N-1}^{*}\right\} $
1370\end_inset
1371
1372 nebude optimální, budeme schopni dále zredukovat cenu přechodem k optimální
1373 strategii pro podproblém.
1374\end_layout
1375
1376\begin_layout Standard
1377Princip optimality umožňuje optimální strategii konstruovat postupně.
1378 Nejdříve nalezneme optimální strategii pro koncový podproblém zahrnující
1379 poslední krok.
1380 Poté rozšiřujeme podproblém od konce přidáním předposledního kroku a tak
1381 dále.
1382 Takto může být vytvořena optimální strategie pro celý problém.
1383\end_layout
1384
1385\begin_layout Standard
1386Algoritmus dynamického programování je tedy založen na následující myšlence:
1387 Algoritmus pracuje iterativně a řeší
1388\color black
1389koncové
1390\color inherit
1391 podproblémy pro daný časový úsek, při tom využívá řešení předchozích
1392\color black
1393koncových
1394\color inherit
1395 podproblémů pro kratší časové úseky.
1396 Převzato z
1397\begin_inset CommandInset citation
1398LatexCommand cite
1399key "BertsekasDPOC"
1400
1401\end_inset
1402
1403.
1404\end_layout
1405
1406\begin_layout Subsubsection
1407Formulace algoritmu dynamického programování
1408\end_layout
1409
1410\begin_layout Standard
1411Podle
1412\begin_inset CommandInset citation
1413LatexCommand cite
1414key "BertsekasDPOC"
1415
1416\end_inset
1417
1418, pro každý počáteční stav
1419\begin_inset Formula $x_{0}$
1420\end_inset
1421
1422, je optimální cena
1423\begin_inset Formula $J^{*}(x_{0})$
1424\end_inset
1425
1426 základního problému rovna
1427\begin_inset Formula $J_{0}(x_{0})$
1428\end_inset
1429
1430, získané z posledního kroku následujícího algoritmu, který prochází zpět
1431 časy od
1432\begin_inset Formula $N-1$
1433\end_inset
1434
1435 do
1436\begin_inset Formula $0$
1437\end_inset
1438
1439:
1440\begin_inset Formula \[
1441J_{N}(x_{N})=g_{N}(x_{N})\]
1442
1443\end_inset
1444
1445
1446\end_layout
1447
1448\begin_layout Standard
1449\begin_inset Formula \begin{equation}
1450J_{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}
1451
1452\end_inset
1453
1454
1455\begin_inset Formula \[
1456k=0,1,\ldots,N-1\]
1457
1458\end_inset
1459
1460
1461\end_layout
1462
1463\begin_layout Standard
1464kde je očekávaná hodnota počítána podle náhodné veličiny
1465\begin_inset Formula $w_{k}$
1466\end_inset
1467
1468, která obecně závisí na
1469\begin_inset Formula $x_{k}$
1470\end_inset
1471
1472 a
1473\begin_inset Formula $u_{k}$
1474\end_inset
1475
1476.
1477 Dále, když
1478\begin_inset Formula $u_{k}^{*}=\mu_{k}^{*}(x_{k})$
1479\end_inset
1480
1481 minimalizuje pravou stranu rovnice
1482\begin_inset CommandInset ref
1483LatexCommand eqref
1484reference "eq:Jkeqmin"
1485
1486\end_inset
1487
1488 pro každé
1489\begin_inset Formula $x_{k}$
1490\end_inset
1491
1492 a
1493\begin_inset Formula $k$
1494\end_inset
1495
1496, stretegie
1497\begin_inset Formula $\pi*=\left\{ \mu_{1}^{*},\ldots,\mu_{N-1}^{*}\right\} $
1498\end_inset
1499
1500 je optimální.
1501\begin_inset VSpace medskip
1502\end_inset
1503
1504
1505\end_layout
1506
1507\begin_layout Standard
1508Hodnotu
1509\begin_inset Formula $J_{k}(x_{k})$
1510\end_inset
1511
1512 je možno interpretovat jako optimální cenu pro
1513\emph on
1514
1515\begin_inset Formula $(N-k)$
1516\end_inset
1517
1518
1519\emph default
1520-tý krok problému začínajícího ve stavu
1521\begin_inset Formula $x_{k}$
1522\end_inset
1523
1524 a čase
1525\begin_inset Formula $k$
1526\end_inset
1527
1528, a končícího v čase
1529\begin_inset Formula $N$
1530\end_inset
1531
1532.
1533 Následně označujeme
1534\begin_inset Formula $J_{k}(x_{k})$
1535\end_inset
1536
1537 náklady na pokračování (
1538\color black
1539
1540\begin_inset Quotes gld
1541\end_inset
1542
1543cost-to-go
1544\color inherit
1545
1546\begin_inset Quotes grd
1547\end_inset
1548
1549) ve stavu
1550\begin_inset Formula $x_{k}$
1551\end_inset
1552
1553 a čase
1554\begin_inset Formula $k$
1555\end_inset
1556
1557, a
1558\begin_inset Formula $J_{k}$
1559\end_inset
1560
1561 označujeme jako funkci nákladů na pokračování (
1562\color black
1563
1564\begin_inset Quotes gld
1565\end_inset
1566
1567cost-to-go
1568\color inherit
1569 function
1570\begin_inset Quotes grd
1571\end_inset
1572
1573) v čase
1574\begin_inset Formula $k$
1575\end_inset
1576
1577.
1578 
1579\end_layout
1580
1581\begin_layout Standard
1582Ideálně bychom chtěli využít algoritmus dynamického programování k získání
1583 
1584\begin_inset Formula $J_{k}$
1585\end_inset
1586
1587 vyjádřené v uzavřeném tvaru nebo k získání optimální strategie.
1588 Existuje mnoho případů, kdy je daná úloha řešitelná analyticky, obzvláště
1589 za zjednodušujících předpokladů.
1590 To je velmi užitečné zejména pro lepší náhled do problematiky a jako vodítko
1591 pro složitější modely.
1592 Avšak ve většíně případů není analytické řešení možné, pak je třeba použít
1593 numerické řešení pomocí algoritmu dynamického programování.
1594 Tento přístup může být časově velmi náročný, zejména minimalizaci v rovnici
1595 
1596\begin_inset CommandInset ref
1597LatexCommand eqref
1598reference "eq:Jkeqmin"
1599
1600\end_inset
1601
1602 je třeba provést pro každou hodnotu
1603\begin_inset Formula $x_{k}$
1604\end_inset
1605
1606.
1607 Stavový prostor musí být diskretizován, nejedná-li se o konečnou množinu
1608 a výpočetní nároky pak narůstají proporcionálně k počtu možných hodnot
1609 
1610\begin_inset Formula $x_{k}$
1611\end_inset
1612
1613.
1614 Nicméně dynamické programování je pouze obecný přístup pro iterativní optimaliz
1615aci při uvažování nejistoty v systému.
1616\end_layout
1617
1618\begin_layout Subsection
1619Úplná a neúplná stavová informace
1620\end_layout
1621
1622\begin_layout Standard
1623V optimálním případě by bylo možno měřit všechny stavové veličiny systému
1624 a na jejich základě libovolným způsobem upravovat jeho dynamické vlastnosti.
1625 Ve skutečnosti ale zpravidla není možné všechny stavy změřit a musíme se
1626 rozhodovat pouze na základě informací, které máme k dispozici, pak mluvíme
1627 o
1628\emph on
1629neúplné informaci o stavu systému
1630\emph default
1631 
1632\begin_inset CommandInset citation
1633LatexCommand cite
1634key "StechaTDS,BertsekasDPOC"
1635
1636\end_inset
1637
1638.
1639 Může to být způsobeno například nedostupností hodnot některých stavů, použité
1640 měřící přístroje mohou být nepřesné nebo náklady na získání přesné hodnoty
1641 stavu mohou být příliš omezující.
1642 Případy tohoto typu modelujeme zpravidla tak, že v každém kroku regulátor
1643 obdrží jisté pozorování skutečné hodnoty stavu, které ovšem může být ovlivněno
1644 a narušeno stochastickou nejistotou.
1645 Teoreticky se však problém s neúplnou informací o stavu neodlišuje od úloh
1646 s úplnou stavovou informací, protože existují způsoby, jak převést (redukovat)
1647 systém s neúplnou informací na systém s úplnou.
1648 Tyto postupy obecně vedou na algoritmy využívající dynamické programování,
1649 ale jsou výpočetně mnohem náročnější, než v případě úplné informace.
1650 Dva možné postupy redukce převzaté z
1651\begin_inset CommandInset citation
1652LatexCommand cite
1653key "BertsekasDPOC"
1654
1655\end_inset
1656
1657 budou následovat po formulaci problému:
1658\end_layout
1659
1660\begin_layout Subsubsection
1661Formulace problému s neúplnou informací o stavu
1662\end_layout
1663
1664\begin_layout Standard
1665Nejdříve formulujme základní problém s neúplnou stavovou informací, který
1666 následně redukujeme na systém s informací úplnou.
1667 Uvažujme rozšíření základního problému
1668\begin_inset CommandInset ref
1669LatexCommand ref
1670reference "eq:zakladniproblem"
1671
1672\end_inset
1673
1674, kde ale regulátor, namísto přístupu ke stavu systému, získává pouze pozorování
1675 
1676\begin_inset Formula $z_{k}$
1677\end_inset
1678
1679 ve tvaru
1680\begin_inset Formula \begin{equation}
1681z_{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}
1682
1683\end_inset
1684
1685kde
1686\begin_inset Formula $v_{k}$
1687\end_inset
1688
1689 reprezentuje náhodnou poruchu pozorování charakterizovanou rozdělením pravděpod
1690obnosti
1691\begin_inset Formula $P_{v_{k}}$
1692\end_inset
1693
1694, která závisí na současném stavu a všech předchozích stavech, řízeních
1695 a poruchách.
1696 Dále také počáteční stav
1697\begin_inset Formula $x_{0}$
1698\end_inset
1699
1700 považujeme za náhodnou veličinu s rozdělením
1701\begin_inset Formula $P_{x_{0}}$
1702\end_inset
1703
1704.
1705\end_layout
1706
1707\begin_layout Standard
1708Soubor informací dostupných regulátoru v čase
1709\begin_inset Formula $k$
1710\end_inset
1711
1712 označme
1713\begin_inset Formula $I_{k}$
1714\end_inset
1715
1716 informačním vektorem.
1717 Tedy
1718\begin_inset Formula \begin{eqnarray*}
1719I_{k} & = & (z_{0},\ldots,z_{k},u_{0},\ldots,u_{k-1}),\quad k=1,\ldots,N-1,\\
1720I_{0} & = & z_{0}.\end{eqnarray*}
1721
1722\end_inset
1723
1724Uvažujme množinu přípustných řízení jako posloupnost funkcí
1725\begin_inset Formula $\pi=\{\mu_{0},\ldots,\mu_{N-1}\}$
1726\end_inset
1727
1728, kde každá funkce
1729\begin_inset Formula $\mu_{k}$
1730\end_inset
1731
1732 přiřazuje informačnímu vektoru
1733\begin_inset Formula $I_{k}$
1734\end_inset
1735
1736 řízení
1737\begin_inset Formula $\mu_{k}(I_{k})\in U_{k}$
1738\end_inset
1739
1740, pro všechna
1741\begin_inset Formula $I_{k}$
1742\end_inset
1743
1744, kde
1745\begin_inset Formula $k=0,\ldots,N-1$
1746\end_inset
1747
1748.
1749 Chceme najít přípustnou řídící strategii, to jest posloupnost
1750\begin_inset Formula $\pi$
1751\end_inset
1752
1753, která minimalizuje očekávanou ztrátu
1754\begin_inset Formula \[
1755J_{\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\} ,\]
1756
1757\end_inset
1758
1759kde je očekávaná hodnota počítána přes náhodné veličiny
1760\begin_inset Formula $x_{0}$
1761\end_inset
1762
1763 a
1764\begin_inset Formula $w_{k},v_{k}$
1765\end_inset
1766
1767 pro
1768\begin_inset Formula $k=0,\ldots,N-1$
1769\end_inset
1770
1771.
1772 Veličiny
1773\begin_inset Formula $x_{k}$
1774\end_inset
1775
1776 a
1777\begin_inset Formula $z_{k}$
1778\end_inset
1779
1780 se vypočítají z rovnic
1781\begin_inset CommandInset ref
1782LatexCommand ref
1783reference "eq:zakladniproblem"
1784
1785\end_inset
1786
1787 respektive
1788\begin_inset CommandInset ref
1789LatexCommand ref
1790reference "eq:zaklprobneuplnystav"
1791
1792\end_inset
1793
1794, přičemž v nich položíme
1795\begin_inset Formula $u_{k}=\mu_{k}(I_{k})$
1796\end_inset
1797
1798.
1799\end_layout
1800
1801\begin_layout Subsubsection
1802Redukce na systém s úplnou stavovou informací
1803\end_layout
1804
1805\begin_layout Standard
1806Tento postup je založen na myšlence definovat nový systém, jehož stav v
1807 čase
1808\begin_inset Formula $k$
1809\end_inset
1810
1811 je množina všech hodnot, kterých může využít regulátor při tvorbě řízení.
1812 Jako stav nového systému tedy volíme informační vektor
1813\begin_inset Formula $I_{k}$
1814\end_inset
1815
1816 a získáme systém
1817\begin_inset Formula \begin{equation}
1818I_{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}
1819
1820\end_inset
1821
1822Na tento systém povahy základního problému s úplnou informací můžeme pohlížet
1823 tak, že
1824\begin_inset Formula $I_{k}$
1825\end_inset
1826
1827 je stav.
1828 Řízení
1829\begin_inset Formula $u_{k}$
1830\end_inset
1831
1832 a pozorování
1833\begin_inset Formula $z_{k}$
1834\end_inset
1835
1836 lze pak chápat jako náhodné poruchy.
1837 Dále rozdělení pravděpodobnosti
1838\begin_inset Formula $z_{k+1}$
1839\end_inset
1840
1841 závisí explicitně pouze na stavu
1842\begin_inset Formula $I_{k}$
1843\end_inset
1844
1845 a řízení
1846\begin_inset Formula $u_{k}$
1847\end_inset
1848
1849.
1850 Ztrátovou funkci vyjádřenou pro nový systém je možno zapsat jako
1851\begin_inset Formula \[
1852\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\} .\]
1853
1854\end_inset
1855
1856Tedy ztráta během jednoho kroku vyjádřená jako funkce nového stavu
1857\begin_inset Formula $I_{k}$
1858\end_inset
1859
1860 a řízení
1861\begin_inset Formula $u_{k}$
1862\end_inset
1863
1864 je
1865\begin_inset Formula \begin{equation}
1866\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}
1867
1868\end_inset
1869
1870Původní základní problém s neúplnou stavovou informací byl tedy převeden
1871 na úlohu s úplnou stavovou informací s rovnicí popisující systém
1872\begin_inset CommandInset ref
1873LatexCommand ref
1874reference "eq:rednewsystem"
1875
1876\end_inset
1877
1878 a ztrátou během jednoho kroku
1879\begin_inset CommandInset ref
1880LatexCommand ref
1881reference "eq:rednewztrata"
1882
1883\end_inset
1884
1885.
1886 Nyní je pro něj možno napsat algoritmus dynamického programování.
1887 
1888\color blue
1889(možná sem dát i rovnice DP)
1890\end_layout
1891
1892\begin_layout Subsubsection
1893Postačující statistika
1894\end_layout
1895
1896\begin_layout Standard
1897Při užití algoritmu dynamického programování za neúplné stavové informace
1898 je hlavní problém v jeho vyhodnocování ve stavovém prostoru, jehož dimenze
1899 neustále roste.
1900 S každým dalším měřením dimenze stavu a tedy informační vektor
1901\begin_inset Formula $I_{k}$
1902\end_inset
1903
1904 narůstá, proto se snažíme redukovat množství dat skutečně potřebných pro
1905 účely řízení.
1906 Hledáme tedy popis známý jako
1907\emph on
1908postačující statistika
1909\emph default
1910, který bude mít menší dimenzi než
1911\begin_inset Formula $I_{k}$
1912\end_inset
1913
1914 ale současně zahrne veškerý důležitý obsah
1915\begin_inset Formula $I_{k}$
1916\end_inset
1917
1918 potřebný pro řízení.
1919 Jako postačující statistiku označme funkci
1920\begin_inset Formula $S_{k}$
1921\end_inset
1922
1923 informačního vektoru
1924\begin_inset Formula $I_{k}$
1925\end_inset
1926
1927, tedy
1928\begin_inset Formula $S_{k}(I_{k})$
1929\end_inset
1930
1931 takovou, že minimalizuje ztrátu v algoritmu dynamického programování přes
1932 všechna přípustná řízení.
1933 Což můžeme zapsat pro vhodnou funkci
1934\begin_inset Formula $H_{k}$
1935\end_inset
1936
1937 jako
1938\begin_inset Formula \begin{eqnarray*}
1939J_{k}(I_{k}) & = & \min_{u_{k}\in U_{k}}H_{k}(S_{k}(I_{k}),u_{k}).\end{eqnarray*}
1940
1941\end_inset
1942
1943Po funkci
1944\begin_inset Formula $S_{k}$
1945\end_inset
1946
1947 samozřejmě chceme, aby byla charakterizována menší množinou čísel, než
1948 informační vektor
1949\begin_inset Formula $I_{k}$
1950\end_inset
1951
1952, abychom získaly výhody z jejího použití.
1953 Obecně existuje mnoho funkcí, které mohou sloužit jako postačující statistika.
1954 Triviálním příkladem může být identita
1955\begin_inset Formula $S_{k}(I_{k})=I_{k}$
1956\end_inset
1957
1958.
1959 
1960\end_layout
1961
1962\begin_layout Standard
1963Závisí-li rozdělení pravděpodobnosti poruchy pozorování
1964\begin_inset Formula $v_{k}$
1965\end_inset
1966
1967 explicitně pouze na bezprostředně předcházejícím stavu, řízení a poruše
1968 systému, tedy na
1969\begin_inset Formula $x_{k},u_{k},w_{k}$
1970\end_inset
1971
1972 a nezávisí na předchozích hodnotách
1973\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}$
1974\end_inset
1975
1976 můžeme za postačující statistiku volit podmíněné rozdělení pravděpodobnosti
1977 
1978\begin_inset Formula $P_{x_{k}|I_{k}}$
1979\end_inset
1980
1981, o kterém lze ukázat (viz
1982\begin_inset CommandInset citation
1983LatexCommand cite
1984key "BertsekasDPOC"
1985
1986\end_inset
1987
1988), že
1989\begin_inset Formula \[
1990J_{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}}),\]
1991
1992\end_inset
1993
1994kde
1995\begin_inset Formula $H_{k}$
1996\end_inset
1997
1998 a
1999\begin_inset Formula $\overline{J}_{k}$
2000\end_inset
2001
2002 jsou vhodné funkce.
2003 Optimální řízení pak získáme ve tvaru funkcí podmíněného rozdělení pravděpodobn
2004osti
2005\begin_inset Formula $\mu_{k}(I_{k})=\overline{\mu}_{k}(P_{x_{k}|I_{k}})$
2006\end_inset
2007
2008 pro
2009\begin_inset Formula $k=0,\ldots,N-1$
2010\end_inset
2011
2012.
2013 Tato reprezentace může být velmi užitečná, protože nám umožňuje rozložit
2014 optimální řízení na dvě nezávislé časti:
2015\end_layout
2016
2017\begin_layout Enumerate
2018
2019\emph on
2020pozorovatel
2021\emph default
2022 (estimátor), který v čase
2023\begin_inset Formula $k$
2024\end_inset
2025
2026 použije měření
2027\begin_inset Formula $z_{k}$
2028\end_inset
2029
2030 a řízení
2031\begin_inset Formula $u_{k-1}$
2032\end_inset
2033
2034 k vygenerování rozdělení pravděpodobnosti
2035\begin_inset Formula $P_{x_{k}|I_{k}}$
2036\end_inset
2037
2038
2039\end_layout
2040
2041\begin_layout Enumerate
2042
2043\emph on
2044ovladač
2045\emph default
2046 (regulátor), který generuje vstupy (řízení) pro systém jako funkci rozdělení
2047 pravděpodobnosti
2048\begin_inset Formula $P_{x_{k}|I_{k}}$
2049\end_inset
2050
2051
2052\end_layout
2053
2054\begin_layout Standard
2055Tento rozklad pak umožňuje navrhovat každou z částí samostatně podle charakteru
2056 konkrétní úlohy.
2057\end_layout
2058
2059\begin_layout Subsection
2060Kalmanův filtr
2061\end_layout
2062
2063\begin_layout Standard
2064Chceme řešit následující problém, viz
2065\begin_inset CommandInset citation
2066LatexCommand cite
2067key "StechaTDS"
2068
2069\end_inset
2070
2071: Máme lineární systém s neúplnou stavovou informací a snažíme se odhadnout
2072 (rekonstruovat, estimovat) stav systému z měřitelných vstupních a výstupních
2073 veličin.
2074 Dále předpokládejme, že měření výstupu a popřípadě i vstupu je zatíženo
2075 chybou měření.
2076 Tyto nepřesnosti měření můžeme modelovat jako aditivní šum.
2077 Odhadování (rekonstrukci, estimaci) potom navrhujeme pomocí stochastických
2078 metod.
2079 Řešení vede na takzvaný
2080\emph on
2081Kalmanův filtr
2082\emph default
2083.
2084\end_layout
2085
2086\begin_layout Standard
2087\begin_inset VSpace medskip
2088\end_inset
2089
2090
2091\end_layout
2092
2093\begin_layout Standard
2094Následující formulace problému a popis algoritmu Kalmanova filtru je převzat
2095 z
2096\begin_inset CommandInset citation
2097LatexCommand cite
2098key "BertsekasDPOC"
2099
2100\end_inset
2101
2102, kde lze také nalézt odvození příslušných rovnic: Máme dva náhodné vektory
2103 
2104\begin_inset Formula $x$
2105\end_inset
2106
2107 a
2108\begin_inset Formula $y$
2109\end_inset
2110
2111, které jsou svázány sdruženým rozdělením pravděpodobnosti tak, že hodnota
2112 jednoho poskytuje informaci o hodnotě druhého.
2113 Známe hodnotu
2114\begin_inset Formula $y$
2115\end_inset
2116
2117 a chceme určit (odhadnout) hodnotu
2118\begin_inset Formula $x$
2119\end_inset
2120
2121 tak, aby střední kvadratická odchylka mezi
2122\begin_inset Formula $x$
2123\end_inset
2124
2125 a jeho odhadem byla minimální.
2126\end_layout
2127
2128\begin_layout Standard
2129Takový odhad můžeme zístat v nejjednodušším případě metodou nejmenších čtverců,
2130 ale pro tento způsob je třeba velkého počtu měření.
2131 Jako lepší způsob se ale jeví využít sekvenční struktury problému a iterativně
2132 použít Kalmanův filtr, kdy odhad v čase
2133\begin_inset Formula $k+1$
2134\end_inset
2135
2136 získáme na základě jednoduchých rovnic pouze z předchozího odhadu a nového
2137 měření v čase
2138\begin_inset Formula $k$
2139\end_inset
2140
2141, žádná předchozí měření nejsou explicitně zahrnuta.
2142\end_layout
2143
2144\begin_layout Standard
2145V dalším textu označme
2146\begin_inset Formula $\hat{x}_{k|k-1}$
2147\end_inset
2148
2149 apriorní odhad stavu, tedy odhad stavu v čase
2150\begin_inset Formula $k$
2151\end_inset
2152
2153 na základě informací až do času
2154\begin_inset Formula $k-1$
2155\end_inset
2156
2157.
2158 Analogicky
2159\begin_inset Formula $\Sigma_{k|k-1}$
2160\end_inset
2161
2162 označuje apriorní kovarianční matici.
2163 Aposteriorní odhad stavu označme
2164\begin_inset Formula $\hat{x}_{k|k}$
2165\end_inset
2166
2167, to jest odhad v čase
2168\begin_inset Formula $k$
2169\end_inset
2170
2171 na základě informačí až do času
2172\begin_inset Formula $k$
2173\end_inset
2174
2175.
2176 Aposteriorní kovarianční matice je pak označena
2177\begin_inset Formula $\Sigma_{k|k}$
2178\end_inset
2179
2180.
2181 
2182\end_layout
2183
2184\begin_layout Standard
2185\begin_inset VSpace bigskip
2186\end_inset
2187
2188
2189\end_layout
2190
2191\begin_layout Subsubsection
2192System
2193\end_layout
2194
2195\begin_layout Standard
2196Uvažujme lineární dynamický systém bez řízení (
2197\begin_inset Formula $u_{k}\equiv0$
2198\end_inset
2199
2200) ve tvaru
2201\begin_inset Formula \[
2202x_{k+1}=A_{k}x_{k}+w_{k},\; k=0,1,\ldots,N-1,\]
2203
2204\end_inset
2205
2206kde
2207\begin_inset Formula $x_{k}$
2208\end_inset
2209
2210 je vektor stavu,
2211\begin_inset Formula $w_{k}$
2212\end_inset
2213
2214 vektor náhodné poruchy a matice
2215\begin_inset Formula $A_{k}$
2216\end_inset
2217
2218 předpokládáme známé.
2219 Dále rovnice měření je
2220\begin_inset Formula \[
2221z_{k}=C_{k}x_{k}+v_{k},\; k=0,1,\ldots,N-1,\]
2222
2223\end_inset
2224
2225kde
2226\begin_inset Formula $z_{k}$
2227\end_inset
2228
2229 je vektor pozorování (měřených veličin) a
2230\begin_inset Formula $v_{k}$
2231\end_inset
2232
2233 vektor šumu.
2234 Nechť
2235\begin_inset Formula $x_{0},w_{0},\ldots,w_{N-1},v_{0},\ldots,v_{N-1}$
2236\end_inset
2237
2238 jsou vektory nezávislých náhodných veličin s daným rozdělením pravděpodobnosti,
2239 takovým, že
2240\begin_inset Formula \[
2241\mathrm{E}\{w_{k}\}=\mathrm{E}\{v_{k}\}=0,\; k=0,1,\ldots,N-1.\]
2242
2243\end_inset
2244
2245Označme
2246\begin_inset Formula \[
2247S=\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}\},\]
2248
2249\end_inset
2250
2251a nechť matice
2252\begin_inset Formula $N_{k}$
2253\end_inset
2254
2255 pozitivně definitní pro všechny časy
2256\begin_inset Formula $k$
2257\end_inset
2258
2259.
2260\end_layout
2261
2262\begin_layout Subsubsection
2263Algoritmus Kalmanova filtru
2264\end_layout
2265
2266\begin_layout Standard
2267Předpokládejme, že máme spočítaný odhad
2268\begin_inset Formula $\hat{x}_{k|k-1}$
2269\end_inset
2270
2271 společně s kovarianční maticí
2272\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\} $
2273\end_inset
2274
2275.
2276 V čase
2277\begin_inset Formula $k$
2278\end_inset
2279
2280 získáme další měření
2281\begin_inset Formula $z_{k}=C_{k}x_{k}+v_{k}$
2282\end_inset
2283
2284.
2285 Nyní můžeme získat aposteriorní odhad stavu
2286\begin_inset Formula $\hat{x}_{k|k}$
2287\end_inset
2288
2289 v čase
2290\begin_inset Formula $k$
2291\end_inset
2292
2293 jako
2294\begin_inset Formula \begin{equation}
2295\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}
2296
2297\end_inset
2298
2299dále pak apriorní odhad stavu
2300\begin_inset Formula $\hat{x}_{k+1|k}$
2301\end_inset
2302
2303 v čase
2304\begin_inset Formula $k+1,$
2305\end_inset
2306
2307 tedy
2308\begin_inset Formula $\hat{x}_{k+1|k}=A_{k}\hat{x}_{k|k}$
2309\end_inset
2310
2311.
2312 Apriorní kovarianční matici v čase
2313\begin_inset Formula $k+1$
2314\end_inset
2315
2316 vypočítáme z
2317\begin_inset Formula \[
2318\Sigma_{k+1|k}=A_{k}\Sigma_{k|k}A_{k}^{T}+M_{k},\]
2319
2320\end_inset
2321
2322kde aposteriorní kovarianční matici
2323\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\} $
2324\end_inset
2325
2326 můžeme získat z rovnice
2327\begin_inset Formula \[
2328\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}.\]
2329
2330\end_inset
2331
2332Přidáním počátečních podmínek
2333\begin_inset Formula $\hat{x}_{0|-1}=\mathrm{E}\{x_{0}\}$
2334\end_inset
2335
2336 a
2337\begin_inset Formula $\Sigma_{0|-1}=S$
2338\end_inset
2339
2340 získáme
2341\emph on
2342algoritmus Kalmanova filtru
2343\emph default
2344, který ve své podstatě rekurzivně generuje posloupnost lineárních odhadů
2345 založených na metodě nejmenších čtverců.
2346\end_layout
2347
2348\begin_layout Standard
2349Dále je možno vyjádřit rovnici
2350\begin_inset CommandInset ref
2351LatexCommand ref
2352reference "eq:kalmanaposkk"
2353
2354\end_inset
2355
2356 ve tvaru
2357\begin_inset Formula \[
2358\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),\]
2359
2360\end_inset
2361
2362který při uvažování systému se vstupem
2363\begin_inset Formula \[
2364x_{k+1}=A_{k}x_{k}+B_{k}u_{k}+w_{k},\; k=0,1,\ldots,N-1,\]
2365
2366\end_inset
2367
2368umožňuje vypočítat rekurzivně aposteriorní odhady stavů
2369\begin_inset Formula $\hat{x}_{k|k}$
2370\end_inset
2371
2372 v časech
2373\begin_inset Formula $k$
2374\end_inset
2375
2376 z rovnice
2377\begin_inset Formula \[
2378\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),\]
2379
2380\end_inset
2381
2382přičemž rovnice pro výpočet aposteriorní kovarianční matice
2383\begin_inset Formula $\Sigma_{k|k}$
2384\end_inset
2385
2386 zůstávají nezměněny.
2387\end_layout
2388
2389\begin_layout Subsection
2390Deterministické systémy se spojitým časem
2391\end_layout
2392
2393\begin_layout Standard
2394I když zpravidla pracujeme s diskrétními systémy, zejména z důvodů výpočtů
2395 na počítači, teorie optimálního řízení spojitých systémů může být velmi
2396 užitečná.
2397 Poskytuje totiž důležité principy, které jsou velmi často používány při
2398 návrhu algoritmů pro duální řízení.
2399 Konkrétně se jedná o Hamilton-Jacobi-Bellmanovu rovnost a Pontryaginův
2400 princip minima.
2401\end_layout
2402
2403\begin_layout Subsubsection
2404Spojitý systém
2405\end_layout
2406
2407\begin_layout Standard
2408Dynamický systém se spojitým časem uvažujeme dle
2409\begin_inset CommandInset citation
2410LatexCommand cite
2411key "BertsekasDPOC"
2412
2413\end_inset
2414
2415 ve tvaru
2416\begin_inset Formula \begin{eqnarray}
2417\dot{x}(t) & = & f(x(t),u(t)),\;0\leq t\leq T,\label{eq:spojsystemHJBP}\\
2418x(0) & = & x_{0},\nonumber \end{eqnarray}
2419
2420\end_inset
2421
2422kde
2423\begin_inset Formula $x(t)$
2424\end_inset
2425
2426 je stavový vektor v čase
2427\begin_inset Formula $t$
2428\end_inset
2429
2430,
2431\begin_inset Formula $\dot{x}(t)$
2432\end_inset
2433
2434 je vektor prvních derivací podle času v čase
2435\begin_inset Formula $t$
2436\end_inset
2437
2438,
2439\begin_inset Formula $u(t)\in U$
2440\end_inset
2441
2442 je řídící vektor v čase
2443\begin_inset Formula $t$
2444\end_inset
2445
2446,
2447\begin_inset Formula $U$
2448\end_inset
2449
2450 je množina omezení řízení a
2451\begin_inset Formula $T$
2452\end_inset
2453
2454 je časový horizont.
2455 O funkci
2456\begin_inset Formula $f$
2457\end_inset
2458
2459 předpokládáme, že je spojitě diferencovatelná vzhledem k
2460\begin_inset Formula $x$
2461\end_inset
2462
2463 a spojitá vzhledem k
2464\begin_inset Formula $u$
2465\end_inset
2466
2467.
2468 Rovnice
2469\begin_inset CommandInset ref
2470LatexCommand ref
2471reference "eq:spojsystemHJBP"
2472
2473\end_inset
2474
2475 představuje soustavu
2476\begin_inset Formula $n$
2477\end_inset
2478
2479 diferenciálních rovnic prvního řádu.
2480 Naším cílem je nalézení přípustné řídící trajektorie
2481\begin_inset Formula $\left\{ u(t)\mid t\in[0,T]\right\} $
2482\end_inset
2483
2484 a odpovídající stavové trajektorie
2485\family roman
2486\series medium
2487\shape up
2488\size normal
2489\emph off
2490\bar no
2491\noun off
2492\color none
2493
2494\begin_inset Formula $\left\{ x(t)\mid t\in[0,T]\right\} $
2495\end_inset
2496
2497 takové, že minimalizují ztrátovou funkci ve tvaru
2498\begin_inset Formula \[
2499h(x(T))+\int_{0}^{T}g\left(x(t),u(t)\right)dt,\]
2500
2501\end_inset
2502
2503o funkcích
2504\begin_inset Formula $g$
2505\end_inset
2506
2507 a
2508\begin_inset Formula $h$
2509\end_inset
2510
2511 předpokládáme, že jsou spojitě diferencovatelné vzhledem k
2512\begin_inset Formula $x$
2513\end_inset
2514
2515 a
2516\begin_inset Formula $g$
2517\end_inset
2518
2519 je spojitá vzhledem k
2520\begin_inset Formula $u$
2521\end_inset
2522
2523.
2524\end_layout
2525
2526\begin_layout Subsubsection
2527Hamilton-Jacobi-Bellmanova rovnost
2528\end_layout
2529
2530\begin_layout Standard
2531Hamilton-Jacobi-Bellmanova rovnost je parciální diferenciální rovnicí, která
2532 je splněna optimální funkcí nákladů na pokračování
2533\begin_inset Formula $J^{*}(t,x)$
2534\end_inset
2535
2536.
2537 Tato rovnice je analogií algoritmu dynamického programování ve spojitém
2538 čase.
2539 Rovnici lze psát podle
2540\begin_inset CommandInset citation
2541LatexCommand cite
2542key "BertsekasDPOC"
2543
2544\end_inset
2545
2546 ve tvaru
2547\begin_inset Formula \begin{eqnarray}
25480 & = & \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}\\
2549J^{*}(T,x) & = & h(x).\nonumber \end{eqnarray}
2550
2551\end_inset
2552
2553Jedná se tedy o parciální diferenciální rovnici s okrajovou podmínkou.
2554 O funkci
2555\begin_inset Formula $J^{*}(t,x)$
2556\end_inset
2557
2558 jsme předpokládali diferencovatelnost, apriorně ale její diferencovatelnost
2559 neznáme a tedy nevíme, jestli
2560\begin_inset Formula $J^{*}(t,x)$
2561\end_inset
2562
2563 řeší rovnici
2564\begin_inset CommandInset ref
2565LatexCommand ref
2566reference "eq:hjbrovnostJ"
2567
2568\end_inset
2569
2570.
2571 Můžeme však použít následující tvrzení, jehož formulaci i důkaz lze nalézt
2572 v
2573\begin_inset CommandInset citation
2574LatexCommand cite
2575key "BertsekasDPOC"
2576
2577\end_inset
2578
2579:
2580\end_layout
2581
2582\begin_layout Description
2583Věta
2584\begin_inset space \space{}
2585\end_inset
2586
2587o
2588\begin_inset space \space{}
2589\end_inset
2590
2591dostatečnosti:
2592\begin_inset ERT
2593status open
2594
2595\begin_layout Plain Layout
2596
2597~
2598\end_layout
2599
2600\end_inset
2601
2602
2603\begin_inset Newline newline
2604\end_inset
2605
2606Nechť je funkce
2607\begin_inset Formula $V(t,x)$
2608\end_inset
2609
2610 spojitě diferencovatelná vzhledem k
2611\begin_inset Formula $t$
2612\end_inset
2613
2614 a
2615\begin_inset Formula $x$
2616\end_inset
2617
2618 a nechť je řešením Hamilton-Jacobi-Bellmanovy rovnosti:
2619\begin_inset Formula \begin{eqnarray}
26200 & = & \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}\\
2621V(T,x) & = & h(x),\quad\forall x.\nonumber \end{eqnarray}
2622
2623\end_inset
2624
2625Předpokládejme dále, že
2626\begin_inset Formula $\mu^{*}(t,x)$
2627\end_inset
2628
2629 dosáhne minima v rovnosti
2630\begin_inset CommandInset ref
2631LatexCommand ref
2632reference "eq:hjbrovnostV"
2633
2634\end_inset
2635
2636 pro všechna
2637\begin_inset Formula $t$
2638\end_inset
2639
2640 a
2641\begin_inset Formula $x$
2642\end_inset
2643
2644.
2645 Nechť
2646\family roman
2647\series medium
2648\shape up
2649\size normal
2650\emph off
2651\bar no
2652\noun off
2653\color none
2654 
2655\begin_inset Formula $\left\{ x^{*}(t)\mid t\in[0,T]\right\} $
2656\end_inset
2657
2658 označuje stavovou trajektorii získanou při dané počáteční podmínce
2659\begin_inset Formula $x^{*}(0)=x_{0}$
2660\end_inset
2661
2662 a řídící trajektorii
2663\family default
2664\series default
2665\shape default
2666\size default
2667\emph default
2668\bar default
2669\noun default
2670\color inherit
2671
2672\begin_inset Formula $u^{*}(t)=\mu^{*}(t,x^{*}(t)),\; t\in[0,T]$
2673\end_inset
2674
2675.
2676 Pak
2677\begin_inset Formula $V$
2678\end_inset
2679
2680 je rovno optimální funkci nákladů na pokračování, tedy
2681\begin_inset Formula \[
2682V(t,x)=J^{*}(t,x),\quad\forall t,x.\]
2683
2684\end_inset
2685
2686Navíc řídící trajektorie
2687\begin_inset Formula $\left\{ u^{*}(t)\mid t\in[0,T]\right\} $
2688\end_inset
2689
2690 je optimální.
2691 
2692\end_layout
2693
2694\begin_layout Subsubsection
2695Pontryaginův princip minima
2696\end_layout
2697
2698\begin_layout Standard
2699Pontryaginův princip minima je důležitým teorémem optimálního řízení.
2700 Poskytuje nutnou (ne však postačující) podmínku pro optimální trajektorii,
2701 je úzce spřízněn s Hamilton-Jacobi-Bellmanovou rovností a lze ho z ní podle
2702 
2703\begin_inset CommandInset citation
2704LatexCommand cite
2705key "BertsekasDPOC"
2706
2707\end_inset
2708
2709 také odvodit.
2710 Princip minima je výhodné formulovat pomocí Hamiltoniánu.
2711 Označme
2712\begin_inset Formula $p$
2713\end_inset
2714
2715 gradient optimální funkce nákladů na pokračování pro optimální stavovou
2716 trajektorii
2717\begin_inset Formula $p(t)=\nabla_{x}J^{*}\left(t,x^{*}(t)\right)$
2718\end_inset
2719
2720 a definujme Hamiltonián jako funkci zobrazující trojice vektorů
2721\begin_inset Formula $(x,u,p)$
2722\end_inset
2723
2724 do reálných čísel
2725\begin_inset Formula \[
2726H(x,u,p)=g(x,u)+p^{T}f(x,u).\]
2727
2728\end_inset
2729
2730Rovnice pro systém pak může být zapsána v kompaktním tvaru
2731\begin_inset Formula \[
2732\dot{x}^{*}(t)=\nabla_{p}H\left(x^{*}(t),u^{*}(t),p(t)\right).\]
2733
2734\end_inset
2735
2736Obdobně může být zapsána pro
2737\begin_inset Formula $p$
2738\end_inset
2739
2740 takzvaná
2741\emph on
2742adjungovaná rovnice
2743\emph default
2744
2745\begin_inset Formula \[
2746\dot{p}(t)=-\nabla_{x}H\left(x^{*}(t),u^{*}(t),p(t)\right).\]
2747
2748\end_inset
2749
2750Pontryaginův princip minima je podle
2751\begin_inset CommandInset citation
2752LatexCommand cite
2753key "BertsekasDPOC"
2754
2755\end_inset
2756
2757 formulován následovně:
2758\end_layout
2759
2760\begin_layout Description
2761Princip
2762\begin_inset space \space{}
2763\end_inset
2764
2765minima:
2766\begin_inset ERT
2767status open
2768
2769\begin_layout Plain Layout
2770
2771~
2772\end_layout
2773
2774\end_inset
2775
2776
2777\begin_inset Newline newline
2778\end_inset
2779
2780Nechť
2781\family roman
2782\series medium
2783\shape up
2784\size normal
2785\emph off
2786\bar no
2787\noun off
2788\color none
2789
2790\begin_inset Formula $\left\{ u^{*}(t)\mid t\in[0,T]\right\} $
2791\end_inset
2792
2793 je optimální řídící trajektorie a nechť
2794\begin_inset Formula $\left\{ x^{*}(t)\mid t\in[0,T]\right\} $
2795\end_inset
2796
2797 je odpovídající stavová trajektorie, to jest
2798\begin_inset Formula \[
2799\dot{x}^{*}(t)=f\left(x^{*}(t),u^{*}(t)\right),\quad x^{*}(0)=x_{0}.\]
2800
2801\end_inset
2802
2803Nechť dále
2804\begin_inset Formula $p(t)$
2805\end_inset
2806
2807 je řešením adjungované rovnice
2808\begin_inset Formula \[
2809\dot{p}(t)=-\nabla_{x}H\left(x^{*}(t),u^{*}(t),p(t)\right),\]
2810
2811\end_inset
2812
2813s okrajovou podmínkou
2814\begin_inset Formula $p(T)=\nabla h\left(x^{*}(T)\right)$
2815\end_inset
2816
2817.
2818 Pak pro všechna
2819\begin_inset Formula $t\in[0,T]$
2820\end_inset
2821
2822
2823\begin_inset Formula \[
2824u^{*}(t)=\arg\min_{u\in U}H\left(x^{*}(t),u,p(t)\right).\]
2825
2826\end_inset
2827
2828Navíc existuje konstanta
2829\begin_inset Formula $C$
2830\end_inset
2831
2832 taková, že
2833\begin_inset Formula \[
2834H\left(x^{*}(t),u^{*}(t),p(t)\right)=C,\quad\forall t\in[0,T].\]
2835
2836\end_inset
2837
2838
2839\end_layout
2840
2841\begin_layout Subsection
2842Algoritmy pro duální řízení
2843\end_layout
2844
2845\begin_layout Standard
2846Metody pro nalezení optimálního řízení lze obecně rozdělit do dvou základních
2847 kategorií na
2848\emph on
2849globální
2850\emph default
2851a
2852\emph on
2853lokální
2854\emph default
2855viz
2856\begin_inset CommandInset citation
2857LatexCommand cite
2858key "TodorovWeiweiILQG,TodorovTassaILDP"
2859
2860\end_inset
2861
2862
2863\emph on
2864.
2865
2866\emph default
2867 
2868\end_layout
2869
2870\begin_layout Standard
2871Globální metody, používané zejména v posilovaném učení
2872\color black
2873(
2874\begin_inset Quotes gld
2875\end_inset
2876
2877Reinforcement Learning
2878\color inherit
2879
2880\begin_inset Quotes grd
2881\end_inset
2882
2883), jsou založeny na na
2884\color black
2885Bellmanově principu optimality, Hamilton-Jacobi-Bellmanově rovnosti
2886\color inherit
2887 a dynamickém programování.
2888 Tyto algoritmy hledají globálně optimální zpětnovazební řízení pro všechny
2889 stavy obecného stochastického systému a proto podléhají nebezpečí
2890\begin_inset Quotes gld
2891\end_inset
2892
2893problému dimenzionality
2894\begin_inset Quotes grd
2895\end_inset
2896
2897 nebo také rozměrnosti (z anglického
2898\begin_inset Quotes eld
2899\end_inset
2900
2901curse of dimensionality
2902\begin_inset Quotes erd
2903\end_inset
2904
2905 doslovně -
2906\emph on
2907kletba rozměrnosti
2908\emph default
2909).
2910 Jednoduše můžeme tento problém chápat tak, že při numerickém řešení úlohy
2911 jsou počítačem procházeny všechny body diskretizovaného stavového a řídícího
2912 prostoru jejichž počet s rostoucím počtem dimenzí extrémně (exponenciálně)
2913 rychle roste.
2914 Výpočet pro mnohadimenzionální úlohy se pak stává co do paměťových nároků,
2915 ale hlavně z hlediska výpočetního času prakticky nerealizovatelným.
2916\end_layout
2917
2918\begin_layout Standard
2919Lokální metody, častěji studované v teorii řízení, souvisí s
2920\color black
2921Pontryaginovým principem maxima
2922\color inherit
2923.
2924 Jejich podstatou je nalezení řízení, které je pouze lokálně optimální v
2925 okolí nějaké
2926\begin_inset Quotes gld
2927\end_inset
2928
2929extremalní
2930\begin_inset Quotes grd
2931\end_inset
2932
2933 trajektorie.
2934 Většinou je užito deterministických prostředků jako řešení soustavy obyčejných
2935 diferenciálních rovnic (například střelbou nebo relaxací).
2936 Tento přístup ale vede na přímovazební
2937\color red
2938 
2939\color black
2940řízení
2941\color red
2942 
2943\color inherit
2944a nezle užít pro stochastické úlohy, vyhýbá se ale problému dimenzionality,
2945 což umožňuje řešit i komplexnější problémy.
2946\end_layout
2947
2948\begin_layout Standard
2949V poslední době je snaha vyvíjet nové algoritmy, které kombinují výhody
2950 obou výše zmíněných přístupů.
2951 Příkladem může být
2952\emph on
2953diferenciální dynamické programování
2954\emph default
2955 (DDP).
2956 Tento algoritmus zůstává lokální metodou ve smyslu, že uchovává pouzve
2957 jedinou trajektorii, která je lokálně vylepšována.
2958 Vylepšení však není založeno na řešení soustavy obyčejných diferenciálních
2959 rovnic, ale na dynamickém programování aplikovaném na okolí -
2960\begin_inset Quotes eld
2961\end_inset
2962
2963trubici
2964\begin_inset Quotes erd
2965\end_inset
2966
2967 podél současné trajektorie.
2968 Jedná se o algoritmus s konvergencí druhého řádu.
2969 Ještě efektivnější je metoda podobná DDP,
2970\emph on
2971iterativní LQG
2972\emph default
2973 (iLQG).
2974 Tento algoritmus je založen na linearizaci nelineární úlohy v každém bodě
2975 reprezentativní trajektorie a následném řešení modifikované Riccatiho rovnice.
2976 Výhodou DDP i iLQG je, že jejich výsledkem je zpětnovazební řízení.
2977 Obě metody jsou ale stále deterministické a nedokáží se vypořádat s nekvadratic
2978kými ztrátovými funkcemi a požadavky na omezené řízení.
2979 
2980\end_layout
2981
2982\begin_layout Standard
2983S výše zmíněnými problémy se snaží vypořádat modifikovaná iLQG, která bude
2984 
2985\color red
2986možná
2987\color inherit
2988 použita pro srovnání s ústřední metodou této práce iLDP.
2989 Dále pak do kategorie smíšených metod spadá právě i metoda iLDP, která
2990 bude podrobně popsána dále.
2991 
2992\end_layout
2993
2994\begin_layout Section
2995Výběr konkrétních algoritmů pro srovnání
2996\end_layout
2997
2998\begin_layout Subsection
2999LQG
3000\end_layout
3001
3002\begin_layout Standard
3003
3004\color blue
3005(iLQG)
3006\end_layout
3007
3008\begin_layout Subsection
3009Princip separace
3010\end_layout
3011
3012\begin_layout Section
3013Algoritmus iterativního lokálního dynamického programování
3014\end_layout
3015
3016\begin_layout Standard
3017Algoritmus iLDP byl vytvořen pro účely nalezení stochastického optimálního
3018 řízení v mnohadimenzionálních stavových a řídících prostorech.
3019 Tento případ je častý zejména při řízení biologických pohybů.
3020 Metoda je popsána autory v článku
3021\begin_inset CommandInset citation
3022LatexCommand cite
3023key "TodorovTassaILDP"
3024
3025\end_inset
3026
3027
3028\emph on
3029 
3030\emph default
3031a z tohoto zdroje je také převzata
3032\emph on
3033.
3034 
3035\end_layout
3036
3037\begin_layout Standard
3038Základní popis algoritmu, tak jak ho autoři podali, je však pouze šablonou
3039 a mnoho detailů a dílčích částí je ponecháno na vyřešení při konkrétní
3040 realizaci.
3041 To se týká zejména použitých aproximací pro jednotlivé funkce, zejména
3042 aproximace Bellmanovy funkce a aproximace hledaného regulátoru.
3043 Dále, protože algoritmus využívá hledání minima, není v základním popisu
3044 algoritmu vyřešen konkrétní typ minimalizace.
3045 Použitý minimalizační algoritmus se samozřejmě liší podle konkrétního problému,
3046 zejména jedná-li se o minimalizaci omezenou nebo neomezenou.
3047 Ještě je třeba zmínil, že pro algoritmus je nutno zvolit parametr
3048\begin_inset Quotes gld
3049\end_inset
3050
3051velikosti
3052\begin_inset Quotes grd
3053\end_inset
3054
3055 okolí, protože se jedná o lokální metodu.
3056\end_layout
3057
3058\begin_layout Standard
3059\begin_inset VSpace defskip
3060\end_inset
3061
3062
3063\end_layout
3064
3065\begin_layout Subsection
3066Formulace problému
3067\end_layout
3068
3069\begin_layout Standard
3070Naším úkolem je nalézt řízení
3071\begin_inset Formula $\mathbf{u}=\pi(t,\mathbf{\, x})$
3072\end_inset
3073
3074, které minimalizuje očekávanou ztrátu
3075\end_layout
3076
3077\begin_layout Standard
3078\align center
3079\begin_inset Formula \[
3080J(\pi)=E_{\omega}\left(h(\mathbf{x},\pi(t,\mathbf{x}))+\int_{0}^{T}l(\mathbf{x},\pi(t,\mathbf{x}))dt\right)\]
3081
3082\end_inset
3083
3084
3085\end_layout
3086
3087\begin_layout Standard
3088obecně pro spojitý systém:
3089\end_layout
3090
3091\begin_layout Standard
3092\begin_inset Formula \begin{eqnarray}
3093d\mathbf{x} & = & \mathbf{f}(\mathbf{x},\mathbf{u})dt+F(\mathbf{x},\mathbf{u})d\omega\nonumber \\
3094\mathbf{x}(0) & = & \mathbf{x}_{0}\label{eq:systemSpoj}\\
3095t & \in & [0,T]\nonumber \end{eqnarray}
3096
3097\end_inset
3098
3099
3100\end_layout
3101
3102\begin_layout Standard
3103v diskrétním tvaru:
3104\end_layout
3105
3106\begin_layout Standard
3107\begin_inset Formula \begin{eqnarray}
3108\mathbf{x}_{k+1}-\mathbf{x}_{k} & = & \mathbf{f}(\mathbf{x},\mathbf{u})\cdot\Delta k+F(\mathbf{x},\mathbf{u})e_{k}\nonumber \\
3109\mathbf{x}_{(k=0)} & = & \mathbf{x}_{0}\label{eq:systemDis}\\
3110k & \in & \{0,1,\ldots,N\}\nonumber \\
3111\Delta k & = & (k+1)-(k)\nonumber \end{eqnarray}
3112
3113\end_inset
3114
3115
3116\end_layout
3117
3118\begin_layout Standard
3119kde hledáme řízení
3120\begin_inset Formula $\mathbf{u}=\pi(k,\mathbf{\, x})$
3121\end_inset
3122
3123, které minimalizuje očekávanou ztrátu
3124\series bold
3125\emph on
3126\color red
3127asi
3128\end_layout
3129
3130\begin_layout Standard
3131\begin_inset Formula \[
3132J(\pi)=E\left(h(\mathbf{x},\pi(N,\mathbf{x}))+\sum_{k=0}^{N-1}l_{k}(\mathbf{x},\pi(k,\mathbf{x}))\Delta k\right)\]
3133
3134\end_inset
3135
3136
3137\end_layout
3138
3139\begin_layout Subsection
3140Osnova algoritmu
3141\end_layout
3142
3143\begin_layout Standard
3144Algoritmus pracuje iteračně, každá iterace začne s řízením
3145\begin_inset Formula $\pi$
3146\end_inset
3147
3148 a vytvoří zlepšení
3149\begin_inset Formula $\pi'$
3150\end_inset
3151
3152.
3153 Přičemž prvotní řešení
3154\begin_inset Formula $\pi_{0}$
3155\end_inset
3156
3157 musíme algoritmu dodat jako apriorní informaci.
3158 Pro zajištění globální konvergence je možno nové řešení hledat jako konvexní
3159 kombinaci starého a algoritmem nalezeného řešení
3160\begin_inset Formula \[
3161\pi^{nové}=\alpha\pi'+(1-\alpha)\pi;\;0<\alpha\leq1;\; J(\pi^{nové})<J(\pi)\]
3162
3163\end_inset
3164
3165
3166\end_layout
3167
3168\begin_layout Standard
3169V každé iteraci proběhne nejprve přípravná fáze, kdy z řízení
3170\begin_inset Formula $\pi(k,\mathbf{x})$
3171\end_inset
3172
3173 generuje průměrnou trajektorii
3174\begin_inset Formula $\bar{x}(k)$
3175\end_inset
3176
3177 řešením rovnice
3178\begin_inset CommandInset ref
3179LatexCommand ref
3180reference "eq:systemSpoj"
3181
3182\end_inset
3183
3184 respektive
3185\begin_inset CommandInset ref
3186LatexCommand ref
3187reference "eq:systemDis"
3188
3189\end_inset
3190
3191
3192\emph on
3193.
3194 
3195\emph default
3196Následně se počítá aproximace
3197\begin_inset Formula $\tilde{V}(k,\mathbf{x})$
3198\end_inset
3199
3200 Bellmanovy funkce
3201\begin_inset Formula $V(k,\mathbf{x})$
3202\end_inset
3203
3204 v čase odzadu, tj.
3205 od
3206\begin_inset Formula $N$
3207\end_inset
3208
3209 k
3210\begin_inset Formula $1$
3211\end_inset
3212
3213.
3214 Současně počítáme i aproximaci řízení
3215\begin_inset Formula $\pi'(k,\mathbf{x})\ldots\pi'(N-1,\mathbf{x})$
3216\end_inset
3217
3218.
3219 Tedy pro každý čas
3220\begin_inset Formula $k$
3221\end_inset
3222
3223 takový, že
3224\begin_inset Formula $k=N-1\ldots1$
3225\end_inset
3226
3227 jdeme zpět, přičemž pokládáme v koncovém čase
3228\begin_inset Formula $N$
3229\end_inset
3230
3231 hodnotu aproximace Bellmanovy funkce
3232\begin_inset Formula $\tilde{V}(N,\mathbf{x})=h(\mathbf{x})$
3233\end_inset
3234
3235 a provádíme následující čtyři kroky:
3236\end_layout
3237
3238\begin_layout Enumerate
3239Generujeme množinu stavů
3240\begin_inset Formula $\left\{ \mathbf{x}^{(n)}\right\} _{n=1\ldots M}$
3241\end_inset
3242
3243 shromážděných kolem průměrného stavu
3244\begin_inset Formula $\bar{\mathbf{x}}(k)$
3245\end_inset
3246
3247.
3248\end_layout
3249
3250\begin_deeper
3251\begin_layout Standard
3252Zde se projevuje lokálnost metody.
3253 Množina stavů
3254\begin_inset Formula $\left\{ \mathbf{x}^{(n)}\right\} $
3255\end_inset
3256
3257 je vybrána z okolí průměrného stavu
3258\begin_inset Formula $\bar{\mathbf{x}}(k)$
3259\end_inset
3260
3261.
3262 Toto okolí a způsob výběru množiny je třeba konkrétně specifikovat.
3263 Pro účely implementace tohoto algoritmu bylo okolí specifikováno parametrem
3264 
3265\begin_inset Formula $\rho^{2}$
3266\end_inset
3267
3268.
3269 Množina stavů
3270\begin_inset Formula $\left\{ \mathbf{x}^{(n)}\right\} $
3271\end_inset
3272
3273 pak byla generována náhodně jako náhodná veličina s normálním rozdělením
3274 se střední hodnotou rovnou průměrnému stavu
3275\begin_inset Formula $\bar{\mathbf{x}}(k)$
3276\end_inset
3277
3278 a rozptylem specifikovaným parametrem
3279\begin_inset Formula $\rho^{2}$
3280\end_inset
3281
3282.
3283\begin_inset Newline newline
3284\end_inset
3285
3286Počet vzorků
3287\begin_inset Formula $M$
3288\end_inset
3289
3290 je nutno zvolit při implementaci algoritmu.
3291 Obecně je nejlepší volit maximální možné číslo, ovšem s rostoucím počtem
3292 vzorků rostou i paměťové nároky a výpočetní čas algoritmu.
3293\end_layout
3294
3295\end_deeper
3296\begin_layout Enumerate
3297Pro každé
3298\begin_inset Formula $\mathbf{x}^{(n)}$
3299\end_inset
3300
3301 vypočítáme optimální řízení
3302\begin_inset Formula $\mathbf{u}^{(n)}$
3303\end_inset
3304
3305 minimalizací Hamiltoniánu
3306\begin_inset Formula \[
3307H(k,\mathbf{x},\mathbf{u})=\mathbf{l}(\mathbf{x},\mathbf{u})+\mathbf{f}(\mathbf{x},\mathbf{u})^{T}\tilde{V}_{x}(k+1,\mathbf{x})+\frac{1}{2}\mathbf{tr}\left(\sum(\mathbf{x},\mathbf{u})\tilde{V}_{xx}(k+1,\mathbf{x})\right)\]
3308
3309\end_inset
3310
3311s inicializačním bodem
3312\begin_inset Formula $\pi(k,\mathbf{x}^{(n)})$
3313\end_inset
3314
3315.
3316 Kde
3317\begin_inset Formula $\Sigma(\mathbf{x},\mathbf{u})=\mathbf{F}(\mathbf{x},\mathbf{u})\mathbf{F}(\mathbf{x},\mathbf{u})^{T}$
3318\end_inset
3319
3320.
3321 Tedy optimální řízení v čase
3322\begin_inset Formula $k$
3323\end_inset
3324
3325 pro stav
3326\begin_inset Formula $n$
3327\end_inset
3328
3329 hledáme jako
3330\begin_inset Formula $\mathbf{u}^{(n)}=\arg\min_{\mathbf{u}}H(k,\mathbf{x},\mathbf{u})$
3331\end_inset
3332
3333.
3334\end_layout
3335
3336\begin_deeper
3337\begin_layout Standard
3338Pro minimalizaci lze použít například minimalizační funkce programu
3339\emph on
3340Matlab
3341\emph default
3342z balíku
3343\emph on
3344 Optimization Toolbox
3345\emph default
3346, konkrétně se jedná o funkce
3347\family typewriter
3348fminunc
3349\family default
3350 respektive
3351\family typewriter
3352fmincon
3353\family default
3354 pro neomezenou respektive omezenou minimalizaci.
3355 V případě, že by bylo možno spočítat minimalizaci analyticky, jedná se
3356 samozřejmě o nejlepší způsob.
3357\end_layout
3358
3359\end_deeper
3360\begin_layout Enumerate
3361Pro každé
3362\begin_inset Formula $\mathbf{x}(k)$
3363\end_inset
3364
3365 aproximovat
3366\begin_inset Formula $v^{(n)}=V(k,\mathbf{x}^{(n)})$
3367\end_inset
3368
3369 použitím Hamolton-Jacobi-Bellmanovi rovnosti
3370\begin_inset Formula \[
3371V(k,\mathbf{x}^{(n)})\approx\Delta k\cdot H(k,\mathbf{x}^{(n)},\mathbf{u}^{(n)})+\tilde{V}(k+1,\mathbf{x}^{(n)})\]
3372
3373\end_inset
3374
3375
3376\end_layout
3377
3378\begin_layout Enumerate
3379Vypočítat novou aporximaci funkce
3380\begin_inset Formula $\tilde{V}(k,\mathbf{x})$
3381\end_inset
3382
3383 z množiny bodů
3384\begin_inset Formula $\left\{ \mathbf{x}^{(n)},v^{(n)}\right\} $
3385\end_inset
3386
3387 a aproximaci řízení
3388\begin_inset Formula $\pi'(k,\mathbf{x}^{(n)})$
3389\end_inset
3390
3391 definované pro všechna
3392\begin_inset Formula $x$
3393\end_inset
3394
3395 jako z množiny bodů
3396\begin_inset Formula $\left\{ \mathbf{x}^{(n)},\mathbf{u}^{(n)}\right\} $
3397\end_inset
3398
3399.
3400\end_layout
3401
3402\begin_layout Subsection
3403Detaily implementace
3404\end_layout
3405
3406\begin_layout Subsection
3407Konkrétní použité aproximace
3408\end_layout
3409
3410\begin_layout Standard
3411Výpočet hodnot a aproximace
3412\begin_inset Formula $\tilde{V}\;(\tilde{V}_{x},\tilde{V}_{xx})$
3413\end_inset
3414
3415 je opakovaný.
3416 Je tedy třeba vysoké optimalizace, proto je použita lineární aproximace
3417 ve tvaru lineární kombinace dvakrát diferencovatelných základních funkcí
3418 
3419\begin_inset Formula $\phi(x)\in\mathbf{R}^{P}$
3420\end_inset
3421
3422 kde
3423\begin_inset Formula $P<N$
3424\end_inset
3425
3426.
3427 Jako základní funkce jsou voleny funkce
3428\begin_inset Formula $1,\: x_{i},\: x_{i}x_{j},\: x_{i}^{2}x_{j}$
3429\end_inset
3430
3431.
3432 Aproximace je volena jako časově proměnná, kdy
3433\begin_inset Formula $\tilde{V}(k,\mathbf{x})=\phi(\mathbf{x}-\bar{\mathbf{x}}(k))^{T}\mathbf{w}(k)$
3434\end_inset
3435
3436, kde
3437\begin_inset Formula $\mathbf{w}(k)$
3438\end_inset
3439
3440 je parametrický vektor závislý na čase
3441\begin_inset Formula $k$
3442\end_inset
3443
3444.
3445 
3446\end_layout
3447
3448\begin_layout Standard
3449Označme
3450\begin_inset Formula $\tilde{V}_{x}=\phi_{x}^{T}\mathbf{w}$
3451\end_inset
3452
3453 a
3454\begin_inset Formula $\tilde{V}_{xx}=\phi_{xx}^{T}\mathbf{w}$
3455\end_inset
3456
3457 první a druhou derivaci aproximace Bellmanovy funkce podle proměnné
3458\begin_inset Formula $\mathbf{x}$
3459\end_inset
3460
3461 respektive
3462\emph on
3463vektor
3464\emph default
3465a
3466\emph on
3467matici
3468\emph default
3469 parciálních derivací podle složek vektoru
3470\begin_inset Formula $\mathbf{x}$
3471\end_inset
3472
3473.
3474 Parametry aproximace pro jednotlivé časy
3475\begin_inset Formula $\mathbf{w}$
3476\end_inset
3477
3478 se určí lineární regresí.
3479 Pro
3480\begin_inset Formula $\mathbf{v}=\left[v^{(1)}\ldots v^{(M)}\right]$
3481\end_inset
3482
3483 vektor cílových hodnot a matici
3484\begin_inset Formula $\mathbf{\Phi}=\left[\phi(\mathbf{x}^{(1)}-\bar{\mathbf{x}}(k))\ldots\phi(\mathbf{x}^{(M)}-\bar{\mathbf{x}}(k))\right]$
3485\end_inset
3486
3487 je minimální kvadratická odchylka
3488\begin_inset Formula $\parallel\mathbf{v}-\mathbf{\Phi}^{T}\mathbf{w}\parallel^{2}$
3489\end_inset
3490
3491 pro volbu parametru
3492\begin_inset Formula $\mathbf{w}=\left(\mathbf{\Phi\Phi}^{T}\right)^{-1}\mathbf{\Phi v}$
3493\end_inset
3494
3495.
3496 
3497\end_layout
3498
3499\begin_layout Standard
3500Protože je průměrná trajektorie
3501\begin_inset Formula $\bar{\mathbf{x}}(k)$
3502\end_inset
3503
3504 konstantní v iteraci algoritmu, je z důvodu urychlení výpočtu aproximace
3505 vycentrována v tomto bodě.
3506 Množina
3507\begin_inset Formula $\left\{ \mathbf{x}^{(n)}\right\} $
3508\end_inset
3509
3510 je časově proměnná, abychom nemuseli v každém kroku počítat
3511\begin_inset Formula $\left(\mathbf{\Phi\Phi}^{T}\right)^{-1}\mathbf{\Phi}$
3512\end_inset
3513
3514, položíme
3515\begin_inset Formula $\mathbf{x}^{(n)}=\bar{\mathbf{x}}(k)+\varepsilon^{(n)}$
3516\end_inset
3517
3518, kde
3519\begin_inset Formula $\left\{ \varepsilon^{(n)}\right\} $
3520\end_inset
3521
3522 je stejná pro všechny časy
3523\begin_inset Formula $k$
3524\end_inset
3525
3526.
3527 Množina
3528\begin_inset Formula $\left\{ \mathbf{x}^{(n)}\right\} $
3529\end_inset
3530
3531 se pak jakoby pohybuje podél trajektorie
3532\begin_inset Formula $\bar{\mathbf{x}}(k)$
3533\end_inset
3534
3535.
3536 Tedy
3537\begin_inset Formula $\tilde{V}(k,\mathbf{x}^{(n)})=\phi(\varepsilon^{(n)})^{T}\mathbf{w}(k)$
3538\end_inset
3539
3540 a
3541\begin_inset Formula $\Phi$
3542\end_inset
3543
3544 je konstantní v nejen čase, ale i v iteracích algoritmu a matici
3545\begin_inset Formula $\left(\mathbf{\Phi\Phi}^{T}\right)^{-1}\mathbf{\Phi}$
3546\end_inset
3547
3548 je možno předpočítat (což by nešlo při závislosti na stavech).
3549\end_layout
3550
3551\begin_layout Subsection
3552Předběžný odhad vlatností algoritmu
3553\end_layout
3554
3555\begin_layout Standard
3556\begin_inset Newpage newpage
3557\end_inset
3558
3559
3560\end_layout
3561
3562\begin_layout Chapter
3563Systémy pro testování
3564\end_layout
3565
3566\begin_layout Section
3567Jednoduchý systém
3568\end_layout
3569
3570\begin_layout Subsection
3571Popis problému
3572\end_layout
3573
3574\begin_layout Standard
3575Tato úloha byla převzata z článku
3576\begin_inset CommandInset citation
3577LatexCommand cite
3578key "ThompsonCluettSIDP"
3579
3580\end_inset
3581
3582 zejména z důvodu, aby mohla být porovnána s algoritmem navrženým ve zmíněném
3583 zdroji.
3584 Sami autoři
3585\begin_inset CommandInset citation
3586LatexCommand cite
3587key "ThompsonCluettSIDP"
3588
3589\end_inset
3590
3591 pak přejali tento problém z
3592\begin_inset CommandInset citation
3593LatexCommand cite
3594key "AstromHelmerssonDCIUG"
3595
3596\end_inset
3597
3598.
3599\end_layout
3600
3601\begin_layout Standard
3602Jedná se o integrátor s neznámým ziskem, tedy lineární časově invariantní
3603 systém s jedním vstupem a jedním výstupem.
3604\end_layout
3605
3606\begin_layout Standard
3607\begin_inset Formula \begin{eqnarray}
3608y_{k+1} & = & y_{k}+b_{k}u_{k}+e_{k+1},\nonumber \\
3609b_{k} & \sim & N(\hat{b}_{k},P_{k}),\label{eq:simplesystem}\\
3610e_{k} & \sim & N(0,\sigma^{2}),\nonumber \\
3611\mathrm{cov}(e_{k},b_{k}) & = & 0,\;\forall k.\nonumber \end{eqnarray}
3612
3613\end_inset
3614
3615
3616\end_layout
3617
3618\begin_layout Standard
3619kde
3620\begin_inset Formula $y_{k}$
3621\end_inset
3622
3623 je výstup nebo také stav procesu v čase
3624\begin_inset Formula $k$
3625\end_inset
3626
3627,
3628\begin_inset Formula $u_{k}$
3629\end_inset
3630
3631 je řízení v čase
3632\begin_inset Formula $k$
3633\end_inset
3634
3635.
3636 Varianci šumu
3637\begin_inset Formula $\sigma^{2}$
3638\end_inset
3639
3640 předpokládáme známou, stejně jako počáteční hodnoty systému
3641\begin_inset Formula $y_{0}$
3642\end_inset
3643
3644,
3645\begin_inset Formula $\hat{b}_{0}$
3646\end_inset
3647
3648 a
3649\begin_inset Formula $P_{0}$
3650\end_inset
3651
3652.
3653 Úkolem je nalézt zpětnovazební řízení
3654\begin_inset Formula \[
3655u_{k}^{*}=u_{k}^{*}(y_{k},y_{k-1},\ldots,y_{0},u_{k-1},u_{k-2},\ldots,u_{0}),\;0\leq k\leq N-1\]
3656
3657\end_inset
3658
3659 minimalizující očekávanou ztrátu
3660\begin_inset Formula \begin{eqnarray*}
3661J_{0} & = & \left\{ \sum_{k=0}^{N-1}g_{k}\right\} ,\\
3662g_{k} & = & (y_{k+1}-r_{k+1})^{2},\end{eqnarray*}
3663
3664\end_inset
3665
3666
3667\end_layout
3668
3669\begin_layout Standard
3670pro daný časový horizont
3671\begin_inset Formula $N$
3672\end_inset
3673
3674 a referenční signál, tj.
3675 požadovanou hodnotu výstupu, ve formě posloupnosti
3676\begin_inset Formula $\left\{ r_{k}\right\} _{k=1}^{N}$
3677\end_inset
3678
3679.
3680\end_layout
3681
3682\begin_layout Standard
3683Při řešení tohoto problému je výhodné nahlížet na systému jako úlohu s hyperstav
3684em
3685\begin_inset Formula $H_{k}=[y_{k},\hat{b}_{k},P_{k}].$
3686\end_inset
3687
3688 Pak první rovnici v
3689\begin_inset CommandInset ref
3690LatexCommand ref
3691reference "eq:simplesystem"
3692
3693\end_inset
3694
3695 doplníme rovnicemi, ze kterých mohou být rekurzivně napočítány parametry
3696 
3697\begin_inset Formula $\hat{b}_{k}$
3698\end_inset
3699
3700 a
3701\begin_inset Formula $P_{k}$
3702\end_inset
3703
3704
3705\begin_inset Formula \begin{eqnarray*}
3706\hat{b}_{k+1} & = & \hat{b}_{k}+K_{k}(y_{k+1}-y_{k}-\hat{b}_{k}u_{k}),\\
3707P_{k+1} & = & (1-K_{k}u_{k})P_{k},\\
3708K_{k} & = & \frac{u_{k}P_{k}}{u_{k}^{2}P_{k}+\sigma^{2}}.\end{eqnarray*}
3709
3710\end_inset
3711
3712Přičemž ztráta v čase
3713\begin_inset Formula $k$
3714\end_inset
3715
3716 se změní na
3717\begin_inset Formula \[
3718g_{k}=(y_{k+1}-r_{k+1})^{2}+P_{k}u_{k}^{2}.\]
3719
3720\end_inset
3721
3722
3723\end_layout
3724
3725\begin_layout Subsection
3726Úpravy rovnic
3727\end_layout
3728
3729\begin_layout Subsection
3730Konkrétní užití
3731\end_layout
3732
3733\begin_layout Subsection
3734Pozorované výsledky
3735\end_layout
3736
3737\begin_layout Section
3738Synchronní motor s permanentními magnety
3739\end_layout
3740
3741\begin_layout Subsection
3742Popis systému
3743\end_layout
3744
3745\begin_layout Standard
3746Následující model popisuje synchronní elektromotormotor s rotorem tvořeným
3747 permanentními magnety.
3748 Systém je popsán standartními rovnicemi synchronního stroje s permanentními
3749 magnety ve stacionárním tvaru
3750\begin_inset Formula \begin{eqnarray}
3751\frac{di_{\alpha}}{dt} & = & -\frac{R_{s}}{L_{s}}i_{\alpha}+\frac{\Psi_{PM}}{L_{s}}\omega\sin\vartheta+\frac{u_{\alpha}}{L_{s}},\nonumber \\
3752\frac{di_{\beta}}{dt} & = & -\frac{R_{s}}{L_{s}}i_{\beta}-\frac{\Psi_{PM}}{L_{s}}\omega\cos\vartheta+\frac{u_{\beta}}{L_{s}},\label{eq:pmsmspojity}\\
3753\frac{d\omega}{dt} & = & \frac{k_{p}p_{p}^{2}\Psi_{PM}}{J}\left(i_{\beta}\cos\vartheta-i_{\alpha}\sin\vartheta\right)-\frac{B}{J}\omega-\frac{p_{p}}{J}T_{L},\nonumber \\
3754\frac{d\vartheta}{dt} & = & \omega.\nonumber \end{eqnarray}
3755
3756\end_inset
3757
3758
3759\end_layout
3760
3761\begin_layout Standard
3762Zde
3763\begin_inset Formula $i_{\alpha,\beta}$
3764\end_inset
3765
3766 reprezentují proudy a
3767\begin_inset Formula $u_{\alpha,\beta}$
3768\end_inset
3769
3770 napětí na statoru.
3771 Poloha (úhel otočení) rotoru je označen
3772\begin_inset Formula $\vartheta$
3773\end_inset
3774
3775 a
3776\begin_inset Formula $\omega$
3777\end_inset
3778
3779 je pak rychlost otáčení.
3780 Dále
3781\begin_inset Formula $R_{s}$
3782\end_inset
3783
3784 je rezistance a
3785\begin_inset Formula $L_{s}$
3786\end_inset
3787
3788 induktance statoru.
3789 
3790\begin_inset Formula $\Psi_{PM}$
3791\end_inset
3792
3793 má význam magnetického toku permanentních magnetů rotoru,
3794\begin_inset Formula $B$
3795\end_inset
3796
3797 tření a
3798\begin_inset Formula $T_{L}$
3799\end_inset
3800
3801 je zatěžovací moment.
3802 Konstanta
3803\begin_inset Formula $p_{p}$
3804\end_inset
3805
3806 označuje počet párů polů a
3807\begin_inset Formula $k_{p}$
3808\end_inset
3809
3810 Parkovu konstantu.
3811\end_layout
3812
3813\begin_layout Standard
3814Cílem je návrh řízení bez senzorů, kdy čidla pro měření polohy a otáček
3815 nejsou (z různých důvodů) přítomna.
3816 Tedy jediné měřitelné veličiny jsou:
3817\begin_inset Formula \[
3818y_{t}=\left[i_{\alpha}(t),i_{\beta}(t),u_{\alpha}(t),u_{\beta}(t)\right].\]
3819
3820\end_inset
3821
3822Které samozřejmě můžeme měřit jen s určitou přesností.
3823\end_layout
3824
3825\begin_layout Standard
3826Diskretizace modelu
3827\begin_inset CommandInset ref
3828LatexCommand ref
3829reference "eq:pmsmspojity"
3830
3831\end_inset
3832
3833 pomocí Eulerovy metody vede na následující diskrétní popis:
3834\begin_inset Formula \begin{eqnarray*}
3835i_{\alpha,k+1} & = & \left(1-\frac{R_{s}}{L_{s}}\Delta k\right)i_{\alpha,k}+\frac{\Psi_{PM}}{L_{s}}\Delta k\omega_{k}\sin\vartheta_{k}+\frac{\Delta k}{L_{s}}u_{\alpha,k},\\
3836i_{\beta,k+1} & = & \left(1-\frac{R_{s}}{L_{s}}\Delta k\right)i_{\beta,k}-\frac{\Psi_{PM}}{L_{s}}\Delta k\omega_{k}\cos\vartheta_{k}+\frac{\Delta k}{L_{s}}u_{\beta,k},\\
3837\omega_{k+1} & = & \left(1-\frac{B}{J}\Delta k\right)\omega_{k}+\frac{k_{p}p_{p}^{2}\Psi_{PM}}{J}\Delta k\left(i_{\beta,k}\cos\vartheta_{k}-i_{\alpha,k}\sin\vartheta_{k}\right)-\frac{p_{p}}{J}T_{L}\Delta k,\\
3838\vartheta_{k+1} & = & \vartheta_{k}+\omega_{k}\Delta k.\end{eqnarray*}
3839
3840\end_inset
3841
3842Kde
3843\begin_inset Formula $\Delta k$
3844\end_inset
3845
3846 označuje diskrétní časový okamžik.
3847 Předpokládáme, že paremetry modelu známe, můžeme tedy provést následující
3848 substituci za účelem zjednodušení:
3849\begin_inset Formula $a=1-\frac{R_{s}}{L_{s}}\Delta k$
3850\end_inset
3851
3852,
3853\begin_inset Formula $b=\frac{\Psi_{PM}}{L_{s}}\Delta k$
3854\end_inset
3855
3856,
3857\begin_inset Formula $c=\frac{\Delta k}{L_{s}}$
3858\end_inset
3859
3860,
3861\begin_inset Formula $d=1-\frac{B}{J}\Delta k$
3862\end_inset
3863
3864,
3865\begin_inset Formula $e=\frac{k_{p}p_{p}^{2}\Psi_{PM}}{J}\Delta k$
3866\end_inset
3867
3868.
3869 Pro jednoduchost uvažujme model bez zatížení, tedy zatěžovací moment
3870\begin_inset Formula $T_{L}$
3871\end_inset
3872
3873 je nulovy a zjednodušený model je:
3874\begin_inset Formula \begin{eqnarray}
3875i_{\alpha,k+1} & = & ai_{\alpha,k}+b\omega_{k}\sin\vartheta_{k}+cu_{\alpha,k},\nonumber \\
3876i_{\beta,k+1} & = & ai_{\beta,k}-b\omega_{k}\cos\vartheta_{k}+cu_{\beta,k},\label{eq:pmsmdiskretni}\\
3877\omega_{k+1} & = & d\omega_{k}+e\left(i_{\beta,k}\cos\vartheta_{k}-i_{\alpha,k}\sin\vartheta_{k}\right),\nonumber \\
3878\vartheta_{k+1} & = & \vartheta_{k}+\omega_{k}\Delta k.\nonumber \end{eqnarray}
3879
3880\end_inset
3881
3882Tyto rovnice můžeme chápat jako popis systému se stavem
3883\begin_inset Formula $x_{k}=\left[i_{\alpha,k},i_{\beta,k},\omega_{k},\vartheta_{k}\right]$
3884\end_inset
3885
3886.
3887\end_layout
3888
3889\begin_layout Subsection
3890Úprava rovnic
3891\end_layout
3892
3893\begin_layout Subsection
3894Aplikace iLDP
3895\end_layout
3896
3897\begin_layout Subsection
3898Výsledky jiných metod
3899\end_layout
3900
3901\begin_layout Standard
3902\begin_inset Newpage newpage
3903\end_inset
3904
3905
3906\end_layout
3907
3908\begin_layout Chapter
3909Výsledky
3910\end_layout
3911
3912\begin_layout Section
3913Výsledky algoritmu iLDP
3914\end_layout
3915
3916\begin_layout Subsection
3917Různá počáteční nastavení
3918\end_layout
3919
3920\begin_layout Section
3921Výsledky ostatních použitých metod
3922\end_layout
3923
3924\begin_layout Subsection
3925LQG
3926\end_layout
3927
3928\begin_layout Subsection
3929Princip separace
3930\end_layout
3931
3932\begin_layout Section
3933Srovnání
3934\end_layout
3935
3936\begin_layout Subsection
3937Získané výsledky
3938\end_layout
3939
3940\begin_layout Subsection
3941Porovnání algoritmů
3942\end_layout
3943
3944\begin_layout Section
3945Diskuze pro metodu iLDP
3946\end_layout
3947
3948\begin_layout Standard
3949\begin_inset Newpage newpage
3950\end_inset
3951
3952
3953\end_layout
3954
3955\begin_layout Addchap
3956Závěr
3957\end_layout
3958
3959\begin_layout Standard
3960\begin_inset Newpage newpage
3961\end_inset
3962
3963
3964\end_layout
3965
3966\begin_layout Standard
3967\begin_inset ERT
3968status open
3969
3970\begin_layout Plain Layout
3971
3972
3973\backslash
3974addcontentsline{toc}{chapter}{Literatura}
3975\end_layout
3976
3977\begin_layout Plain Layout
3978
3979
3980\backslash
3981markboth{Literatura}{Literatura}
3982\end_layout
3983
3984\end_inset
3985
3986
3987\end_layout
3988
3989\begin_layout Standard
3990\begin_inset CommandInset bibtex
3991LatexCommand bibtex
3992btprint "btPrintAll"
3993bibfiles "bpzdroje"
3994options "czechiso"
3995
3996\end_inset
3997
3998
3999\end_layout
4000
4001\end_body
4002\end_document
Note: See TracBrowser for help on using the browser.