diplomov´a pr´ace - Katedra elektromagnetického pole
Transkript
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA ELEKTROMAGNETICKÉHO POLE DIPLOMOVÁ PRÁCE Nástroj pro modálnı́ analýzu fraktálových patch antén Bc. Miloslav Čapek Vedoucı́ práce: Ing. Pavel Hazdra České Budějovice 2009 i Zadánı́ Vytvořte SW nástroj pro generaci (pomocı́ IFS) a modálnı́ analýzu mikropáskových patch antén založených na fraktálnı́ geometrii. 1. Implementujte optimalizačnı́ algoritmus (např. na bázi PSO), který bude generovat IFS koláže s cı́lem nalézt struktury s minimálnı́ rezonančnı́ frekvencı́ základnı́ho modu. Rezonančnı́ frekvence a rozloženı́ proudů stanovte pomocı́ dutinového modelu (např. s využitı́m výpočetnı́ho jádra COMSOL Multiphysics). Maximálnı́ rozměry koláže uvažujte konstantnı́ tak, aby bylo možné porovnávat struktury vůči kanonickým tvarům (obdélnı́k, kruh) a navzájem vůči sobě. 2. Na základě rozloženı́ magnetických proudů na hraně antén implementujte výpočet vyzařovacı́ho diagramu pro jednotlivé mody. 3. Vybranou strukturu z bodu 1) nasimulujte v některém ”full-wave”simulátoru (např. CST-MWS) a porovnejte vlastnosti antény s dutinovým modelem (rezonančnı́ frekvence, proudová distribuce). ii Poděkovánı́ Rád bych poděkoval několika lidem, bez kterých by tato práce stěžı́ kdy vznikla. Předně děkuji mému školiteli Pavlu Hazdrovi, nejen za přı́sun literatury a podkladů, tipů a rad, ale zejména za nenápadné a přesto jisté vedenı́ celé práce. Dále bych rád poděkoval těm, kteřı́ přispěli radou; jmenovitě: Petrovi Černému, Stanislavu Zvánovcovi, Aleši Němečkovi, Jaroslavu Tišerovi, Pavlu Tišnovskému a dalšı́m. V neposlednı́ řadě děkuji rodině, Janě a výrobcům japonských zelených čajů. iii Prohlášenı́ Tı́mto stvrzuji, že tato práce je mé vlastnı́ dı́lo a že všechny použité zdroje jsou uvedeny v Literatuře (přı́padně na datovém nosiči). Dále souhlası́m s přı́padným využitı́m mé práce pro nekomerčnı́ účely katedry elekromagnetického pole na FEL-ČVUT. V Českých Budějovicı́ch dne 15. 5. 2009. iv Abstrakt Diplomová práce shrnuje zı́skané poznatky v oblasti fraktálnı́ch antén a optimalizace. V mnoha ohledech rozvádı́ závěry bakalářské práce. Text je tematicky rozdělen na několik částı́, které reflektujı́ na sebe navazujı́cı́ témata. Nejprve je věnována pozornost definici, generaci a zpracovánı́ IFS struktur. Jsou představeny postupy jak dynamicky vyhodnocovat obvod a obsah koláže v prostředı́ Matlab, věnujeme se i tzv. box-counting metodě. Pro vlastnı́ modálnı́ řešenı́ je využit dutinový model, výpočet provádı́ Comsol. Dalšı́ pasáž reflektuje vývoj v oblasti optimalizace, je implementován a testován PSO algoritmus. Představen je nástroj na nastavenı́ optimalizačnı́ch podmı́nek s cı́lem zı́skat optimalizované IFS antény s ohledem na minimálnı́ rezonančnı́ frekvenci. Exportovaná data z Comsolu využijeme pro výpočet vyzařovacı́ho diagramu. Na závěr vybranou strukturu simulujeme v referenčnı́m softwaru CST MWS. Naprostá většina aplikacı́ je původnı́, jsou vytvářeny v prostředı́ Matlab s ohledem na modularitu a dalšı́ rozvoj. Klı́čová slova IFS, dutinový model, rezonančnı́ frekvence, proudové rozloženı́, módy, optimalizace, PSO, vyzařovacı́ diagram. v Abstract This thesis summarieses all obtained knowledge about fractal patch antenna and particle swarm optimization. All aspects of the bachelor thesis are expand in many ways, some new topic are shown too. The whole text is divided into separate chapters which contain particular topics. First we take care of definition, generation and manipulation of IFS fractal structures. There are introduced new approaches to fractal’s circumference and area measure in Matlab environment. We attend to socalled box-counting method also. Further section contains cavity model characterization. Evaluation of this model provides Comsol Multiphysics. The PSO algorithm is chosen for optimization of patch antennas. The IFSLimiter, instrument for setup the conditions of optimization, is introduced. Radiation pattern is computed from obtained data. In the end, we choose the proper structure to simulate it in CST-MWS with a view to make a reference between Comsol and CST. Most of described applications have been developed in Matlab considering modularity and extensibility. Keywords IFS, cavity model, resonant frequency, current distribution, modes, optimization, PSO, radiation pattern. vi Předmluva Přı́rodnı́ zákony: skryté, tajemné a fascinujı́cı́. Jsou od nepaměti jednı́m z hlavnı́ch determinant lidské společnosti. Možná proto, možná pro přirozenou lidskou zvı́davost, zcela jistě však s cı́lem ukojit vrozenou pohodlnost, je odkrývánı́ těchto tajů hnacı́ silou rozvoje lidstva. Stav poznánı́ se však od dob Aristotela, Newtona, Maxwella, Einsteina a dalšı́ch v mnohém změnil. Vzpomeňme na Laplaceova démona; názor na řád a chaos se dynamicky vyvı́jel a zajisté bude vyvı́jet i dál. A právě oblast na pomezı́ je v současné době v hledáčku mnoha velikánů světové fyziky, chemie a teorie informace. Spadajı́ sem dodnes nevyřešené problémy jako Navier-Stokesovy rovnice popisujı́cı́ prouděnı́ nebo Riemannova hypotéza spojujı́cı́ svět prvočı́sel (o kterých jsme se donedávna domnı́vali, že jsou výtvorem člověka), neuspořádané chaotické systémy, ale překvapivě zahrnujı́cı́ i řešenı́ planárnı́ch rezonátorů. Do stejné kategorie můžeme zařadit fraktály a rojovou optimalizaci, která, ač s pevně daným algoritmem, generuje z krátkodobého pohledu nedeterministický pohyb agentů. Tak docházı́me k poznatku, že nejefektivnějšı́ systémy jsou právě ty na pomezı́ striktně predikovatelného a pouze“ pravděpodobného1 . Dost možná ” i elementárnı́ principy antén a elektromagnetického pole (vlněnı́) spadajı́ do této skupiny. Všechny tyto problémy zobecňujı́ nové náhledy na čas, prostor, determinismus i klasickou mechaniku. Přitom naše neustálé zkoumánı́ ovlivňuje postoje uměnı́, filosofie, společenských věd, ekonomie . . . Věnujme proto zvýšenou pozornost této komplexitě a interdisciplinaritě, nebot’, dost možná, žijeme na úsvitu nové revoluce ([7]). S veškerou pokorou si přeji, aby předložená práce, byt’ nepatrným dı́lem, přispěla do inventáře té nejdobrodružnějšı́ výpravy – té, kterou Richard Feynman označil za obrovskou šachovou partii. Autor 1 Bezpečnostnı́ služba, převážejı́cı́ penı́ze z banky, jezdı́cı́ stále po stejné trase, by byla často vystavena přepadenı́; naopak při zcela náhodné jı́zdě by svou neefektivitou podlehla konkurenci. Pozn.: Obrázek na následujı́cı́ straně zobrazuje Juliovu množinu. Jedná se o fraktál, který zı́skáme vyšetřenı́m divergence rovnice zn+1 = zn2 + c, kde z je komplexnı́ a c je (též komplexnı́) konstanta. Obsah 1 Úvod 1.1 Koncepce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Konspekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 IFS fraktály 2.1 Fraktál . . . . . . . . . . . . . . . . . . . . 2.2 Generace IFS . . . . . . . . . . . . . . . . 2.2.1 Metrika . . . . . . . . . . . . . . . 2.2.2 Pevný bod . . . . . . . . . . . . . 2.2.3 Kontraktivnı́ zobrazenı́ . . . . . . . 2.2.4 Banachova věta o pevném bodu . . 2.2.5 Interpretace IFS . . . . . . . . . . 2.3 Transformace . . . . . . . . . . . . . . . . 2.3.1 Typy afinnı́ch transformacı́ . . . . 2.3.2 Způsoby uloženı́ . . . . . . . . . . 2.4 Mı́ry a dimenze . . . . . . . . . . . . . . . 2.4.1 Topologická dimenze . . . . . . . . 2.4.2 Vnějšı́ mı́ra . . . . . . . . . . . . . 2.4.3 -pokrytı́ . . . . . . . . . . . . . . 2.4.4 Hausdorffova mı́ra . . . . . . . . . 2.4.5 Hölderova funkce s parametrem α 2.4.6 Hausdorffova dimenze . . . . . . . 2.4.7 Mřı́žková dimenze . . . . . . . . . 2.5 Metoda box-counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 5 6 6 6 7 7 8 8 10 10 11 11 12 12 13 13 15 16 3 IFS software 3.1 Programovacı́ techniky v Matlabu . 3.1.1 Úvod . . . . . . . . . . . . . 3.1.2 Switched board programming 3.1.3 Strukturálnı́ programovánı́ . 3.1.4 OOP . . . . . . . . . . . . . . 3.2 AntTool . . . . . . . . . . . . . . . . 3.2.1 Generace IFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 22 23 24 25 26 viii . . . . . . . . . . . . . . . . . . . . . OBSAH 3.3 3.4 ix 3.2.2 Export koláže . . . . . . 3.2.3 Připojenı́ ke Comsolu . 3.2.4 Náhrada IFSMakerem . IFSMaker . . . . . . . . . . . . Nedostatky a možná vylepšenı́ 4 Numerické metody 4.1 Mikropáskové patch antény . . 4.2 Metoda momentů . . . . . . . . 4.3 Dutinový model . . . . . . . . . 4.4 Metoda konečných prvků . . . 4.5 Teorie charakteristických modů 5 EvalInFem 5.1 Popis, syntaxe . . . . . . 5.2 Geometrie . . . . . . . . 5.3 Mesh, fyzika . . . . . . . 5.4 Zpracovánı́ výsledků . . 5.5 Ošetřenı́ chyb, stabilita 5.6 Výsledky . . . . . . . . 5.7 Propojenı́ s PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 28 29 29 36 . . . . . 38 39 41 44 46 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 53 55 56 57 60 60 64 6 Vyzařovacı́ diagram 6.1 Rozloženı́ zdrojů . . . . . . . . . . . . . . . 6.2 Odvozenı́ potřebných vztahů . . . . . . . . 6.3 Magnetické proudy . . . . . . . . . . . . . . 6.3.1 Rekonstrukce patche, zı́skánı́ dat pro 6.3.2 Směr normály . . . . . . . . . . . . . 6.3.3 Využitı́ hodnot NaN z Comsol gridu 6.4 Povrchové elektrické proudy . . . . . . . . . 6.5 Simulace v CST . . . . . . . . . . . . . . . . 6.6 Realizace – EvalRadPattern . . . . . . . . . 6.6.1 Výpočet proudů . . . . . . . . . . . 6.6.2 Algoritmus . . . . . . . . . . . . . . 6.6.3 GUI . . . . . . . . . . . . . . . . . . 6.6.4 Optimalizace . . . . . . . . . . . . . 6.7 Rozbor výsledků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . normálu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 65 67 71 72 73 74 75 77 78 78 79 79 80 80 7 PSO optimalizace 7.1 PSO algoritmus . . . . . . 7.1.1 Historie . . . . . . 7.1.2 Princip PSO . . . 7.1.3 Omezenı́ agentů . 7.2 Optimálnı́ parametry PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 82 82 83 84 85 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OBSAH 7.3 7.4 x Stretched PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GSO algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 PSOptimizer 8.1 Implementace . . . . 8.2 PsoData formát . . . 8.3 Fitness funkce, testy 8.4 Zpracovánı́ výsledků 8.5 Spojenı́ s EvalInFem 8.6 Zrychlenı́ metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 IFSLimiter 9.1 Struktura programu . . . . . . . 9.2 Testovacı́ úloha . . . . . . . . . . 9.3 Zadánı́ úloh . . . . . . . . . . . . 9.3.1 Úloha A1 . . . . . . . . . 9.3.2 Úloha B1 . . . . . . . . . 9.3.3 Úloha B3 . . . . . . . . . 9.3.4 Úloha C3 . . . . . . . . . 9.3.5 Úloha C6 . . . . . . . . . 9.4 Rozšı́řené možnosti IFSLimiteru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 92 . . . . . . 93 . 93 . 94 . 96 . 99 . 102 . 102 . . . . . . . . . 103 103 105 106 106 107 107 108 108 108 . . . . . . . . . 10 Optimalizace a analýza FRC 110 11 Závěr 116 12 Přı́lohy 12.1 Dodatek 12.2 Dodatek 12.3 Dodatek 12.4 Dodatek 12.5 Dodatek 12.6 Dodatek 127 127 139 143 144 144 147 A: Výběr IFS fraktálů . . . . B: Simulace vybraných FRC C: Přehled aplikacı́ . . . . . . D: Přı́kazy AntTool . . . . . E: Srovnánı́ programů . . . . F: Obsah DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seznam obrázků 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 Sierpinského koberec (2D, IFSMaker) a Mengova houba (3D, [83]) . Význam Hutchinsonova operátoru . . . . . . . . . . . . . . . . . . Prvnı́ tři iterace Sierpinského koberce, IFSMaker . . . . . . . . . . Význam koeficientů a, b, c, d, e, f . . . . . . . . . . . . . . . . . . . Demonstrace -pokrytı́, vlevo > vpravo . . . . . . . . . . . . . . . K definici Dh (F ): vlevo množina F , vpravo jejı́ Dh . . . . . . . . . Zjemněnı́ mřı́žky pokrývajı́cı́ množinu F . . . . . . . . . . . . . . . Směrnice box-counting dimenze . . . . . . . . . . . . . . . . . . . . K výpočtu mřı́žkové dimenze (fraktály FRC A a FRC B) . . . . . Výpočet mřı́žkové dimenze Scierpinského trojúhelnı́ka (FRC A) . . Výpočet mřı́žkové dimenze čtverce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 8 10 12 14 15 16 17 18 18 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 Struktura grafiky v Matlabu . . . . . . . . . . . . . . . . Přı́klad užitı́ switched boad programmingu (AntTool1.3) Strukturálnı́ segment kódu (IFSLimiter) . . . . . . . . . Užitı́ objektů v IFSMakeru . . . . . . . . . . . . . . . . AntTool, screenshot hlavnı́ho okna . . . . . . . . . . . . AntTool: Zadánı́ bodů a transformacı́ . . . . . . . . . . AntTool: Zobrazenı́ bodů a transformacı́ . . . . . . . . . AntTool: Řešič a výsledný fraktál . . . . . . . . . . . . . IFSMaker: celý program . . . . . . . . . . . . . . . . . . IFSMaker: část UML schematu, MS Visio . . . . . . . . IFSMaker: Selection List . . . . . . . . . . . . . . . . . . IFSMaker: Ukázka modifikace . . . . . . . . . . . . . . . IFSMaker: Připojenı́ nodů do polygonu . . . . . . . . . IFSMaker: Ukázka lazenı́ transformacı́ . . . . . . . . . . IFSMaker: Pracovnı́ plocha, detail . . . . . . . . . . . . IFSMaker: Canvas options . . . . . . . . . . . . . . . . . IFSMaker: Práce s polygony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 22 23 24 25 26 27 28 30 31 32 32 33 33 34 35 36 4.1 4.2 4.3 Mikropásková patch anténa . . . . . . . . . . . . . . . . . . . . . . . Jednorozměrné bázové funkce (a-c) a jejich uplatněnı́ (d) . . . . . . . Hraničnı́ podmı́nky pro řešenı́ patche . . . . . . . . . . . . . . . . . . 39 42 44 xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEZNAM OBRÁZKŮ 4.4 xii 4.5 4.6 4.7 Prvnı́ 3 módy obdélnı́kového patche (nahoře: proudová hustota dole: elektrická intenzita Ez ) . . . . . . . . . . . . . . . . . . . . Původnı́ funkce (a) a jejı́ lineárnı́ aproximace (b) . . . . . . . . . Triangularnı́, quadrilateralnı́ sı́t’ a kvalita sı́tě (tmavá je nejlepšı́) Typické hodnoty charakteristického úhlu, zdroj: [85] . . . . . . . 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 EvalInFem (screenshot) . . . . . . . . . . . . . . . . . . . . . . . . Vypočtená koláž, mesh, dominantnı́ mód a jeho proudové rozloženı́ Nesmyslné řešenı́ (vlevo) a dominantnı́ mód struktury (vpravo) . . Přı́klad duplicitnı́ch módů . . . . . . . . . . . . . . . . . . . . . . . Nadbytečné nody, jejich vznik a nepřı́jemné důsledky . . . . . . . . Lokalizované proudy pro FRC B, FRC J a FRC D, vyššı́ módy . . Pokles frekvence s iteracı́, vybrané koláže . . . . . . . . . . . . . . Dominantnı́ módy FRC struktur . . . . . . . . . . . . . . . . . . . Proudy na struktuře FRC F podle TCM . . . . . . . . . . . . . . . Průběh charakteristického úhlu pro FRC F (TCM) . . . . . . . . . Proudové rozloženı́ pro 1-3 mód koláže FRC F . . . . . . . . . . . . . . . . . . . . . . 54 55 57 58 58 59 61 62 62 63 64 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 Postup výpočtu, ve shodě s [29] . . . . . . . . . . . . . . . . K odvozenı́ vyzařovacı́ho diagramu . . . . . . . . . . . . . . Pole Ez na hranici (vlevo) a nad celým patchem (vpravo) . Stanovenı́ normály na fraktálnı́ hranici . . . . . . . . . . . . K normále v Comsolu . . . . . . . . . . . . . . . . . . . . . Stanovenı́ normály pomocı́ NaN . . . . . . . . . . . . . . . . Povrchové proudy pro 3000 elementů, napravo rozloženı́ Ez Povrchové proudy, 4.mód, vı́ce elementů . . . . . . . . . . . Zahrnutı́ nekonečné zemnı́ roviny . . . . . . . . . . . . . . . Vyzařovánı́ dipólu, délka λ2 , 3D diagram z CST MWS . . . . Vyzařovánı́ dipólu, délka λ2 , řezy CST MWS . . . . . . . . . Vyzařovánı́ dipólu, délka 23 λ, 3D diagram z CST MWS . . . Vyzařovánı́ dipólu, délka 32 λ, řezy CST MWS . . . . . . . . K obdélnı́kové metodě . . . . . . . . . . . . . . . . . . . . . EvalRadPattern (screenshot) . . . . . . . . . . . . . . . . . Složky Fx a Fy v kartézských souřadnicı́ch . . . . . . . . . . VD velice úzkého patche . . . . . . . . . . . . . . . . . . . . Orientace diagramů, barvy korespondujı́ s obr. 6.17 . . . . . . . . . . . . . . . . . . . . . . . 66 68 71 71 73 75 75 76 77 77 78 78 79 79 80 80 81 81 7.1 7.2 7.3 7.4 7.5 Princip PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Typy zdı́ použı́vané v PSO . . . . . . . . . . . . . . . . . . . . . . . Optimalizace funkce Levy5 pro různá c1 a c2 (20 agentů, 150 iteracı́) Optimalizace funkce Levy5 pro různá c1 a c2 (20 agentů, 150 iteracı́) Počet agentů mimo s.s. pro Levy5 a Rosenbrockovu funkci (20 agentů, 150 iteracı́) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozptyl agentů, Levy5 a Rosenbrockova funkce (20 agentů, 150 iteracı́) 7.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J, . . . . . . . . . . . . . . . . . . . . . . . . . . 45 47 48 51 83 85 87 88 90 90 SEZNAM OBRÁZKŮ xiii 7.7 7.8 Funkce Levy5: bez transformace, s G(x) a po H(x), zdroj: [47] . . . Princip GSO optimalizace, na základě [50] . . . . . . . . . . . . . . . 8.1 8.2 8.3 8.4 8.5 8.6 8.7 GUI PSOptimizeru . . . . . . . . . . . . . . . . . . . . . . . . . . Optimalizace kvadratické funkce v rozsahu x ∈ h2, 5i . . . . . . . Rosenbrockova funkce, s.s. ∈ h−10, 10i × h−10, 10i a cost funkce . Konvergence ke skutečnému minimu Rosenbrockovy funkce . . . Funkce Levy No.5, s.s. ∈ h−10, 10i × h−10, 10i a cost funkce . . . Program PSOPost, vč. průběhu funkce Levy5 a agentů . . . . . . Pozice agentů pro 5. a 150. iteraci (Levy5, s.s. ∈ 10 × 10) . . . . . . . . . . . . 94 . 97 . 98 . 98 . 99 . 100 . 101 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 IFSLimiter . . . . . . . . . . . . . . . . . . . . . Obrázek optimalizačnı́ch mezı́ pro testovacı́ úlohu Zadánı́ podmı́nky, vstup a výstup . . . . . . . . . Obrázek optimalizačnı́ch mezı́ pro úlohu A1 . . . Obrázek optimalizačnı́ch mezı́ pro úlohu B1 . . . Úloha B3 v IFSLimiteru . . . . . . . . . . . . . . Obrázek optimalizačnı́ch mezı́ pro úlohu C3 . . . Obrázek optimalizačnı́ch mezı́ pro úlohu C6 . . . IFSLimiter: parametrický řešič . . . . . . . . . . 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 Postup optimalizace . . . . . . . . . . . . . . . . . Několik agentů optimalizace A1 . . . . . . . . . . . Několik agentů optimalizace B1 . . . . . . . . . . . Několik agentů optimalizace B2 . . . . . . . . . . . Závislost rez. frekv. na iteraci před PSO a po PSO Parametrické srovnánı́ . . . . . . . . . . . . . . . . Několik agentů optimalizace C6 . . . . . . . . . . . Výsledek optimalizace C6 (2. a 3. iterace) . . . . . Pohyb agentů při úloze H2, začátek (vlevo) a závěr 12.1 Fraktál 12.2 Fraktál 12.3 Fraktál 12.4 Fraktál 12.5 Fraktál 12.6 Fraktál 12.7 Fraktál 12.8 Fraktál 12.9 Fraktál 12.10Fraktál 12.11Fraktál 12.12Fraktál 12.13Fraktál 12.14Fraktál FRC FRC FRC FRC FRC FRC FRC FRC FRC FRC FRC FRC FRC FRC . . . . . . . . . A v prvnı́, druhé a třetı́ iteraci . . . . A inicializačnı́ objekt a transformace B v prvnı́, druhé a třetı́ iteraci . . . . B inicializačnı́ objekt a transformace C v prvnı́, druhé a třetı́ iteraci . . . . C inicializačnı́ objekt a transformace D v prvnı́, druhé a třetı́ iteraci . . . . D inicializačnı́ objekt a transformace E v prvnı́, druhé a třetı́ iteraci . . . . E inicializačnı́ objekt a transformace F v prvnı́, druhé a třetı́ iteraci . . . . F inicializačnı́ objekt a transformace H v prvnı́, druhé a třetı́ iteraci . . . . H inicializačnı́ objekt a transformace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 105 105 106 107 107 108 109 109 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (vpravo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 111 112 112 113 113 114 115 115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 127 128 128 129 130 131 131 132 133 133 134 135 135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 92 . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEZNAM OBRÁZKŮ 12.15Fraktál FRC J v prvnı́, druhé a třetı́ iteraci . . . . 12.16Fraktál FRC J inicializačnı́ objekt a transformace . 12.17Fraktál FRC K v prvnı́, druhé a třetı́ iteraci . . . . 12.18Fraktál FRC K inicializačnı́ objekt a transformace 12.19VD pro 1. mód koláže FRC F (CST-MWS) . . . . 12.20VD pro 2. mód koláže FRC F (CST-MWS) . . . . 12.21Módy struktury FRC C (CM, 1-8 zleva doprava) . 12.22Módy struktury FRC J (CM, 1-4 zleva doprava) . 12.23Proudové rozloženı́ dominantnı́ch modů . . . . . . 12.24Schéma celého projektu . . . . . . . . . . . . . . . 12.25CM solver z BP (vlevo) a z DP (vpravo) . . . . . . 12.26IFS editor z BP (dole) a DP (nahoře) . . . . . . . xiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 137 137 138 139 140 141 141 142 143 145 146 Seznam tabulek 2.1 2.2 2.3 Hodnoty topologické dimenze . . . . . . . . . . . . . . . . . . . . . . Hodnoty Hausdorffovy dimenze pro některé přı́rodnı́ útvary. . . . . . Výpočet dimenze programem boxcount . . . . . . . . . . . . . . . . . 11 14 17 3.1 3.2 Struktura souboru data.3dt. . . . . . . . . . . . . . . . . . . . . . . Struktura souboru data.txt. . . . . . . . . . . . . . . . . . . . . . . . 27 28 5.1 5.2 5.3 Možné chyby v EvalInFem . . . . . . . . . . . . . . . . . . . . . . . . Rezonančnı́ frekvence vybraných kolážı́ (prvnı́ch 5 iteracı́) . . . . . . Rez. frekvence pro FRC F v simulátorech CM, CST-MWS a TCM . 60 61 63 7.1 7.2 7.3 7.4 7.5 Shrnutı́ Success Success Success Success . . . . . 86 86 88 89 89 8.1 Principiálnı́ schéma PSOptimizeru . . . . . . . . . . . . . . . . . . . 95 parametrů rate funkce rate funkce rate funkce rate funkce . . . . . . . . . . . . . . . . . . . . . . . Levy5 (se změnou iterace), 20 agentů . . Levy5 (se změnou iterace), 45 agentů . . Levy5 (podle počtu agentů), 150 agentů Levy5 (podle počtu agentů), 50 iteracı́ . . . . . . . . . . . . . . . . . . . . . 10.1 Výsledky vybraných optimalizacı́ . . . . . . . . . . . . . . . . . . . . 111 12.1 Parametry koláže FRC A . . . . . . . . . . . . . . . . . . 12.2 Parametry koláže FRC B . . . . . . . . . . . . . . . . . . 12.3 Parametry koláže FRC C . . . . . . . . . . . . . . . . . . 12.4 Parametry koláže FRC D . . . . . . . . . . . . . . . . . . 12.5 Parametry koláže FRC E . . . . . . . . . . . . . . . . . . 12.6 Parametry koláže FRC F . . . . . . . . . . . . . . . . . . 12.7 Parametry koláže FRC H . . . . . . . . . . . . . . . . . . 12.8 Parametry koláže FRC J . . . . . . . . . . . . . . . . . . . 12.9 Parametry koláže FRC K . . . . . . . . . . . . . . . . . . 12.10Přehled všech vyvinutých nástrojů . . . . . . . . . . . . . 12.11Přehled1 dostupných přı́kazů programu AntTool (Matlab) 12.12Přehled2 dostupných přı́kazů programu AntTool (Comsol) xv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 129 130 132 132 134 136 137 137 143 144 145 Seznam symbolů Symbol r 0 µr µ0 Dt Dh Db ω MS , Mx , My Px , Py λ Γ Φ tan δ E H s11 j QT kn , λn k Ez,n , ψ c0 P SV BW Wt η M J A φ, F Z, R, X G αn N fn , wn N aN F L Veličina relativnı́ permitivita permitivita vakua (= 8.854188.10−12 F m−1 ) relativnı́ permeabilita permeabilita vakua (= 4π.10−7 Hm−1 ) topologická dimenze Hausdorffova dimenze mřı́žková dimenze afinnı́ transformace, úhlová rychlost transformace změny měřı́tka posun polygonu vlnová délka modul činitele odrazu R fáze činitele odrazu R ztrátový činitel dielektrika vektor intenzity elektrického pole vektor intenzity magnetického pole činitel odrazu imaginárnı́ jednotka činitel jakosti antény vlastnı́ (n-té) čı́slo vlnový vektor vlastnı́ funkce rychlost světla ve vakuu poměr stojatých vln šı́řka pásma antény (v % z pracovnı́ frekvence) celková energie účinnost hustota magnetického proudu hustota povrchových elektrických proudů magnetický vektorový potenciál skalárnı́ elektrický potenciál impedance, realná a komplexnı́ část Greenova funkce charakteristický úhel zářivý vektor bázové funkce, testovacı́ funkce Not a Number podle IEEE-745 (Matlab) funkcionál lineárnı́ operátor xvi Seznam značek Operátor ∇t ∆ = ∇.∇ gradψ (∇ψ) divA (∇ • A) rotA (∇ × A) Sm Pi=1 n i=0 → −→ dx hu, vi ∂ ∂ × ∧ Význam Nabla operátor 2 2 Laplaceův operátor; ∂∂2 x2 + ∂∂2 y2 ∂ψ ∂ψ ∂ψ gradient; aˆx ∂x + aˆy ∂y + aˆz ∂z ∂Ay ∂Ax ∂Az divergence; ∂x + ∂y + ∂z ∂Ay x z + aˆy ∂A rotace; aˆx ∂A ∂y − ∂z ∂z − ∂Az ∂x + obecné sjednocenı́ (general consequence op.) suma od i = 0 do i = n blı́žı́ se zobrazenı́ diferenciál x skalárnı́ součin parciálnı́ derivace vektorový součin současně Nadpis Funkce, cizojazyčný výraz Přı́kaz www odkaz Pohyb 7→ v menu 7→ aplikacı́ M atematika Tlačı́tko Literatura xvii ∂A aˆz ∂xy − ∂Ax ∂y SEZNAM TABULEK xviii Seznam zkratek FPA PDE CM GA PSO SPSO s.s. c.f. s.r. f.f. GSO ACO IFS TCM MoM FEM GUI OOP PMC PEC VD TM TE HUS Zkratky Fractal Patch Antenna Partial Differential Equation Cavity Model Genetic Algorithm Particle Swarm Optimization Stretched PSO solution space cost function success rate fitness function Genetic Swarm Optimization Ant Colony Optimization Iterated Function System Theory of Characteristic Modes Method of Moments Finite Element Method Graphical User Interface Object Oriented Programming Perfect Magnetic Conductor Perfect Electric Conductor Radiation Pattern (vyzařovacı́ diagram) Transversal Magnetic Transversal Electric Harmonický ustálený stav Kapitola 1 Úvod ” Neštı́pejte mne do prstu – pohled’te, kam ukazuje.“ — Warren S. McCulloch 1.1 Koncepce Patche patřı́ do oblasti dynamicky se rozvı́jejı́cı́ch antén. Disponujı́ mnoha přednostmi, majı́ pochopitelně i své neřesti. Mnoho z poznatků platných pro patchové antény, jmenujme metody simulace nebo optimalizačnı́ postupy, lze využı́t v oblastech jako jsou periodické struktury, selektivnı́ povrchy a dalšı́. Využijemeli pro tvar zářiče fraktálnı́ geometrie, obdržı́me dalšı́ výhodné vlastnosti. Generace a simulace takových antén je však složitějšı́ a zdaleka ne všechny postupy jsou dostatečně prozkoumány. Tato práce také těžı́ z trvajı́cı́ho zájmu o optimalizaci čehokoliv, který je jen zřı́dka kdy systematický. Většina publikacı́ se zpravidla zaměřuje na průzkum jedné, či vı́ce struktur se stejným charakteristickým rysem (patch se štěrbinou, vybraný typ fraktálu . . . ). Tento přı́stup mnohdy generuje zajı́mavé výsledky, nicméně velice obtı́žně odkrývá obecnějšı́ vlastnosti daného zářiče, což v přı́padě fraktálnı́ho motivu platı́ dvojnásob. V této práci jsme si vytkli za úkol optimalizovat přı́mo fraktálnı́ parametry IFS (body základnı́ho objektu a transformace, které fraktál dláždı́), tedy nikoliv geometrii, ale hodnoty, které tvar v pozadı́ formujı́. Abychom toto mohli uskutečnit, je potřeba důkladně porozumět mechanismům generace IFS i principům PSO optimalizace, musı́me také zvolit dostatečně přesnou a efektivnı́ simulačnı́ metodu. Využijeme schéma, které bylo úspěšně aplikováno v bakalářské práci (BP): pro návaznost pracujeme opět v Matlabu, výklad je zpracován v tematicky propojených blocı́ch teorie a implementace daného problému. Dı́lčı́ výsledky jsou konzultovány na konci každé kapitoly, nicméně vlastnı́ rozbor struktur je proveden až v samostatné kapitole. Velice důležitá je závěrečná část – probı́rané téma je tak rozsáhlé, že ho tato práce nejen nevyčerpala, ale je oprávněné tvrdit že zatı́m pouze letmo prozkoumala. Pokrývá totiž prostor od fraktálnı́ geometrie, blı́zce sousedı́cı́ s chaosem 1 Nástroj pro modálnı́ analýzu FPA 1.2. Konspekt a chaotickými“ vědami, přes numerické metody a relativně obtı́žnou diferenciálnı́ i ” algebraickou matematiku spojenou s elektromagnetismem a modálnı́mi metodami, až po ryze přı́rodnı́ jevy rojové inteligence, jež musı́me převést do strojového jazyka a vhodným způsobem naprogramovat. Mnoho desı́tek, ba stovek hodin zabrala i samotná přı́prava jednotlivých aplikacı́ (AntTool, IFSMaker, IFSLimiter, EvalInFem, PSOPtimizer a dalšı́). Tyto programy lze přı́padně využı́t ve výuce na katedře elektromagnetického pole. Bohužel, pro vytvořenı́ hlubšı́ch závěrů v oblasti IFS patch antén je nutné v této oblasti systematicky zkoumat jednotlivé motivy, na což DP nedává dostatečný prostor. Se závěrem této práce je tedy ponechána dostatečná paleta aplikacı́ potřebných pro dalšı́ výzkum, sami pak konstatujeme pouze některé partikulárnı́ výsledky. V přı́padě některých pasážı́ (fraktálnı́ dimenze, box counting, OOP v Matlabu, SPSO) výrazně převažuje teorie. Autor tak činı́ vědomně a s ohledem na fakt, že o těchto tématech nenı́ v českém jazyce dostatek literatury. Nezúčastněný čtenář může takový text bez ztráty návaznosti přeskočit, přesto však doufáme, že nejeden ho ocenı́. 1.2 Konspekt Nynı́ se krátce věnujme obsahu diplomové práce (DP). Projekt jako celek navazuje tam, kde byla zakončena BP. Tomu odpovı́dá i teoretický základ. Prvnı́ kapitola je věnována fraktálům, přesněji fraktálům typu IFS. Na tento výklad navazuje představenı́ programů AntTool a IFSMaker, které umožňujı́ komplexnějšı́ operace s IFS fraktály a jejich návrh na zcela jiné úrovni, než tomu bylo v BP. Pozornost je věnována využité technice programovánı́ a nestandartnı́mu připojenı́ Comsolu k Matlabu. Dalšı́ část popisuje metody modálnı́ho řešenı́ patchů. Opět volı́me dutinový model, na rozdı́l od BP však využı́váme jádra programu Comsol, což vede k přesnějšı́m výsledkům. Vytvořený solver popisuje kapitola 5. Mezi fundamentálnı́ charakteristiky antény patřı́ vyzařovacı́ diagram, jeho zobrazenı́ a výpočet je diskutován v 6. kapitole. Tato část se do jisté mı́ry kryje s obsahem Individuálnı́ho projektu, který autor zpracoval v předchozı́m semestru. Následuje teorie PSO optimalizace a představenı́ vlastnı́ho optimalizátoru. Kapitola 9 popisuje software, který umožňuje nastavit jednotlivé podmı́nky. Bez tohoto programu je zadánı́ složitějšı́ optimalizace takřka nemožné. 10. kapitola shrnuje výsledky simulace a optimalizace vybraných struktur. K dispozici je srovnánı́ s referenčnı́m simulátorem CST MWS. Závěrečná kapitola jmenuje nedostatky a nedodělky, vč. dalšı́ch možnostı́ rozvoje celého projektu. Krátce také shrnuje výsledky celé diplomové práce. Většina obsáhlejšı́ch obrázků je uvedena v dodatcı́ch. Ty jsou uvedeny až za literaturou a rejstřı́kem důležitých termı́nů. 2 Kapitola 2 IFS fraktály ” How long is the coast of Britain?“ — Benoit B. Mandelbrot V následujı́cı́ kapitole se budeme věnovat fraktálnı́m motivům. Obecné informace o jednotlivých typech a možnostech uplatněnı́ byly zmı́něny v bakalářské práci ([69]). Zde se podrobněji zaměřı́me na vlastnosti IFS systémů a práci s nimy. Iterované systémy mohou v principu vznikat deterministicky nebo stochasticky1 . Pro exaktnı́ popis IFS kolážı́ a jejich vlastnostı́, je potřeba znát mj. fraktálnı́2 dimenzi. Jejı́mu zavedenı́ předcházı́ definice pojmu IFS v následujı́cı́ části a rozbor jednotlivých afinnı́ch transformacı́ v odstavci 2.3. Na závěr kapitoly se pokusı́me tuto dimenzi s pomocı́ Matlabu vypočı́tat. 2.1 Fraktál Počátek IFS3 je datován do roku 1985 [83], kdy S. Demko a M. F. Barnsley publikovali práce se zaměřenı́m na tento typ fraktálů. Pro jakýkoliv fraktál musı́ platit: (1) Fraktál podle B. B. Mandelbrota v [5]: Fraktálem je každý objekt, jehož topologická dimenze se lišı́ od dimenze ” fraktálnı́ (Hausdorffovy).“ 1 Oběma možnostem jsme věnovali pozornost v [69]. Zopakujme tedy pouze, že v přı́padě stochastického přı́stupu jsou jednotlivým transformacı́m přiděleny pravděpodobnosti, s kterými se daná transformace při dlážděnı́ uplatnı́. U deterministického přı́stupu se každá transformace uplatnı́ v každé iteraci. 2 Známá také jako Hausdorffova, přı́padně Hausdorffova-Besicovitchova dimenze. Tato dimenze byla, jak je z názvu patrno, objevena Felixem Hausdorffem (1868-1942) a Abramem Samoilovitchem Besicovitchem (1891-1970), a to dlouho před definovánı́m pojmu fraktál. Až později Benoit B. Mandelbrot (1924*) odvodil vztah mezi fraktálnı́ strukturou a Hausdorffovou dimenzı́. 3 Z původnı́ho anglického Iterated Function System, tj. systém iterovaných funkcı́. 3 Nástroj pro modálnı́ analýzu FPA 2.1. Fraktál tedy: Dt 6= Dh (2.1) (2) Matematická definice4 v [4]: Fraktál je objekt, jehož geometrická struktura se opakuje v něm samém; ” dělı́ se na soběpodobné a soběpřı́buzné.“ Soběpodobné fraktály v detailech přesně kopı́rujı́ celek. Jde o uměle vytvořené fraktály a patřı́ sem tedy i IFS. Tyto množiny majı́ několik zajı́mavých vlastnostı́: • Soběpodobná množina vzniká opakovánı́m sebe sama při určité transformaci (změna měřı́tka, rotace, posunutı́, zkosenı́. . . ). • Soběpodobné množiny jsou invariantnı́ vůči změně měřı́tka. Při libovolném zvětšenı́ či zmenšenı́ vypadajı́ stejně (viz obrázky nı́že). • Soběpodobná množina vzniká sama ze sebe, resp. vzniká opakovánı́m motivu. Podrobněji se těmito množinami budeme zabývat dále. Soběpřı́buznost nenı́ tak striktnı́ jako soběpodobnost, můžeme ji nalézt ve všech přı́rodnı́ch útvarech (duny, delty řek, kořeny stromů, kůra a dalšı́). Jejı́ vyjádřenı́ je komplikované a v kontextu deterministických IFS nepodstatné, vı́ce [3]. Jak ukážeme později, tyto Obrázek 2.1: Sierpinského koberec (2D, IFSMaker) a Mengova houba (3D, [83]) podmı́nky IFS koláže splňujı́. Důsledkem těchto vlastnostı́ je tzv. Richardsonův efekt5 . Budeme-li měřit obvod ne-fraktálnı́ho objektu, se zjemňujı́cı́m se měřidlem 4 5 Jde o ustálenou formuli, z pohledu matematického formalismu o definici nejde. Richardson měřil obvod Korsiky a zjistil, že výsledek je závislý na délce tyče. 4 Nástroj pro modálnı́ analýzu FPA 2.2. Generace IFS (pásmo, metr, milimetrový papı́r . . . ), blı́žı́me se určité limitnı́ hodnotě. U faktálů toto neplatı́, délka neustále narůstá (v přı́padě IFS pro nekonečně velkou iteraci zpravidla nade všechny meze). Tak se dostáváme k paradoxům, kdy např. na obr. 2.3 narůstá obvod do nekonečna a obsah objektu se blı́žı́ k nule, přı́padně na obr. 2.1 vpravo roste obsah k nekonečnu ovšem objem jde k nule. Tyto vlastnosti se mohou v kontextu Euklidovské geometrie jevit jako zarážejı́cı́ a značně znepokojivé. Současně se však můžeme pokusit jich využı́t, tak jako v přı́rodě – stromy, oblaka, pobřežı́ a řeky, vše má fraktálnı́ charakter a jistě ne pouze náhodnou. Sapoval napřı́klad publikoval svou doměnku, že pobřežı́ má fraktálnı́ charakter (tedy maximálnı́ možnou délku) protože pak dokáže nejlépe utlumit narážejı́cı́ vlny. Planeta Země má zase teoreticky nekonečný povrch, ačkoliv z vesmı́ru se jevı́ jako koule (geoid). Dalšı́ podrobnosti lze nalézt v [3], [4], [5] a [83]. V této práci se věnujeme pouze dvourozměrným motivům s cı́lem generovat na tomto základě patche. Existujı́ nicméně i trojrozměřnné a vı́cerozměrné IFS, jeden z nich je na obr. 2.1 vpravo. V této podobě IFS fraktály v přı́rodě nenajdeme, lze řı́ci, že v kontextu fraktálnı́ geometrie je IFS stejné zjednodušenı́, jako je Euklidovská geometrie v našem světě. Generaci IFS se budeme podrobněji věnovat v následujı́cı́ části 2.2. 2.2 Generace IFS Zopakujme, že deterministické IFS fraktály jsou striktně soběpodobné. Co přesně to znamená? Při libovolném přiblı́ženı́ vidı́me stále stejné tvary. Vycházı́me tedy z transformacı́, které se podařilo formalizovat Hutchinsonovi. Definujme soběpodobnou množinu U na prostoru Rn tak, že existuje konečně mnoho kontraktivnı́ch, přı́p. i afinnı́ch zobrazenı́ (transformacı́): w1 , w2 , . . . , wm : Rn −→ Rn takových, aby platilo: U= m [ wi (U ) , (2.2) (2.3) i=1 přitom pro libovolná i 6= j obsahuje průnik wi (U ) ∩ wj (U ) (2.4) jen konečný počet prvků (nebo je prázdný). Na potenci Rn je zobrazenı́mi definován operátor m [ w(X) = wi (X) , X ⊆ Rn (2.5) i=1 který se nazývá Hutchinsonův operátor. Operátor (2.5) objasňuje obr. 2.2. Nynı́ se znalostı́ principu dlážděnı́ podmnožin, si můžeme položit otázku, jak zajistit generaci IFS. Je potřeba zavést pojmy metriky, pevného bodu, pokrytı́ a vyjmenovat vhodné transformace wi . 5 Nástroj pro modálnı́ analýzu FPA 2.2. Generace IFS Obrázek 2.2: Význam Hutchinsonova operátoru 2.2.1 Metrika Metriku vyžadujeme i v části 2.4 v souvislosti s termı́nem diametr, uvádı́me ji proto bez vynechávek. Metrika d měřı́ vzdálenost mezi dvěma body, je to tedy nezáporné reálné čı́slo. Podmı́nky pro existenci metriky uved’mě v prostoru R2 pro zobrazenı́ X: (1) d(x, y) ≥ 0, d(x, x) = 0 (2) d(x, y) = 0 ⇔ x = y (3) d(x, y) = d(y, x) ∀x, y, z ∈ X. (2.6) (4) d(x, y) ≤ |x| + |y| (5) d(x, y) ≤ d(x, z) + d(z, y) Podmı́nku (4) označujeme jako trojúhelnı́kovou nerovnost a v podm. (5) jako metrickou trojúhel. nerovnost. Platı́-li (2.6), označuje (X, d) metrický prostor. 2.2.2 Pevný bod Pevný bod je řešenı́m rovnice S(xp ) = xp , (2.7) kde S je transformacı́ metrického prostoru S : X −→ X v Rn . Body xp vyhovujı́cı́ řešenı́ označujeme jako pevné body, často také jako invariantnı́ body zobrazenı́ S. Takovým bodem je např. bod [0,0,0] pro funkce násobenı́ v R3 . At’ ho násobı́me čı́mkoliv (jakékoliv zobrazenı́ S), vždy je mapován sám na sebe. 2.2.3 Kontraktivnı́ zobrazenı́ Podstatný požadavek pro existenci atraktoru (2.5) je konečný počet prvků průniku wi (U ) ∩ wj (U ). Tak je soubor všech možných transformacı́ omezen pouze na kontrakce. V opačném přı́padě by velikost množin X při velkých iteracı́ch rostla nade všechny meze a průnik by obsahoval nekonečně mnoho bodů. Pro X metrický prostor s metrikou d, jsou pak zobrazenı́ S : X −→ X kontraktivnı́ na množině A ⊆ X, pokud existuje δ ∈ (0, 1) takové, že pro každá x, y ∈ A platı́: d(S(x), S(y)) ≤ δd(x, y). (2.8) 6 Nástroj pro modálnı́ analýzu FPA 2.2.4 2.2. Generace IFS Banachova věta o pevném bodu Platı́ tvrzenı́, že je-li (X, d) úplný metrický prostor a zobrazenı́ S : X −→ X je na celém X kontraktivnı́, potom existuje právě jeden pevný bod xp ∈ X zobrazenı́ S. Toto tvrzenı́ se nazývá Banachova věta6 , [3]. Určenı́ pevného bodu je jednoduché a vycházı́ z iterace předpisu: xn+1 = S(xn ), kde {xn }∞ n=0 (2.9) za předpokladu libovolně zvoleného bodu x0 ∈ X. Platı́ také lim xn = xp , (2.10) S lim xn = Sxp . (2.11) n→∞ popř. (každá kontrakce je spojitá) n→∞ Pro odhad můžeme využı́t vztahu7 : d(xp , xn ) ≤ 2.2.5 δn d(x0 , x1 ). 1−δ (2.12) Interpretace IFS Z výše uvedeného vidı́me, jakým způsobem je IFS generováno (Hutchisonůn operátor, rov. (2.5)) a jaké podmı́nky musı́me splnit (kontrakce, pevný bod). Základnı́ objekt (zadán body) je v každé iteraci transformován jednı́m nebo několika zobrazenı́mi a vznikajı́ tak nové podmnožiny. Tyto podmnožiny jsou rekurzivně využity pro dlážděnı́ dalšı́ iterace. Princip zobrazuje obr. 2.3. Prvnı́ iterace vznikla dı́ky 8 transformacı́m původnı́ho (čtvercového) objektu. Dalšı́ iterace vznikajı́ transformovánı́m iterace předešlé. Dı́ky kontrakci jsou velikosti transformovaných objektů vždy nanejvýše stejně velké jako vzor, velikost koláže tedy neroste8 . Základnı́ objekt může být libovolného tvaru a nebudeme se jı́m vı́ce zabývat. Až v praktické části jsou uvedena omezenı́, která vycházejı́ s požadavků na patch antény. Transformacı́ je několik základnı́ch typů, rovněž možnostı́ zápisu je vı́ce. Krátce se tedy o nich zmiňme. 6 Stefan Banach (1892-1945). Důkaz se provádı́ zpravidla sporem – snažı́me se ukázat, že bodů existuje vı́ce, což se nám může podařit, ale pouze pro nekontraktivnı́ zobrazenı́. 7 Pouze však pokud je S kontraktivnı́, tj. kvocient δ ∈ (0, 1). To zde mlčky předpokládáme, nebot’ pouze za této podmı́nky má Banachova věta smysl. Lze ukázat, že posloupnost je Cauchyovská, pak úpravou přes trojúhelnı́kovou nerovnost a součtem řady zı́skáme (2.12), zde bez odvozenı́. 8 Jak bude poukázáno později, v IFSMakeru existuje výjimka. Pro zvětšovánı́ koláže stačı́ zadat hodnoty posunu px nebo py tak velké, aby nový objekt vznikl mimo plochu předchozı́ iterace. 7 Nástroj pro modálnı́ analýzu FPA 2.3. Transformace Obrázek 2.3: Prvnı́ tři iterace Sierpinského koberce, IFSMaker 2.3 Transformace Afinnı́ transformace je definována vztahem: x(w) = AW + B Tato rovnice může být dále rozepsána: b1 x1 a11 a12 x2 + = w: b2 y1 a21 a22 y2 (2.13) (2.14) Jednotlivé koeficienty matice A se uplatňujı́ při rotaci, zkosenı́ a změně měřı́tka, koeficienty matice B při posunutı́. Souřadnice xn a yn náležı́ iterovanému bodu. Výraz (2.14) lze upravit tak, aby celá transformace byla v jedné matici a kombinace transformacı́ šla zı́skat jejich násobenı́m. Tak dostáváme matici 3×3 pro prostor R3 : a11 a12 0 w : [x2 , y2 , 1] = [x1 , y1 , 1] a21 a22 0 . (2.15) b1 b2 1 Jednotlivé body jsou potom IFS algoritmem zı́skávány na základě roznásobenı́ matice (2.15) zdrojovým bodem: x2 = x1 a11 + y1 a12 + tx , (2.16) y2 = x1 a21 + y1 a22 + ty , (2.17) (1 = 0x1 + 0y1 + 1). (2.18) Poslednı́ rovnice (2.18) nenı́ pro 2D zapotřebı́. Diagonálně doplňuje matici (2.15). 2.3.1 Typy afinnı́ch transformacı́ Základnı́ operace nad množinou jsou (seřazeny podle [72]): 8 Nástroj pro modálnı́ analýzu FPA 2.3. Transformace • Posun bodu o vzdálenost [px , py ] Mtrans1 • Změna měřı́tka Ms 1 0 0 = 0 1 0 px py 0 Mtrans2 Ms 0 0 = 0 Ms 0 0 0 1 (2.19) (2.20) • Horizontálnı́ změna měřı́tka Mx Mtrans3 Mx 0 0 = 0 1 0 0 0 0 (2.21) • Vertikálnı́ změna měřı́tka My Mtrans4 1 0 0 = 0 My 0 0 0 0 (2.22) • Horizontálnı́ zešikmenı́ Sx Mtrans5 1 0 0 = Sx 1 0 0 0 0 (2.23) • Vertikálnı́ zešikmenı́ Sy Mtrans6 1 Sy 0 = 0 1 0 0 0 0 (2.24) • Rotace kolem počátku o úhel α Mtrans7 cos α sin α 0 = − sin α cos α 0 0 0 1 9 (2.25) Nástroj pro modálnı́ analýzu FPA 2.4. Mı́ry a dimenze Obrázek 2.4: Význam koeficientů a, b, c, d, e, f 2.3.2 Způsoby uloženı́ K dispozici jsou dva ekvivalentnı́ zápisy koeficientů: a11 a12 b1 1. transformačnı́ (původnı́) matice + a21 a22 b2 2. matice koeficientů a b c d e f Vzájemný vztah mezi členy matic: a11 = a, a12 = b, a21 = c, a22 = d, b1 = e a b2 = f . Zatı́mco v BP byly matice zadávány pomocı́ prvnı́ho způsobu, v DP (AntTool i IFSMaker) je využita druhá metoda. Užitı́ původnı́ho nezkráceného zápisu je výhodné při práci se samotnými transformacemi – každá je složena z jedné nebo vı́ce elementárnı́ch operacı́, které jsou dekomponovány v čtvercových maticı́ch. Druhá metoda pracuje s upraveným součinem všech operacı́ a je vhodná pro kompaktnı́ zápis, tedy i do generátorů IFS. V literaturě je pracováno většinou s maticı́ [a, b, c, d, e, f], učinı́me taktéž. Význam jednotlivých parametrů objasňuje obr. 2.4. 2.4 Mı́ry a dimenze Hlubšı́ studium fraktálnı́ geometrie je prakticky nemožné bez znalosti teorie mı́ry a dimenze. Pomocı́ těchto termı́nů je fraktál definován, generován i měřen. Z fraktálnı́ mı́ry lze odvodit fraktálnı́ (Hausdorffovu) dimenzi, jednu z nejdůležitějšı́ch dimenzı́ vůbec. Zavedenı́ předcházı́ výklad nezbytných termı́nů. 10 Nástroj pro modálnı́ analýzu FPA 2.4.1 2.4. Mı́ry a dimenze Topologická dimenze Topologická dimenze je jednı́m z údajů, který potřebujeme zı́skat pro porovnánı́ klasického hladkého útvaru a fraktálu. Tuto dimenzi dobře známe a intuitivně chápeme; nazýváme ji zpravidla mohutnostı́ prostoru, nebo také stupněm volnosti. Topologická dimenze nabývá hodnoty celého nezáporného čı́sla, nejčastěji {0, 1, 2, 3}, obecně však {0, 1, 2 . . . ∞}. Čı́slo nám řı́ká, kolika směry je možné pohybovat po objektu s bodem, resp. kolika údaji se dá přesně popsat pozice bodu na/v útvaru. V přı́padě jednoho bodu Dt = 0, v přı́padě spojité křivky Dt = 1 a tak dále. To ovšem neznamená, že křivka s dimenzı́ jedna je zobrazována v jednorozměrném prostoru. Přehledněji to ukazuje tabulka: Hodnota Dt 0 1 2 3 4 Přı́klad úvaru bod křivka plocha prostor ... Možnosti pohybu Bez možného pohybu Pohyb po délce l Pohyb po ploše [x, y] Pohyb v prostoru [x, y, z] Pohyb např. v hyperkomplexnı́ rovině Tabulka 2.1: Hodnoty topologické dimenze Tato tabulka platı́ ovšem pouze pro hladké, euklidovské útvary. At’ měřı́me hladkou křivku v jakémkoliv měřı́tku, dostaneme vždy konečné čı́slo. 2.4.2 Vnějšı́ mı́ra Mı́ra µ lze definovat na systému M , který je σ-algebrou9 podmnožin X. Mı́ra µ je množinová funkce s následujı́cı́mi vlastnostmi: (1) µ{∅} = 0 (2) µ(A) ≤ µ(B) ⇔ A ⊂ B (3) A1 , A2 jsou počitatelné Potom platı́: µ ∞ [ ∞ X Ai ≤ µ Ai . i=1 (2.26) (2.27) i=1 Tak jsme si zajistili možnost počı́tat velikost množin. Vnitřnı́ mı́ra lze definovat analogicky. Dalšı́ nezbytná operace je pokrytı́ množiny. 9 Pro takový systém platı́: (1) (2) (3) X∈M 0 0 pokud A ∈ M, S∞ pak A ∈ M, kde A = X\A je doplněk A ∨ X pokud A = i=1 Ai pro ∀Ai spočetné Ai ∈ M, pak A ∈ M . 11 Nástroj pro modálnı́ analýzu FPA 2.4.3 2.4. Mı́ry a dimenze -pokrytı́ S Definujme tedy -pokrytı́, na rozdı́l od obecného spočetného pokrytı́ F ⊆ Ai ∈A Ai , zde uvažujeme (maximálnı́) velikost množin, jimiž pokrýváme, [84]. Musı́ platit: diamP ≤ (2.28) pro -pokrytı́ P, kde ∀P ∈ P a je kladné (optimálně malé) reálné čı́slo. Tato formulace poskytuje základ pro mřı́žkovou dimenzi, uvedenou nı́že. Obrázek 2.5: Demonstrace -pokrytı́, vlevo > vpravo Poznamenejme, že diam značı́ diametr(A), často značen |A|. Diametr popisuje velikost množiny, můžeme na jeho základě rozhodnout i o jejı́ ohraničenosti. Diametr množiny P je: diamP = sup d(x, y) : x, y ∈ P , (2.29) kde sup (resp. inf ) značı́ supremum (resp. infimum), viz [21]. Např. pro n-rozměrnou √ krychly o straně a je diam roven a n. Diametr nám řı́ká, jak rozměrný potřebujeme obal, abychom zabalili celou množinu. 2.4.4 Hausdorffova mı́ra Předpokládejme neprázdnou podmnožinu X ⊂ Rn , jejı́ž diametr je definovám podle (2.29). Dále mějme množinu množin {Ui }, která je počitatelná, pro ∀i platı́ 0 ≤ diamUi ≤ a která pokrývá F . Pak tvrdı́me, že {Ui } je -pokrytı́ množiny F : Hs (F ) = inf ∞ X diam(Ui )s . (2.30) i=1 Budeme-li nynı́ postupně zmenšovat, bude klesat i počet množin, schopných pokrýt F . V limitě Hs (F ) = lim Hs (F ). (2.31) →0 Tato limita existuje pro jakoukoliv množinu F ⊂ Rn a nazýváme ji s-rozměrná Hausdorffova mı́ra10 množiny F . Jejı́ hodnota je často rovna 0 nebo ∞. V kontextu generace IFS má Hausdorffova mı́ra jednu přı́jemnou vlastnost – je-li S afinnı́ Podle [34] a [35] lze dokázat, že pro takové Hs , kde s ∈ Dt odpovı́dá Hausdorffova mı́ra Lebesqueově mı́ře. Pro H0 je rovna počtu bodů, pro H1 délce křivky a tak dále. 10 12 Nástroj pro modálnı́ analýzu FPA 2.4. Mı́ry a dimenze transformace s měřı́tkem δ > 0 a X ⊂ Rn , pak: Hs S(F ) = δHs (F ). 2.4.5 (2.32) Hölderova funkce s parametrem α Následujı́cı́ vztah (2.33) a jeho odvozeniny (2.34)-(2.35) formulujı́ obecný tvar funkcı́, s nimiž se ve fraktálnı́ geometrii setkáváme. Necht’ X ⊂ Rn a f : X −→ Y je zobrazenı́. Potom, pokud pro jednu (nebo několik) konstant c > 0 existuje α > 0 tak, že: |f (x) − f (y)| ≤ c|x − y|α pro (x, y ∈ X), (2.33) můžeme (2.33) nazvat Hölderovou funkcı́. Je-li α = 1: |f (x) − f (y)| ≤ c|x − y| pro (x, y ∈ X), (2.34) nazývá se funkce Lipschitzova. Podstatná je též funkce bi-Lipschitzova, rozšiřujı́cı́ podmı́nku (2.34), tj. c1 |x − y| ≤ |f (x) − f (y)| ≤ c2 |x − y| pro (x, y ∈ X) (2.35) a kde 0 ≤ c1 ≤ c2 ≤ ∞. 2.4.6 Hausdorffova dimenze Z předchozı́ho lze odvodit následujı́cı́ tvrzenı́. Necht’ F ⊂ Rn je borelovská množina11 a platı́ nerovnost 0 < s < t, (s, t) ∈ R. Potom platı́, že pro rostoucı́ s klesá Hs (F ). A dále: (1) pokud je Hs (F ) < ∞ pak Ht (F ) = 0 (2.36) (2) pokud je Ht (F ) > 0 pak Hs (F ) = ∞ Přı́klad tohoto jevu uvedeme dále. Najdeme-li tedy čı́slo s takové, že Ht = ∞ pro t < s a Ht = 0 pro t > s, nazýváme s Hausdorffovou dimenzı́ Dh , přesněji (2.37) Dh (F ) = inf s ≥ 0 : Hs (F ) = 0 = sup s ≥ 0 : Hs (F ) = ∞ a Hs (F ) nabývá hodnot: s H (F ) = ∞ pokud 0 ≤ s ≤ Dh (F ) 0 pokud s > Dh (F ) (2.38) Tento závěr je klı́čový a vyžaduje plné pochopenı́. Demonstrujme ho na přı́kladu výpočtu rovinného útvaru F (např. čtverce) v R3 . Budeme sledovat závislost Hs (F ) 11 Borelovská množina(Borel set) v Rn disponuje následujı́cı́mi vlastnostmi: (a) jakákoliv uzavřená i otevřená množina je borelovská; (b) sjednocenı́ konečného (nebo spočitatelného) počtu borelovských množin je opět borelovská množina, což platı́ i pro konečný (nebo spočitatelný) počet průniků b. množin. Poznamenejme, že v této práci jsou prakticky všechny množiny borelovské. 13 Nástroj pro modálnı́ analýzu FPA 2.4. Mı́ry a dimenze na s, tento průběh nakonec vykreslı́me na obr. 2.6. Čtverec dosahuje nekonečné délky H1 (F ) = ∞, nebot’ se jedná o plochý útvar. Mı́ra H2 (F ) je rovna součinu ca2 , kde a je strana čtverce a c je konstanta. Tento součin je zjevně konečný, kladný a reálný. Objem, tj. H3 (F ) takového útvaru je nulový. Pro hodnoty s ∈ (0, 2) je Hs (F ) = ∞, pro hodnoty s = (2, ∞) je Hs (F ) = 0. Tzn. že Dh (F ) = 2, v tomto přı́padě se navı́c Dh (F ) = Dt (F ), nebot’ čtverec patřı́ mezi jednoduché euklidovské obrazce. Obrázek 2.6: K definici Dh (F ): vlevo množina F , vpravo jejı́ Dh Tato dimenze byla založena na dřı́vejšı́ Carathéodoryho12 konstrukci teorie měr. Hausdorffova dimenze je matematicky transparentnı́ a definovatelná pro všechny množiny v Rn . Jejı́ obecnost má však i své úskalı́, a to jejı́ obtı́žný výpočet. To platı́ dokonce i pro odvozené numerické metody, která jsou navı́c zpravidla omezeny jen na určitou skupinu množin. Mezi tyto metody patřı́ i box-counting, který počı́tá mřı́žkovou dimenzi. Tu definujeme na základě fraktálnı́ dimenze s uváženı́m omezujı́cı́ch podmı́nek v části 2.4.7. Následujı́cı́ tabulka dává představu o fraktálnı́ dimenzi některých přı́rodnı́ch útvarů, viz [3], [72] a jiné: Přı́rodnı́ útvar Pobřežı́ Povrch mozku člověka Povrch neerodovaných skal Obvod 2D průmětu mraku Odhad Dh ∼ 1.26 ∼ 2.76 ∼ 2.2 − 2.3 ∼ 1.33 Tabulka 2.2: Hodnoty Hausdorffovy dimenze pro některé přı́rodnı́ útvary. Vidı́me, že hodnoty nejsou celočı́selné. To ukazuje na objekty ne-euklidovské, fraktálnı́ geometrie. Chceme-li změřit mı́ru složitosti těchto útvarů, využijeme rozdı́lu ∆f = |Dh − Dt |. Tato hodnota může limitně nabývat hodnoty ∆f → 113 a 12 Constantin Carathéodory (1873-1950) Platı́ pouze pro křivkový“ fraktál v ploše – Sierpinského trojúhelnı́k, Mandelbrotovu množinu ” aj. Pro fraktál v objemu by se limita mohla blı́žit dvěma. 13 14 Nástroj pro modálnı́ analýzu FPA 2.4. Mı́ry a dimenze platı́, že s rostoucı́ hodnotou roste i úroveň členitosti objektu. 2.4.7 Mřı́žková dimenze Tato dimenze je jednou z nejvı́ce užı́vaných – jejı́ výpočet je relativně jednoduše implementovatelný a rychlý. Je založena na měřenı́ s měřı́tkem δ, které se postupně zmenšuje k nule. Situace je podobná, jakou sledoval Richardson s měřenı́m obvodu Korsiky. Nepravidelnosti menšı́, než je rozměr měřı́tka zanedbáváme. Procházı́me postupně celou množinu (pobřežı́) a počı́táme, kolik délek δ (pásem, metrů, centimetrů) je potřeba pro jejı́ úplné pokrytı́. Jak lze dokázat, pro velkou třı́du (kam spadajı́ i IFS) množin podává mřı́žková dimenze stejné výsledky jako Hausdorffova dimenze. Je-li F neprázdná ohraničená podmnožina Rn a Nδ (F ) je nejmenšı́ počet množin s diametrem δ, které pokrývajı́ množinu F , potom definujeme dolnı́ a hornı́ mřı́žkovou dimenzi množiny F následovně14 ([34]): log Nδ (F ) Db F = lim , (2.39) δ→0 − logδ log Nδ (F ) . (2.40) Db F = lim δ→0 − logδ Pokud se Db F = Db F , mluvı́me o mřı́žkové dimenzi (box-counting dimension): Db F = lim δ→0 log Nδ (F ) . − logδ (2.41) Kdyby byla množina prázdná nebo neohraničená, hrozı́ hodnoty log 0 přı́p. log ∞ ve jmenovateli. Tvar množin N i jejich rozměr δ je volitelný, ale pro naše účely je nejvhodnějšı́ pracovat s mřı́žkou postupně se zjemňujı́cı́ch čtverců se stranou δ. Takový systém je na obrázku 2.7. Obrázek 2.7: Zjemněnı́ mřı́žky pokrývajı́cı́ množinu F Zároveň platı́ následujı́cı́ vztah mezi Db a Dh pro F ⊂ Rn , [34]: Dh (F ) ≤ Db (F ) ≤ Db (F ) (2.42) Pokusı́me se ho dokázat na přı́kladu v části 2.5.Ve velké části přı́padů se Hausdorffova a mřı́žková dimenze přı́mo rovná, nicméně je i skupina objektů, kde striktně platı́ uvedená nerovnost. 14 lim odpovı́dá lim sup a lim ' lim inf . 15 Nástroj pro modálnı́ analýzu FPA 2.5 2.5. Metoda box-counting Metoda box-counting Jak bylo uvedeno výše, jedná se o rychlou a pohodlnou metodu, jak vypočı́tat mřı́žkovou dimenzi. Zkoumaný objekt pokrýváme čtvercovou sı́tı́ a pro každý čtverec zjišt’ujeme, zda v něm ležı́ byt’ jakkoliv malá část koláže. Pokud ano, tento čtverec započı́táme. Měřı́tko je vhodné v každém kroku zmenšit na polovinu. Na obr. 2.7 1 1 vidı́me zleva doprava měřı́tka δ1 = 71 , δ2 = 14 a δ3 = 28 . Vypočteme-li počet obsazených čtverců, dostaneme se k čı́slům 16, 52 a 164 (zde je jich ve skutečnosti 174, pokud však vezmeme čistě jen plochu fraktálu bez tučně značených hran, několik čtverců zmizı́). Mřı́žkovou dimenzi vypočteme ze směrnice log − log grafu, jak bylo uvedeno dřı́ve, a to následovně: Db (Fsierp ) = log10 164 − log10 16 = 1.6788 log10 28 − log10 7 (2.43) Jedná se o dosti nepřesný výsledek, Hausdorffova dimenze Sierpinského log10 3 ≈ 1.585. Vysoká chyba je dána zejm. dvěma faktory. Tı́m trojúhelnı́ka je log 10 2 prvnı́m je fakt, že počı́táme dimenzi pro 1.iteraci fraktálu; výhodnějšı́ je počı́tat pro 3. a vyššı́ iteraci. Druhým důvodem je nedostatečná jemnost měřidla δ. Pro uspokojivý výsledek by bylo vhodné alespoň dvakrát krok zjemnit, bohužel pak by bylo ručnı́ počı́tánı́ čtverců velice obtı́žné. Přesto nám vztah (2.43) ukazuje spolu s obr. 2.8, jakým způsobem se chová směrnice box-counting dimenze. Obrázek 2.8: Směrnice box-counting dimenze Pro výpočty mřı́žkových dimenzı́ v tomto projektu byl, do doby než implementujeme vlastnı́ algoritmus, vybrán program boxcount, který lze stáhnout na komunitnı́ch stránkách [99]. Pocházı́ z roku 2008 a autorem je F. Moisy. Bez nápovědy a částı́ pro 1D a 3D útvary obsahuje pouhých 70 řádek kódu, čehož je dosaženo důvtipným využitı́m logických funkcı́ v Matlabu. S drobnými úpravami lze využı́vat přı́mo výstupu IFSMakeru (popis programu viz část 3.3). Kroky výpočtu si ukažme opět pro přı́klad Scierpinského trojúhelnı́ka: 1. Generace požadovaného IFS v IFSMakeru (lze i načı́st) 16 Nástroj pro modálnı́ analýzu FPA 2.5. Metoda box-counting 2. Zobrazit samotný fraktál jako výplň, viz obr. v dodatku 12.1 3. Sejmeme obrazovku a uložı́me samotný FRC bez GUI 4. Načı́st do Matlabu pomocı́ funkce imread 5. Výplň fraktálu sjednotit na černou barvu 6. Výpočet dimenze pomocı́ boxcount 7. Přepočet směrnice, výsledek Bod 5 lze v přı́padě exportu z IFSMakeru vynechat. Body 4-7 jsou zadávány ve formě přı́kazů, ty zobrazuje tabulka 2.3. c = imread(’fractal.jpg’); c = (c<198); % imagesc( c); [n,r] = boxcount(c); df = -diff(log(n))./diff(log(r)); disp([’Fractal dimension, Df = ’ num2str(mean(df(4:8))) ... ’ +/- ’ num2str(std(df(4:8)))]); Tabulka 2.3: Výpočet dimenze programem boxcount Obrázek 2.9: K výpočtu mřı́žkové dimenze (fraktály FRC A a FRC B) Nynı́ můžeme srovnat výsledky ručnı́ho výpočtu i programu boxcount se skutečnou hodnotou dimenze. Pro fraktál 2. iterace vycházı́ Db = 1.6411 ± 0.10206 a pro fraktál 3. iterace Db = 1.5964 ± 0.12882, vzory jsou na obr. 2.9 vlevo. Již pro 3. iteraci se výsledek blı́žı́ skutečnosti, přičemž i výsledek 2. iterace je v toleranci. Pokud stejný mechanismus aplikujeme na FRC B 3. iterace (viz obr. 2.9 vpravo, přı́p. 12.3 vpravo), dostaneme: Db = 1.7903 ± 0.0792. To odpovı́dá našı́ intuici – FRC A vyplňuje plochu méně efektivně než FRC B. Na obr. 2.10 je zobrazen průběh výpočtu – vlevo trend snižovánı́ měřı́tka δ se zvyšujı́cı́m se počtem čtverců pokrytı́ N , pravo potom hodnota mřı́žkové dimenze v každém kroku výpočtu. Z těchto dat je vypočten logaritmický průběh podstatný pro výpočet směrnice. 17 Nástroj pro modálnı́ analýzu FPA 2.5. Metoda box-counting Obrázek 2.10: Výpočet mřı́žkové dimenze Scierpinského trojúhelnı́ka (FRC A) Pro kontrolu byla vypočı́tána i hodnota mřı́žkové dimenze čtverce (zde se Dh = Dt = 2 a mělo by se i Dh = Db ). Výsledek Db = 1.9481 ± 0.0632 vycházı́ v toleranci a je velice blı́zký hodnotě Dt = 2. Na obr. 2.11 vidı́me, že dimenze je téměř stále rovna dvěma. Obrázek 2.11: Výpočet mřı́žkové dimenze čtverce Hodnota mřı́žkové, potažmo Hausdorffovy dimenze je významným ukazatelem složitosti planárnı́ho útvaru. Jejı́m odvozenı́m a zavedenı́m metody výpočtu jsme se přiblı́žili možnosti klasifikovat některé parametry IFS patch antén s ohledem na hodnotu mřı́žkové dimenze. Můžeme si též položit otázku, zda mı́ra křivosti hranice patche nemá vliv na distribuci nebo velikost jednotlivých modů. V budoucnu bude možné optimalizovat IFS strukturu tak, aby jejı́ fraktálnı́ dimenze vyhovovala zadanému čı́slu. 18 Kapitola 3 IFS software Tato kapitola má za úkol seznámit čtenáře zejména s praktickým návrhem IFS struktur a představit programy AntTool a IFSMaker. Ještě předtı́m se krátce věnujeme vlastnostem Matlabu a možným přı́stupům k programovánı́. Tak vyniknou rozdı́ly mezi oběma nástroji a připravı́me si půdu na představenı́ modálnı́ho řešiče, PSO optimalizátoru a IFSLimiteru. 3.1 3.1.1 Programovacı́ techniky v Matlabu Úvod Prostředı́ Matlab (MAtrix LABoratory) vytvořil r. 1970 Cleve Moler. Roku 1984 byl Matlab přepsán z Fortranu do jazyka C a byla založena společnost The MathWorks ([99]), ta pracuje na nových verzı́ch dodnes (nejnověji R2009a). Matlab se od svého vzniku vyvinul v komplexnı́, uživatelsky přı́jemný a po programové stránce komfortnı́ balı́k, obsahujı́cı́ stovky implementovaných funkcı́. Jejich výhoda je, že v přı́padě potřeby můžeme takové funkce prohlı́žet, přı́padně kopı́rovat, přepisovat a podobně1 . Vlastnosti Narozdı́l od Javy, přı́padně C++ nemáme k dispozici vlákna, omezené jsou možnosti hardwarových naslouchačů (např. oddělenı́ pravého kliku myši od levého) a rychlost aplikacı́ je zpomalena o režii vlastnı́ho Matlabu. Matlab jako takový rovněž nelze považovat za plnohodnotný programovacı́ jazyk (i když syntax má vlastnı́), nebot’ dokončené programy stále potřebujı́ k běhu Matlab. Toto do jisté mı́ry řešı́ Matlab Compiler [20], přesto však musı́me mı́t stále nainstalovaný podpůrný program, nemluvě o úskalı́ch převodu většı́ch projektů (donedávna nesměla mı́t kompilovaná aplikace GUI apod.). 1 Uvedené operace platı́ pro všechny funkce s výjimkou tzv. Built-in funkcı́. Náhled na funkci je možný pomocı́ přı́kazu edit jmeno funkce. Popisem nejdůležitějšı́ch funkcı́ se zabývá [17]. 19 Nástroj pro modálnı́ analýzu FPA 3.1. Programovacı́ techniky v Matlabu Mluvı́me-li o negativech, nesmı́ chybět pozitiva. Je jich mnoho. Toolboxy, kvalitnı́ editor s M-Lintem, rozsáhlý help s přı́klady a demy, uživatelská podpora, komunitnı́ weby, možnost propojenı́ s Excelem, Comsolem, C++, Javou, Maplem, aplikace profiler pro lazenı́ skriptů a funkcı́, velice rychlé jádro založené na práci s maticemi. Mezi dalšı́ výhody, které ocenı́ zkušený uživatel, patřı́ objektové programovánı́, distribuované výpočty, podpora handle funkcı́, polı́ a struktur, pohodlná správa a export dat. Můžeme integrovat funkce z jazyka C a Javy, zakládat vlastnı́ (com) server . . . Grafika Práce s grafikou je nedı́lnou součástı́ Matlabu. K dispozici máme celé rodiny 2D a 3D grafů, obrázků, sı́tı́. Můžeme pracovat s animacemi, renderovat (OpenGL), stı́novat, nasvěcovat. Hierarchie grafických objektů je zobrazena na obr. 3.1. Při tvorbě složitějšı́ aplikace, jako je IFSMaker se bez znalosti jednotlivých závislostı́ neobejdeme. Obrázek 3.1: Struktura grafiky v Matlabu Všechny prvky, at’ již elementárnı́ plot, line, text, nebo nadřazené axes a figure, majı́ mnoho vlastnostı́, ke kterým můžeme přistupovat pomocı́ funkce get. Měnit existujı́cı́ parametry lze pomocı́ funkce set. Abychom mohli přistupovat k dané instanci (objektu), je potřeba mı́t uloženou jejı́ referenci, v Matlabu je označovaná jako handle. Pokud handle nenı́ přı́stupný, lze ho najı́t pomocı́ jiných vlastnostı́ objektu2 . Některé grafické prvky však (velice zřı́dka) handle vůbec nemajı́. Je vhodné se zmı́nit i o tzv. callback funkcı́ch, nebot’ právě ty zprostředkovávajı́ odezvu všech aktivnı́ch prvků. Klikneme-li na tlačı́tko, jedná se o událost, o určitý typ callback funkce. Pokud máme tuto funkci definovanou, je provedena ihned po aktivaci daného tlačı́tka. Tak lze řı́dit i pohyb myši, přı́padně naslouchánı́ jednotlivých kláves a tlačı́tek. Callback funkcı́ je mnoho typů a nebudeme se jim zde podrobněji věnovat. Jsou popsány v [9] na str. 8-84 až 8-94. 2 Obvykle využı́váme vlastnostı́ tag, userdata a name. Toto hledánı́, realizované pomocı́ funkce findobj je nepoměrně pomalejšı́ než přı́stup přes handle. 20 Nástroj pro modálnı́ analýzu FPA 3.1. Programovacı́ techniky v Matlabu Typy proměnných V Matlabu, stejně jako ve většině ostatnı́ch programovacı́ch jazyků, jsou definovány datové typy. Ty sloužı́ k označenı́ proměnné a umožňujı́ efektivnı́ alokaci paměti. Všechny typy majı́ charakter objektů a jsou tedy nad nimi definovány určité operace (vı́ce v části 3.1.4). Matlab provádı́ deklaraci typu sám podle dat, která vložil uživatel. Jsou však výjimečné přı́pady, kdy se tato znalost hodı́ i v Matlabu3 . Základnı́ datové typy (třı́dy) jsou: • double (8B) • char (2B) • logical (1B) • struct (> 100B) • cell (> 100B) • vlastnı́ třı́dy (OOP) Vı́ce lze nalézt v helpu a odborné literatuře. Bez ohledu na daný typ jsou všechna data uvnitř Matlabu interpretována jako matice, nebot’ Matlab pracuje jen s nimi (maticový zápis je vždy nejrychlejšı́). OOP přı́stup OOP (Object-Oriented Programming) je v Matlabu relativně novou4 technikou programovánı́5 . Základnı́ myšlenky jsou společné s ostatnı́mi vyššı́mi programovacı́mi jazyky, realizace některých prvků je však v Matlabu netypická. Napřı́klad propojenı́ komplexnějšı́ho GUI s faktickým jádrem programu je dosti obtı́žné, zajı́mavé je využitı́ událostı́ (Events) a naslouchačů (Listeners), [19]. Vı́cenásobnou dědičnost (jako v C++) a absenci interfejsů6 (Java) lze hodnotit spı́še pozitivně. Skripty, funkce Nejjednoduššı́ využitı́ Matlabu je z přı́kazové řádky (též prompt, značka ), tento způsob je efektivnı́ pouze pro jednoduché matematické operace, pro spouštěnı́ 3 Uved’me alokace polı́, rozsáhlé matice, velký počet logických operacı́ a dalšı́. Napřı́klad pro matici 10000 × 10000 znamená užitı́ typu logical namı́sto typu double, pokud to úloha umožňuje, úsporu 700MB v operačnı́ paměti. Proto při pozdějšı́ práci s NaN poli ihned měnı́me matici na logical a NaN pole mažeme. 4 Až od verze R2008a (7.6.0). 5 Byly zde pokusy implementovat OOP do Matlabu již dřı́ve. Nejlépe se tohoto úkolu zhostil zřejmě Andy H. Register v knize [18]. Jeho paradigma však vyžadovalo pokročilou znalost objektového programovánı́ např. z C++. 6 Interfejsy lze nahradit pomocı́ abstraktnı́ch třı́d. 21 Nástroj pro modálnı́ analýzu FPA 3.1. Programovacı́ techniky v Matlabu vlastnı́ch programů, nebo modulů Matlabu (editor, profiler, help, . . . ). Vı́ce je uvedeno v [16]. Ve všech ostatnı́ch přı́padech pracujeme v editoru, kde vytvářı́me skripty nebo funkce. Ten lze otevřı́t přı́kazem edit. Skript obsahuje posloupnost přı́kazů, které jsou po spuštěnı́ provedeny. Nevracı́ žádné výsledky zpět do prostoru volajı́cı́ funkce (caller workspace), nicméně může vypsat / vykreslit výsledky a všechny proměnné zůstanou v základnı́m pracovnı́m prostoru (base workspace). Skript je stále velice primitivnı́ formou programovánı́, nebot’ pouze provádı́ sérii přı́kazů, bez dalšı́ návaznosti nebo proměnných parametrů. Funkce musı́ mı́t hlavičku, která definuje vstupnı́ a výstupnı́ parametry a jméno. Definice parametrů nenı́ povinná. Rovněž lze využı́vat proměnný počet parametrů s pomocı́ varargin a varargout. Klı́čové slovo end na konci funkce je vyžadováno pouze při práci se zanořenými funkcemi (nested functions), přı́padně s vı́ce funkcemi v jednom mfilu. Nemusı́me zadávat všechny vstupnı́ (pokud nejsou potřeba) nebo požadovat všechny výstupnı́ parametry. Až při práci s funkcemi lze plně docenit všechny možnosti Matlabu oproti ostatnı́m matematickým balı́kům (Matematika, Maple, Derive). Pro účely dalšı́ho výkladu nynı́ jmenujme trojici autorem nejčastěji využı́vaných programovacı́ch technik. 3.1.2 Switched board programming Následujı́cı́ postup tvorby m-filů je dosti atypický a je vhodný zejm. pro funkce obsahujı́cı́ grafické prvky. Využı́vá schopnosti funkce volat sebe samu s různým počtem parametrů. Program větvı́me přı́kazy switch a case nebo analogicky if a else (elseif )7 . Obrázek 3.2: Přı́klad užitı́ switched boad programmingu (AntTool1.3) Obrázek 3.2 zobrazuje hlavičku takto napsané funkce. Ihned po vstupu je funkce 7 Zde je volba mezi switch-case a if-else nepodstatná, ve většině přı́padů je však vhodné zvolit správné přı́kazy, ačkoliv provedou totéž. Pro logické a matematické podmı́nky volı́me if-else, pro výběr možnosti z dlouhého výčtu, při práci s řetězci string a podobně volı́me switch-case formu. 22 Nástroj pro modálnı́ analýzu FPA 3.1. Programovacı́ techniky v Matlabu členěna, a to but’ podle hodnoty prvnı́ho vstupnı́ho parametru, nebo, později, podle počtu parametrů. Volánı́ bez parametrů, nebo s jednı́m vstupnı́m parametrem (init a podobně) zpravidla inicializuje funkci, tj. vykreslı́ GUI, definuje callback funkce a nastavı́ jeho prvky. Závěr takové pasáže může obsahovat opětovné volánı́ stejné funkce (ale s jinými parametry). Častěji však nynı́ čekáme na vstup od uživatele a na aktivaci GUI, která skrze callback funkce provádı́ rekurzi, avšak nově např. s parametry z GUIe. Detaily lze nalézt v [2]. Tato metoda je vhodná pro programátorské začátečnı́ky. Nevyžaduje nutnost propojovat a koncipovat velký počet funkcı́. Jejı́ užitı́ je však omezené (zejm. benevolencı́ Matlabu, kterou u jiných jazyků nenajdeme) a po bližšı́m seznámenı́ je vhodnějšı́ přechod k plně strukturálnı́mu programovánı́. Pochopitelně tato technika podává nejlepšı́ výsledky v kombinaci s dalšı́mi at’ již strukturálnı́mi, či objektovými segmenty kódu. Na druhou stranu, i v přı́padě komplikovaných projektů založených na OOP se občas vyskytujı́ funkce, které samy sebe opakovaně volajı́ s různým počtem parametrů. 3.1.3 Strukturálnı́ programovánı́ Idea je velice jednoduchá. Celkový problém dělı́me (tzv. atomizace) na dı́lčı́, dále nedělitelné části. Z těchto částı́ programujeme funkce, které svým vzájemným volánı́m vytvářejı́ původnı́ celek. V principu je nepřı́pustné využitı́ skoků (např. goto); výhodou je, že tyto skoky Matlab vůbec nepodporuje. Do určité rozlohy pro- Obrázek 3.3: Strukturálnı́ segment kódu (IFSLimiter) jektu je strukturálnı́ programovánı́ názorné a nenáročné. V Matlabu můžeme využı́t 23 Nástroj pro modálnı́ analýzu FPA 3.1. Programovacı́ techniky v Matlabu nested funkce pro dalšı́ zjednodušenı́. Strukturálnı́ přı́stup však trpı́ hned několika neduhy. Nedostatkem je oddělenı́ dat a algoritmů. To se muže jevit jako výhoda pro malé programy, v projektu o 100 funkcı́ch je ovšem přidánı́ dalšı́ funkce strastiplná událost – neobsahuje část kompetencı́ nové funkce již jiná staršı́ (duplicity), kdo a s jakými daty bude smět tuto funkci volat (autorizace), neměnı́ mi tato funkce uložená data nežádoucı́m způsobem? Problém je také absence vyššı́ch datových struktur s omezeným vstupem, které jsou pro většı́ aplikace nezbytnostı́. Hrozı́ totiž, že nepodstatná funkce nastavujı́cı́ barvu pozadı́ změnı́ ve stejném poli např. hodnoty IFS transformacı́. Dohledánı́ podobné chyby je též problematické. Všechny jmenované nedostatky odstraňuje objektové paradigma. 3.1.4 OOP Objektové paradigma se inspiruje světem okolo nás. Označme jisté dveře za objekt, jejich otevřenı́ je potom metodou. Dřevěné i laminátové dveře patřı́ do stejné kategorie – třı́dy, totiž do třı́dy dveřı́. Dalšı́ metodou může být třeba zavřenı́ nebo zamčenı́. Zatı́mco otevřenı́ i zavřenı́ dveřı́ je podobné i u třı́dy oken (jedná se o polymorfismus), zamčenı́ je metoda přı́stupná obvykle pouze dveřı́m. Přestože objektové myšlenı́ je lidem vlastnı́, vyloženı́ a implementace objektového paradigmatu je poměrně obtı́žné. Zavedenı́ jednotlivých pojmů je podrobně zpracováno v literatuře a platı́ i v Matlabu, drobné změny jsou dostatečně popsány v [19]. Obrázek 3.4: Užitı́ objektů v IFSMakeru Při studiu OOP se vždy setkáme s trojicı́ pojmů, které OO přı́stup charakterizujı́. Jsou to: 24 Nástroj pro modálnı́ analýzu FPA 3.2. AntTool • zapouzdřenı́ (na objekt se dı́váme jako na černou skřı́ňku s definovaným přı́stupem) • polymorfismus (jedna metoda lze využı́t pro vı́ce různých třı́d – otevřenı́ okna i dveřı́) • dědičnost (třı́da je potomkem, podmnožinou jiné: psi < čtyřnohá zvı́řata < zvı́řata) Těmito vlastnostmi disponuje i OO programovánı́ v Matlabu. Dědit lze vı́cenásobně, čehož s výhodou využı́váme. Lze dědit i od vnitřnı́ch třı́d Matlabu, např. < handle, < double atd. Pro přı́stup k zapouzdřeným datům vytvářı́me funkce get a set, ty navı́c musı́ spolupracovat s callback funkcemi editace tabulek, myši, klávesnice a menu. Tak lze omezit viditelnost citlivých dat zvenčı́. O změnách dat musı́ být informováno jádro programu, které udržuje všechna (navazujı́cı́) data aktuálnı́. Návrh objektově orientovaných programů je pro začátečnı́ka ze všech uvedených metod ten nejobtı́žnějšı́ a vyžaduje jistý cvik (zejm. správnou metodiku uvažovánı́) a zkušenosti. 3.2 AntTool Základ programu je odvozen od předchozı́ho nástroje, který byl předložen v BP. Snažı́ se odstranit nedostatky předchozı́ho návrhu IFS, zejm. těžkopádnost a zdlouhavou generaci. Také již nativně pracuje s maticı́ transformacı́ ve tvaru [a b c d e f], lze tedy vzory volně přejı́mat z literatury. Rozšı́řeny byly možnosti exportu, ukládánı́ a načı́tánı́ koláže. Nově program obsahuje konzoly, pomocı́ nı́ž lze řı́dit generaci přı́kazy8 . Jednotlivé přı́kazy jsou uvedeny v Dodatku 12.4. Tak lze spustit dávku, která je provedena automaticky. Tento postup vyžadoval návrh vlastnı́ho tokenizeru a interpreteru, o kterých se zde (jde spı́še o programovánı́) vı́ce nezmiňujeme. Obě funkce byly využity i později při návrhu IFSMakeru. Obrázek 3.5: AntTool, screenshot hlavnı́ho okna 8 Defaultnı́ verze AntToolu obsahuje jeden skriptovaný soubor jako vzor, nalézt lze ve složce B program source. 25 Nástroj pro modálnı́ analýzu FPA 3.2.1 3.2. AntTool Generace IFS Zadávánı́ bodů Zadanými body je definován výchozı́ objekt, odpovı́dajı́cı́ okna AntTool ukazuje obr. 3.6 nahoře a 3.7 vlevo. K definici plošného útvaru jsou potřeba nejméně tři body. Body lze v přı́padě potřeby uložit i načı́st z připravených souborů. Lze vytvořit i vlastnı́ txt soubory, musı́ však respektovat daný formát (viz vzory přiložené v programu). Obrázek 3.6: AntTool: Zadánı́ bodů a transformacı́ Zadávánı́ transformacı́ Vkládáme transformace, pro generaci IFS však nejméně jednu. Pro kontrolu lze všechny transformace vykreslit (dlážděn však nenı́ zadaný objekt, ale obecný čtverec). Vı́ce na obr. 3.6 dole 3.7 vpravo. Výpočet a zobrazenı́ IFS Po zadánı́ bodů a transformacı́ můžeme otevřı́t vlastnı́ řešič, obr. 3.8 vlevo. Je potřeba nastavit počet iteracı́, poté již lze spustit výpočet. Generace probı́há podle vztahů odvozených v minulé kapitole. Po jejı́m dokončenı́ se můžeme na strukturu podı́vat (můžeme zadat meze iteracı́, které se majı́ zobrazit), přı́padně ji exportovat jako souřadnici bodů (.txt), ve formátu IE3D (.3dt) nebo jako objekt fem pro dalšı́ analýzu v Comsol Multiphysics (viz dalšı́ kapitoly). Vzorová koláž je na obr. 3.8 vpravo. 26 Nástroj pro modálnı́ analýzu FPA 3.2. AntTool Obrázek 3.7: AntTool: Zobrazenı́ bodů a transformacı́ Vlastnı́ vykreslenı́ fraktálu lze uložit jako animaci, lze uložit i vykreslenou koláž jako bitmapu (bmp). Aktuálnı́ proměnné z výpočtů IFS (cell), geometrie (fem) a meshe jsou ukládány do základnı́ho pracovnı́ho prostoru Matlabu (přı́stupný z promptu). 3.2.2 Export koláže Program nabı́zı́ dva možné formáty výsledného souboru. Prvnı́ má přı́ponou txt (tabulka 3.1), druhý přı́ponou 3dt (tabulka 3.2). Oba soubory lze nalézt v adresáři program output IFS generátoru. Za úpravu ukládaných souborů je zodpovědná funkce registry.m resp. registry3dt.m. Export lze bez problémů modifikovat dle potřeby. V tab. 3.1 označuje Σ počet bodů (v polygonu), α1,2 souřadnice bodu x, POLY Σ α1 α2 0 β1 β2 0 γ1 γ2 0 POLY Σ .. . Tabulka 3.1: Struktura souboru data.3dt. β1,2 bodu y a γ1,2 bodu z v polygonu. Formát je použitelný např. pro export do Excelu. V tab. 3.2 X označuje pořadové čı́slo polygonu, α1,2 souřadnice bodu x, β1,2 bodu y a γ1,2 souřadnice z v polygonu X . Tento soubor lze načı́st do IE3D k následné simulaci. 27 Nástroj pro modálnı́ analýzu FPA 3.2. AntTool Obrázek 3.8: AntTool: Řešič a výsledný fraktál PolyX : α1 α2 0 β1 β2 0 γ1 γ2 0 Poly(X + 1) : .. . Tabulka 3.2: Struktura souboru data.txt. 3.2.3 Připojenı́ ke Comsolu Pokud chceme navržený patch analyzovat pomocı́ dutinového modelu, je nutné propojenı́ s Comsolem. Toto propopojenı́ lze realizovat přı́mo spuštěnı́m pomocı́ Comsol with Matlab, přı́padně lze využı́t opačného postupu, který byl vyvinut právě pro AntTool. V přı́padě prvnı́ možnosti je totiž nutno právě otevřený Matlab uzavřı́t a počkat na spuštěnı́ nového Matlabu. V něm znovu najı́t cestu k programu a ten spustit. Opačný přı́stup, tedy připojenı́ Comsolu k Matlabu nenı́ na jeden klik možný, nebot’ je potřeba incializovat Comsol server a poté spustit Matlab, do kterého jsou přidány cesty (addpath) ke Comsolu. Přesto lze realizovat funkci, která z Matlabovského GUIe připojı́ Comsol. Je potřeba mı́t správně nastavené cesty k souborům comsol.exe a matlab.bat. Pro připojenı́ Comsolu jsou využı́vány soubory matlabrc.m a startup.m. Matlabrc obsahuje každá instalace Matlabu a je potřeba pro lokalizaci akresáře, kam se uložı́ startup (vždy se jedná o stejný adresář). Pokud uživatel soubor startup aktivně využı́vá pro start své instalace Matlabu (umožňuje to modifikovat start Matlabu), bude tento soubor smazán. Dávkový soubor, který se vytvořı́ na disku 28 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker (start fem.bat) bude po zdárném startu Matlabu s Comsolem smazán. Stejně tak startup.m. Tento postup je funkčnı́ až do verze Matlabu 7.5.0 (R2007a) a Comsolu 3.4. Pro vyššı́ verze takto spojenı́ navázat nelze, nebo je nestabilnı́ a přerušované. Připojenı́ pracuje dı́ky dávkovému souboru start fem.bat (vytvářı́me ho z Matlabu automaticky AntToolem), který po samovolném ukončenı́ Matlabu spustı́ sám Comsolem nastavený server, zároveň s tı́m byly uloženy do souboru startup přı́kazy pro opětovné spuštěnı́ programu AntTool (tj. nalezenı́ cesty a spuštěnı́). Dalšı́ část kódu v startup čistı́ vytvořené pomocné soubory. Celá problematika je poměrně komplikovaná a vyžaduje znalost systémových přı́kazů, funkci Comsol serveru a spouštěnı́ Matlabu. Zı́skáme však kontinuitu ve zpracovánı́ přı́kazů i přes nutnost připojit ručně Comsol. 3.2.4 Náhrada IFSMakerem AntTool měl původně obsahovat moduly pro IFS, CM, PSO i postprocessing. Postupné rozšiřovánı́ se však ukázalo být komplikované. Pro některé úkony je stále platným pomocnı́kem (vzory kódu, rychlá generace, schopnost pracovat automaticky a narozdı́l od IFSMakeru bez omezenı́ iterace), v poslednı́ době však převažujı́ spı́še nevýhody (nenı́ tak komplexnı́, stále jsou omezené možnosti exportu a importu, nepodporuje formát FRC, o němž se dále zmı́nı́me a který je nezbytný v přı́padě využitı́ rojové optimalizace). Většina nedostatků vycházı́ z jednodušı́ metody programovánı́ a špatné volby koncepce – integrace přı́liš mnoha modulů nenı́ zatı́m v Matlabu lehce zvládnutelná (o čemž vypovı́dajı́ i izolovaně řešené toolboxy). AntTool byl nahrazen novějšı́m IFSMakerem (IFS) a EvalInFem (CM). 3.3 IFSMaker Z důvodů uvedených výše, byl po nastudovánı́ OOP v Matlabu vytvořen IFSMaker. Současný stav odpovı́dá cca. 70% hotové práce. Celý kód je napsán v Matlabu, je otevřený a dále rozšiřitelný. Popis Program umožňuje interaktivně pracovat s IFS, dále pak s polygony, které lze odečı́tat i sjednocovat. Zatı́mco IFS jsou uloženy ve formátu FRC, polygony doposud pevný formát nemajı́ a ukládáme je do proměnné typu cell. Jednotlivé útvary můžeme načı́tat, přı́padně ukládat a exportovat přı́mo do Matlabu. IFSMaker podporuje typy txt, 3dt a FRC, v budoucnu pak i typy fem, geom a polygons. Uživatelským komfortem jsme se snažili přiblı́žit komerčnı́m programům – grafické prvky lze vybı́rat rámečkem myši (windows), společně s klávesou SHIFT přidávat, s CTRL ubı́rat. Rozměry plátna i gridu lze přednastavit do slotů. Ty vyvoláme ikonou (viz video tutoriál na DVD odevzdaném s touto pracı́) přı́p. klávesami 1-4. K dispozici je grid podobný jako v programu CorelDraw. Ten lze 29 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker Obrázek 3.9: IFSMaker: celý program využı́t na konstrukci bodů, pomoc. čar (nenı́ dokončeno), pro měřenı́ vzdálenostı́ apod. Přiblı́ženı́ lze realizovat kolečkem myši nebo klávesami +/- (lze navı́c nastavit velikost přı́rustku; defaultně nastavena o jedno polı́čko gridu). Posun po canvasu provádı́me šipkami (krok nastavitelný). Pozice kursoru se vypisuje v pravém hornı́m rohu. Pod tı́m se zobrazuje aktivovaný snap režim, včetně souvisejı́cı́ch informacı́ (k čemu je kursor přichycen). V pravém dolnı́m rohu je drobná konzole, určená pro komunikaci směrem k uživateli (dokončené úkoly, chyby apod.). Snap režimy, známé např. z AutoCadu, významně usnadňujı́ práci s grafikou. Na výběr je trojice režimů: Snap free, Snap to Grid a Snap to Points. Vzdálenosti přichycenı́ lze nastavit. Zobrazenı́ všech těchto informacı́ na plátně je volitelná. Pro dosaženı́ vysoké flexibility jsou funkce koncipovány podle obr. 3.10. Objekty jsou zapouzdřeny ve vlastnı́ třı́dě, přı́stup je omezený a veškeré operace mimo objekty probı́hajı́ ve třı́dě superGUI. FRC formát Pro potřeby jednoznačné definice a přenositelnosti IFS kolážı́ napřı́č všemi aplikacemi byl navrhnut následujı́cı́ FRC formát: 30 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker Obrázek 3.10: IFSMaker: část UML schematu, MS Visio FRC.base = [ ] FRC.tran = [ ] FRC.iter = [ ] FRC.type = ’pntstrns’ V proměnné typu FRC jsou jednoznačně uloženy body základnı́ho útvaru FRC.base, transformace ve tvaru [a b c d e f] a iterace v poli FRC.iter. Na úrovni IFS návrhu bychom se bez takového formátu ještě obešli, potřebujeme ho však v přı́padě analýzy pomocı́ CM a PSO optimalizace. Konečná podoba všech IFS fraktálů, které jsou v tomto projektu využity je zobrazana v Dodatku 12.1, a to vč. návrhových hodnot (FRC polı́). Současně lze všechny koláže ve tvaru FRC nalézt na průvodnı́m DVD nosiči. Utility IFSMaker obsahuje celou řadu utilit, které usnadňujı́ práci s fraktály. S vybranými body lze pracovat v Selection Listu (obr. 3.11). Body můžeme přidávat, ubı́rat (vyhledávánı́ pomocı́ tagu / označenı́ myšı́ / výběr vı́ce bodů podle ID), mazat, zneviditelnit a zpět zviditelnit. Tyto body sloužı́ jako výchozı́ množina pro úpravy 31 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker nastavené v Modification (obr. 3.12). Obrázek 3.11: IFSMaker: Selection List Obrázek 3.12: IFSMaker: Ukázka modifikace Okno modifikacı́ se inspiruje programem CST-MWS, navı́c je přı́tomna možnost hromadně měnit vlastnosti bodů (grafika, tag). V přı́padě úprav vyžadujı́cı́ch zadánı́ středu lze vybrat globálnı́ střed [0, 0], zvolit určitý bod, nebo zadat střed manuálně. U všech úprav lze nastavit počet kroků, do kterých je výsledná modifikace rozdělena. Pro vytvořenı́ základnı́ho objektu IFS, ale i pro vytvořenı́ polygonu musı́me zadat vrcholové body. Z nich vytvořı́me nový polygon, do kterého vybrané body přidáme. Tyto polygony sloužı́ jako zdrojové objekty IFS (vždy jen jeden polygon), lze pomocı́ nich tvořit i složitějšı́ útvary (obr. 3.17). V tom přı́padě musı́me nastavit typ polygonu různý od ’0’ (’+’ pro přidánı́ nebo ’-’ pro jeho odečtenı́ od ostatnı́ch). Pro připojenı́ uzlů (nodů) do označeného polygonu lze využı́t tabulky na obr. 3.13. Jako nody lze rovnou vybrat všechny body (Select all ), můžeme měnit jejich pořadı́ 32 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker Obrázek 3.13: IFSMaker: Připojenı́ nodů do polygonu v polygonu (pravý sloupec), toto pořadı́ lze celé vynulovat (Order zeroing) pro přehlednějšı́ zadávánı́9 . Obrázek 3.14: IFSMaker: Ukázka lazenı́ transformacı́ Protože úprava transformacı́ patřı́ mezi časté operace nad již hotovým IFS, zařadili jsme do IFSMakeru nástroj Tune (často využı́ván např. v MWOffice). Požadované transformace a lazený koeficient lze vybrat ručně, event. s pomocı́ zjednodušujı́cı́ funkce dostupné z hornı́ lišty. Krok lazenı́ je nastavitelný, lze dokonce 9 Zpravidla však nody přidáváme v pořadı́ jak byly tvořeny body, v tomto pořadı́ jsou tedy body defaultně označeny jako budoucı́ nody. 33 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker otevřı́t vı́ce Tune oken najednou a pohybovat s vı́ce parametry naráz. Taková práce s transformacemi je velice názorná a šetřı́ mnoho času. Všechny tyto operace jsou demonstrovány ve videu IFSMaker tutorialAvi.avi na DVD. Kreslı́cı́ plátno Jako v každém grafickém editoru, i zde je velice důležité chovánı́ a možnosti kreslı́cı́ho plátna (canvas). Celé plátno zobrazuje obr. 3.15. Jednotlivé operace jako posun, zoom, označovánı́ apod. byly popsány výše. Zde se zmı́nı́me pouze o zjednodušenı́ z obr. 3.16. Obrázek 3.15: IFSMaker: Pracovnı́ plocha, detail Protože často pracujeme s fraktály rozdı́lných velikostı́, je nutné efektivně měnit velikost pracovnı́ plochy, včetně hustoty pomocné mřı́žky (gridu). Opětovné zadávanı́ jednotlivých údajů je zdlouhavé a zoom myšı́ nepřesný. Vytvořeno bylo proto okno 3.16, obsahujı́cı́ 3 sloty s přednastavenými rozměry plátna. Ty lze měnit, mezi sebou kopı́rovat, uložit a v přı́padě potřeby vyvolat. Obvod, obsah, fraktálnı́ (mřı́žková) dimenze Správné určenı́ obvodu a obsahu je základnı́m předpokladem k hlubšı́mu studiu fraktálnı́ geometrie. Využı́váme zde Mapping Toolbox, zejm. funkce poly2cw, poly- 34 Nástroj pro modálnı́ analýzu FPA 3.3. IFSMaker Obrázek 3.16: IFSMaker: Canvas options bool, poly2fv a polyarea. Pokud je funkce aktivována, vypisuje se aktuálnı́ obsah a obvod při jakékoliv změně10 . Tato problematika nenı́ doposud zcela zvládnuta – při postupném zjednocovánı́ členitých kolážı́ obsahujı́cı́ch vı́ce děr (nebo dokonce menšı́ otvory ve většı́ch) program ztratı́ přehled o tom, co jsou dı́ry a co patch. Potom vycházı́ obsah záporný. K výraznému zlepšenı́ došlo po zařazenı́ bloku, který testuje, zda je výsledek sjednocenı́ dı́ra, a pokud ano, zařadı́ ho nakonec tabulky souřadnic (polygony jsou odděleny hodnotami N aN ). Vše od prvnı́ho výskytu N aN nı́že je po úplném sjednocenı́ odřı́znuto. Problém však zůstává s komplikovanějšı́mi (z topologického hlediska) útvary. K dispozici je i možnost vykreslit výsledný tvar patche (at’ už složeného z polygonů nebo IFS) zahrnujı́cı́ všechny logické operace, tedy tak, jak bude exportován (viz obr. 3.17 nalevo). Podstatnou součástı́ konečné podoby IFSMakeru bude výpočet fraktálnı́ dimenze metodou box-counting. Pokud nerealizujeme jednu z vlastnı́ch metod, bude upraven skript boxcount. Jako argument načı́tá jpg nebo gif soubor IFS koláže, výpočet bude zahrnovat i potřebný převod z FRC na obrázek. Spojenı́ s Comsolem Dı́ky propojenı́ s Comsolem můžeme zjistit rezonančnı́ frekvenci přı́mo v návrhovém editoru11 . K dispozici je parametrická analýza podobně jako v IFSLimiteru (9. kapitola, obr. 9.9). Z nı́ můžeme vyčı́st trend rezonančnı́ frekvence se změnou vybraného parametru. V přı́padě potřeby lze Comsol využı́t k testovánı́ jednolitosti navrženého patche. Spojenı́ musı́me navázat standartnı́ cestou (tj. spustit Comsol s Matlabem). Operace s Comsolem zatı́m nemajı́ v IFSMakeru grafické rozhranı́ a nelze je tedy využı́vat. Vše bude dokončeno v nejbližšı́ době. 10 To při vyššı́ch iteracı́ch nebo v přı́padě složitějšı́ struktury zatěžuje PC, pak je vhodné dynamické vyhodnocenı́ vypnout. 11 Ve skutečnosti frekvenci zjišt’uje EvalInFem, ke kterému se dostaneme v 5. kapitole. 35 Nástroj pro modálnı́ analýzu FPA 3.4. Nedostatky a možná vylepšenı́ Práce s polygony IFSMaker nenı́ omezen pouze na tvorbu IFS kolážı́, lze pracovat i s polygony. Jednotlivé polygony nakreslené na základě zadaných bodů můžeme sjednocovat i odečı́tat, viz obr. 3.17. Tak lze navrhnout desky obsahujı́cı́ štěrbiny a jiné složité nefraktálnı́ obrazce. Výsledný obrazec lze zkontrolovat pomocı́ utility na výpočet obsahu a obvodu. Obrázek 3.17: IFSMaker: Práce s polygony V budoucnu bude možné přı́mo z IFSMakeru ihned zjistit rezonančnı́ frekvenci dominantnı́ho módu takové struktury, a to vč. rozloženı́ elektrického pole a proudů. 3.4 Nedostatky a možná vylepšenı́ Prostor pro dalšı́ zdokonalovánı́ je značný. Mnohdy programy těžko zvládajı́ komplexnı́ operace, přı́padně jsou tyto pomalé a neefektivnı́ (práce s obsahem, hranicemi, eliminace nepotřebných bodů, sjednocovánı́). V přı́padě programu AntTool byl vývoj zcela zastaven, nynı́ se soustředı́me pouze na IFSMaker a jeho dalšı́ vylepšovánı́. Jmenujme nedokončené oblasti, v kterých je nutno zjednat nápravu: • Zrychlit s pomocı́ Matlab Profileru operace nad objekty pro většı́ koláže • Dokončit sekci s Lines, která bude zajišt’ovat pomocné a vodı́cı́ čáry (jako v AutoCadu) • Test počtu objektů upravit tak, aby vždy podávat stejný výsledek, implementovat i možnost volat Comsol (úprava na geom) • Dokončit utility Measuring a Simplify (umožnı́ rozličné měřenı́ nakreslené geometrie a jejı́ zjednodušenı́) 36 Nástroj pro modálnı́ analýzu FPA 3.4. Nedostatky a možná vylepšenı́ • Integrovat nástroj na výpočet fraktálnı́ / mřı́žkové dimenze, lze využı́t modifikovanou funkci boxcount, přı́p. vlastnı́ postupy • Práce s grafikou – oddělit pravý a levý klik (jak?), správa objektů a jejich překreslovánı́ (možnost volit, co vpředu a co vzadu, vrstvy) • V okně Modification opravit volbu Apply to copy • Využı́t Parameter Sweep z IFSLimiteru a napojit optimalizátor pro hledánı́ koláže dle Db , obsahu a obvodu • Upravit operace nad polygony, umožnit výpis vhodný pro řešič dutinového modelu a rojovou optimalizaci 37 Kapitola 4 Numerické metody ” All models are wrong. Some models are useful.“ — William Edwards Deming Simulace a vývoj antén je v součastnosti bez numerických metod prakticky nemyslitelný. S prudkým nárůstem výkonu počı́tačů v 80. a 90. letech se rozvı́jı́ i jednotlivé metody a hlavně software, který jich využı́vá. Tak dostáváme efektivnı́ nástroje, umožňujı́cı́ názorně nahlédnout fyzikálnı́ principy jednotlivých struktur. Tato kapitola odkazuje na teorii povětšinou ukrytou v jádrech simulátorů pole a jako takovou bychom ji snad mohli i vynechat. Protože jsou ovšem naše požadavky dosti specifické, je vhodné znát možnosti i omezenı́ metod, které se nabı́zejı́. Pro potřeby analýzy mikropáskových antén existuje mnoho různých přı́stupů využitelných k simulaci elektromagnetického pole. Obecně platı́, že složitějšı́ metoda dává přesnějšı́ výsledky, ovšem za cenu delšı́ho času výpočtu a většı́ch nároků na operačnı́ pamět’. Proto je třeba nalézt optimálnı́ poměr mezi navzájem ambivalentnı́mi požadavky přesnosti a rychlosti. Metody lze v prvnı́m přiblı́ženı́ rozdělit na tzv. analytické a numerické. Dı́ky četným zjednodušenı́m jsou analytické metody rychlé a jednoduché na implementaci. Prakticky nejsou využı́vány pro komerčnı́ software. Analytický přı́stup využı́vá dutinový model (dále např. model vedenı́, [11]). Oproti tomu numerické metody pracujı́ bez počátečnı́ch zjednodušenı́ a často nejsou omezeny tvarem ani složenı́m struktury antény. Poskytujı́ přesnějšı́ výsledky. Pro jejich efektivnı́ využı́vánı́ je nutný kvalitnı́ software i hardware. Mezi nejznámějšı́ patřı́ metoda konečných prvků (FEM), momentová metoda (MoM) a metoda konečných diferencı́ (FDTD). Tyto metody lze dále dělit podle domény, ve které se hledá řešenı́ na časové a frekvenčnı́. Prvně jmenované umožňujı́ nalézt řešenı́ pro libovolný časový průběh. Druhý typ strukturu analyzuje pro soubor diskrétnı́ch frekvencı́. Nutným průběhem je tedy harmonický ustálený stav. Mezi oběma doménami lze přecházet pomocı́ (diskrétnı́) Fourierovy transformace. 38 Nástroj pro modálnı́ analýzu FPA 4.1 4.1. Mikropáskové patch antény Mikropáskové patch antény Tato tematika je velice široká a skvěle ji pokrývá dostupná literatura, uveden bude jen zkrácený extrakt. Přı́padné podrobnosti lze nalézt v [11], [27], [28], [30], [31], [32]. Obrázek 4.1: Mikropásková patch anténa Zářič může zastoupit v principu jakýkoliv celistvý planárnı́ (2D) útvar. Ten je umı́stěn z jedné strany dielektrického substrátu. Z druhé strany je umı́stěna zemnı́ rovina a to po celém povrchu substrátu, viz obr. 4.1. Poznamenejme, že funkci substrátu často plnı́ vzduch (r = 1.00059). Umı́stı́me-li vhodně napájenı́, vybudı́ se bud’to (a) stojatá proudová vlna, nebo (b) postupná proudová vlna. Zde se věnujeme pouze možnosti (a), o postupné proudové vlně vı́ce např. v [27]. Rovněž metody napájenı́ odbudeme pouze výčtem, nebot’ patche řešı́me modálně, tedy bez připojeného buzenı́. Znalost všech možnostı́ je však zejm. ve spojitosti s návrhem v CST vhodná. Využı́vané techniky jsou: • mikropáskové vedenı́ • koaxiálnı́ • vazebnı́ štěrbina • otevřený konec vedenı́ • L-probe (použitelné i pro vyššı́ substráty). 39 Nástroj pro modálnı́ analýzu FPA 4.1. Mikropáskové patch antény Podrobněji o napájenı́ v [30]. Samotný mechanismus vyzařovánı́ je zpracován v oddı́lech 4.3 a 6.1-6.4. Parametry IFS patchů Následuje krátký přehled parametrů typických pro patchové antény uváděné v literatuře. Nı́že uvedené hodnoty jsou sjednoceny podle [11]. Rozsah pracovnı́ frekvence se pohybuje od stovek MHz do stovek GHz, přičemž šı́řka pásma je velice úzká, typicky 2-6% v oblasti GHz. Důvodem malé šı́řky pásma je vysoký činitel jakosti běžných zářičů pohybujı́cı́ se v řádu několika desı́tek. Použitı́m vhodného tvaru patche, tvaru a druhu substrátu a napájenı́ je možné dosáhnout až 30 i vı́ce procent pro středně vysoké kmitočty (patch výše nad zemnı́ rovinnou, L-probe napájenı́). Směrovost můžeme očekávat v rozmezı́ 5 až 10 dBi, pro vyššı́ substráty s nižšı́ relativnı́ permitivitou i vı́ce. Vyššı́ směrovosti dosáhneme i provozem antény na modech s vysoce lokalizovanými proudy. Vyzařovacı́ účinnost antény se pohybuje kolem 80 procent i vı́ce (údaj v přı́padě zcela přizpůsobeného napájenı́), celková účinnost je potom od 40-50 do maximálně 90 procent. Pokud je relativnı́ permitivita substrátu většı́ než jedna (vzduchová a pěnová dielektrika), může na rozhranı́ substrát–vzduch docházet ke vzniku povrchových vln. Ty zhoršujı́ impendančnı́ i vyzařovacı́ vlastnosti a snižujı́ účinnost antény, což je nežádoucı́. V této práci analyzujeme pouze tvar patche, nikoliv dielektrikum, které předpokládáme vzduchové. Problematická je též výkonová zatı́žitelnost, pohybuje se kolem max. 100W. Impendance zářiče klesá od hodnot 100 - 250Ω až po teoretickou hodnotu 0Ω. Vlastnosti patch antén Na závěr jsou shrnuty vlastnosti ovlivňujı́cı́ zásadnı́m způsobem nasazenı́ mikropáskových patch antén v konkrétnı́ aplikaci. Obsáhleji se některým z výhod věnuje publikace [27]. 1. Výhody • nı́zký profil (zemnı́ rovina, substrát, motiv) • nı́zká hmotnost • jednoduchá a levná výroba (tištěné obvody) • mechanická robustnost • snadná integrace do anténnı́ch řad • rychlý návrh podle požadavků • mohou být vzájemně integrovány do obvodů • možnost přizpůsobit anténu samotným napájenı́m • plochou se může přizpůsobit okolı́ 40 Nástroj pro modálnı́ analýzu FPA 4.2. Metoda momentů Fraktálnı́ patch antény majı́ navı́c následujı́cı́ výhody: • uzpůsobenı́ pro vı́cepásmovou činnost • nižšı́ rezonančnı́ frekvence • možnost simulace anténnı́ řady (lokalizace proudů) • mı́rné snı́ženı́ rozměrů 2. Nevýhody • relativně malá šı́řka pásma (velký činitel jakosti Q) • omezený výkon • výkonějšı́ anténnı́ pole vyžadujı́ složitý systém napájenı́ • na vyššı́ch frekvencı́ch je potřeba velmi kvalitnı́ (drahý) substrát • nelze použı́t unifikované napájenı́ pro všechny typy antén 3. Podle použitı́ • vyzařovánı́ pouze do jedné poloroviny (přı́tomnost zemnı́ roviny) 4.2 Metoda momentů Jedná se o široce rozšı́řenou techniku, umožňujı́cı́ řešit diferenciálnı́, integrálnı́, přı́padně integro-diferenciálnı́ rovnice. Do této oblasti, přirozeně, spadajı́ i problémy spojené s elektromagnetickým polem. Základnı́ myšlenka metody MoM je velice jednoduchá a spočı́vá v linearizaci (převodu na lineárnı́ algebraické rovnice) daného problému. Mějme obecně rovnici1 : L(f ) = g, (4.1) kde L je libovolný lineárnı́ operátor a g je zdrojová funkce (buzenı́ systému). Úkolem je nalézt funkci f splňujı́cı́ zadané okrajové podmı́nky, a to inverzı́ operátoru L: f = L−1 g. (4.2) Hledanou funkci nynı́ rozložme do řady tzv. bázových funkcı́ fn a k nim definujme váhovacı́ (testovacı́) funkce wm : f= ∞ X αn fn , (4.3) n=1 1 Postupujeme zde podle [12], nicméně notaci volı́me (s ohledem na návaznost dalšı́ch kapitol) vlastnı́. 41 Nástroj pro modálnı́ analýzu FPA 4.2. Metoda momentů koeficienty αn neznáme. Počet členů řady je třeba omezit na konečné čı́slo N , dále můžeme před f z (4.3) dosadit operátor L jako v (4.1). Po uváženı́ linearity sumy vůči operátoru L pı́šeme: N X αn L(fn ) + = g, (4.4) n=1 odpovı́dá chybě způsobené konečným počtem členů řady. Chybu dále neuvádı́me, nebot’ počet členů N bývá zpravidla dostatečný. Nynı́ definujme skalárnı́ součin dvou funkcı́ na oblasti Ω (objem, plocha, křivka): Z hf, gi = f · g dΩ. (4.5) Ω Tento součin je lineárnı́, komutativnı́ a definuje mı́ru a metriku (tyto vlastnosti jsou nezbytné pro závěrečnou úpravu výrazu). Vynásobı́me-li nynı́ obě strany rovnice (4.4) N testovacı́mi funkcemi wm , dostaneme: N X αn wm , L(fn ) = hwm , gi, m = 1, 2, 3, . . . , N. (4.6) n=1 Bázové funkce jsou de-facto vzory2 , kterými jsou vyplňovány neznámé funkce; mı́ra Obrázek 4.2: Jednorozměrné bázové funkce (a-c) a jejich uplatněnı́ (d) vyplněnı́ odpovı́dá velikosti váhovacı́ funkce. Na problém lze nahlı́žet jako na analogii k Fourierovým řadám, což umocňuje i obr. 4.2. Doplňme, že jako bázové funkce se použı́vajı́ i sofistikovanějšı́ funkce jako jsou čebyševovské polynomy apod. Dělı́me je na dvě skupiny: • Definované na subintervalech definičnı́ho oboru funkce f • Definované na celé oblasti Ω Na základě vztahu (4.6) dostáváme ze spojitého integro-diferenciálnı́ho problému soustavu N algebraických lineárnı́ch rovnic pro koeficienty αn . Využijme možnosti 2 Splňujı́cı́ celou řadu kritériı́: jsou po částech spojité (obdélnı́k, sinus) / jsou všude spojité (F. řada), jsou lineárně nezávislé, navzájem ortogonálnı́, normované . . . Protože tento text nenı́ zaměřen na výběr bázových funkcı́, specifičtějšı́ vlastnosti těchto funkcı́ vynecháme. 42 Nástroj pro modálnı́ analýzu FPA 4.2. Metoda momentů kompaktnı́ho maticového zápisu: A |{z} α = g , |{z} |{z} (4.7) Amn = hwm , L(fn )i. (4.8) [Amn ] [αn ] [gm ] kde Pokud je matice regulárnı́3 , lze α nalézt inverzı́: α = L−1 g, (4.9) f = [fn ][Lmn ]−1 [gm ]. (4.10) tedy Řešenı́ úlohy závisı́ pouze na parametrech N , fn a wm . Zvolı́me-li wm = fn , dostáváme tzv. Galerkinovu metodu. Ta je v podstatě analogiı́ řešenı́ FEM, které bude představeno dále. Při volbě N = ∞ nezávisı́ na výběru fn a wm , viz [12]. Pro využitı́ MoM v elektromagnetickém poli je vhodné se seznámit s Greenovými funkcemi, tvořı́ totiž pomyslnou styčnou plochu mezi elektromagnetismem a metodou momentů4 . Greenovy funkce Greenova funkce je odezvou systému na zdroj jednotkové amplitudy. Toho můžeme využı́t při řešenı́ rovnice (4.22), která jinak neobsahuje buzenı́. Z rovnice (4.1) tedy pı́šeme: L G(r, r0 ) = δ(r − r0 ), (4.11) r ∼ (x, y) je mı́sto pozorovánı́, r0 ∼ (x0 , y0 ) je zdroj Diracova impulsu a L vyhovuje rovnici (4.24). Hledaná odezva systému je potom5 : Z f (r) = G(r, r0 )g(r0 ) dΩ. (4.12) Ω Pokud hledáme Greenovu funkci, lze využı́t rozkladu v řadu vlastnı́ch funkcı́ ψn : G(r, r0 ) = ∞ X An (r0 )ψn (r), (4.13) n=1 kde An (r0 ) = 3 ψn (r0 ) λn (4.14) Tj. det(A) 6= 0, matice nenı́ singulárnı́. A nejenom jı́. R R 5 LG(r, r0 )g(r0 ) dr0 = δ(r − r0 )g(r0 ) dr0 = g(r), potom: Lf (r) = R Platı́ 0 totiž0 následujı́cı́: LG(r, r )g(r ) dr0 a z předpokladu linearity operátoru L a jeho nezávislosti na integračnı́ proměnné ho můžeme vytknout a zkrátit. 4 43 Nástroj pro modálnı́ analýzu FPA 4.3. Dutinový model pro vlastnı́ čı́sla λn . Pak platı́: G(r, r0 ) = ∞ X ψn (r0 )ψn (r) n=1 λn . (4.15) Zobecněnı́ tohoto problému se nazývá Fredholmova teorie. 4.3 Dutinový model Dutinový model (Cavity Model, CM) představuje jeden z možných aproximativnı́ch přı́stupů k patchovým antenám. Jedná se o modálnı́ metodu, která popisuje anténu jako dutinu obklopenou na okraji dokonalou magnetickou (PMC) a ze spodu a ze zhora dokonalou elektrickou (PEC) okrajovou podmı́nkou, viz obr. 4.3. Matematicky lze tyto podmı́nky vyjádřit následovně: E × z = 0, H.z = 0; pro z = 0, z = h (4.16) H × n = 0, E.n = 0; na hranici antény. (4.17) Obrázek 4.3: Hraničnı́ podmı́nky pro řešenı́ patche ∂E Vztah pro dokonalou magnetickou stěnu ∂nz,n = 0 je znám jako Neumannova okrajová podmı́nka. Malá výška antény (h λ) umožňuje uvnitř dutiny zanedbat rozměr z (∂/∂ z = 0), tedy: Ex = 0, Ey = 0, Hz = 0 . (4.18) Tak jsou eliminovány všechny složky kromě složek Ez , Hx a Hy . Patch jsme redukovali na dvourozměrnou dutinu ohraničenou PMC. Dı́ky tomu můžeme očekávat plošné proudové rozloženı́, čili TM módy a také vertikálnı́ elektrické pole6 . Pro zbývajı́cı́ složky platı́7 : ∂Hy ∂Hx jωEz = − , (4.19) ∂x ∂y 6 Jak bude ukázáno dále, právě toto pole vypočı́táme pomocı́ FEM. Proudové rozloženı́ zı́skáme na základě Maxwellových rovnic, konkrétně dalšı́ úpravou rovnic (4.20) a (4.21). 7 Uvažujeme harmonicky ustálený stav (HUS) nahrazujı́cı́ časové derivace. 44 Nástroj pro modálnı́ analýzu FPA 4.3. Dutinový model ∂Ez ∂y (4.20) ∂Ez . ∂x (4.21) −jωµHx = a jωµHy = Z těchto třı́ rovnic lze odvodit Helmholtzovu vlnovou rovnici pro složku Ez : ∇t + kn2 Ez,n = 0, (4.22) kde kn2 jsou vlastnı́ čı́sla jednoznačně odpovı́dajı́cı́ rezonančnı́m frekvencı́m frn , (n ∈ {1, 2, 3 . . . ∞}) a Ez,n jsou vlastnı́ funkce mapujı́cı́ rozloženı́ Ez v dutině Ω. Nula na pravé straně rovnice indikuje stav bez buzenı́, tedy modálnı́ řešenı́. Ve shodě s předchozı́ částı́ můžeme přepsat rovnici (4.22) do tvaru: Lψn = λn ψn , (4.23) L = ∇t + kn2 . (4.24) kde operátor L je roven: Obrázek 4.4: Prvnı́ 3 módy obdélnı́kového patche (nahoře: proudová hustota J, dole: elektrická intenzita Ez ) Problém formulovaný s pomocı́ rovnic (4.22)-(4.24) řešı́me pomocı́ FEM (následujı́ část kapitoly). Výsledkem je diskrétnı́ spektrum vlastnı́ch funkcı́ 45 Nástroj pro modálnı́ analýzu FPA 4.4. Metoda konečných prvků ψn = Ez,n , popisujı́cı́ch elektrické pole v dutině a vlastnı́ch čı́sel. Rezonančnı́ frekvence lze vyčı́slit na základě obecné podmı́nky rezonance: kde k = kn2 = k 2 , (4.25) λn = kn2 . (4.26) p −jωµ(δ + jω) a Uvažujeme-li bezeztrátový magnetický substrát, je kn2 = ω 2 µ0 . S pomocı́ c0 = √10 µ0 a ω = 2πfr dostáváme: r c0 λn frn = . (4.27) 2π r . Index n odpovı́dá n-tému módu struktury, c0 = 3.108 ms-1 je rychlost světla ve vakuu. Výpočet povrchových proudů je uveden v kapitole 6, protože až tam proudy skutečně potřebujeme. Obrázek 4.4 ukazuje módy T M10 , T M01 a T M11 vzorové struktury. CM je zatı́žen relativně velkou chybou ve srovnánı́ s charakteristickými mody, přı́padně řešenı́m v CST-MWS. Chybu budeme diskutovat dále v praktické části. Tato metoda umožňuje velice rychlé, názorné a pro nı́zké motivy uspokojivě přesné modálnı́ řešenı́ daného zářiče. Dı́ky tomu můžeme využı́t optimalizace pro nalezenı́ vhodnějšı́ho tvaru patche (viz dalšı́ kapitoly věnujı́cı́ se PSO). 4.4 Metoda konečných prvků CM představený výše je pouze přibližným modelem popisujı́cı́m patchovou anténu. Popisuje okrajové podmı́nky a zjednodušuje řešenı́ Helmholtzovy rovnice. Stále se však jedná o diferenciálnı́ rovnici, a proto musı́me pro řešenı́ úlohy využı́t vhodnou numerickou metodu. MoM je přesná, avšak velice robustnı́ a pomalá, vystačı́me si zde proto s metodou konečných prvků/elementů (Finite Element Method, FEM). Navažme na MoM a CM s ukázkou řešenı́. Helmholtzovu rovnici můžeme obecně napsat jako (4.23) nebo též obecněji: L(ul ) = g, (4.28) kde L je diferenciálnı́ operátor, g budı́cı́ funkce a ul je hledaná veličina (funkce). Vycházı́me nejčastěji v Ritzovy nebo Galerkinovy metody8 . Prvnı́ z metod je variačnı́, hledáme minimum daného funkcionálu9 ; druhá metoda patřı́ do třı́dy vážených reziduı́, hledáme funkci ul : X (l) uel = Ui ϕi , (4.29) i 8 Navazujeme zde na část 4.1, notace je upravena ve shodě s Comsol Multiphysics, [37]. Funcionál lze definovat na základě Thomsonova principu: Veličiny pole majı́ takové hodnoty, aby byla splněna podmı́nka minimálnı́ho rozdı́lu mezi energiı́ potřebnou na vytvořenı́ zdrojů tohoto pole. Je to tehdy, je-li funcionál nulový, [12]. 9 46 Nástroj pro modálnı́ analýzu FPA 4.4. Metoda konečných prvků (l) ϕi jsou již diskutované bázové funkce pro uel (pro MoM značeny fn ), U je hledaný vektor se stupněm volnosti Ui (v Comsolu tzv. Degree of Freedom, DOF). Pro funkci uel , která aproximuje přesné řešenı́ platı́ v kontextu (4.28) a (4.29): ξ = L(uel ) − g, vážené reziduum na dané oblasti Ω je tedy: ZZ wξdΩ. R= (4.30) (4.31) Ω Pro většinu úloh je nalezenı́ aproximačnı́ funkce uel definované na celé oblasti Ω Obrázek 4.5: Původnı́ funkce (a) a jejı́ lineárnı́ aproximace (b) obtı́žné, či přı́mo nemožné. Na tomto mı́stě vstupuje do FEM diskretizace. S jejı́ pomocı́ rozdělı́me řešenou oblast na mnoho malých podoblastı́ (elements). V každé podoblasti potom aproximujeme řešenı́ jednoduchou funkcı́ (kupřı́kladu lineárnı́, pomocı́ úseček). Napřı́klad řešenı́ funkce na obrázku 4.5 vlevo (ul = 750x − 250x2 + 15x3 ) by bylo na celé oblasti Ω ∈ h0, 10i obtı́žné, nebot’ bychom museli najı́t rozvoj bázových funkcı́ ve formátu: 3 X uel = ci xi = c1 x + c2 x2 + c3 x3 . (4.32) i=1 V tomto přı́padě je lepšı́ postupná linearizace (uel = a + bx) po jednotlivých elementech (obr. 4.5 vpravo). V praxi je vytvořenı́ meshe (diskretizačnı́ sı́tě) zpravidla rozděleno na dvě části: 1. Inicializace sı́tě (funkce meshinit v Comsolu) vytvořı́ počátečnı́ pokrytı́ 2. Zahuštěnı́ (funkce meshrefine) / jiné úpravy (lokálnı́ zahuštěnı́, vymazánı́ části sı́tě apod.) 47 Nástroj pro modálnı́ analýzu FPA 4.4. Metoda konečných prvků Obrázek 4.6: Triangularnı́, quadrilateralnı́ sı́t’ a kvalita sı́tě (tmavá je nejlepšı́) V prvnı́m kroku vybı́ráme z možných typů elementů (viz obr. 4.6 vlevo a uprostřed), v druhém hlı́dáme jakost a dostatečnou jemnost/kvalitu sı́tě (obr. 4.6 vpravo). Hodnoty hledané funkce jsou nalezeny pouze v uzlech (nodes) diskretizované struktury, mezi nimy je úloha aproximována dodatečně. Aproximujı́cı́ funkce Φ je volena s ohledem na počet uzlů jednoho elementu. V přı́padě trojúhelnı́kového elementu postačuje polynom 3. stupně (Φ = a1 + a2 x + a3 y), v přı́padě obdélnı́hového prvku potřebujeme polynom 4. stupně (Φ = a1 + a2 x + a3 xy + a4 y). Takto lze počet uzlů dále zvyšovat (přičemž tvar polynomu lze odvodit z Pascalova trojúhelnı́ka), nicméně pro 2D úlohy se zpravidla využı́vá trojúhelnı́ková sı́t’. Tak dostáváme soustavu rovnic, [95]: Φ1 = a1 + a2 x1 + a3 y1 Φ2 = a1 + a2 x2 + a3 y2 (4.33) Φ3 = a1 + a2 x3 + a3 y3 Jemnost sı́tě je vždy kompromisem mezi hardwarovými nároky (obsazenı́ paměti, délka výpočtu) a přesnostı́ výsledného řešenı́. Elementy se nesmı́ vzájemně překrývat, ani mezi nimi nesmı́ vznikat mezery. Logickým požadavkem je také podobný tvar jednotlivých elementů, co nejvı́ce se blı́žı́cı́ rovnostranným trojúhelnı́kům10 . V mı́stech prudkých změn pole je vhodné volit menšı́ elementy. Kvalita sı́tě a způsoby jejı́ho hodnocenı́ nás budou zajı́mat v následujı́cı́ kapitole. Minimalizovaný funkcionál má rozměr energie, jeho hodnota na celé oblasti je tedy součtem funkcionálů jednotlivých elementů: F(Φ) = E X Fe (Φe ), (4.34) e=1 kde E je celkový počet elementů a Fe (Φe ) je funkcionál elementu. Vztah (4.34) je poslednı́m zcela obecným vztahem, dále se již problém větvı́ podle typu řešenı́. V 10 Podle [12] chyba vzrůstá nepřı́mo úměrně sinu nejmenšı́ho vnitřnı́ho úhlu elementu. 48 Nástroj pro modálnı́ analýzu FPA 4.5. Teorie charakteristických modů našem přı́padě využı́váme tzv. The Eigenvalue Solver Algorithm, v Comsolu potom řešič (solver ) femeig. Způsob jakým se výsledná matice vyplňuje a následně řešı́ se lišı́ podle typu softwaru, tyto techniky tedy vynecháme. Pro implementaci byl vybrán Comsol Multiphysics. Umožňuje řešenı́ úloh z oblastı́ akustiky, tepla, elektromagnetismu, mechaniky a dalšı́ch oblastı́ s využitı́m předdefinovaných modulů11 . Využı́vá Lagrangeův variačnı́ princip12 . Funkce jsou psány m-jazykem jako funce Matlabu13 , čehož lze využı́vat pro přı́padné úpravy. Navı́c lze Matlab a Comsol propojit a vše řı́dit z Matlabu. 4.5 Teorie charakteristických modů Základnı́m předpokladem této metody je existence dokonale vodivého motivu (PEC) ve volném prostoru bez napájenı́. Tomuto motivu potom můžeme jednoznačně přiřadit množinu módů (z vypočteného spektra vlastnı́ch čı́sel), které jsou dány pouze jeho rozměry. Po připojenı́ napájenı́ docházı́ ke kolapsu vlnové funkce, proto se vybudı́ jen určité módy, vyhovujı́cı́ buzenı́. Konečné rozloženı́ pole na struktuře je potom dáno superpozicı́ takto vybuzených módů. Vyjdeme z poznatku, že pro tečné pole elektrické intenzity na dokonalém vodiči musı́ platit: s i tot Etot (4.35) tan = Etan + Etan ∧ Etan = 0, index s značı́ vyzářené pole, index i dopadajı́cı́ pole. Protože vyzářené pole Estan je závislé na proudové hustotě J, zavádı́me opět operátor L: L(J) = Estan , popisujı́cı́ integro-diferenciálnı́ závislost. A tedy ([81]): i h = 0. L(J) − Ei tan (4.36) (4.37) Rovnice (4.37) je tzv. EFIE (Electric field integral equation), viz [29]. Struktura operátoru vyhovuje rovnicı́m L(J) = jωA(J) + gradF(J), ZZ A(J) = µ J(r)G(r, r0 ) dΩ (4.38) (4.39) Ω a ZZ 1 F(J) = − gradJ(r0 )G(r, r0 ) dΩ jω Ω 11 (4.40) Podle vybraného modelu je definována jedna PDE: Laplaceova / Poissonova / Helmholtzova / tepelná / vlnová / Schrödingerova / difuznı́ rovnice. 12 Postup minimalizace funkcionálu – tj. potenciálnı́ energie, volných nábojů (výše uvedené Thomsonovo pravidlo je aplikacı́ Lagrangeova principu v oblasti elektromagnetismu) apod. 13 Comsol, původnı́m názvem Femlab byl součástı́ Matlabu. Od nové verze Comsolu 3.5 je namı́sto Comsol Scriptu preferován Matlab Editor. 49 Nástroj pro modálnı́ analýzu FPA 4.5. Teorie charakteristických modů Potenciály A a F fyzikálně nemajı́ žádný smysl a nelze je nijak intepretovat, jde pouze o identity zjednodušujı́cı́ řešenı́ MR. Potenciály budeme potřebovat zejm. v kapitole 6, kde jsou řádně zavedeny. Tvar Greenovy funkce v rovnicı́ch (4.39) a (4.40) pro přı́pad bezeztrátového materiálu ve volném prostoru je14 : 0 G(r, r0 ) = e−jk|r−r | . 4π|r − r0 | (4.41) Bližšı́m pohledem na (4.36) lze odvodit, že operátor L má charakter impendance. Tu lze rozložit: Z(J) = R(J) + jX(J). (4.42) Variačnı́ řešenı́ Na celý problém můžeme nahlı́žet jako na variačnı́ úlohu s cı́lem minimalizovat vhodný funkcionál. K tomu nám posloužı́ upravený vztah pro jednotlivé složky impedance. Funcionál pak pı́šeme ve tvaru: F(J) = hJ, XJi . hJ, RJi (4.43) Vztah vyjadřuje poměr mezi nahromaděnou a vyzářenou energiı́. Zda budeme minimalizovat složku hJ, XJi nebo hJ, RJi bude jasné z požadavku na typ rezonance. Ty dělı́me na: 1. Internı́ rezonance – rezonance uvnitř dutinového rezonátoru. Požadujeme 1 maximum akumulované energie, minimum vyzářené. Funcionál: FI (J) = F (J) a tomu přı́slušná Eulerova rovnice, [65]: R(Jn ) = λn X(Jn ). (4.44) 2. Externı́ rezonance – rezonance anténnı́ch struktur. Požadujeme maximum vyzářené energie, tj. FE (J) = F(J) a X(Jn ) = λn R(Jn ). Nalezené charakteristické proudy Jn majı́ následujı́cı́ vlastnosti: • tvořı́ ortogonálnı́ systém, • závisı́ pouze na tvaru patche, • na dané oblasti Ω jsou reálné, • majı́ stejnou fázi. 14 Lze odvodit z vlnové rovnice ∆A + k2 A = −µ0 J. 50 (4.45) Nástroj pro modálnı́ analýzu FPA 4.5. Teorie charakteristických modů Hodnota vlastnı́ho čı́sla udává charakter daného módu: = 0 n-tý mód je v rezonanci < 0 n-tý mód má kapacitnı́ charakter λn > 0 n-tý mód má induktivnı́ charakter (4.46) Vlastnı́ čı́sla jsou často nahrazována tzv. charakteristickým úhlem: αn = 180° − tan−1 (λn ). (4.47) Průběh αn hodnotou 180°(rezonancı́) je strmějšı́ než u λn , proto je toto zobrazenı́ vhodnějšı́. Řešenı́ pro charakteristické úhly je na obr. 4.7. Obrázek 4.7: Typické hodnoty charakteristického úhlu, zdroj: [85] Modálnı́ řešenı́ Podle [65] platı́ následujı́cı́ ortogonality: ∗ Jm , R(Jn ) = δmn ∗ Jm , X(Jn ) = λn δmn (4.48) (4.49) δmn je Kroneckerovo delta15 . Pro celou impendanci pak platı́: ∗ Jm , Z(Jn ) = (1 + jλn )δmn . (4.50) Dále zaved’me algebraický skalárnı́ součin (komplexnı́ transpozici): ∗ B, C = B C , (4.51) 15 δmn = 1 0 je-li m = n , častý zápis pro jednotkovou matici je též δmn = [m = n]. je-li m = 6 n 51 Nástroj pro modálnı́ analýzu FPA 4.5. Teorie charakteristických modů tento vztah je analogiı́ k (4.5) a modálnı́ superpozici charakteristických proudů: X J= αn J n , (4.52) n což odpovı́dá (4.3). Vztahy (4.37) a (4.52) můžeme upravit následovně: i hX = 0. αn L(Jn ) − Ei tan n Aplikacı́ (4.51) na (4.53) zı́skáme: E D E X D αn Jm , Z(Jn ) − Jm , Ei = 0 (4.53) (4.54) n Užitı́m (4.50) na (4.54) se podle [85] problém redukuje na αn (1 + jλn ) = Jn , Ei (4.55) Produkt hJn , Ei i se nazývá excitačnı́ koeficient a často se značı́ jako Vin . Platı́ také: ZZ n Vi = Jn Ei dΩ (4.56) Ω Po připojenı́ napájenı́ se vybudı́ jen určitá množina módů, ostatnı́ nikoliv. Výsledné pole je superpozicı́ vybuzených módů. Tak se dostáváme k závěrečnému vztahu pro celkový proud, parametr Vin zapı́ná“ jednotlivé módy: ” X V n Jn i J= . (4.57) 1 + jλn n Dále můžeme odvodit vztahy s vlastnı́mi poli En a Hn , to však již překračuje rozsah této práce. Uplatněnı́ v projektu Na katedře elektromagnetického pole byl vyvinut Ing. Pavlem Hamouzem TCM simulátor, představený v diplomové práci [81]. Určenı́ impendančnı́ matice a tomu předcházejı́cı́ diskretizace (využı́vá RWG bázové funkce16 ) vycházı́ z práce S. N. Marakova [33]. V době vzniku DP nebylo možné tento software využı́vat. Předně čas potřebný na výpočet patche je v porovnánı́ s CM přı́liš velký, dále bychom pro účely optimalizace museli zajistit ošetřenı́ některých stavů, které v CM řešı́me s pomocı́ Comsolu17 . Využitı́ tohoto nástroje je pro jeho přesnost a schopnost analyzovat i komplikované struktury optimálnı́ a je s nı́m, po překonánı́ uvedených obtı́žı́ počı́táno namı́sto CM. 16 Rao-Wilton-Glisson; viz S.M.Rao, D.R.Wilton, A.W.Glisson: Electromagnetic scattering by sufraces of arbitrary shape, IEEE Trans. AP, 30(3):pp.409-418, 1982, přı́padně přı́mo [51]. 17 Celistvost patche, pořadı́ módů, . . . 52 Kapitola 5 EvalInFem Implementace dutinového modelu je komplikována zejm. faktem, že vše musı́ být naprogramováno zcela obecně. Také krizové situace musı́ program vyřešit sám, vč. navrácenı́ adekvátnı́ch hodnot. Tato kapitola rozebı́rá strukturu funkce EvalInFem, určené pro analýzu fraktálnı́ch patch antén. 5.1 Popis, syntaxe Jednotlivé úkoly podrobněji rozebereme v následujı́cı́ch částech. Každá pasáž je pro jednoduchost tvořena jednou nested funkcı́ zanořenou do EvalInFem. Jejich volánı́m lze jednoduše ošetřit chyby a zajistit tak stabilitu programu. Tak můžeme program dále upravovat a rozšiřovat bez narušenı́ jiné sekce. V principu lze jednotlivé úkoly EvalInFem rozdělit do těchto separátnı́ch částı́: 1. Inicializace GUIe 2. Úprava polygonů, velikostı́ 3. Sjednocenı́ a check počtu částı́ 4. Disketizace 5. Nastavenı́ fyziky, CM model 6. Vlastnı́ výpočet 7. Přepočet frekvence, úprava módů 8. Uloženı́, ukončenı́, ošetřenı́ vyjı́mek a chyb Uspořádánı́ respektuje i grafické okno (na obr. 5.1), informujı́cı́ uživatele o jednotlivých operacı́ch. To je vytvořeno při každém volánı́ EvalInFem a nelze ho vypnout před ukončenı́m výpočtu1 . Pokud je řešič součástı́ optimalizace, je okno 1 Thread se může nacházet v jedné z funkcı́ Comsolu, v PSOptimizeru apod. Bez tohoto omezenı́ by se EvalInFem choval nevyzpytatelně. 53 Nástroj pro modálnı́ analýzu FPA 5.1. Popis, syntaxe otevřeno pouze jednou a pro každé dalšı́ volánı́ jsou pouze resetovány údaje, což šetřı́ čas. Obrázek 5.1: EvalInFem (screenshot) Syntaxe Pro obdrženı́ výpisu rezonančnı́ch frekvencı́ jednotlivých módů, použijeme zápis: results = EvalInFem(’stat’,FRC). Parametr ’stat’ je v tomto přı́padě fixnı́ a indikuje statické volánı́ bez inicializace PSO. Využı́váme ho zpravidla pro zjištěnı́ dominantnı́ho módu pevně dané struktury. Pro zı́skánı́ fem proměnné voláme následovně: [results fem] = EvalInFem(’stat’,FRC). Toto volánı́ má velkou výhodu ve zpětném využitı́ Comsolu – fem objekt můžeme importovat z Matlabu do Comsolu a pracovat s výsledkem ručně (grafy, rozloženı́ módů, převod do dxf pro CST apod.). Funkce EvalInFem umožňuje přı́mé spuštěnı́ 54 Nástroj pro modálnı́ analýzu FPA 5.2. Geometrie optimalizace, o které bude pojednáno v dalšı́ch kapitolách, nicméně již zde uved’me, že existujı́ dvě možnosti, jak toho dosáhnout. Optimalizaci lze zahájit volánı́m funkce EvalInFem i PSOptimizer. Elegantnějšı́ je: PSOresults = PSOptimizer(PsoData,’EvalInFem’,ag,it), nebot’ tak jsou volány i všechny ostatnı́ fitness funkce (viz PSO optimalizace). K objektu fem nelze při optimalizaci zı́skat přı́mý přı́stup, ag označuje počet agentů v roji, it určuje počet iteracı́. Lze využı́t i následujı́cı́ přı́kaz: results = EvalInFem(’pso’,PsoData,ag,it). Poznamenejme, že všechny přı́kazy jsou vysvětleny i v nápovědě EvalInFem. Při návrhu EvalInFem jsme vycházeli z instrukcı́ v tutoriálu [63] a z nápovědy Comsolu, která se ovšem programovánı́ v Matlabu přı́liš nevěnuje. Popišme nynı́ jednotlivé kroky řešenı́. Následujı́cı́ části 5.2 a 5.3 přibližujı́ mechanismy EvalInFem a lze je přı́padně přeskočit. 5.2 Geometrie Předpokladem správné funkce EvalInFem je FRC nebo Poly proměnná na vstupu. Pro jejı́ vytvořenı́ lze využı́t AntTool, IFSMaker, můžeme ji definovat i ručně. V přı́padě fraktálnı́ struktury obsahuje pole jednotlivé IFS parametry. Z nich je potřeba vygenerovat fraktál a jednotlivé polygony setřı́dit podle iteracı́, které se majı́ do výsledné koláže započı́tat. Ty potom sjednotit a upravit tak, aby zápisu rozuměl Comsol. Nezbytné je omezenı́ velikosti koláže – máme-li hledat nejmenšı́ strukturu, tedy de-facto nejmenšı́ rezonančnı́ frekvenci, je potřeba zafixovat max. velikost, aby byly výsledky vzájemně porovnatelné. Tato velikost je na řádce 341 nastavena na 10cm. EvalInFem sám zhodnotı́, zda delšı́ hrana je ve směru x nebo y a koláž poměrně zmenšı́/zvětšı́ na tuto velikost. O změně velikosti jsme informovánı́ v sekci polygons grafického okna. Obrázek 5.2: Vypočtená koláž, mesh, dominantnı́ mód a jeho proudové rozloženı́ Součástı́ převodu je i automatické vykreslenı́ analyzované koláže. To je užitečné zejm. ve spojenı́ s PSO, vidı́me ihned jaký tvar koláže je právě řešen. 55 Nástroj pro modálnı́ analýzu FPA 5.3. Mesh, fyzika Upřednostňujeme-li rychlost a zajı́máme se až o výsledek, můžeme tento výpis deaktivovat na řádce 337 funkce2 EvalInFem. Možná vykreslenı́ shrnuje obr. 5.2. Po vypočtenı́ IFS a upravenı́ velikosti následuje sjednocenı́ do stejného (3D) pole, což je pouze operace s maticemi v cellu3 . Dalšı́ část je zajı́mavějšı́ – musı́me převést geometrii do Comsolem akceptovatelného tvaru. Celou proceduru provádı́ nested funkce makeGeomFcn. Postupně zvětšujeme dva string řetězce, které jsou vyhodnoceny funkcı́ eval, následujı́ dalšı́ úpravy a uloženı́ geom objektu do instance fem. Jde o jednu z klı́čových funkcı́ EvalInFem, kterou obyčejně provádı́me pomocı́ zakreslovánı́ v Comsolu. Na závěr je nezbytné otestovat celistvost patche. Počet částı́, z nich je zářič složen zjistı́ funkce flgeomnmr. Pokud je výsledek různý od jedné, končı́ výpočet chybou. 5.3 Mesh, fyzika Ve shodě s výkladem o FEM je nutné povrh pokrýt diskretizačnı́ mřı́žkou. Musı́me dodržet vysokou kvalitu sı́tě, tedy jemnost a pravidelnost, na druhé straně je vhodné pracovat s nejmenšı́m možným počtem elementů. Pro tyto účely sloužı́ v Comsolu odhad velikosti jednotlivých trojúhelnı́čků a jejich kvality: √ 4 3S q= 2 , (5.1) a1 + a22 + a23 kde S je obsah, a1 , a2 a a3 jsou hrany trojúhelnı́ka. Kvalita sı́tě nabývá hodnot qmin ∈ (0, 1), 1 značı́ perfektnı́ sı́t’, které však stěžı́ kdy dosáhneme. Podle literatury je dostačujı́cı́ hodnota qmin = 0.3, je vhodné volit rezervu qmin √ = 0.4. √ Pro rovnostranný trojúhelnı́k je q = 1; pro rovnoramenný se stranami 1, 1.25, 1.25 (výška k ramenům rovna 1) už pouze q = 0.9897. Frekvenci, do které považujeme CM za spolehlivý, lze odvodit i ze vztahu: hmax = λ , 6 (5.2) kde hmax je maximálnı́ délka hrany jakéhokoliv trojúhelnı́ka. Podmı́nku (5.2) jsme zı́skali z dokumentace simulátoru FEKO, [102]. Z předpokládané frekvence dominantnı́ho módu4 zpětně vypočı́táme požadovanou velikost. Tento postup však skýtá několik úskalı́. Zaprvé je tento odhat dosti nepřesný, zadruhé musı́me zjišt’ovat rozměry všech elementů a konečně zatřetı́ nenı́ celý proces snadné naprogramovat. Po zdlouhavých testech byl nalazen 2 Na dalšı́ch řádcı́ch lze nastavit vykreslenı́ meshe (defaultně ne), rozloženı́ elektrického pole nad dutinou (ano) a rozloženı́ proudu (ano). 3 Každé pole cellu odpovı́dá jedné iteraci, tak můžeme jednoduše zařadit ty polygony, které přı́slušı́ do požadovaných iteracı́. 4 Nejnižšı́ frekvenci můžeme s jistou rezervou odhadnout ze znalosti max. rozměru pro λ2 dominantnı́ mód. 56 Nástroj pro modálnı́ analýzu FPA 5.4. Zpracovánı́ výsledků kompromis mezi jemnostı́ sı́tě a rychlostı́ výpočtu, totiž tvorba sı́tě funkcı́ meshinit s parametrem ’Hauto’ = 3. Sı́t’ sice nenı́ dále zjemňována, avšak od počátku na nı́ máme přı́sné nároky. Tak šetřı́me cenný výpočetnı́ čas. Důležité je též nastavenı́ parametru ’Report’ na ’off’, v opačném přı́padě by po každém nameshovánı́ byl proces přerušen oznámenı́m, což by znemožnilo plynulou optimalizaci. Ukazuje se, že počet elementů (narozdı́l od jejich kvality) nemá na přesnost řešenı́ zásadnějšı́ vliv. Kvalitu zjistı́me pomocı́ funkce meshqual, přičemž je vhodné se zajı́mat o průměrnou i minimálnı́ kvalitu na celé ploše koláže. Musı́me tedy znát i počet elementů, toho docı́lı́me přı́kazem length(fem.mesh.t). Celkový počet elementů je spolu s průměrnou a minimálnı́ kvalitou sı́tě vypsán v sekci mesh v GUI. V dalšı́m kroku nastavujeme podmı́nky řešenı́, tj. typ řešenı́ (InPlaneWaves), modul (RF), typ analýzy (eigen), hraničnı́ podmı́nku pro všechny hrany (H0, navı́c všechny bnd.ind = 1), systém jednotek (SI) a dalšı́ parametry5 . Nynı́ lze přistoupit k vlastnı́mu řešenı́ struktury. To provádı́me pomocı́ řešiče femeig s nastavenı́m hledané veličiny a počtem vlastnı́ch čı́sel (=nalezených módů), které majı́ být nalezeny. Vlastnı́ čı́sla jsou uložena do objektu fem.sol, odkud je jednoduše zı́skáme pro dalšı́ úpravy. 5.4 Zpracovánı́ výsledků Vypočtená vlastnı́ čı́sla nynı́ převedeme na rezonančnı́ frekvence daných módů. Využijeme následujı́cı́ho vztahu: fmin (i) = |fem.sol.lambda(i)| 2π (5.3) Obrázek 5.3: Nesmyslné řešenı́ (vlevo) a dominantnı́ mód struktury (vpravo) Po převodu na frekvenci se však často setkáváme s tzv. nesmyslnými módy (obr. 5.3). Tato řešenı́ nemajı́ žádné fyzikálnı́ opodstatněnı́. Navı́c v přı́padě optimalizace 5 Podařilo se je zjistit po odsimulovánı́ vzorového přı́kladu v Comsolu a jeho uloženı́ jako mfile. Část kódu musı́ respektovat proměnlivý počet hran. 57 Nástroj pro modálnı́ analýzu FPA 5.4. Zpracovánı́ výsledků hrozı́, že takový mód bude vyhodnocen jako dominantnı́. Jeho (velice malá) hodnota rezonančnı́ frekvence určı́ nové globálnı́ minimum a celé hejno bude konvergovat k této zcela nesmyslné hodnotě. Všechna taková řešenı́ předcházejı́cı́ skutečnému dominantnı́mu módu musı́me efektivně odstranit. To provádı́me ve dvou krocı́ch. Nejprve smažeme všechny módy s nulovou frekvencı́, potom i takové, které dosahujı́ pouze 1% rezonančnı́ frekvence módu následujı́cı́ho. Nesmyslné módy majı́ většinou nenulovou reálnou část vlastnı́ho čı́sla, zatı́mco všechny ostatnı́ módy majı́ nenulovou pouze imaginárnı́ část. Ta nabývá zpravidla záporných, extrémně vysokých hodnot. Obrázek 5.4: Přı́klad duplicitnı́ch módů Na dalšı́ obtı́že narážı́me v souvislosti s duplicitnı́mi módy. Několik jich zobrazuje obrázek 5.4. Všechna tři řešenı́ jsou správná, ukazujı́ 5.,6. a 7. nalezený mód. Na prvnı́ pohled je však jasné, že jde o stejné rozloženı́ pole, pouze jinak orientované. Je to dáno pravděpodobně malými odchylkami v diskretizačnı́ mřı́ži, čı́mž se struktura stává mı́rně nesymetrickou. Poznávacı́m znamenı́m takových módů jsou blı́zké rezonančnı́ frekvence. Na druhou stranu blı́zké frekvence mohou mı́t i dva geometricky velice rozdı́lné módy, nemůžeme tedy toto tvrzenı́ využı́t k eliminaci duplicit. Řešenı́ je potřeba hledat přı́mo v rozboru daného rozloženı́ pole. Převedenı́m módů na bitmapy, jejich pomyslným rozdělenı́m na pole a hledánı́m shodných hustot určitých barev bychom mohli duplicitnı́ módy odhalit. Tento postup zatı́m nebyl testován, v budoucnu – zejména při multipásmové optimalizaci – se bez něj ale neobejdeme. Obrázek 5.5: Nadbytečné nody, jejich vznik a nepřı́jemné důsledky 58 Nástroj pro modálnı́ analýzu FPA 5.4. Zpracovánı́ výsledků Poslednı́m zjištěným nedostatkem je přı́tomnost nadbytečných nodů (uzlů) ve výsledné koláži. Ty vidı́me na obr. 5.5 vlevo. V okolı́ těchto bodů je sı́t’ vı́ce zahuštěna (obr. 5.5 vpravo), nebot’ Comsol zde předpokládá diskontinuity. Většı́ počet elementů se negativně promı́tá do času potřebného na výpočet, a to nejen v Comsolu, ale i pokud fraktál dále exportujeme (IE3D apod.). Tyto nechtěné nody vznikajı́ při dlážděnı́ fraktálu, jde vlastně o vrcholy transformovaného základnı́ho objektu (obr. 5.5 uprostřed). Automatické odstraňovánı́ takových bodů je komplikované6 . Obrázek 5.6: Lokalizované proudy pro FRC B, FRC J a FRC D, vyššı́ módy Při pohledu na obr. 5.6 si můžeme všimnout zajı́mavého fenoménu, který je fraktálnı́m anténám vlastnı́, totiž proudové lokalizace. K té docházı́ pro některé vyššı́ módy a vyznačuje se zvýšenou směrovnostı́ zářiče (klidně 13dBi i vı́ce). Na obrázky můžeme pohlı́žet jako na velice efektivnı́ a ideálně zfázované anténnnı́ řady. 6 Tato automatická procedura by musela spolehlivě pracovat pro všechny IFS všech iteracı́ a musela by být velmi rychlá. 59 Nástroj pro modálnı́ analýzu FPA 5.5 5.5. Ošetřenı́ chyb, stabilita Ošetřenı́ chyb, stabilita O výsledku všech operacı́ je uživatel informován skrze GUI. V přı́padě chyby je vypsán červeně text Error, navı́c je i s kódem (viz tabulka 5.1) chyba uvedena v okně Matlabu. Tak lze sledovat všechny chyby při dlouhé optimalizaci. kód chyby 0 1 2 3 4 5 6 označenı́ There’s no connection to Comsol Bad input data (x ’psopt’ type). Convert to polygons. Geometry convert problem. Bad mesh (subdomains = 1) Comsol physics hasn’t been set. There’s no feasible solution. popis nenı́ připojen Comsol špatný vstup nevhodné polygony chyba v převodu geometrie segmentů je vı́ce než 1 fyzika nenı́ nastavena nebylo nalezeno řešenı́ Tabulka 5.1: Možné chyby v EvalInFem EvalInFem musı́ za všech okolnostı́ vracet hodnotu rezonančnı́ frekvence. V opačném přı́padě by hrozilo přerušenı́ optimalizace. Pokud je vypsána chyba, vracı́ program fr = ∞. To nenı́ z hlediska konvergence hejna optimálnı́7 návratová hodnota, lepšı́ řešenı́ však doposud nebylo nalezeno. Dalšı́ skupinu chyb lze označit jako chyby metody. Některé aspekty jsou v CM aproximovány nebo zanedbány, což zhoršuje (omezuje) výsledky. Na zkreslenı́ řešenı́ se podı́lı́ již diskretizace, kterou jsme probrali výše. Dále musı́me mı́t na paměti omezenı́ výšky substrátu, pomocı́ CM řešı́me pouze 2D planárnı́ rezonátor. Největšı́m problémem je zanedbánı́ vnitřnı́ch vazeb ve struktuře. Z principu tak nelze řešit zářič složený z vı́ce částı́. Omezena je množina použitelných kolážı́8 . Pro ověřenı́ CM modelu byl vybraný fraktál analyzován i v CST-MWS, vı́ce v následujı́cı́ části. 5.6 Výsledky Všechny nesmyslné módy byly odstraněny, neuvádı́me ani duplicitnı́ módy. Hodnoty v tabulce 5.2 jsou omezeny rozměrem delšı́ hrany rovným 10cm. Přı́klady silně lokalizovaných proudů byly uvedeny na obr. 5.6. Vyhledávánı́ takových módů ručně je zdlouhavé a nepohodlné, přesto však s pomocı́ Comsolu možné. Video na DVD s ukázkou řešenı́ se jmenuje EvalInFem staticAnalysisAvi.avi. Je zde i ukázka chybné simulace a jejı́ho zakončenı́. 7 Toto mı́sto je automaticky zavrhnuto celým rojem a přı́slušnı́ agenti se od něj vzdalujı́. To komplikuje nalezenı́ minima v sousedstvı́ takové singularity. 8 Přı́klady na obr. 5.8 jsou řešitelné bez potı́žı́, pouze koláž FRC B přezařuje a velikost chyby tak roste. 60 Nástroj pro modálnı́ analýzu FPA patch FRC A FRC B FRC C FRC D FRC E FRC F FRC H FRC J FRC K fr1 [MHz] 637.73 686.09 638.39 1189.33 1367.52 657.76 1352.55 849.51 647.05 fr2 [MHz] 655.59 732.07 1304.13 2192.13 1383.24 721.05 1482.29 871.05 690.66 5.6. Výsledky fr3 [MHz] 1375.67 736.23 1652.87 2641.8 3064.77 2040.55 2457.62 1668.17 1681.64 fr4 [MHz] 1407.34 2113.86 1751.14 4412.57 3110.12 2272.51 2629.74 2709.62 2385.47 fr5 [MHz] 1434.46 2300 1753.58 4423.88 3977.31 2345.91 2865.37 2801.14 2452.99 Tabulka 5.2: Rezonančnı́ frekvence vybraných kolážı́ (prvnı́ch 5 iteracı́) Obrázek 5.7: Pokles frekvence s iteracı́, vybrané koláže Je zajı́mavé sledovat velikost rezonančnı́ frekvence různých kolážı́ v závislosti na stupni iterace. Lze ukázat, že frekvence postupně klesá. Např. pro koláž FRC B klesá frekvence (pro iterace 1-5) následovně: 1025MHz, 686MHz, 501MHz, 370MHz a 271MHz. Pro koláž FRC H 1380MHz, 1053MHz, 815MHz, 630MHz, 487MHz. Pokles je velice rychlý a to i v přı́padě, že rezonance probı́há na rameni, které svou délku neměnı́ (FRC H). Průběh zároveň naznačuje, že hodnoty směřujı́ k určité asymptotě, kterou můžeme předpokládat pro nekonečnou iteraci. Pro každý fraktál klesá frekvence jinak rychle a z jiné počátečnı́ hodnoty, viz obr. 5.7. Pokles frekvence probı́há bez nečekaných výkyvů (křivky jsou hladké), tento jev lze prokázat i u vyššı́ch módů IFS struktur. 61 Nástroj pro modálnı́ analýzu FPA 5.6. Výsledky Obrázek 5.8: Dominantnı́ módy FRC struktur CST a TCM simulace Nynı́ srovnejme obdržené výsledky s referenčnı́m simulátorem. Primárně byl vybrán CST-MWS, je velice přesný a uživatelsky přı́jemný. Dále jsme do srovnánı́ zařadili TCM analyzátor z [81], který by mohl nahradit náš CM řešič. Obrázek 5.9: Proudy na struktuře FRC F podle TCM Jako srovnávacı́ objekt byl zvolen FRC F ve třetı́ iteraci (viz obr. 5.8, přı́padně přı́mo obr. 12.11 a 12.12 v dodatcı́ch). Tento fraktál se jevı́ jako vhodný kandidát pro dalšı́ optimalizaci. Výška nad zemnı́ rovinou je 1mm (v toleranci CM) a 10mm (zde již CM nepodává optimálnı́ výsledky). V souvislosti s nalezenı́m rezonančnı́ frekvence je vhodné sledovat, jak (zda vůbec) může na daném módu anténa vyzařovat. Situaci přehledně ukazuje obr. 5.9. 62 Nástroj pro modálnı́ analýzu FPA 5.6. Výsledky Prvnı́ dva módy majı́ proudy orientované shodným směrem, ty se sčı́tajı́ a vytvořı́ vertikálnı́, resp. horizontálnı́ polarizaci. Proudy třetı́ho módu (vpravo) tečou proti sobě, anténa má v podstatě charakter vedenı́ a nevyzařuje. Rozloženı́ proudů lze sledovat i u CM modelu, jak ukážeme v následujı́cı́ kapitole. Tyto proudy vypočı́táme z elektrického pole, které jsme zı́skali z dutinového modelu. Obrázek 5.10: Průběh charakteristického úhlu pro FRC F (TCM) Nalezené rezonančnı́ frekvence z tab. 5.3 dokládá i obr. 5.10, kde je vykreslen průběh charakteristického úhlu na frekvenci. Pomocná čára (oranžová) procházı́ 180°, kde docházı́ k rezonanci. Zde můžeme odečı́st rezonančnı́ frekvenci prvnı́ch 3. módů. Zobrazenı́ proudů v CST pro prvnı́ 3 módy je ukázáno na obr. 5.11. Prodouvé rozloženı́ vyšlo podobně jako v TCM a CM, orientace proudů odpovı́dá obr. 5.9. Pro zajı́mavost uvedeme s předstihem i tvar VD pro FRC F s výškou 10mm CM 1. mód 2. mód 3. mód 657.76 MHz 721.05 MHz 2040.55 MHz CST TCM IE3D výška 1mm 735 MHz 720 MHz 745 MHz 787 MHz 775 MHz 817 MHz −(∗) 2150 MHz −(∗) (*) tento mód nebyl CST TCM výška 10mm 913 MHz 890 MHz 947 MHz 915 MHz 1000 MHz 985 MHz v CST/IE3D nalezen Tabulka 5.3: Rez. frekvence pro FRC F v simulátorech CM, CST-MWS a TCM 63 Nástroj pro modálnı́ analýzu FPA 5.7. Propojenı́ s PSO Obrázek 5.11: Proudové rozloženı́ pro 1-3 mód koláže FRC F nad zemnı́ (nekonečnou) rovinou. Hornı́ obrázky ukazujı́ jednotlivé polarizace9 , jak se promı́tajı́ do výsledného VD (spodnı́ část obr.). Výsledky jsou pro svou velikost uvedeny v dodatku 12.2, obr. 12.19 a 12.20. 5.7 Propojenı́ s PSO Napojenı́ na rojový optimalizátor je realizováno podle obr. 10.1, z pohledu PSO je blı́že popsáno v části 8.5. Úpravou geometrie patche (změna pozice bodů základnı́ho objektu nebo koeficienty transformacı́) lze zı́skat nižšı́ rezonančnı́ frekvenci. V průběhu optimalizace docházı́ k občasnému rozdělenı́ koláže na vı́ce částı́ (vlivem změny transforamčnı́ch koeficientů), pak je situace ošetřena v EvalInFem. K nastavenı́ optimalizace je potřeba stanovit jednotlivé meze a zvolit objekty, které majı́ být optimalizovány. Pro tento účel vznikl IFSLimiter, popsaný v 9. kapitole. Načı́tá zvolenou koláž ve formátu FRC a po nastavenı́ optimalizace exportuje PsoData proměnnou do Matlabu. Ta je vstupnı́m parametrem PSOptimizeru, který řı́dı́ celou optimalizaci a volá EvalInFem jako svou fitness funkci. Pro každého agenta je stanovena velikost rezonančnı́ frekvence, jak bylo popsáno výše. Vše ale probı́há automaticky. Právě EvalInFem hraje v celém procesu zásadnı́ roli, nebot’ spotřebuje cca. 95% času potřebného na jednu optimalizaci. Celkový čas se pohybuje v řádu hodin10 . Vı́cepásmová optimalizace Lákavá je též možnost optimalizovat patch tak, aby jeho vybrané módy byly n-násobkem / posunuty o pevně danou frekvenci od módu předešlého. Dı́ky tomu, že pracujeme s IFS parametry, zůstává fraktálnı́ charakter zachován i zde (se všemi výhodami). Abychom mohli specifikovat požadavky na jednotlivé módy, musı́me mı́t možnost je vzájemně rozeznat, vč. eliminace duplicitnı́ch módů. Bude potřeba definovat i nové rozhranı́, hlı́dajı́cı́ váhovánı́ jednotlivých přı́spěvků (výsledků pro daný mód) a jejich ohodnocovánı́ pro cost funkci (viz kapitola o PSO). Tento úkol vyžaduje celou řadu zásahů a úprav. Čtenář se tedy bude muset spokojit pouze s touto zmı́nkou. 9 10 Zobrazenı́ vertikálnı́ a horizontálnı́ polarizace v CST je možné s pomocı́ Ludwig3. Předpokládáme zhruba 5 sekund na jedno řešenı́ CM, 20 členů roje a 150 iteracı́. 64 Kapitola 6 Vyzařovacı́ diagram Představte si lampu! At’ je jakkoliv umělecká a krásně zdobená, musı́ ” předevšı́m svı́tit!“ — Honoré de Balzac Obecná anténa se vyznačuje tı́m, že vyzařuje resp. přijı́má elektromagnetickou enegii různě v různých směrech. Zobrazenı́ těchto poměrů se nazývá vyzařovacı́ diagram ([11]). Vyzařovacı́ diagram (VD) řadı́me mezi směrové vlastnosti antény. Jsme schopni popsat na něm hlavnı́ lakol, vedlejšı́ lalok a zpětný svazek, můžeme odečı́st šı́řku svazku na polovičnı́ výkon (HPBW) a dalšı́ parametry. Úzce souvisı́ se směrovostı́, učinnostı́ svazku atp. Z těchto důvodů je nutné pro většinu praktických aplikacı́ VD dané antény znát. V přı́padě patchových antén s fraktálnı́m povrchem jsme nuceni nejprve stanovit rozloženı́ zdrojů, tj. zjistit na kterých módech anténa rezonuje (=vyzařuje) a jak. Až poté využijeme algoritmus EvalRadPattern, který byl v rámci DP rozpracován. Pozornost bude věnována i možné optimalizaci geometrie patche s ohledem na VD. Celá kapitola je koncipována podle Individuálnı́ho projektu, [70]. 6.1 Rozloženı́ zdrojů Vlastnı́ výpočet vyzařovacı́ho diagramu (dále jen VD1 ) je založen na řešenı́ Maxwellových rovnic. K zı́skánı́ VD je potřeba znát přesné rozloženı́ zdrojů na povrchu antény. Zdroji zde myslı́me: (a) hustotu elektrického proudu J, nebo (b) fiktivnı́ magnetickou proudovou hustotu M. 1 Máme na mysli směrovou, přı́padně vyzařovacı́ charakteristiku. Principy reciprocity a duality zajišt’ujı́, že jsou shodné. Viz [11], [32]. 65 Nástroj pro modálnı́ analýzu FPA 6.1. Rozloženı́ zdrojů Obrázek 6.1: Postup výpočtu, ve shodě s [29] Tyto možnosti zobrazuje i obr. 6.1. Proudy nejsou pro daný typ patche dopředu známy, nebot’ jsou závislé na tvaru antény. Zatı́mco elektrické proudy jsou ideálnı́ pro drátové antény, pro patchové antény (tedy plošné, dále platı́ i pro trychtýře) je vhodnějšı́ využı́t ekvivalentnı́ch magnetických proudů (které tečou po hranách patche). Zı́skáme-li totiž hodnoty těchto proudů, je určenı́ vyzářeného pole jednoduššı́2 . Oba postupy, jak zı́skat tyto proudy, jsou uvedeny dále. V dalšı́m kroku se musı́me rozhodnout, zda budeme VD určovat přı́mo z Maxwellových rovnic (dále MR), nebo si odvozovánı́ zjednodušı́me zavedenı́m potenciálů (tento postup je obecně preferován). Vektorový potenciál A, i skalárnı́ potenc. F využı́vájı́ známých diferenciálnı́ch identit ke zjednodušenı́ tvaru MR. Zde pouze nastı́nı́me myšlenku potenciálů3 . Pro vektorový potenciál A využijeme skutečnosti, že: div(rotA) = 0, (6.1) pro libovolný vektor A. V oblasti beze zdrojů (tj. v nezřı́dlovém poli) potom přepisujeme z MR: divB = 0, (6.2) tedy BA = µHA = rotA. Konečně HA = (6.3) 1 rotA. µ (6.4) Podobně pro potenciál F pokládáme: div(−rotF) = 0, pro nezřı́dlovou oblast je Gaussův zákon tedy (předpokládáme linearitu operátorů): DF = −rotF, 2 (6.5) elektrostatiky divD = 0 (6.6) Jak z hlediska praktického, tak z hlediska časové náročnosti výpočtu. Zápis má notaci ve shodě s [29] a [32], pouze značenı́ grad (∇), dif (∇•) a rot (∇×) respektuje evropské, nikoli americké zvyklosti (tedy varianty vně závorek). 3 66 Nástroj pro modálnı́ analýzu FPA 6.2. Odvozenı́ potřebných vztahů 1 EF = − rotF. (6.7) Vztahy (6.4) a (6.7) jsou symetrické. Po odvozenı́ VD (uvedeno v dalšı́ části) je potřeba dbát na správné značenı́ souřadnicového systému. Řešenı́ jednotlivých složek zpravidla zı́skáme v kartézských souřadnicı́ch, je tedy potřeba tyto výsledky převést do souřadnic sférických (transformačnı́ matice), nebo s tı́mto převodem počı́tat již při vlastnı́m výpočtu. Nezbytným krokem je normovánı́, často prováděné až po zlogaritmovánı́ výsledků (pro velkou dynamiku je zobrazenı́ VD v logaritmickém měřı́tku mnohem názornějšı́). Nynı́ přistupme k výkladu jednotlivých partikulárnı́ch problémů. 6.2 Odvozenı́ potřebných vztahů Vycházı́me ze základnı́ho tvaru Maxwellových rovnic: rotH = J + ∂D , ∂t (6.8) 1 divE = ρ. (6.9) Uvážı́me-li dualitu mezi elektrickým a magnetickým polem (E → H,H → −E,J → M, atd., vı́ce v [32]), můžeme psát ekvivatelně: rotE = −M − divH = ∂B , ∂t 1 ρm . µ (6.10) (6.11) Náboj ρm a proudová hustota M jsou pouze fiktivnı́, protože fyzikálnı́ representace těchto veličin nenı́ známa. Přesto tento formalismus podává správné výsledky. Známe-li rozloženı́ proudů – skutečných nebo fiktivnı́ch, je řešenı́ (vnějšı́) úlohy podobné. Nalezenı́ zdrojů se věnujı́ části 6.3 a 6.4, nynı́ předpokládejme, že tyto zdroje (J a M) známe. Rovnice řešı́me s pomocı́ zavedených potenciálů podle [32]. Po dosazenı́ a úpravě dostáváme: E = −gradF − ∂A 1 − rotAm ∂t (6.12) ∂Am 1 + rotA, ∂t µ (6.13) a H = −gradFm − kde F a A jsou elektrické potenciály a Fm a Am jsou magnetické potenciály. Splňujı́ Lorenzovy podmı́nky. Řešenı́ pro elektrické potenciály: ZZZ 1 F(r) = ρ(r0 )G(r − r0 )dV 0 , (6.14) V 67 Nástroj pro modálnı́ analýzu FPA 6.2. Odvozenı́ potřebných vztahů Obrázek 6.2: K odvozenı́ vyzařovacı́ho diagramu ZZZ A(r) = µ J(r0 )G(r − r0 )dV 0 (6.15) ρm (r0 )G(r − r0 )dV 0 , (6.16) M(r0 )G(r − r0 )dV 0 . (6.17) V a magnetické potenciály: Fm (r) = 1 µ ZZZ V ZZZ Am (r) = V Funkci G(r1 − r2 ) rozepı́šeme: 0 G(r − r0 ) = e−jk|r−r | , 4π|r − r0 | (6.18) vektory r a r0 ukazuje obr. 6.2. Řešı́me-li úlohu ve vzdálené oblasti, je r r0 a r0 proto zanedbáváme. Navı́c R k r. Pro R tedy platı́: r − r0 cosψ pro fázi R= (6.19) r pro amplitudu Maximálnı́ fázová chyba této aproximace je vzdálenost r je alespoň: 2D2 r≥ λ kde D je největšı́ rozměr antény. 68 π 8, za předpokladu, že pozorovacı́ (6.20) Nástroj pro modálnı́ analýzu FPA 6.2. Odvozenı́ potřebných vztahů Dále si budeme všı́mat pouze relevantnı́ch vztahů (6.15) a (6.17) (podle [29]). Ty lze přepsat následovně: −jkr ∼ µe A= N (6.21) 4πr e−jkr L, (6.22) 4πr kde (odsud dále předpokládáme plochý patch v rovině x-y, složku z vypouštı́me) ZZ 0 J(x, y)ejkr cos ψ dxdy (6.23) N= F∼ = x,y a ZZ 0 M(x, y)ejkr L= cos ψ dxdy. (6.24) x,y Ve vztazı́ch výše jsou vytknuté integrály, které jsou podstatné pro tuto práci a také upravený průvodič, který úlohu zjednodušuje. Nynı́ vynecháme několik přepisů, které nejsou přı́liš důležité (čtenář je může nalézt na str. 287 v [29]) a uvedeme rovnou vztahy pro vyzařovánı́ v jednotlivých řezech: Er ∼ =0 (6.25) −jkr jke Eθ ∼ =− 4πr Lφ + ηNθ (6.26) jke−jkr Lθ − ηNφ Eφ ∼ = 4πr (6.27) Integrály řešı́me numericky, jde tedy o součet dvou sum. Podle transformace (6.40) můžeme jednotlivé složky v integrálech roznásobit: Z xmaxZ ymax 0 (Jx cos θ cos φ + Jy cos θ sin φ)ejkr cos ψ dxdy (6.28) Nθ = ymin xmin Z xmaxZ ymax Nφ = xmin (−Jx sin φ + Jy cos φ)ejβr 0 cos ψ dxdy (6.29) ymin Analogicky: Z xmaxZ ymax Lθ = xmin (Mx cos θ cos φ + My cos θ sin φ)ejkr 0 cos ψ dxdy (6.30) ymin Z xmaxZ ymax Lφ = xmin (−Mx sin φ + My cos φ)ejβr 0 cos ψ dxdy (6.31) ymin Dále potřebujeme vyjádřit průvodič r0 cos ψ pomocı́ veličin, které známe. Využijeme vztahu 6-127a až 6-127c v [29] , nebot’ námi definovaná soustava je podobná. r0 cos ψ = r0 ·aˆr = (aˆx x0 + aˆy y 0 )·(aˆx sin θ cos φ + aˆy sin θ sin φ) 69 (6.32) Nástroj pro modálnı́ analýzu FPA 6.2. Odvozenı́ potřebných vztahů Pro pozici pozorovatele můžeme vyjádřit: r0 cos ψ = x0 sin θ cos φ + y 0 sin θ sin φ (6.33) Z výše uvedeného lze vztahy shrnout: ZZ jkηe−jkr 0 0 (Kx cos φ + Ky sin φ) cos θ ejk(x sin θ cos φ+y sin θ sin φ) dxdy Eθ = 4πr (x,y) (6.34) ZZ −jkr jkηe 0 0 Eφ = (−Kx sin φ + Ky cos φ)ejk(x sin θ cos φ+y sin θ sin φ) dxdy (6.35) 4πr (x,y) K zastupuje zdroje: M podle následujı́cı́ části 6.3 nebo J podle části 6.4. Závěrem uved’me pomocné vztahy potřebné k vyčı́slenı́ integrálů: r µ η = = Z0 , (6.36) 2π β = = k, (6.37) λ c0 =⇒ (6.38) λ = f √ β = ω µ, (6.39) transformačnı́ matici z kartézské do sférické souřadné soustavy: sin(θ)cos(φ) sin(θ)sin(φ) cos(θ) Tx Tr Tθ = cos(θ)cos(φ) cos(θ)sin(φ) −sin(θ) · Ty −sin(φ) cos(φ) 0 Tz Tφ a pro úplnost i opačně (matice je symetrická podél hlavnı́ diagonály): Tx sin(θ)cos(φ) cos(θ)cos(φ) −sin(φ) Tr Ty = sin(θ)sin(φ) cos(θ)sin(φ) cos(φ) · Tθ Tz cos(θ) −sin(θ) 0 Tφ 70 (6.40) (6.41) Nástroj pro modálnı́ analýzu FPA 6.3 6.3. Magnetické proudy Magnetické proudy Obrázek 6.3: Pole Ez na hranici (vlevo) a nad celým patchem (vpravo) Na základě principu ekvivalence lze odvodit vztahy pro vyzařovánı́ úzké štěrbiny – apertury. Jako zdroj zářenı́ chápeme hrany patche, resp. náboj, který se hromadı́ na těchto hranách dı́ky přitékajı́cı́mu proudu z plochy antény. Tyto proudy značı́me M a nazýváme je magnetické proudy4 . Pole Ez vybudı́ (indukuje) v těchto mı́stech proudy se složkami x a y: M(x, y) = zEz × nout (6.42) Zı́skánı́ jednotlivých skalárnı́ch složek Ez zajišt’uje EvalRadPattern skrze Comsol. Výsledek vidı́me na obr. 6.3 vlevo. Obrázek 6.4: Stanovenı́ normály na fraktálnı́ hranici 4 V tomto přı́padě je název pouze konvencı́. Viz [30], [31], [32]. 71 Nástroj pro modálnı́ analýzu FPA 6.3. Magnetické proudy Do většı́ch potı́žı́ se dostáváme, máme-li stanovit vnějšı́ normálu nout v jednotlivých bodech Ez . Situaci objasňuje obr. 6.4, kde vlevo vidı́me rozloženı́ pole a přı́slušné normály a vpravo několik normál na hranách složitějšı́ho fraktálu. Problém je dvojı́ – zaprvé určit vektor normály z dostupných údajů v Comsolu, zadruhé určit směr normály (a to i v mı́stech uprostřed koláže). Autor DP se pokoušel tyto údaje importovat z Comsolu do Matlabu, avšak neuspěl. Požadujeme totiž import dat, ke kterým je přı́stup mimo grafické rozhranı́ Comsolu obtı́žný, nebot’ se jedná o data upravená následným postprocessingem5 . 6.3.1 Rekonstrukce patche, zı́skánı́ dat pro normálu Na přı́kladu obdélnı́kového patche (zadán čtveřicı́ body) ukažme využitelná data: 1. Geometrie: • geom2get(fem.geom,’p’) nebo geom2get(fem.geom,’mp’). Jde o rohové body obdélnı́ků na obr. 6.5, tj. o body, které zadal uživatel. −0.6 −0.6 −0.2 −0.2 (6.43) body = 0 0.2 0 0.2 • geom2get(fem.geom,’rb’), struktura obsahuje dvě pole. Prvnı́ obsahuje čı́sla křivek (subdomains, čı́slice 1 - 4 nalevo), druhé jejich směr (šipky domains direction). 2. Mesh (import z: ptd = posteval(fem,’Ez’,’solnum’,1,’U’,fem.sol,’Edim’,1,. . . ’Refine’,1): • ptd.p popisuje spojenı́ všech nodů (vč. těch, co vzniknout při diskretizaci patche – na obr. 6.5 značeny zelenými body). Svislé oddělovacı́ čáry matice neobsahuje, pro přehlednost je ovšem doplňujeme. −0.6 −0.6 −0.6 | −0.6 −0.5 −0.4 . . . nody = 0 0.1 0.2 | 0 0 0 ... . . . −0.4 −0.3 −0.2 | −0.6 −0.5 −0.4 . . . ... 0 0 0 | 0.2 0.2 0.2 . . . . . . −0.4 −0.3 −0.2 | −0.2 −0.2 −0.2 . . . 0.2 0.2 0.2 | 0 0.1 0.2 (6.44) • ptd.t ukazuje na směry mezi jednotlivými nody (opět po skupinách, červené šipky na pravém obdélnı́ku). 1 2 | 4 5 | 7 8 | ... spoj = 2 3 | 5 6 | 8 9 | ... 5 Comsol disponuje dvojicı́ funkcı́, které tento neduh řešı́: postinterp a posteval. Práce s nimi probı́há skrze prompt Matlabu a nastavenı́ složitějšı́ch přı́kazů je zdlouhavé a komplikované. Navı́c zjištěnı́ normály touto funkcı́ trvá velice dlouho. 72 Nástroj pro modálnı́ analýzu FPA 6.3. Magnetické proudy . . . 10 11 | 13 14 | 16 17 . . . 11 12 | 14 15 | 17 18 (6.45) • ptd.d je matice o velikosti (1, pocet nodu), obsahuje řešenı́ pole Ez v nodech ptd.p. res = 1.336 1.325 1.340 1.336 0.936 −0.011 . . . . . . −0.011 −0.936 −1.339 1.340 0.937 0 . . . . . . 0 −0.935 −1.337 −1.339 −1.324 −1.337 (6.46) 3. Proměnná fem programu Comsol: • fem.mesh.p representuje všechny nody mesh sı́tě −0.6 −0.4 −0.5 −0.6 −0.4 −0.2 −0.3 −0.2 sit = (6.47) 0 0 0.1 0.2 0.2 0.2 0.1 0 • fem.mesh.v ukazuje na ta mı́sta matice fem.mesh.p, na kterých figurujı́ body zadané uživatelem. Právě pomocı́ této matice lze zı́skat prvnı́ představu o tvaru fraktálu. Druhá řádka této matice obsahuje zpravidla hodnoty NaN. umist = 1 4 6 8 (6.48) Obrázek 6.5: K normále v Comsolu 6.3.2 Směr normály Podařı́-li se nám sestavit patch, což je s ohledem na uvedená data obtı́žný úkol6 , narážı́me stále na problém s normálou. Podle vztahu (6.42) máme směr Ez vyjádřen 6 Výše uvedený přı́klad zobrazuje pouze obdélnı́kový útvar se čtyřmi body, v praxi však zadáváme fraktál pomocı́ mnoha polygonů s typicky 4 a vı́ce hranami. Po sjednocenı́ na jeden patch se data nikterak neřadı́. V Comsolu toto provádı́ jádro volané pomocı́ Javy, nelze se tedy podı́vat jak je úkol řešen tam. 73 Nástroj pro modálnı́ analýzu FPA 6.3. Magnetické proudy jednoznačně – vždy pouze ve směru +z nebo -z. Normála nout je závislá na orientaci hrany (spojuje body 1 a 2 na obr. 6.6) a lze si tedy představit dvě možnosti (červené šipky). Stanovit správný směr normály pouze s ohledem na geometrii samotného patche se doposud nepodařilo7 . Krok opačným směrem, tedy zı́skánı́ vı́ce informacı́ o geometrii, je také nemožný (ukázáno výše). 6.3.3 Využitı́ hodnot NaN z Comsol gridu Jeden z alternativnı́ch postupů využı́vá matici hodnot, kterou zı́skáme, dotážeme-li se Comsolu na hodnoty pole nad patchem. Tento návrh je inspirován některými funkcemi Matlabu, přesněji těmi, které pracujı́ s NaN hodnotou. Funkce postinterp dokáže velice rychle vrátit8 velikost elektrického pole nad patchem. Zobrazeno na obr. 6.3 vpravo. Vidı́me, že vracı́ hodnoty v gridu. V mı́stech, kde nenı́ hodnota známa (tj. mimo plochu patche) vracı́ Comsol hodnoty NaN. Pro jednoduchý patch můžeme dostat napřı́klad takovouto matici: 5 3.5 N aN N aN N aN −5 5 3.5 N aN N aN N aN −5 (6.49) 5 3.5 1.5 N aN N aN −5 5 3.5 1.5 −1.5 −3.5 −5 Za normálnı́ch podmı́nek NaN pouze indikuje – ve shodě s definicı́ IEEE-745 jako Not a Number – absenci řešenı́ v této oblasti. Z našeho pohledu jde v podstatě o redundantnı́ data, pro která však lze nalézt uplatněnı́9 . Vrat’me se nynı́ k obr. 6.6 s dvěmi možnými normálami. Jedna mı́řı́ přı́mo do patche a druhá ven. Mı́řı́-li ven, směřuje konec normály k hodnotě NaN, přı́p. – s uváženı́m př. 6.49 a faktu, že Comsol bere grid pouze těsně kolem antény – mimo matici gridu. Tato idea byla rozpracována krátce před dokončenı́m diplomové práce, proto nenı́ testována. Jejı́ implementace by však nemusela být přı́liš složitá a práce s maticemi NaN hodnot je v Matlabu velmi rychlá. Tento postup lze využı́t i pro rekonstrukci tvaru patche, popisované v části 6.3.1. Po zı́skánı́ těchto proudů bychom již pouze integrovali podél hranice patche C : Z 0 M= M(c)ejkr cosψ dc, (6.50) C výsledek převedli do sférických souřadnic (transformačnı́ matice (6.40)) a normovali. Integrál (6.50) uvádı́me s ohledem na odvozenı́ v části 6.2 (vzorec (6.24)). Otázkou však zůstává, zda do křivky C započı́táváme i vnitřnı́ hranice patche (6 děr na obr. 6.7). Tyto hrany také vyzařujı́, nevı́me však, jak moc se podı́lı́ na výsledném tvaru diagramu. 7 Tato část byla konzultována nezávisle s několika vyučujı́cı́mi na katedře matematiky – bez výsledku. 8 Platı́ do počtu cca. 10000 elementů. 9 Např. je zajı́mavé sledovat procentuélnı́ obsah NaNů v IFS fraktálech. Tuto hodnotu vracı́ EvalRadPattern. Zpravidla jde o 20-45%, tj. IFS fraktál zabı́rá obvykle 55-80% plochy. Přı́klad 6.49 obsahuje 33.3% NaN hodnot. Tak můžeme odhadnout i obsah patche. Zjemňovánı́m gridu navı́c zı́skáme rychlou a velice jednoduchou metodu odhadu mřı́žkové dimenze. 74 Nástroj pro modálnı́ analýzu FPA 6.4. Povrchové elektrické proudy Obrázek 6.6: Stanovenı́ normály pomocı́ NaN 6.4 Povrchové elektrické proudy Obrázek 6.7: Povrchové proudy pro 3000 elementů, napravo rozloženı́ Ez Druhá možnost, jak nalézt zdroje, je jistým způsobem komplementárnı́ k možnosti uvedené výše. V tomto přı́padě tečou proudy přes celou plochu patche, což znesnadňuje výpočet VD, nebot’ jsme nuceni integrovat postupně přes všechny známé zdroje (tedy body plochy), a to pro všechny zvolené body10 na kouli ve vzdálené oblasti. Dalšı́m znepřı́jemněnı́m je přı́tomnost zemnı́ roviny (obr. 6.9). Ta působı́ jako zrcadlo, tečou po nı́ tedy také proudy a musı́me je zahrnout do výpočtu, což lze provést násobenı́m faktorem: GF = 2sin(khcos(θ)). 10 (6.51) Tyto body jsou stanoveny na základě kroku pro úhly θ a φ; krok zadává uživatel, při uváženı́ kompromisu mezi rychlostı́ a přesnostı́. 75 Nástroj pro modálnı́ analýzu FPA 6.5. Simulace v CST Obrázek 6.8: Povrchové proudy, 4.mód, vı́ce elementů Faktor GF je v podstatě roven tzv. array factoru AF (AF = 2cos(khcos(θ))). Zatı́mco GF odpovı́dá konfiguraci dvou protifázových dipólů, faktor AF počı́tá se soufázově umı́stěnými dipóly (zpravidla dipóly vedle sebe). Proud se indukuje vlivem elektrického pole Ez , což lze postihnout následovně: H= 1 Z0 × gradEz , jωµ (6.52) J = n × H. (6.53) Co do velikosti je proud J ≈ gradEz a s přihlédnutı́m k vektorovým součinům hledáme proudy v Matlabu následovně: J(x, y) = −gradEz (6.54) Korelace rozloženı́ elektrického pole a tekoucı́ch proudů zobrazuje obr. 6.7. Počet složek Ez lze v EvalRadPattern ovlivňovat, výsledné proudy vypočtené z jemnějšı́ho gridu jsou na obr. 6.8. 76 Nástroj pro modálnı́ analýzu FPA 6.5. Simulace v CST Obrázek 6.9: Zahrnutı́ nekonečné zemnı́ roviny Obrázek 6.10: Vyzařovánı́ dipólu, délka 6.5 λ 2, 3D diagram z CST MWS Simulace v CST Pro porovnánı́ s výsledky v Matlabu byla provedena simulace v programu CST Microwave Studio. Zatı́mco v Matlabu počı́táme VD obdélnı́hového patche, v CST byl simulován drátový dipól (elektrická délka zvolena podle požadovaného módu λ2 a 3 2 λ). Předpokládáme ale, že velice tenký dlouhý patch bez zemnı́ roviny vyzařuje ve dvou rovinách podobně jako dipól. Obrázky 6.11 a 6.10 odpovı́dajı́ napájenı́ jednou proudovou půlvlnou, obr. 6.12 a 6.13 pak napájenı́ na trojnásobné frekvenci. Půl vlny dlouhý dipól má HPBW 78° a směrovost 2.15dB. Zde vyšly poněkud odlišné hodnoty (zejm. HPBW o několik stupňů), to však nenı́ podstatné, jde nám předevšı́m o tvar VD. Dalšı́ možnostı́ je simulace úzkého patche (stačı́ upravit předdefinový model). Protože však CST modeluje vyzařovacı́ diagram pouze pro θ ∈ (0, π) a φ ∈ (0, 2π), dosáhneme stejných výsledků jako v přı́padě tenkého dipólu. 77 Nástroj pro modálnı́ analýzu FPA 6.6. Realizace – EvalRadPattern Obrázek 6.11: Vyzařovánı́ dipólu, délka λ 2, řezy CST MWS Obrázek 6.12: Vyzařovánı́ dipólu, délka 23 λ, 3D diagram z CST MWS 6.6 6.6.1 Realizace – EvalRadPattern Výpočet proudů Nejprve je potřeba stanovit mřı́žku, pro jejı́ž uzly bude zjištěna hodnota Ez . Jejı́ velikost může stanovit uživatel, a to souhrně nebo zvlášt’ pro směr x i y. Import rozloženı́ elektrického pole z Comsolu zabı́rá v celém postupu nejvı́ce času a je silně závislý na jemnosti zadaného gridu, srovnánı́ poskytujı́ obr. 6.7 vlevo a 6.8. Zı́skaná matice Ez je řádková a proto ji pomocı́ funkce reshape převedeme na čtvercovou (obdélnı́kovou podle typu gridu). Nynı́ stanovı́me gradient, proudy uložı́me a přı́padně vykreslı́me. Část tohoto postupu byla využita i pro funkci EvalInFem. 78 Nástroj pro modálnı́ analýzu FPA 6.6. Realizace – EvalRadPattern Obrázek 6.13: Vyzařovánı́ dipólu, délka 23 λ, řezy CST MWS 6.6.2 Algoritmus Vlastnı́ integraci realizujeme pomocı́ sumace pomocných matic. K výpočtu přı́rustků použı́váme jednoduchou obdélnı́kovou metodu (obr. 6.14), která je v tomto přı́padě dostačujı́cı́ aproximacı́, [24]. Postupným zjednodušovánı́m algoritmů přecházı́me z cyklů for na indexaci matic, čı́mž dramaticky zkracujeme dobu výpočtu. Obrázek 6.14: K obdélnı́kové metodě Naprogramovali jsme několik variant výpočtu. Postupně se podařilo zkrátit výpočet na cca. 5% času. Převedenı́ odvozených integrálů (6.34) a (6.35) se ukázalo jako největšı́ problém a tato část nenı́ dokončena. Zvýšené pozornosti je potřeba dbát při převodu proudů a zpětném přepočtu vypočteného vyzařovacı́ho diagramu. K výsledkům vı́ce v části 6.7. 6.6.3 GUI Grafické rozhranı́ je zobrazeno na obr. 6.15. Okno postrádá ovládacı́ prvky, pouze informuje o průběhu výpočtu a nastavenı́. V kontextu optimalizace jsou ovládacı́ prvky nežádoucı́. Jde o podobný solver jako EvalInFem s totožným způsobem připojenı́ na 79 Nástroj pro modálnı́ analýzu FPA 6.7. Rozbor výsledků PSO. Počet operacı́ (Ops vlevo nahoře) ovlivňuje rychlost jednoho výpočtu. Inicializace GUIe probı́há automaticky a v přı́padě PSO optimalizace je okno i automaticky uzavřeno. Obrázek 6.15: EvalRadPattern (screenshot) 6.6.4 Optimalizace Optimalizace VD bude plně využitelná až po dokončenı́ funkce OptimRadPattern, která řı́dı́ všechny úkoly spojené s výpočtem VD a váhuje zı́skané výsledky. Pak bude možné zvolit i vı́ce cı́lů s váhou každého z nich. Budeme schopni také maximalizovat vyzařovánı́ v určitém směru, přı́padně omezit postrannı́ laloky. A to i pro vybraný mód. Vı́ce k optimalizaci ve zbývajı́cı́ch kapitolách. 6.7 Rozbor výsledků Obrázek 6.16: Složky Fx a Fy v kartézských souřadnicı́ch 80 Nástroj pro modálnı́ analýzu FPA 6.7. Rozbor výsledků Podle zadánı́ jsme analyzovali úzký patch s rozměry x = 10cm, y = 0.5cm. Následujı́cı́ obrázky (6.16 a 6.17) zobrazujı́ obdržené výsledky. Pro lepšı́ orientaci v řezech je přiloženo schéma 6.18. Pro modelový přı́klad zı́skáváme očekávané tvary VD. Adekvátnı́ normovánı́ v Matlabu je ve spojitosti s vyzařovánı́m poněkud delikátnı́ problém, protože jednotlivé součtové složky (vybuzené elementárnı́mi proud. zdroji) se svou velikosti pohybujı́ na hranici přı́pustné přesnosti (eps). Obrázek 6.17: VD velice úzkého patche Při výpočtech VD se vyskytly jisté nepřesnosti (tvar některých fraktálnı́ch křivek se vůbec nepromı́tne do výsledného řešenı́). Jejich zdroj se doposud nepodařilo odhalit – může jı́t o implementaci výpočtu, převod z kaztézských do sférických souřadnic (v nesprávnou chvı́li), přı́padně o nepřesné uváženı́ výchozı́ch vztahů. Obrázek 6.18: Orientace diagramů, barvy korespondujı́ s obr. 6.17 Přes veškerou snahu se zatı́m nepodařilo tuto část zcela dokončit. Důvodem je zejména časová náročnost (mnoho času zabral efektivnı́ export zdrojových dat z Comsolu11 ), ale také paralelnı́ práce na dalšı́ch částech (viz dodatek 12.3). Po odstraněnı́ těchto drobnostı́ se výpočet VD stane užitečným pomocnı́kem při analýze i optimalizaci IFS patch antén. 11 Původnı́ záměr byl výpočet z magnetických proudů, avšak v cestě stojı́ zmiňované potı́že s určenı́m směru normály. 81 Kapitola 7 PSO optimalizace Zaprvé: matematika je jazykem přı́rody. Zadruhé: vše kolem nás může ” být reprezentováno a pochopeno čı́sly. Zatřetı́: pokud znázornı́te čı́sla jakéhokoliv systému, objevı́te vzory. Tudı́ž, vzory jsou všude v přı́rodě. Důkaz?“ — prolog filmu Pi (Darren Aronofsky, 1998) V mnoha vědnı́ch oblastech je nezbytnou součástı́ návrhu systému jeho optimalizace. Důvodem je prostý fakt, že ne vše lze jednoduše spočı́tat. Pro funkci f : S −→ Rn hledáme bod xm ∈ S takový, že: f (xm ) ≤ f (x), ∀x ∈ S. (7.1) Hledáme-li maximum, invertujeme kritérium funkce. Předpokládáme neprázdnou množinu S, funkci f nazýváme objektivnı́ funkcı́ (objective function), v souvislosti s PSO často též jako fitness funkci (fitness function, dále jen f.f.). Obecně můžeme optimalizačnı́ techniky rozdělit do dvou skupin: deterministické a pravděpodobnostnı́. PSO (Particle Swarm Optimalization) patřı́ do druhé skupiny, nebot’ pozice jednotlivých členů hejna je spoluurčena náhodně generovanými čı́sly (vı́ce dále). Tak lze efektivně odolat konvergenci do lokálnı́ho minima funkce1 . 7.1 7.1.1 PSO algoritmus Historie Optimalizace vycházı́ z rojové inteligence pozorované např. u včelstev a napodobuje jejich vzorce chovánı́. V některých aspektech je PSO podobná ACO (Ant Colony Optimization), v jiných můžeme nalézt paralelu s GA (Genetic Algorithm). Ve všech přı́padech jde o samo se organizujı́cı́ systémy vykazujı́cı́ silné kolektivnı́ chovánı́. 1 Zatı́mco v přı́padě deterministických metod musı́me využı́vat složitých úprav trajektorie a penalizace. 82 Nástroj pro modálnı́ analýzu FPA 7.1. PSO algoritmus Zásadnı́ rozdı́l však spočı́vá v přı́stupu k členu hejna (agentovi), nad kterým jsou definovány určité operace a disponuje částı́ znalostı́, které má celý roj. Tento princip je vysoce efektivnı́ a dosahuje skvělých výsledků. Jistě ne nadarmo můžeme stejné vzorce chovánı́ odhalit u hejna ptáků, roje včel, ryb atp. Vlastnı́ algoritmus izoloval roku 1995 Eberhart na základě simulacı́ které provedl J. Kennedy, [45]. Od té doby vznikla celá řada studiı́ a výzkumů, které PSO využı́vajı́. Jejı́ význam dokládá i fakt, že byla zařazena jako optimalizačnı́ metoda do nové verze CST MWS. Mezi velké výhody patřı́ zejm. rychlost, jednoduchost, robustnost, odolnost vůči uvı́znutı́ v lokálnı́m minimu, využitelnost na velký soubor problémů a malé režijnı́ nároky na výpočet2 . Nynı́ se věnujme vlastnı́mu principu PSO. 7.1.2 Princip PSO Idea vycházı́ z existence určitého počtu agentů, kteřı́ jsou rozmı́stěni nad optimalizovanou funkcı́. Plochu funkce, tedy na které jejı́ části budeme minimum hledat, stanovı́ uživatel. Tento prostor se nazývá solution space (dále jen s.s.). Situaci zobrazuje obr. 7.1. Agenti se snažı́ nalézt minimum kdekoliv v s.s. (v přı́padě obr. maximum, totiž mı́sto s nejvı́ce květy). V mnoho aplikacı́ch nemá řešenı́ mimo s.s. smysl (v našem přı́padě by mohla být vedle definované louky např. řeka, kde sledovat hustoru květů nemá smysl), proto se snažı́me udržet agenty v určeném prostoru. Způsoby jak toho dosáhnout probereme později. Obrázek 7.1: Princip PSO 2 U jiných metod je potřeba navı́c sledovat gradientnı́ informace vlastnı́ funkce. Zde si postačı́me s pozicı́ a rychlostı́ každého agenta. 83 Nástroj pro modálnı́ analýzu FPA 7.1. PSO algoritmus Každý agent si pamatuje svůj dosavadnı́ nejlepšı́ objev (pbest, proměnná pnid v rovnici (7.2)). Nejlepšı́ objev celého hejna (gbest, pngd ) je potom tı́m nejlepšı́m ze všech osobnı́ch objevů. Chovánı́ jednotlivých agentů popisujı́ následujı́cı́ dva vztahy. Nejprve uved’me výpočet rychlosti agenta. Rychlost je stanovena v každé iteraci pro každého agenta zvlášt’ a ovlivňuje směr, jı́mž se pohybuje. Počet složek tohoto vektoru je rovný dimenzi (index d ) řešeného problému. n+1 n υid = wυid + c1 r1n (pnid − χnid ) + c2 r2n (pngd − χnid ) (7.2) V Matlabu je potřeba vsadit tuto rovnici do for cyklu, čı́mž je zajištěno procházenı́ celého hejna (index i označuje agenty). Zabalenı́m do dalšı́ho for cyklu umožnı́me iterovánı́ celého problému od n = 1 do n = N (paralela k jednotlivým generacı́m u GA). Dále je nutno objasnit význam zbylých proměnných a konstant. Koeficient w je často nazýván váhovacı́ faktor (weighted factor ). Může být po celou dobu optimalizace konstantnı́, nebo se může měnit (potom je zadávana dvojice parametrů wmax a wmin ). Klesajı́cı́ koeficient zabraňuje nepřı́jemným oscilacı́m a zároveň stimuluje hejno ke konvergenci nad nalezeným globálnı́m minimem. Parametry c1 a c2 udávajı́, nakolik bude výsledná rychlost odvozena od osobnı́ho minima daného agenta a nakolik od společného globálnı́ho min. Jejich optimálnı́ velikost bude diskutována v části 7.2. Bez komentáře zůstaly již pouze hodnoty r1n a r2n . V obou přı́padech se jedná o náhodně generovaná čı́sla3 s normálnı́m rozloženı́m v rozsahu (0,1), pro tyto účely je v Matlabu k dispozici funkce rand(). Vı́me-li již, jakým směrem a jak rychle se pohybujı́ agenti, můžeme aktualizovat jejich pozici: n+1 ∆t. (7.3) χn+1 = χnid + υid id Rovnice (7.3) odpovı́dá pohybové rovnicı́. Nové umı́stěnı́ agenta tedy zı́skáváme jako součet koordinátů v minulé iteraci pozměněné o pohyb v současné iteraci. Protože ∆t může obecně nabývat libovolných hodnot, lze přiřadit ∆t = 1 (jednotkový, diskrétnı́ čas). 7.1.3 Omezenı́ agentů Vztahy uvedené výše žádným způsobem neomezujı́ pohyb agentů, mohou tedy opustit s.s. Z toho důvodu bylo navrženo několik technik, které zajistı́, aby se agenti nerozběhli daleko za hranice s.s. Mezi nejcitovanějšı́ a nejužı́vanějšı́ patřı́ následujı́cı́, [43]: n+1 • Omezenı́ maximálnı́ rychlosti agenta (υid ) • Ohraničujı́cı́ zdi: 1. Absorbčnı́ zed’ (Absorbing Wall, obr. 7.2 a) 2. Odrazná zed’ (Reflecting Wall, obr. 7.2 b) 3 Právě zde je ukryta sı́la PSO, nebot’ do algoritmu zanášı́ jistý stupeň nejistoty. 84 Nástroj pro modálnı́ analýzu FPA 7.2. Optimálnı́ parametry PSO 3. Neviditelná zed’ (Invisible Wall, obr. 7.2 c) Prvnı́ uvedená možnost, tedy omezenı́ rychlosti agentů, byla využita např. v [48]. Rychlost je omezena i uvnitř s.s., což nenı́ vhodné. Lepšı́m řešenı́m je použitı́ jedné ze zdı́. Ty popisujı́ způsob, jakým je naloženo s agentem, pokud překročı́ povolené hranice. Neovlivňujı́ průběh optimalizace uvnitř s.s. a navı́c, pokud již agent opustil prohledávaný prostor, ho efektivně nasměrujı́ zpět. Obrázek 7.2: Typy zdı́ použı́vané v PSO V přı́padě absorbčnı́ zdi je s.s. lemován pomyslným mantinelem. Ta složka rychlosti, která vede ven ze s.s. je nulována, agent se tedy pohybuje pouze podél ohraničenı́. Odrazná zed’ uprostřed obrázku 7.2 též obsahuje stěnu. Namı́sto vynulovánı́ je však složce rychlosti v nežádnoucı́m směru obrácena orientace (znaménko) a agent se tedy od stěny odrazı́. Tyto dvě zdi využı́vajı́ stejného principu, a to úpravy rychlosti4 . Užitı́m odrazné zdi umožnı́me agentům vyletět ze s.s., ovšem po jeho opuštěnı́ nenı́ vyhodnocována f.f. To zapřı́čı́nı́ pozvolný návrat5 agentů zpět do s.s. Velkou přednostı́ je výrazná úspora výpočetnı́ho času, poněvadž jsou vyhodnocována pouze ta schémata, o která se skutečně zajı́máme. I z tohoto důvodu se jedná o pravděpodobně nejlepšı́ řešenı́ pro většinu inženýrských problémů. Na závěr zrekapitujme důležité parametry PSO optimalizace v tabulce 7.1.3. 7.2 Optimálnı́ parametry PSO Výsledek, stejně tak jako rychlost, s jakou je řešenı́ nalezeno, lze významným způsobem ovlivnit vhodnou volbou parametrů z tabulky 7.1. Konkrétně se budeme zabývat počtem iteracı́ a velikostı́ hejna, a také koeficienty c1 a c2 . Průběh jednotlivých optimalizacı́ je v podstatě náhodný a jakékoliv údaje musı́me zı́skat jako průměr velkého počtu opakovánı́ (zpravidla 50). Celá procedura se tak stává časově náročnějšı́. Proto dále pracujeme pouze s analytickými funkcemi. 4 Korektnı́ je termı́n přı́rustkový vektor, ovšem zavedenı́m jednotkového času tento vektor splývá s aktuálnı́ rychlostı́. 5 Animace zachycujı́cı́ chovánı́ hejna s touto zdı́ je na přiloženém nosiči. 85 Nástroj pro modálnı́ analýzu FPA Parametr c1 c2 wmin wmax ∆t iterace počet agentů pni png 7.2. Optimálnı́ parametry PSO poznávacı́ parametr (cognitive rate) sociálnı́ parametr (social rate) váhovacı́ koeficient (na konci optimalizace) váhovacı́ koeficient (na začátku optimalizace) časová konstanta (nejčastěji volena jednotková, tj. ∆t = 1) počet iteracı́ (vliv velikosti iteracı́ viz nı́že) počet agentů nad s.s. (viz nı́že) (současné) individiálnı́ nalezené minimum agenta (fmin (xi )) (současné) globálnı́ nalezené minimum agenta fmin (xi ) Tabulka 7.1: Shrnutı́ parametrů Nejprve uved’me grafické průběhy. Jejich úkolem nenı́ zobrazit nalezenou hodnotu, sledujeme zde průběh funkčnı́ch hodnot v čase. Tento typ grafů je v anglické literatuře označován jako cost funkce (cost function, dále c.f.) a dává dobrou představu o průběhu optimalizace. Zajı́mavé jsou zejména růžové a fialová křivka. Na nich vidı́me, že v přı́padě zcela nevhodně nastavených parametrů nekonverguje hejno dostatečně. Následujı́cı́ tabulky demonstrujı́ zásadnı́ vliv parametrů c1 a c2 na konečný výsledek optimalizace. Úspěšnost algoritmu testujeme podmı́nkou, zda je nalezená hodnota menšı́ než −176.1375 (Levy5, hodnota blı́zká známému globálnı́mu minimu6 , viz [46]). Funkce Levy5 (10x10 s.s.) 50x spuštěno, 20 agentů iterace úspěšnost [%] chyb celkový čas [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 50 5% 48/50 187 1000 100 78% 11/50 378 2000 150 92% 4/50 571 3000 300 100% 0/50 1258 6000 500 100% 0/50 2308 10000 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 100 80% 10/50 387 2000 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 100 92% 4/50 387 2000 PC: HP Compaq nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tabulka 7.2: Success rate funkce Levy5 (se změnou iterace), 20 agentů 6 Vı́ce o funkci Levy5 uvedeme v kap. 8., kde bude popsán i PSOptimizer, v němž byly obdrženy tyto výsledky. 86 Nástroj pro modálnı́ analýzu FPA 7.2. Optimálnı́ parametry PSO Obrázek 7.3: Optimalizace funkce Levy5 pro různá c1 a c2 (20 agentů, 150 iteracı́) Z aplikačnı́ho hlediska jsou zajı́mavé dva údaje. Prvnı́ je ten, kdy je úspěšnost poprvé rovna 100%, tedy chvı́le, kdy optimalizace vždy najde správný výsledek. Tento moment lze určit pouze pro již zmapované funkce. Druhý zajı́mavý výsledek je ten s nejvyššı́ účinnostı́ v nejkratšı́m možném čase7 . Vidı́me tedy, že úspěšnost funkce lze významným způsobem zvýšit úpravou parametrů (c1 , c2 , ale i dalšı́mi, kterými se zde nebudeme zabývat), což popisujı́ některé studie8 . Na základě výsledků testovánı́ pracujeme s hodnotami c1 = c2 = 2, přı́p. c1 = 0.5, c2 = 2. Bohužel optimalizované funkce majı́ různý charakter, a proto jsou tyto parame7 V přı́mé úměře odpovı́dá přı́padu s nejmenšı́m celkovým počtem vyhodnocenı́ fitness funkce (v tabulce evalFun). 8 Z počátku, v roce 1998 Kennedy doporučoval hodnoty c1 = 2 a c2 = 2, ovšem mnohdy se lepšı́ch výsledků dosahovalo s c1 = 0.5. V současné době se obecně respektuje podmı́nka c1 + c2 ≤ 4 (Carlisle a Dozier, 2001). Vı́ce např. [46]. 87 Nástroj pro modálnı́ analýzu FPA 7.2. Optimálnı́ parametry PSO Obrázek 7.4: Optimalizace funkce Levy5 pro různá c1 a c2 (20 agentů, 150 iteracı́) Funkce Levy5 (10x10 s.s.) 50x spuštěno, 45 agentů iterace úspěšnost [%] chyb celkový čas [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 50 16% 42/50 370 2250 100 98% 1/50 711 4500 150 98% 1/50 1083 6750 300 100% 0/50 2328 13500 500 100% 0/50 > 4000 22500 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 50 72% 14/50 362 2250 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 50 90% 5/50 363 2250 PC: HP Compaq nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tabulka 7.3: Success rate funkce Levy5 (se změnou iterace), 45 agentů try voleny zpravidla na základě doporučenı́ v referenčnı́ literatuře. Pro úplnost uved’me i účinnost optimalizace při změně počtu agentů (tabulky 7.2, 7.3 a 7.4). Počet agentů je zpravidla pevně stanoven (nejčastěji 20-25 jedinců). Zvýšit jejich počet je doporučeno u problémů, které jsou definovány na velmi rozlehlém s.s., anebo (zejména) pokud prohledávaný prostor obsahuje mnoho lokálnı́ch minim. Mnohem častěji je v přı́padě problémů navýšen počet iteracı́, přı́padně jsou pozměněny parametry c1 a c2 . 88 Nástroj pro modálnı́ analýzu FPA 7.2. Optimálnı́ parametry PSO Funkce Levy5 (10x10 s.s.) 50x spuštěno, 150 iteracı́ agentů úspěšnost [%] chyb celkový čas [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 5 44% 28/50 84 750 10 64% 18/50 121 1500 20 92% 4/50 198 3000 30 100% 0/50 276 4500 45 100% 0/50 370 6750 PC: 64bit Core2Quad 9450 (2.66GHz),12MB cache, 4GB 1333MHz Tabulka 7.4: Success rate funkce Levy5 (podle počtu agentů), 150 agentů Funkce Levy5 (10x10 s.s.) 50x spuštěno, 50 iteracı́ agentů úspěšnost [%] chyb celkový čas [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 5 0% 50/50 32 250 10 0% 50/50 42 500 20 2% 49/50 65 1000 30 6% 47/50 88 1500 45 12% 44/50 118 2250 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 45 76% 12/50 160 2250 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 45 92% 4/50 154 2250 c1 = 1.5, c2 = 1.5, wmin = 0.4, wmax = 0.9 45 90% 5/50 165 2250 PC: 64bit Core2Quad 9450 (2.66GHz),12MB cache, 4GB 1333MHz Tabulka 7.5: Success rate funkce Levy5 (podle počtu agentů), 50 iteracı́ V omezeném rozsahu lze pracovat i s hodnotami wmin a wmax . Pokud chceme využı́t maximálnı́ho rozletu hejna až do konce optimalizace, ponecháme obě hodnoty stejně vysoké. Zpravidla však požadujeme, aby po hrubém nalezenı́ řešenı́ roj hledal kolem tohoto mı́sta důkladněji. K tomuto účelu je vhodné nastavenı́ hodnot wmin = 0.4 (nejméně však 0.1) a wmax = 0.9 (nejvýše 1.2). Tak efektivně omezı́me i časté oscilace agentů. Pro hlubšı́ porozumněnı́ mechanismům PSO je vhodné zavést takové indikátory, které by byly měřitelné u všech optimalizovaných funkcı́. Tento požadavek splňuje rozptyl, zavedený následovně: Pag n n i=1 (kpg k − kpi k) σ= , (7.4) ag 89 Nástroj pro modálnı́ analýzu FPA 7.2. Optimálnı́ parametry PSO Obrázek 7.5: Počet agentů mimo s.s. pro Levy5 a Rosenbrockovu funkci (20 agentů, 150 iteracı́) kde ag je celkový počet agentů. Tak lze pro stejně velké s.s. vzájemně porovnávat a sledovat rozlet hejna nezávisle na zkoumané funkci. Zajı́mavá hodnota v každé iteraci je i počet agentů mimo s.s. Pomocı́ nı́ můžeme odhadnout jak řešenı́ konverguje a tı́m i efektivitu hejna. Obrázek 7.6: Rozptyl agentů, Levy5 a Rosenbrockova funkce (20 agentů, 150 iteracı́) Na závěr krátce okomentujme obrázky 7.5 a 7.6. Grafy jsme zı́skali na základě hodnot exportovaných z PSOPost, postprocessingového nástroje, který představı́me v následujı́cı́ kapitole. Ten umožňuje vykreslit hladiny funkce s nalezeným globálnı́m minimem a v animaci pohyb jednotlivých agentů. Rovněž můžeme sledovat hodnoty rozptylu a počet agentů mimo s.s. Na prvnı́ pohled je patrné, že – ač pro zcela rozdı́lné funkce – jsou si průběhy dosti podobné a napovı́dajı́, jakým způsobem se pohybuje hejno během optimalizace. Může být předmětem dalšı́ho výzkumu, zda lze této závislosti využı́t k zefektivněnı́ PSO. Tuto domněnku jsme publikovali v [38], dosud však nebyl prostor jı́ hlouběji prozkoumat. 90 Nástroj pro modálnı́ analýzu FPA 7.3 7.3. Stretched PSO Stretched PSO Klasické pojetı́ PSO je dostatečně efektivnı́, přesto existujı́ funkce (Corana 4D, XOR, Freudenstein-Rothova a dalšı́), kde selhává. K. E. Parsopoulos a M. N. Vrahatis v [47] navrhli postup, který dosahuje i pro problematické funkce stoprocentnı́ účinnosti. Největšı́m problémem zmı́něných funkcı́ je existence mnoha lokálnı́ch minim. Ty stojı́ v cestě agentům při hledánı́ globálnı́ho minima9 . Pro dalšı́ účely si můžeme lokálnı́ minimum popsat jako nejmenšı́ hodnotu funkce f v okolı́ B bodu x: f (x) ≤ f (x), ∀x ∈ B. (7.5) A právě všechny body x krom globálnı́ho minima si přejeme eliminovat. Ukazuje se, že stretching technika je vhodným nástrojem na potlačenı́ těchto (vedlejšı́ch) minim. V podstatě jde o transformaci předpisu f (x), která je provedena ve dvou krocı́ch. Ihned po objevenı́ lokálnı́ho minima podle (7.5) převedeme funkci podle vztahů: G(x) = f (x) + γ1 kx − xk sign f (x) − f (x) + 1 (7.6) a sign f (x) − f (x) + 1 H(x) = G(x) + γ2 , tanh µ G(x) − G(x) (7.7) kde γ1 , γ2 a µ jsou libovolně zvolené vysoké konstantnı́ hodnoty a sign(x) splňuje podmı́nku: 1 pro x > 0 0 pro x = 0 (7.8) sign(x) = −1 pro x < 0 Funkci (7.8) můžeme numericky modelovat pomocı́ vztahu10 : Obrázek 7.7: Funkce Levy5: bez transformace, s G(x) a po H(x), zdroj: [47] 9 Pochopitelně lze situaci řešit zvýšenı́m počtu agentů a iteracı́, ale tento postup nenı́ přı́liš efektivnı́, resp. jeho efektivita strmě klesá s rostoucı́ složitostı́ funkce. 91 Nástroj pro modálnı́ analýzu FPA sign(x) ≈ log sig(x) = 7.4. GSO algoritmus λx 2 ∼ tanh , = 2 1 + exp−λx (7.9) přı́padně můžeme volat funkci sign v Matlabu. Testy SPSO pro funkci Levy5 dopadly podle [46] o 10-20% lépe. Jak vidı́me na obr. 7.7 uprostřed (po transformaci G(x), podle (7.6)) a vpravo (po transformaci G(x) i H(x), podle (7.7)), lokálnı́ minima jsou roztažena a rozmazána, zatı́mco globálnı́ minimum zůstalo nedotčeno. V takto upravené krajině“ se mohou agenti ” pohybovat mnohem snadněji. Princip SPSO pouze nastiňujeme pro eventuelnı́ budoucı́ využitı́. V současné podobě PSOptimizeru nenı́ stretched PSO využı́váno – všechny dosavadnı́ úkoly spojené s optimalizacı́ patch antén se ukázaly dostatečně řešitelné i pomocı́ klasického PSO v kombinaci s neviditelnou zdı́. 7.4 GSO algoritmus V roce 2006 byla publikována práce [50], zabývajı́cı́ se možnostı́ spojit GA a PSO. Tato metoda je označována jako GSO (Genetical Swarm Optimization). Obrázek 7.8: Princip GSO optimalizace, na základě [50] Motivacı́ bylo mj. zjištěnı́, že v přı́padě mimořádně složitých funkcı́ (10, 20 i vı́ce rozměrů s.s.) klesá účinnost PSO i GA k nule. Jejich spojenı́ do GSO však poskytuje potřebnou flexibilitu a rapidně zvyšuje úspěšnost nalezenı́ globálnı́ho minima. V každé iteraci jsou agenti nově vybı́ráni a upraveni pomocı́ PSO nebo GA. GSO je vhodné mı́t do budoucna na paměti, nebot’ s požadavkem na současnou optimalizaci rezonančnı́ frekvence a vyzářovacı́ho diagramu jsme nuceni na jedné straně zvětšovat rozlohu s.s., na druhé straně se vzrůstajı́cı́m počtem podmı́nek i počet rozměrů s.s. V důsledku se tak optimalizace stává o řád obtı́žnějšı́. Realizace GSO je nenáročné dı́ky tomu, že pouze slučuje dva již známe postupy, viz obr. 7.8. Jako největšı́ obtı́ž se jevı́ vytvořenı́ vlastnı́ho GA optimalizátoru, který komunikuje s PSO a zvolenı́ vhodného formátu, s kterým GA i PSO dokážı́ pracovat. 10 Rovnice (7.9) je široce využı́vána i v oblasti umělých neuronových sı́tı́. 92 Kapitola 8 PSOptimizer Princip PSO byl vysvětlen v předcházejı́cı́ kapitole, zde se zaměřı́me na vývoj optimalizátoru. Mezi praktickými požadavky byla na počátku prioritně rychlost algoritmu, jeho univerzálnost, možnost měnit jednotlivé parametry (iterace, počet agentů atd.), dále schopnost rekurzivnı́ho volánı́1 , řešitelnost problémů libovolné dimenze a v neposlednı́ řadě stabilita (zdaleka ne všechny scénáře jsou řešitelné – může jı́t např. o fyzikálnı́ omezenı́ v souvislosti s optimalizacı́ antény). Vyžadujeme možnost shrnout vı́ce prvků do jedné podmı́nky a tı́m je ”spřáhnout”, aby byly optimalizovány nejednou (např. všechna 4 ramena fraktálu majı́ mı́t stejnou výsledkou hodnotu). Toto se podařilo zavedenı́m PsoData struktury a speciálnı́ úpravou PSO algoritmu. Optimalizátor tak umožňuje pracovat zcela univerzálně. Dokončený PSOptimizer respektuje všechny výše uvedené požadavky. Nynı́ se věnujme jeho popisu, testovánı́ a ukázce zadávanı́ jednotlivých úloh. 8.1 Implementace Aplikace je stejného typu jako ostatnı́ solvery (EvalInFem, EvalRadPattern). Obsahuje pouze minimum ovládacı́ch prvků. Pro jednotlivé části jsme užili lokálnı́ch funkcı́, fitness funkce je řešena separátně (definuje ji uživatel pro konkrétnı́ problém). V inicializačnı́ části je ověřeno, jsouli hodnoty správně zadány, je stanovena počátečnı́ generace agentů a vykresleno grafické rozhranı́. Nenı́-li zadán počet iteracı́ a agentů, jsou dosazeny hodnoty 50 resp 25. Celý algoritmus přehledně shrnuje tab. 8.1. Počet optimalizačnı́ch podmı́nek2 udává rozměr s.s., ale i dimenzi jednotlivých agentů. PsoData struktura může obsahovat i data, která se neoptimalizujı́ (to je přı́klad i FRC koláže), je proto nutné data přeskupit. To je úkol funkce callFF v tabulce 8.1. 1 Návratová hodnota funkce musı́ obsahovat nejen optimalizované údaje, ale i informace o nastavenı́ PSO, jednotlivých generacı́ch, konvergenci ke globálnı́mu minimu atd. 2 Spřažené podmı́nky se počı́tajı́ jako jedna, nebot’ se jejich hodnota měnı́ společně. 93 Nástroj pro modálnı́ analýzu FPA 8.2. PsoData formát Obrázek 8.1: GUI PSOptimizeru GUI programu je navržen tak, aby byl jednoduchý3 , ale zároveň podrobně informoval o stávajı́cı́m stavu optimalizace. Text v levém rámu zobrazuje nastavené výchozı́ parametry, v pravé části potom aktuálnı́ průběh. Stupnice na ose y grafu zobrazujı́cı́ho cost funkci je v (zde názornějšı́m) logaritmickém měřı́tku. Tlačı́tko Exit ukončuje optimalizaci, nejdřı́ve však po dokončenı́ dané iterace. I v tomto přı́padě se vracı́ výsledky, kterých bylo dosaženo4 . Základnı́ tvar volánı́ funkce je: res = PSOptimizer(PsoData,’fitnessFunction’,ag,it), kde ag je počet agentů, it počet iteracı́ a řetězec fitnessFunction obsahuje jméno mfile souboru s fitness funkcı́. Proměnná PsoData popisuje co a jakým způsobem se má optimalizovat. 8.2 PsoData formát Obsahuje následujı́cı́ pole: PsoData.data1 = [ ] PsoData.data2 = [ ] PsoData.data3 = [ ] PsoData.type = ’psopt’ PsoData.rank PsoData.bound{} = [ ] PsoData.cond{} = [ ] 3 4 Pokud je program volán opakovaně, nezatěžuje PC. Tak nedojde ke ztrátě výsledků ani po přerušenı́ několikahodinové optimalizace. 94 Nástroj pro modálnı́ analýzu FPA krok krok krok krok krok krok krok krok krok krok krok krok krok krok krok krok 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. krok 1. krok 2. krok 3. 8.2. PsoData formát PSOptimizer kontrola vstupnı́ch parametrů inicializace GUI tvorba hejna (náhodná pozice i rychlost všech agentů) vyhodnocenı́ 1. iterace for i = 1:iteraciCelkem úprava wactual update rychlosti agentů update pozice agentů for j = 1:agentůCelkem if agent(j) ∈ s.s. callFF end end update pBest, gBest výpis informacı́ end callFF upravı́ PsoData podle aktuálnı́ch agentů volá f.f. s aktuálnı́mi daty (PsoData) agentům je přiřazen výsledek f.f. Tabulka 8.1: Principiálnı́ schéma PSOptimizeru Předně do funkce vstupujı́ 3 sloty (PsoData.data1-3), ve kterých se mohou umı́stit optimalizovaná data. Velikost matic data1-3 je libovolná, vždy však musı́ být všechny tři matice definovány (alespoň jako prázdné). Počet slotů volı́me tak, aby byl dostatečný pro řešenı́ IFS antén (body základnı́ho útvaru, transformace a iteračnı́ matice). Dalšı́m polem je PsoData.type, které je fixně zadáno string řetězcem psopt. Pole je potřeba při identifikaci přı́chozı́ch dat uvnitř funkce. PsoData.rank je nepovinný údaj, jenž koresponduje s dimenzı́ optimalizace. Na závěr zde figurujı́ pole PsoData.bound, ve kterém jsou uloženy hranice5 definujı́cı́ s.s. a také PsoData.cond, indexujı́cı́ optimalizované parametry6 . Matice PsoData.cond může mı́t libovolný počet řádek. Protože každá řádka označuje jednu optimalizovanou pozici v jedné z matic, lze takto svázat do jedné dimenze (PsoData.cond{dim}) několik optimalizovaných hodnot. Takové hodnoty jsou potom v rámci PSO považovány za jeden údaj a jsou optimalizovány společně. 5 Způsob zápisu: ProData.bound{dimenze}= [min max] pro danou dimenzi. a1 b1 c1 6 Formát je následujı́cı́: PsoData.cond{dimenze} = a2 b2 c2 , kde a odpovı́dá čı́slu da.. .. .. . . . tového slotu 1-3, b ukazuje na řádku daného slotu, c potom značı́ pozici na řádce (čı́slo sloupce). 95 Nástroj pro modálnı́ analýzu FPA 8.3. Fitness funkce, testy Tento postup je ideálnı́ v přı́padě, že potřebujeme mezi některými hodnotami zachovat fixnı́ poměr (jejich rovnost). Uvedeným postupem zajistı́me, že do funkce vstupujı́ všechna uživatelská data (fitness funkce tedy může s těmito daty komplexně pracovat) a navı́c ucelený údaj co a v jakých mezı́ch se má optimalizovat. Tento přı́stup šetřı́ čas a umožňuje optimalizovat pravidelné útvary. 8.3 Fitness funkce, testy Strukturu PsoData musı́me zohlednit při návrhu jakékoliv fitness funkce. Nikoliv pouze hlavičky, ale i při zpracovánı́ dat zaslaných PSO algoritmem na ohodnocenı́. Definice funkce by měla odpovı́dat následujı́cı́mu vzoru: function fitnessValue = fitnessFunction(sign, tested data) String sign má vždy hodnotu ’eval’, často ho využı́váme pro označenı́ volánı́7 . Proměnná fitnessValue vracı́ zpět hodnotu, podle které se celá roj pohybuje (v přı́padě EvalRadPattern rezonančnı́ frekvenci dominantnı́ho módu). Uvnitř tested data nalezneme sloty .data1-3 podobně jako v PsoData, v tomto přı́padě obsahujı́ aktuálnı́ hodnoty určené k vyhodnocenı́ funkce (např. základnı́ útvar, optimalizované transformace a iterace). Dı́ky volánı́ externı́ho mfilu, můžeme využı́vat PSOptimizer pro libovolné účely – postačı́ dodržet předepsanou hlavičku f.f. (mfile) a data zadávat ve formě PsoData8 . Vzhledem k neexistenci řádného PSO toolboxu v Matlabu, může být využitı́ PSOptimizeru dobrou volbou. Testované funkce Před využitı́m k návrhu patch antén je nutné ověřit funkčnost PSOptimizeru na analytických funkcı́ch, u kterých známe výsledek (tj. globálnı́ minima). Algoritmus byl prověřen následujı́cı́mi funkcemi: • Kvadratická funkce • Rosenbrockova funkce • Funkce Levy No.5 Funkce jsou rozdı́lně členité (krajina, kterou se pohybujı́ agenti) a jsou dostatečně popsány v literatuře, lze tedy verifikovat zı́skané hodnoty. Algoritmus byl využit i pro optimalizaci jiných funkcı́ (Levy No.3, Rastigrinova funkce . . . ), ve všech přı́padech PSO podalo očekávané výsledky. Metodika využitá pro hodnocenı́ výsledků optimalizace respektuje obvyklé postupy ([46] a dalšı́). 7 Např. EvalInFem nebo EvalRadPattern podle něj poznajı́, že jde o optimalizaci a nevypı́najı́ na konci grafická okna, jinak nakládajı́ i s chybami. 8 Využitı́ PSO v antennı́ technice je obrovské. Od optimalizace zářičů, přes úpravy čoček, reflektorů a ohnisek, až po komplexnı́ optimalizace celých systémů. 96 Nástroj pro modálnı́ analýzu FPA 8.3. Fitness funkce, testy Funkce 1 (kvadratická) fkv (x) = x2 − 10 (8.1) Na této funkci demonstrujeme vliv neviditelné zdi9 . Pokud s.s. zvolı́me pouze v rozsahu h2, 5i, bude nalezené minimum rovno -6, a to i přes to, že jednotlivı́ agenti mohou krátkodobě proniknout i blı́že k 0 na ose x. Situace je znázorněna na obr. 8.2. Obrázek 8.2: Optimalizace kvadratické funkce v rozsahu x ∈ h2, 5i Funkce 2 (Rosenbrockova) f (x) = N X 100(xi+1 − x2i )2 + (xi − 1)2 (8.2) i=1 fro (x, y) = 100(y − x2 )2 + (x − 1)2 (8.3) Funkce se široce uplatňuje ve většině optimalizačnı́ testů. Pro svou monotonii (obr. 8.3) lze využı́t i gradientnı́ metody, nebot’ nehrozı́ uvı́znutı́ v lokálnı́m minimu. Globálnı́ mininum můžeme nalézt na souřadnicı́ch x = 1, y = 1 a hodnota f (xmin , ymin ) = 0. Podle rovnice (8.2) je funkce definována v [43], využijeme však jednoduššı́ho tvaru (8.3). Obr. 8.4 ukazuje, jak rychle klesá chyba, s kterou je nalezeno globálnı́ minimum. Tuto rychlost lze výrazně ovlivnit nastavenı́m parametrů wmin a wmax . Pokud váhovacı́ koeficient s iteracı́ klesá, klesá také přı́spěvek nově vypočtené rychlosti a agent je spı́še udržován v současné pozici. Eliminujeme tı́m oscilace, při kterých agenti kmitajı́ kolem nalezeného minima. 9 Neviditelná zed’ se uplatňuje nepřı́mo tı́m, že neumožnı́ vyhodnotit možné nižšı́ minimum v rozsahu h−2, 2i. Vybraná pole PsoData pro tuto optimalizaci jsou rovna: PsoData.rank = 1; PsoData.cond{1} = [1 1 1]; PsoData.bound{1} = [2 5]. 97 Nástroj pro modálnı́ analýzu FPA 8.3. Fitness funkce, testy Obrázek 8.3: Rosenbrockova funkce, s.s. ∈ h−10, 10i × h−10, 10i a cost funkce Obrázek 8.4: Konvergence ke skutečnému minimu Rosenbrockovy funkce Funkce 3 (Levy No.5) fl5 (x, y) = 5 X i=1 5 X i cos (i−1)x+i j cos (j+1)y+j +(x+1.42513)2 +(y+0.80032)2 j=1 (8.4) Na prostoru h−2, 2i × h−2, 2i můžeme nalézt 760 lokálnı́ch a jedno globálnı́ minimum (souřadnice x = −1.3068, y = −1.4248). Velikost s.s. je úmyslně zvětšena na h−10, 10i × h−10, 10i (jako u Rosenbrockovy f.). Tato funkce dobře testuje odolnost vůči uvı́znutı́ agentů v lokálnı́ch extrémech. Úspěšnost optimalizace pro různá nastavenı́ ukazujı́ tab. 7.2 až 7.5 a obr. 8.5. Z presentovaných výsledků je vidět, že návrh PSO algoritmu byl úspěšný a mnohdy dosahuje vyššı́ účinnosti než srovnatelné publikované algoritmy, viz [46] a [48]. To je dáno pravděpodobně použitı́m vhodného typu zdi a testovánı́m pro 98 Nástroj pro modálnı́ analýzu FPA 8.4. Zpracovánı́ výsledků Obrázek 8.5: Funkce Levy No.5, s.s. ∈ h−10, 10i × h−10, 10i a cost funkce relativně (v kontextu optimalizace) jednoduché funkce. 8.4 Zpracovánı́ výsledků V souvislosti s optimalizacı́ nás nezajı́má pouze vlastnı́ výsledek, tedy geometrie koláže s nejnižšı́ rezonančnı́ frekvencı́, požadovaným VD atp. Chceme znát i průběh optimalizace, chovánı́ jednotlivých agentů, jak vypadá prohledávaná funkce a mı́ra efektivity celého hejna. Přirozeně, abychom tyto informace zı́skali, musı́me zahrnout do PSO dalšı́ techniky. Pro plné využitı́ potenciálu PSO definujeme výstup v následujı́cı́m tvaru: res.data1 = [ ] res.data2 = [ ] res.data3 = [ ] res.done res.score res.type = ’optim’ res.history.populPosition = [ ] res.history.iter = [ ] res.history.value = [ ] res.history.psoDta = [ ] res.options. . . . Výstupnı́ pole obsahuje opět sloty 1-3, patřičné hodnoty jsou ale optimalizovány. Hodnota f.f. pro tyto hodnoty je uvedena v res.score. Pole done referuje o zdárném ukončenı́ PSO (res.done = 1), v opačném přı́padě je res.done = 0 (určeno jako návěstı́ pro nadřazené programy). Res.options uvádı́ parametry, za kterých byla optimalizace dokončena a konečně res.history obsahuje většinu vnitřnı́ch stavů PSOptimizeru v 99 Nástroj pro modálnı́ analýzu FPA 8.4. Zpracovánı́ výsledků každé iteraci. Právě tohoto pole lze využı́t např. pro vykreslenı́ cost funkce (obr. 8.2 vpravo pro kvadratickou funkci), nebo pro vykreslenı́ pozice jednotlivých agentů v dané iteraci (screenshot 53. iterace je vidět na obr. 8.6). Souvislosti mezi uvedenými formáty jsou naznačeny na obr. 12.24 dodatku 12.3. PSOPost Pro dynamické zobrazenı́ průběhu optimalizace byl vytvořen program PSOPost. Náhled ukazuje obr. 8.6. V tuto chvı́li je promı́tánı́ optimalizace omezeno na dvě existujı́cı́ podmı́nky (2D). Počı́táme však s rozšı́řenı́m do 3D, kdy jednotlivé podmı́nky půjdou zvolit (neomezený počet podmı́nek). Do programu byl dodatečně připojen výpočet rozptylu agentů, později i výpočet všech, kteřı́ překročili hranice s.s. Tyto hodnoty jsou i real-time vykreslovány do grafů vpravo. Obrázek 8.6: Program PSOPost, vč. průběhu funkce Levy5 a agentů Ovládacı́ rozhranı́ je jednoduché. Obsahuje tlačı́tka na spuštěnı́ videa, jeho pauzu (opětovné spuštěnı́ restartuje video) a tlačı́tka na reset canvasu a ukončenı́ programu. Funkce může být volána s celou řadou parametrů a nastavenı́. 100 Nástroj pro modálnı́ analýzu FPA 8.4. Zpracovánı́ výsledků PSOPost syntaxe Program disponuje celou řadou možnostı́, jak jej volat. Základnı́ tvar PSOPost(PsoData,res,0) pouze zpracuje res a zobrazı́ pohyb roje v s.s. a patřičné parametry. Přı́znak ’0’ (false) zajistı́, že animace je pouze připravena a start zajistı́ uživatel ( Run movie ). Dalšı́ přı́kaz umožňuje vykreslit hladiny funkčnı́ch hodnot f.f. v daném s.s. Tyto hodnoty musı́ být zpracovány ve formě dvou sloupcových matic [x],[y] a m×n matice [z] o rozměrech (x,y). Pak lze PSOPost volat: PSOPost(PsoData,res,0,x,y,z). Pokud navı́c požadujeme návrat vypočtených hodnot, využijeme: [roz age] = PSOPost(PsoData,res,0,x,y,z). Při změně přı́znaku ’0’ na ’1’ (true) je po spuštěnı́ aplikace automaticky spuštěna animace: [roz age] = PSOPost(PsoData,res,1) nebo [roz age] = PSOPost(PsoData,res,1,x,y,z). Vhodným vylepšenı́m, umožňujı́cı́ ještě lepšı́ náhled na chovánı́ hejna, je zavedenı́ vektorů, které by v každé iteraci zobrazovali směr a velikost přı́rustkového vektoru (rychlosti). Obrázek 8.7: Pozice agentů pro 5. a 150. iteraci (Levy5, s.s. ∈ 10 × 10) DVD obsahuje video s ukázkou pohybu hejna při hledánı́ minima úlohy H2 (označenı́ úloh viz dalšı́ kapitoly) a dalšı́ snı́mky PSO optimalizace. 101 Nástroj pro modálnı́ analýzu FPA 8.5 8.5. Spojenı́ s EvalInFem Spojenı́ s EvalInFem Z pohledu PSOptimizeru se jedná o standardnı́ optimalizaci – po porovnánı́ dat je ve funkci calFF volána f.f. EvalInFem. Dı́ky parametru ’eval’ (namı́sto ’stat’, jak bylo uvedeno v 5. kapitole) CM analyzátor pozná, že přı́chozı́ data jsou optimalizována a běh programu je podřı́zen spuštěné PSO. Celý postup je netradičnı́ v tom smyslu, že zatı́mco v drtivé většině přı́padů je optimalizován analytický předpis, zde je to výsledek celé sady operacı́ – generace a úpravy IFS, analýzy CM modelu a navrácenı́ správné rezonančnı́ frekvence. 8.6 Zrychlenı́ metody Vzhledem k faktu, že drtivou většinu času trvá vyhodnocenı́ fitness funkce (dutinový model) a režie PSOptimizeru je minimálnı́, je vhodné, až na jeden přı́pad, mluvit spı́še o zvýšenı́ efektivity než o zrychlenı́ celé metody. Tou jedinou vyjı́mkou je možnost využitı́ distribuovaných výpočtů. Matlab podporuje distribuované výpočty ve vı́ce úrovnı́ch. Motivacı́ je maximálnı́ zrychlenı́ výpočtu. Prvnı́ úroveň, využı́vajı́cı́ vı́cejádrových procesorů, je nativně aktivována a zabudované matematické knihovny Matlabu defaultně pracujı́ vı́cejádrově. Stále se však jedná pouze o jeden proces, který je zpracováván vı́ce procesory. Druhý level paralelizace obsahuje Parallel Computing Toolbox. S tı́mto toolboxem lze vytvářet a řı́dit běh vı́ce paralelnı́ch procesů. A konečně poslednı́ úrovnı́ je společné využitı́ Parallel Computing Toolboxu a Matlab Distributed Computing Serveru. Do jednoho clusteru lze pojmout max. 256 procesorů (PC jsou propojené v sı́ti). Pochopitelně využitı́ této technologie vyžaduje patřičné licence10 . Vzhledem k časové náročnosti optimalizace je distribuovaný výpočet logickým krokem k jejı́mu zkrácenı́. Např. při možnosti vytvořit cluster o cca. 15 PC, kdy se dostáváme na velikost jedné generace členů hejna v PSO, zrychlujeme výpočet takřka 15x a můžeme si dovolit úvahy o záměně dutinového modelu za nepoměrně přesnějšı́ metodu momentů, vı́ce [12], [33] a dalšı́. Hotové rozhranı́ by se dalo využı́t i pro jiné úlohy v souvislosti s Matlabem. Vzhledem k uvedeným nárokům na licence, je tato část zatı́m pouze v přı́pravě. Vı́ce k licenčnı́ politice, i cenám samotným na stránkách [98]. Ostatnı́ techniky (SPSO, GSO) byly zmı́něny dřı́ve. 10 Krom základnı́ho Matlabu tedy ještě Parallel Computing Toolbox, Matlab Distributed Computing Server, přı́p. Matlab Compiler. 102 Kapitola 9 IFSLimiter Jak jsme ukázali v předchozı́ch kapitolách, zadávánı́ optimalizačnı́ podmı́nek nenı́ přı́liš přehledné. Zjevně je to daň za zobecněný přı́stup, jenž užı́váme. Situace je u IFS fraktálů o to složitějšı́, že optimalizovaný parametr má na koláž pouze zprostředkovaný vliv (je potřeba nejprve IFS vypočı́tat). K přehlednému nastavenı́ všech parametrů a mezı́ sloužı́ IFSLimiter. Je vhodné poznamenat, že tento nástroj nesloužı́ k tvorbě ani úpravě koláže, k tomu jsou určené IFSMaker a AntTool. 9.1 Struktura programu Z programátorského hlediska se jedná o samou mez, kdy lze využı́t strukturovaného programovánı́. IFSLimiter obsahuje přes 120 funkcı́ na 3500 řádcı́ch. Aplikace se spouštı́ bez dalšı́ch argumentů. Screenshot je zobrazen na obr. 9.1. Fraktál se po načtenı́ FRC (nebo PsoData) objevı́ uprostřed, jeho velikost lze upravit zoomem. Všimněme si, že body i transformace majı́ před svými koordináty tag (P- nebo T-), toho využijeme při zadávánı́ podmı́nek. Postup je následujı́cı́: 1. Načtenı́ koláže FRC. Je automaticky zarovnána a vykreslena. 2. Vytvořenı́ nové položky s hranicemi s.s., např. (0, 10). Tlačı́tko New stock . 3. V tabulce zobrazujı́cı́ tyto položky vybereme právě vytvořenou a tlačı́tkem Add condition otevřeme průvodce pro zadávánı́ optimalizačnı́ch podmı́nek. 4. V zobrazeném okně se můžeme ujistit, že je vybrána vhodná dimenze s.s. Zvolı́me, zda se optimalizace bude týkat bodu či transformace. 5. Následujı́cı́ krok zobrazı́ všechny dostupné body/transformace a jejich souřadnice. Z nich zvolı́me tu správnou hodnotu. Finish uložı́ podmı́nku do připraveného slotu. 103 Nástroj pro modálnı́ analýzu FPA 9.1. Struktura programu Obrázek 9.1: IFSLimiter 6. Zadanou podmı́nku si nynı́ můžeme vykreslit. Stačı́ ji vybrat v dolnı́ tabulce a zvolit SHOW . Červené hranice pak značı́ minimum, kterého koláž může při optimalizaci této podmı́nky nabýt, zelená hranice značı́ maximum. Jedna hranice (Stock ) může obsahovat i vı́ce podmı́nek, což bývá v souvislosti s IFS velice časté. V tomto přı́padě lze ovlivnit, zda se budou vykreslovat všechny podmı́nky z jedné hranice, či pouze vybrané. Protože při zadávánı́ hranic nenı́ ještě zřejmé, čemu připadnou (bodu, transformaci), nemůže IFSLimiter hlı́dat správné zadávánı́ hodnot1 . To je vyžadováno od uživatele. Defaultně lze vykreslit pouze jednu hranici, tak aby byla situace přehledná, lze jich však vhodným nastavenı́m2 vykreslit i vı́ce, viz obr. 9.1. Již existujı́cı́ hranice i podmı́nky lze libovolně editovat, mazat a znovu vytvářet. Při práci se složitějšı́ kolážı́ je často vhodné skrýt body, základnı́ objekt nebo transformace. To umožňuje menu Show v hornı́ liště. Lze nastavovat i grafiku jednotlivých prvků. Podrobněji je práce s IFSLimiterem zpracována v pdf nápovědě k programu. Narozdı́l od IFSMakeru změny v nastavenı́ grafiky a odezva na některé přı́kazy nenı́ automatická, ale je potřeba kliknout na Refresh . Podobně jako předchozı́ 1 Máme zde na mysli zejm. podmı́nku kontrakce pro IFS. Pokud by výše uvedená hranice (0, 10) platila pro parametr a transformačnı́ matice, který správně nabývá hodnot (0, 1), nebude dodržen požadavek afinnı́ch transformacı́. 2 Volby Show only one Stock a Show all Conditions. 104 Nástroj pro modálnı́ analýzu FPA 9.2. Testovacı́ úloha editory, i tento obsahuje některé dalšı́ funkce, usnadňujı́cı́ vlastnı́ práci. Lze namı́tnout, že výhodnějšı́ by bylo spojit IFSMaker a IFSLimiter do jednoho programu. To je však těžce realizovatelné hlavně v souvislosti s univerzalitou obou nástrojů. Přehlednějšı́ je proto rozdělenı́ úkolů tak, jak je tomu v současnosti. 9.2 Testovacı́ úloha Jednotlivé mechanismy demonstrujme na jednoduchém přı́kladu. Předpokládejme obdélnı́k, jehož delšı́ stranu bychom rádi optimalizovali. Neuvažujme nynı́ fixnı́ délku hrany nastavenou v EvalInFem na 10cm. Situace je zobrazena na obr. 9.2. Obrázek 9.2: Obrázek optimalizačnı́ch mezı́ pro testovacı́ úlohu Délku obdélnı́ka ovlivňuje parametr a transformačnı́ matice. Pokud nastavı́me F RC.iter rovno [1 1 1], tj. vypočtena bude 1. iterace a pouze tato bude použita na vlastnı́ patch, můžeme rozsahem parametru a ovlivňovat délku výsledné koláže. Je-li velikost obdélnı́ka 10 × 4 cm a koeficientu a 0.6, bude výsledná délka 6cm, resp. velikost 6 × 4. Obrázek 9.3: Zadánı́ podmı́nky, vstup a výstup Zvolme tedy hranice s.s. v rozsahu (0.6, 1), jak ukazuje i obrázek 9.3. Nynı́ k této 105 Nástroj pro modálnı́ analýzu FPA 9.3. Zadánı́ úloh hranici přidáme podmı́nku. V prvnı́m kroku zvolı́me transformace, poté klikneme vlevo na transformaci T 1 (vı́c jich ani pro obdélnı́k nemáme) a zvolı́me parametr a. Tento výsledek exportujeme jako PsoData do Matlabu (na obr. 9.3 vpravo, je vidět i doplněnı́ polı́ bound a cond) a spustı́me optimalizaci. Rezonančnı́ frekvence dominantnı́ho módu je dána pouze délkou optimalizované hrany a nejmenšı́ vycházı́ pro nejdelšı́ hranu. PSOptimizer proto vracı́ výsledek 10cm. 9.3 Zadánı́ úloh Stejným postupem, jaký byl uveden u přı́kladu výše, řešı́me i složitějšı́ struktury s vı́ce body a transformacemi. Iteraci zpravidla volı́me 3, což je vhodný kompromis mezi požadovanou křivostı́ útvaru a rychlostı́ výpočtu. Na následujı́cı́ch řádcı́ch popišme konkrétnı́ úlohy, které byly optimalizovány. Výsledky a jejich rozbor provedeme v následujı́cı́ kapitole. Úlohy jsou značeny podle jednoduchého klı́če, který nám zajistı́ systematický přı́stup ke všech vstupům i výstupům optimalizace. Pı́smeno je odvozeno od názvu zdrojové koláže (FRC A, FRC B apod.), čı́slo značı́ pořadı́ optimalizace. Všechny provedené simulace jsou uvedeny v tabulce na DVD. Ta obsahuje souřadnice koláže, nastavenı́, počátečnı́ podmı́nky, celkový čas a výsledky optimalizace. Na dalšı́m listu tabulky je přehled užı́vaných FRC. 9.3.1 Úloha A1 Do DP byly vybrány vzorové úlohy se třemi tvarově odlišnými zářiči. K zadávánı́ podmı́nek využı́váme IFSLimiter. Zobrazenı́ 9.4, 9.5, 9.7 a 9.8 dávajı́ představu o optimalizovaných parametrech. Obrázek 9.4: Obrázek optimalizačnı́ch mezı́ pro úlohu A1 V tomto přı́padě, obr. 9.4, optimalizujeme velikost jednotlivých trojúhelnı́ků. Rozměr s.s. je (0.5, 0.7). Minimum je limitováno celistvostı́ patche. Již při hodnotách koeficientů a a d 0.5 se jednotlivé trojúhelnı́ky dotýkajı́ pouze v bodech, což eliminuje tekoucı́ proudy po struktuře. S rezervou je tedy za minimum považována hodnota 0.501. 106 Nástroj pro modálnı́ analýzu FPA 9.3. Zadánı́ úloh Obrázek 9.5: Obrázek optimalizačnı́ch mezı́ pro úlohu B1 9.3.2 Úloha B1 Pro Minkowského fraktál je důležitý zejm. tvar střednı́ spojky (tj. prvnı́ transformace základnı́ho objektu). Ten může nabývat mnoha tvarů, viz obr. 9.5. Pro základnı́ tvar fraktálu jsou hodnoty transformačnı́ch koeficientů středové přı́čky rovny: a = 0.2, d = 0.334, b = c = e = f = 0. PSO se pokusı́ najı́t nižšı́ frekvenci v rozsahu a ∈ (0.1, 1) ∧ d ∈ (0.334, 1). Tento s.s. je tedy dvourozměrný. Prvnı́ dvě úlohy jsou dostatečně jednoduché, abychom přı́padné výsledky mohli ověřit rychlou parametrickou analýzou. Zároveň se na nich prokáže, zda všechny součásti fungujı́ bezchybně. 9.3.3 Úloha B3 Jak ukazuje obr. 9.6, tato úloha zkoumá vliv nakloněnı́ ramen fraktálu FRC B. Obrázek 9.6: Úloha B3 v IFSLimiteru Toho lze docı́lit pomocı́ změny koeficientů c, d. Ty zajišt’ujı́ rotaci a zkosenı́ objektu. Pomocı́ IFSLimiteru lze efektivně hlı́dat, kdy je ještě koláž souvislá a kdy se již rozdělı́ na menšı́ části. Dı́ky tomu byl stanoven optimalizovaný interval na 107 Nástroj pro modálnı́ analýzu FPA 9.4. Rozšı́řené možnosti IFSLimiteru (0, 0.1). 9.3.4 Úloha C3 Největšı́ snı́ženı́ frekvence dominantnı́ho módu očekáváme v přı́padě tohoto fraktálu. Je velice členitý, lze tedy nalézt mnoho optimalizačnı́ch podmı́nek. Navı́c má tenkou spojku a vysoká ramena, která dále prodlužujı́ rezonančnı́ délku. Obrázek 9.7: Obrázek optimalizačnı́ch mezı́ pro úlohu C3 Začneme jednoduššı́mi podmı́nkami (C1-C3) a postupně přidáváme dalšı́ (C4C6). Jak naznačuje obr. 9.7, budeme zkoumat optimálnı́ pozici střednı́ spojky (zda dole, uprostřed nebo nahoře) a mı́ru zasunutı́ postrannı́ch ramen. 9.3.5 Úloha C6 K předchozı́ úloze C3 byly přidány dalšı́ dvě podmı́nky. Obě pracujı́ s body3 , jak ukazuje obr. 9.8. Tato úloha je v programu IFSLimiter zobrazena na obr. 9.1 (pouze prvnı́ dvě podmı́nky). Přestože obsahuje celkem 7 neznámých, dı́ky spřaženı́ nám stačı́ čtyřrozměrný s.s. 9.4 Rozšı́řené možnosti IFSLimiteru IFSLimiter byl postupem času rozšı́řen o dalšı́ užitečné moduly. Mezi ně patřı́ parametrická analýza, obr. 9.9. Lze analyzovat pouze načtený fraktál, všechny hranice (se všemi podmı́nkami), vybranou hranici (s podružnými podmı́nkami), vybranou podmı́nku, v závislosti na stupni iterace. Krok sweepu je nastavitelný a výstupnı́ informace jsou volitelné. Po uloženı́ a startu je opětovně volán EvalInFem4 , který ukládá výsledky do IFSLimiteru. Ty si lze prohlédnout v Parameter sweep 7→ Show results, a tı́m zı́skat hrubý přehled o chovánı́ struktury. Z pohledu optimalizace je také zásadnı́ pro všechny scénáře uchovat pokud možno celistvý tvar koláže. Zda tomu tak je pro všechny hranice se všemi 3 4 Vždy dva vrcholové body jsou spřaženy do jedné hranice/Stocku tak, aby se měnily najednou. Vyžaduje připojený Comsol. 108 Nástroj pro modálnı́ analýzu FPA 9.4. Rozšı́řené možnosti IFSLimiteru Obrázek 9.8: Obrázek optimalizačnı́ch mezı́ pro úlohu C6 Obrázek 9.9: IFSLimiter: parametrický řešič podmı́nkami ověřuje funkce Check subdomains. Existuje-li varianta, kdy se koláž rozpadne, je tato s upozorněnı́m zobrazena. V nezbytných přı́padech (viz změna měřı́tka a pevný bod) je též vhodné mı́t možnost přesunout střed fraktálu o určitou vzdálenost. Pak jsou upraveny odpovı́dajı́cı́ koeficienty transformacı́ a IFS je znovu vygenerováno. Pro podobné účely lze v IFSLimiteru upravit i vybraný bod, přı́p. transformaci. Tyto úpravy jsou dosažitelné z menu Tools. 109 Kapitola 10 Optimalizace a analýza FRC Optimalizačnı́ proces probı́há podle schématu 10.1. Obrázek 10.1: Postup optimalizace Jsou do něj zapojeny všechny moduly, které jsme doposud představili. Po vytvořenı́ koláže (IFSMaker) a nastavenı́ podmı́nek (IFSLimiter) docházı́ k inicializaci PSO (počet agentů, počet iteracı́). Po spuštěnı́ PSOptimizeru je v každém kroku volána fitness funkce (EvalInFem) a skrze nı́ i jádro Comsolu. K řešiči EvalInFem lze přistoupit již dřı́ve, a to bud’ parametrickou analýzou nebo jednorázovým řešenı́m z Matlabu. Na závěr jsme vybrali tři fraktály, které byly v minulé kapitole připraveny k optimalizaci. Jejı́ výsledky nalezneme v tab. 10.1. Podmı́nky jsou bud’ bodové (b) nebo transformačnı́ (tr), značka 3tr pak značı́ 3 podmı́nky se společnou hranicı́. Počet agentů (Ag.) i iteracı́ (it.) byl volen různý podle složitosti optimalizace a s ohledem na typ struktury. V rámci jedné struktury je potřebný čas přibližně úměrný součinu agentů a iteracı́ (viz B1 a B3), v přı́padě různých struktur (B3 vs. C3) to však neplatı́. Je to dáno různou složitostı́ meshe a tedy i různou délkou výpočtu. Prvnı́ úloha (A1) došla ke stejnému fraktálu, který byl zadán na vstupu. To 110 Nástroj pro modálnı́ analýzu FPA PsoData Podmı́nky Ag., it. fr před PSO fr po PSO ∆fr Zlepšenı́ Doba výpočtu A1 3tr, 3tr 15, 100 637 MHz 637 MHz 0 0% B1 1tr, 1tr 25, 150 684 MHz 408 MHz 276 MHz 40.3% B3 4tr, 4tr 25, 75 684 MHz 504 MHz 180 MHz 26.2% −(∗) 4813s 2209s C3 1tr, 2tr 25, 75 637 MHz 543 MHz 94 MHz 14.8% C6 1tr, 2tr, 2b, 2b 25, 80 637 MHz 310 MHz 327 MHz 51.3% 3066s 2062s (*) nezaznamenáno Tabulka 10.1: Výsledky vybraných optimalizacı́ Obrázek 10.2: Několik agentů optimalizace A1 ukazuje, že pro zadané podmı́nky (tedy velikost trojúhelnı́ků) je známá hodnota ta nejlepšı́. Několik agentů této optimalizace ukazuje obrázek 10.2. Při rozboru výsledků se musı́me vyvarovat určitým chybám. Např. A1 vracı́ jako optimálnı́ pro obě podmı́nky hodnotu 0.5, ta je však (jak bylo uvedeno v minulé kapitole) chybná, nebot’ spojuje části koláže jen v bodech. Z toho plyne, že pro každý výsledek je vhodné zkontrolovat navrženou koláž přı́mo v Comsolu (CST, IE3D, TCM atd.). Po úpravě na 0.501 vycházı́ správné výsledky. PSO algoritmus tı́mto způsobem postupuje automaticky a pro všechny podmı́nky. Je proto dobré již při jejich zadávánı́ meze správně omezit. Dalšı́ úloha je lehce ověřitelná pomocı́ jednoduché parametrické analýzy. Hledáme minimum s pomocı́ změny šı́řky a výšky střednı́ přı́čky fraktálu FRC B. Pro všechny extrémy je hodnota rezonančnı́ frekvence uvedena na obr. 10.6. Nejnižšı́ 111 Nástroj pro modálnı́ analýzu FPA Obrázek 10.3: Několik agentů optimalizace B1 Obrázek 10.4: Několik agentů optimalizace B2 frekvenci nalézáme pro přı́pad v dolnı́ řadě uprostřed (fr = 409 MHz, a = 0.1, b = 1). Ke stejnému závěru docházı́me i s pomocı́ PSO (fr = 408 MHz, a = 0.100009, b = 0.99998). S dobrým výsledkem pak skončila optimalizace C3 a C6, kde bylo dosaženo značného poklesu rezonančnı́ frekvence. Struktury navı́c nepotřebujı́ dalšı́ úpravy. Významný pokles v přı́padě C6 je dán masivnı́ úpravou geometrie (obr. 10.8). Na základě optimalizovaných dat se můžeme podı́vat i na pokles frekvence s iteracı́ u optimalizovaného i neoptimalizovaného patche, obr. 10.5. Průběh je pro oba zářiče podobný, pouze v přı́padě po PSO (zelená křivka) je mı́rný výkyv v 2. iteraci. Pokud aproximujeme hodnotu optimalizované koláže v prvnı́ iteraci na základě ostatnı́ch hodnot, zı́skáme zajı́mavý poznatek. Optimalizace fraktálnı́ struktury trend poklesu fr s rostoucı́ iteracı́ pouze posouvá směrem k nižšı́ frekvenci. Směrnice poklesu zůstává stejná. Obrázek 10.9 ukazuje krajinu“ optimalizace úlohy H2. Vrstevnice naznačujı́ ” stejné hodnoty frekvence. Ze známých hodnot s.s. a zadaných podmı́nek lze určit 112 Nástroj pro modálnı́ analýzu FPA Obrázek 10.5: Závislost rez. frekv. na iteraci před PSO a po PSO Obrázek 10.6: Parametrické srovnánı́ rez. frekvenci dominantnı́ho módu všech odvozených zářičů. Kontury funkce byly zjitěny systematickým sweepem přes celý s.s. (100 × 100 hodnot). Z uvedených přı́kladů je vidět, že snižovánı́ rezonančnı́ frekvence (resp. zmenšovánı́ rozměrů patche) je v Comsolu realizováno zužovánı́m cest, kudy teče proud. Tyto spoje jsou dı́ky PSO zmenšovány až za mez výrobnı́ tolerance. Správným nastavenı́m hranic všech podmı́nek lze tomuto úkazu efektivně předcházet. Druhým důležitým faktorem je prodlužovánı́ dominantnı́ proudové cesty. Vyvstává otázka, zda jsou uvedená zjednodušenı́ platná obecně (figuruje tento mechanismus i v TCM?). V této kapitole byly shrnuty výsledky celého projektu. V přı́padě vhodně nastavené optimalizace může pokles rezonančnı́ frekvence překročit i 50%. Stále je však nutné finálnı́ zářič podrobit pokročilejšı́ analýze, ve které je zpravidla rozdı́l mezi původnı́m a optimalizovaným tvarem menšı́. Omezeni jsme i ze strany 113 Nástroj pro modálnı́ analýzu FPA Obrázek 10.7: Několik agentů optimalizace C6 použitelných kolážı́ a výrobnı́ch možnostı́. Bohužel, systematičtějšı́ přı́stup je časově velmi náročný. Neuvádı́me proto přı́klady dalšı́ch optimalizačnı́ch úloh, ani jednotlivé rezonančnı́ frekvence všech FRC kolážı́. Všechny toto údaje jsou uvedeny na DVD, je možné je zjistit i s pomocı́ EvalInFem a PSOptimizeru. Důležitost PSO se ještě zvětšı́ s požadavkem na multipásmovou optimalizaci. 114 Nástroj pro modálnı́ analýzu FPA Obrázek 10.8: Výsledek optimalizace C6 (2. a 3. iterace) Obrázek 10.9: Pohyb agentů při úloze H2, začátek (vlevo) a závěr (vpravo) 115 Kapitola 11 Závěr Tato práce měla za cı́l ukázat, že v geometrické rovině lze nalézt nový typ objektů, které jsou vhodné jako zářiče patch antén v mnoha ohledech vı́ce, než běžně využı́vané euklidovské útvary. Ukázali jsme některé zajı́mavé vlastnosti fraktálnı́ch křivek a nalezli analogie v přı́rodě. Pro četná zjednodušenı́ jsme zvolili generaci IFS struktur, ta byla popsána vč. přı́kladů a potřebných nástrojů. Vlastnı́ simulaci předcházel výběr vhodné numerické metody a jejı́ implementace. Výsledky CM analýzy byly srovnány s referenčnı́mi simulátory. Pro malou výšku nad zemnı́ rovinou je chyba minimálnı́. Zvážili jsme možnost optimalizovat tvar antény při fixnı́m zachovánı́ fraktálnı́ho charakteru, tak jsme došli k optimalizaci IFS parametrů. Toho bylo dosaženo dı́ky PSO; dokončený PSOptimizer dosahuje skvělých výsledků, doložitelných i na řadě testovaných funkcı́. Popsány byly způsoby, jak ze známých dat extrapolovat VD, vč. jeho výpočtu. Pro zpracovánı́ výsledků, kalibraci PSO, úpravu nodů a řı́zenı́ optimalizace je potřeba celá sada nástrojů, které byly postupně představeny. Vyjmenujme v heslech důležité výsledky diplomové práce: • Vznikl efektivnı́ a názorný generátor IFS fraktálů, který lze využı́t ve výuce numerických metod, Matlabu a anténnı́ problematiky. • Vznikly nástroje na simulaci a analýzu IFS antén, viz dodatek 12.3, vč. řešiče EvalInFem, který má mnohostranné využitı́. • Byly odvozeny a navrhnuty nové postupy hodnocenı́ IFS kolážı́ a nalezeny nové fraktály (FRC J, FRC K a dalšı́) • Zavedeny byly formáty FRC a PsoData. • Byl vytvořen univerzálnı́ a rychlý optimalizátor PSOptimizer. Ten lze využı́vat na rozličné typy úloh. • Úspěšně jsme implementovali metodu, která vypočte, exportuje a zpracuje proudy z Comsolu. Dı́ky nim lze vypočı́tat VD. 116 Nástroj pro modálnı́ analýzu FPA • Analyzovány byly vybrané IFS patche, které se podařilo s pomocı́ PSO zmenšit (resp. nalézt při stejném rozměru nižšı́ fr ). Mnoho problémů zůstalo nedořešeno, některá řešenı́ nejsou optimálnı́ a vyžadujı́ dalšı́ úpravy. Občas se (vždy však s upozorněnı́m) vyskytuje nepodložená domněnka nebo myšlenka. Zde jsou možnosti, jak v projektu pokračovat: • Prozkoumat možnosti návrhu IFS pomocı́ neuronových sı́tı́ s kritériem obsahu, obvodu, 1. módu a mřı́žkové dimenze. Přı́padně alespoň nalézt a zkonstruovat dalšı́ tvary IFS kolážı́ ručně. • Mı́sto CM využı́t TCM řešič (vyřešit souvisejı́cı́ problémy). • Zrychlit IFSMaker, dokončit moduly na sweep, box-counting, zrychlit práci s Tune nástrojem a správu velkého počtu objektů. • Opravit měřenı́ obsahu a počtu segmentů pro komplikovanějšı́ útvary, otestovat přesnost NaN“ metody i pro výpočet mřı́žkové dimenze. ” • Pokusit se extrahovat vnějšı́ normálu pomocı́ NaN“ metody (rychlejšı́ výpočet ” VD). • Upravit algoritmus na výpočet VD a zrychlit jej, upravit jeho optimalizaci na váhovánı́ vı́ce cı́lů. • Je možný dalšı́ rozvoj PSO – hledánı́ vı́ce minim najedou, možnost vytvářet vı́ce rojů, SPSO pro analytické funkce, GSO, dalšı́ možnosti zpracovánı́. • Soustavné studium vlastnostı́ fraktálnı́ch zářičů s nasazenı́m vyvinutých nástrojů (velikost fraktálnı́ dimenze a obsahu vs. rezonančnı́ kmitočet, přı́padně rozloženı́ módů). • Klasifikace módu na základě bitmapy (vhodné vylepšenı́ i pro TCM), dodatečná stratifikace módů, označenı́ módů se silně lokalizovanými proudy. Užitečnost celé práce může posoudit jen a pouze jejı́ čtenář, kterému tı́mto děkuji, dostal-li se až na závěr. ” Když je dı́lo dokonáno, necht’ se člověk vzdálı́.“ — Lao-C’, O Tau a ctnosti, IX. báseň 117 Literatura Monografie [1] Karel Zaplatı́lek, Bohuslav Doňar: MATLAB pro začátečnı́ky. 2.vydánı́, BEN, Praha, 2005. ISBN 80-7300-175-6 [2] Karel Zaplatı́lek, Bohuslav Doňar: MATLAB tvorba uživatelských aplikacı́. 1.dotisk 1.vydánı́, BEN, Praha, 2005. ISBN 80-7300-133-0 [3] Ivan Zelinka, František Včelař, Marek Čandı́k: Fraktálnı́ geometrie: principy a aplikace. BEN, Praha, 2006. ISBN 80-7300-191-8 [4] Benoit B. Mandelbrot: The Fractal Geometry of Nature. W.H.Freeman, 1982. [5] Benoit B. Mandelbrot: Fraktály: tvar, náhoda a dimenze. 1.vydánı́, Kolumbus, Praha, 2003. Edice Kolumbus – Svazek 163. ISBN 80-204-1009-0 [6] Peter Coveney, Roger Highfield: Mezi chaosem a řádem. 1.vydánı́, Kolumbus, Praha, 2003. Edice Kolumbus – Svazek 160. ISBN 80-204-0989-0 [7] Ilya Prigogine, Isabelle Stengersová: Řád z chaosu. 1.vydánı́, Kolumbus, Praha, 2001. Edice Kolumbus – Svazek 158. ISBN 80-204-0910-6 [8] The MathWorks: Genetic Algorithm and Direct Search Toolbox. ver. 2., User’s Guide, The MathWorks, 2006. [9] The MathWorks: Using Matlab Graphics. ver. 7., User’s Guide, The MathWorks, 2004. [10] The MathWorks: Partial Differential Equation Toolbox. ver. 1., User’s Guide, The MathWorks, 2002. [11] Miloš Mazánek, Pavel Pechač: Šı́řenı́ elektromagnetických vln a antény. dotisk 2.vydánı́, ČVUT, Praha, 1998. Nakladatelstvı́ ČVUT, 10931. publikace. ISBN 978-80-01-03032-5 118 Nástroj pro modálnı́ analýzu FPA Literatura [12] Jan Macháč, Karel Novotný, Zbyněk Škvor, Jaroslav Vokurka: Numerické metody v elektromagnetickém poli. ČVUT, Praha, 2002. Nakladatelstvı́ ČVUT, ISBN 978-80-01-03753-9 [13] Ladislav Szántó: Maxwellovy rovnice a jejich názorné odvozenı́. 1.vydánı́, BEN, Praha, 2003. ISBN 80-7300-096-2 [14] Zdeněk Nováček: Elektromagnetické vlny, antény a vedenı́. [15] Jiřı́ Šı́ma, Roman Neruda: Teoretické otázky neuronových sı́tı́. [16] Blanka Heringová, Petr Hora: Matlab. Dı́l I. - Práce s programem. Plzeň, 1995, H-S. [17] Blanka Heringová, Petr Hora: MatLab. Dı́l II. - Popis funkcı́. Plzeň, 1995, H-S. [18] Andy H. Register: A Guide to Matlab Object-Oriented Programming. SciTech Publishing Inc., 2007. Atlanta, Georgia, USA. ISBN 978-1-58488-911-3 [19] The MathWorks: Classes and Object-Oriented Programming. User’s Guide, The MathWorks, 2008. [20] The MathWorks: Matlab Compiler. ver. 2., User’s Guide, The MathWorks, 1999. [21] Petr Olšák: Lineárnı́ algebra. ČVUT, ftp://math.feld.cvut.cz/pub/olsak/linal/. Praha, 2002. Také na: [22] Felix T. S. Chan, Manoj K. Tiwari: Swarm Inteligence – Focus on Ant and Particle Swarm Optimization. I-Tech Education and Publishing, 2007. ISBN 978-3-902613-09-7 [23] Karl E. Lonngren, Sava V. Savov: Fundamentals of Electromagnetics with Matlab. Scitech Publishing Inc., 2004. ISBN 1-891121-30-8 [24] Won Y. Yang, Wenwu Cao, Tae-Sang Chung, John Morris: Applied Numerical Methods Using Matlab. John Wiley Inc., 2005. ISBN 0-471-69833-4 [25] Solving the Engineering Problem. [26] Jaan Kiusalaas: Numerical Methods in Engineering with Matlab. Cambridge University Press, 2005. ISBN 978-0-521-85288-3 [27] J. R. James, P. S. Hall: Handbook of Microstrip Antennas vol.1. London, 1989. Peter Peregrinus Ltd. ISBN 0-86341-150-9. chapter 1 − 3 [28] Constantine A. Balanis: Antenna Theory: Analysis and Design. 2nd ed., USA, 1997. John Wiley. ISBN 0-471-59268-4 119 Nástroj pro modálnı́ analýzu FPA Literatura [29] Constantine A. Balanis: Advanced Engineering Electromagnetics. USA, 1989. John Wiley. ISBN 0-471-62194-3. Chapter 6. [30] J. R. James, P. S. Hall, C. Wood: Microstrip Antenna Theory and Design. USA, 1981. Peter Peregrinus Ltd. ISBN 0-906048-57-5. [31] Thomas A. Milligan: Modern Antenna Design. 2nd ed., USA, 2005. John Wiley. ISBN 978-0-471-45776-3. [32] S. J. Orfanidis: Electromagnetic waves & Antennas. www.ece.rutgers.edu/ orfanidi/ewa. [33] Sergey N. Makarov: Antenna and EM Modeling with Matlab. USA, 2002. John Wiley. ISBN 0-471-21876-6 [34] Kenneth Falconer: Fractal Geometry – Mathematical Foundations and Applications. USA, 2003. John Wiley. ISBN 0-470-84861-8 (HB) [35] Gerald Edgar: Measure, Topology and Fractal Geometry. 2nd ed., USA, 2008. Springer. ISBN 987-0-387-74749-1 [36] Basic methods of calculation and design of patch antennas. pgs. 71 − 87 [37] Comsol AB.: Comsol Documentation.. 1994-2008, Comsol 3.5.0. Články a přı́spěvky [38] Miloslav Čapek, Pavel Hazdra: PSO optimalizace v Matlabu. Technical Computing Prague 2008, ISBN sbornı́ku: ISBN 978-80-7080-692-0. [39] Miloslav Čapek: PSO Optimization of IFS Fractal Patch Antennas. Poster 2009, CTU-FEE, Prague. [40] Pavel Hazdra, Miloslav Čapek, Jan Kraček: Optimization Tool for Fractal Patches Based on the IFS Algorithm. EuCAP 2009, Berlin. [41] Pavel Hazdra, Miloslav Čapek: IFS Tool for Microstrip Patch Antenna Analysis. In Proceedings of the 14th Conference on Microwave Techniques COMITE 2008 [CD-ROM]. Praha: Československá sekce IEEE, 2008, p. 227230. ISBN 978-1-4244-2138-1. [42] Jordi Romeu, Yahya Rahmat-Samii: Fractal Elements and Their Applications to Frequency Selective Surfaces. IEEE Antennas and Wireless, 2000. [43] Jacob Robinson, Yahya Rahmat-Samii: Particle Swarm Optimization in Electromagnetics. IEEE Trans. on Antennas and Propagation, Vol. 52, No. 2, pp.397-407, February 2004. 120 Nástroj pro modálnı́ analýzu FPA Literatura [44] Nanbo Jin, Yahya Rahmat-Samii: Advances in Particle Swarm Optimization for Antenna Designs: Real-Number, Binary, Single-Objective and Multiobjective Implementations. IEEE Trans. on Antennas and Propagation, Vol. 55, No. 3, pp.556-567, March 2007. [45] James Kennedy, Russell Eberhart: Particle Swarm Optimization. IEEE, pp.1942-1948, 1995. [46] K. E. Parsopoulos, M. N. Vrahatis: Recent approaches to global optimization problems through Particle Swarm Optimization. Natural Computing, pp.235-306, 2002. [47] K. E. Parsopoulos, V. P. Plagianakos, G. D. Magoulas, M. N. Vrahatis: Stretching Technique for Obtaining Global Minimizers Through Particle Swarm Optimization. Dostupné na: http://www.mat.univie.ac.at/ neum/glopt/mss/ParPM01.pdf [48] Ružica M. Golubović, Dragan I. Olćan: Antenna Optimization Using Particle Swarm Optimization Algorithm. Journal of Automatic Control, Vol. 16, pp.21-24, 2006. [49] Chia-Feng Juang, Yuan-Chang Liou On the Hybrid of Genetic Algorithm and Particle Swarm Optimization For Evolving Recurrent Neural Network. [50] A. Gandelli, F. Grimaccia, M. Mussetta, P. Pirinoli, R. E. Zich: Genetical Swarm Optimization: an Evolutionary Algorithm for Antenna Design. AUTOMATIKA 47 (2006) 3 − 4, str.105 − 112 [51] Sergey Makarov: MoM Antenna Simulation with Matlab: RWG Basis Functions. EM Programmer’s Notebook [52] P.W.Tang, P.F.Wahid: Hexagonal Fractal Multiband Antenna. IEEE Antennas and Wireless letters, vol.3, 2004. [53] Krzysztof Gdawiec: Fractals. 2006. [54] Carla M. Riggi: Hutchinson Operators In R3 . http:/facweb.uofs.edu/ [55] J. Láčı́k, Z. Raida: Analýza planárnı́ch struktur pomocı́ metody momentů a jejich optimalizace. VUT v Brně, přı́spěvek [56] M. V. Berry: Distribution of Modes in Fractal Resonators. University of Bristol, Bristol. 1986. [57] M. V. Berry: Improved Eigenvalue Sums for Inferring Quantum Billiard Geometry. University of Bristol, Bristol. 1986. 121 Nástroj pro modálnı́ analýzu FPA Literatura [58] Sachendra N. Sinha, Manish Jain: A Self-Affine Fractal Multi-band Antenna. AWPL 0126-2006. [59] D. H. Werner, P. L. Werner, K. H. Church: Genetically Engineered Multiband Fractal Antennas. ELECTRONICS LETTERS, Vol. 37, No. 19. 2001. [60] Z. Baharav: Fractal Arrays Based on Iterated Function System. IEEE, 1999. 0-7803-5639-X/99. [61] P. Hazdra, M. Polı́vka, V. Sokol: Microwave Antennas and Circuits Modeling Using Electromagnetic Field Simulator. [62] Christopher Lum: Matlab Class Tutorial. Autonomous Flight Systems Laboratory, 2006. [63] Matt Aasted: Primer on Scripting Comsol with Matlab. 2007. [64] André Waser: On the Notation of Maxwell’s Field Equations. [65] R. F. Harrington, J. R. Mautz: Theory of Characteristic Modes for Conducting Bodies. IEEE Trans. on Antennas and Propagation, Vol. AP-19, No. 5, pp. 622-628, Sept. 1971. [66] J. C. Malzahn Kampe: Matlab Programming. 1999. [67] Shardul Bhatia, Wen Eu Cheah: Matlab Documentation for OOP. Dostupné na: www.cc.gatech.edu/classes/AY2005/cs1371 spring/ Práce většı́ho rozsahu [68] Miloslav Čapek: Možnosti generovánı́ fraktálů pomocı́ IFS. Semestrálnı́ práce, FEL ČVUT. Praha, 2006. [69] Miloslav Čapek: Modálnı́ analýza mikropáskových patch antén. Bakalářská práce, FEL ČVUT. Praha, 2007. [70] Miloslav Čapek: Implementace vyzařovacı́ho diagramu v prostředı́ Matlab. Individuálnı́ projekt, FEL ČVUT. Praha, 2009. [71] Pavel Hazdra: Compact Fractal Antenna Structures. Technical Thesis, dep. of Electromagnetic Field, CTU. Prague, 2005. [72] Pavel Tišnovský: Interaktivnı́ editor afinnı́ch transformacı́. Diplomová práce, VUT. Brno, 1999. [73] Pavel Hazdra: Fraktálové antény. Diplomová práce, FEL ČVUT. Praha, 2003. 122 Nástroj pro modálnı́ analýzu FPA Literatura [74] Jan Rohan: Návrh patchové antény pomocı́ genetického algoritmu. Bakalářská práce, VUT. Brno, 1999. [75] Genetické algoritmy. Diplomová práce, Praha. [76] Miroslav Janošı́k: Algoritmy pro optimalizaci sı́tı́ GAME. Bakalářská práce, FEL ČVUT. Praha, 2006. [77] Miloš Němec: Optimalizace pomocı́ mravenčı́ch koloniı́. Diplomová práce, ČVUT. Praha, 2006. [78] Martin Štumpf: Frekvenčně selektivnı́ struktury s fraktálnı́mi motivy. Bakalářská práce, VÚT v Brně. [79] Vlastimil Koudelka: Neuronová sı́t’ pro návrh širokopásmové antény. Bakalářská práce, VÚT v Brně. Brno, 2007. [80] Aleš Maršálek: Multifrekvenčnı́ ozařovač malé parabolické antény s kruhovou polarizacı́. Diplomová práce, VÚT v Brně. [81] Pavel Hamouz: Analýza antén metodou charakteristických módů. Diplomová práce, FEL ČVUT v Praze. Praha, 2007. [82] Robert Zálešák: L-systémy a systémy iterovaných funkcı́ – Popis a realizace v prostředı́ Matlab. Bakalářská práce, VUT. Brno, 2007. [83] Robert Wiesner: Užitı́ a zneužitı́ fraktálů. Diplomová práce, Masarykova Univerzita. Brno, 2006. [84] Petr Pauš: Počı́tačové metody analýzy fraktálnı́ch množin. Diplomová práce, FjFi ČVUT v Praze. Praha, 2005. [85] Marta Cabedo Fabrés: Systematic Design of Antennas Using the Theory of Characteristic Modes. Ph. D. dizertace, Universidad Politécnica de Valencia, 2007. Internetové zdroje [86] Fraktály v počı́tačové grafice, na serveru: www.root.cz. Seriál. I.–IV. 2006. [87] Galleries and Resources: www.fractalus.com. Otevřená galerie fraktálů. [88] Genetic Algorithms in Plain English: www.ai-junkie.com/ga/intro/gat1.html, ... [89] Matlab tutorial1: http://artax.karlin.mff.cuni.cz/ beda/cz/matlab/primercz/. 123 Nástroj pro modálnı́ analýzu FPA Literatura [90] Matlab tutorial2: http://uprt.vscht.cz/majerova/matlab/lekce2.html, ... [91] Simulace elektromagnetického pole. Presentace dostupná na: www.elmag.org nebo www.rfprop.com. [92] Numerická simulace elektromagnetického pole – Simulátory elmag. pole. Presentace k předmětu na: www.elmag.org. [93] Rojová inteligence, mravenčnı́ kolonie. Osobnı́ stránky zabı́vajı́cı́ se mj. rojovou optimalizacı́, na: www.milosnemec.cz. [94] Objekty a objektové paradigma. http://objekty.vse.cz [95] Metoda konečných prvků. http://www.345.vsb.cz/jirihruby/Vmt/ [96] Počı́tačové generovánı́ fraktálnı́ch množin. http://kmlinux.fjfi.cvut.cz/∼pauspetr/html/skola/fraktaly/ reserse.htm] Toc73066108 [97] Vybrané fraktály a jejich dimenze. http://www.kitnarf.cz/publications [98] Humusoft. Stránky výhradnı́ho prodejce Matlabu, Comsolu a HeavyHorse stanic v ČR. Dostupné na: http://www.humusoft.cz [99] Matlab. http://www.mathworks.com/ [100] Comsol Multiphysics. http://www.comsol.com/ [101] Computer Simulation Technology. http://www.cst.com/ [102] EM Software & Systems-S.A.. http://www.feko.info/ [103] Benoit B. Mandelbrot: Fractals in Science, Engineering and Finance. Video přednáška na MIT, http://mitworld.mit.edu/video/52. 124 Rejstřı́k σ-algebra, 11 šı́řka pásma, 40 funcionál, 46 funkce (Matlab), 22 absorbčnı́ zed’, 84 afinnı́ transformace, 8 agent, 83 apertura, 71 Galerkinova metoda, 43, 46 bázové funkce, 42, 47 Banach,Stefan, 7 Banachova věta, 7 Barnsley, M. F., 3 Besicovitch, Abram S., 3 Borelovská množina, 13 C++, 19 callback funkce, 20 Carathéodory, Constantin, 14 charakteristické proudy, 50 charakteristický úhel, 51 Comsol Multiphysics, 49 cost funkce, 86 CST-MWS, 62 datový typ, 21 Demko, S., 3 Diracův impuls, 43 diskretizace, viz mesh dokonalá elektrická stěna, 44, 49 dokonalá magnetická stěna, 44 Hölderova funkce, 13 handle, 20 harmonický ustálený stav, 44 Hausdorff, Felix, 3 Hausdorffova dimenze, 13 Helmholtzova vlnová rovnice, 45 Hutchinson, John E., 5 Hutchinsonův operátor, 5 IFS, 3 Java, 19 kolektivnı́ chovánı́, 82 kontrakce, 6 Kroneckerovo delta, 51 Lagrangeův variačnı́ princip, 49 lineárnı́ operátor, 41 Lipschitzova funkce, 13 Eulerova rovnice, 50 excitačnı́ koeficient, 52 mı́ra, 11 mřı́žková dimenze, 15 Makarov, Sergey N., 52 Mandelbrot, Benoit B., 3 Matlab, 19 mesh, 47, 56 metrika, 6 Moler, Cleve, 19 FEKO, 56 fraktál, 3 Fredholmova teorie, 44 napájenı́ antény, 39 nesmyslné módy, 57 Neumannova podmı́nka, 44 125 Nástroj pro modálnı́ analýzu FPA Rejstřı́k neviditelná zed’, 85 odrazná zed’, 84 pevný bod, 6 postupná proudová vlna, 39 princip ekvivalence, 71 proudová hustota, 67 Register, Andy H, 21 rezonance, 46, 50 Richardsonův efekt, 4 Ritzova metoda, 46 rojová optimalizace, 82 RWG bázové funkce, 52 Scierpinského trojúhelnı́k, 17, 127 skalárnı́ potenciál, 50, 66 skalárnı́ součin, 42 skript (Matlab), 22 soběpřı́buznost, 4 soběpodobnost, 4 solution space, 83 stojatá proudová vlna, 39 Thomsonův princip, 46 topologická dimenze, 11 transformačnı́ matice, 70 trojúhelnı́kovou nerovnost, 6 vektorový potenciál, 50, 66 vlastnı́ čı́sla, 45 vnějšı́ normála, 72 126 Kapitola 12 Přı́lohy 12.1 Dodatek A: Výběr IFS fraktálů Obrázek 12.1: Fraktál FRC A v prvnı́, druhé a třetı́ iteraci Obrázek 12.2: Fraktál FRC A inicializačnı́ objekt a transformace Parametry IFS: 0 0 FRC A.base = 100 √ 0 50 5000 127 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů 0.5001 0 0 0.5001 0 0 FRC A.tran = 0.5001 0 0 0.5001 50 √ 0 1250 0.5001 0 0 0.5001 25 FRC A.iter = 3 3 3 Počet nodů a polygonů: 1.iterace 2.iterace Nodů 9 27 Polygonů 3 9 3.iterace 81 27 Tabulka 12.1: Parametry koláže FRC A Obrázek 12.3: Fraktál FRC B v prvnı́, druhé a třetı́ iteraci Obrázek 12.4: Fraktál FRC B inicializačnı́ objekt a transformace Parametry IFS: −50 −30 50 −30 FRC B.base = 50 30 −50 30 128 Nástroj pro modálnı́ analýzu FPA 0.2 0.45 0.45 0.45 0.45 12.1. Dodatek A: Výběr IFS fraktálů 0 0 0 0 0 0 0.334 0 0 0 0.45 27.5 17.5 0 0.45 27.5 −17.5 FRC B.tran = 0 0.45 −27.5 17.5 0 0.45 −27.5 −17.5 FRC B.iter = 3 3 3 Počet nodů a polygonů: 1.iterace 2.iterace Nodů 20 100 Polygonů 5 25 3.iterace 500 125 Tabulka 12.2: Parametry koláže FRC B Obrázek 12.5: Fraktál FRC C v prvnı́, druhé a třetı́ iteraci Parametry IFS: FRC C.base = FRC C.tran = 0.334 0.334 0.334 0.334 0.334 0 44.4 44.4 29.6 29.6 14.8 14.8 0 0 0 0 0 0 129 0 0 0 0 0 0 0 45.46 45.46 22.73 22.73 45.46 45.46 0.5 0 0 0.5 14.8 0 0.5 29.6 0 0.5 0 22.73 0.5 29.6 22.73 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.6: Fraktál FRC C inicializačnı́ objekt a transformace FRC C.iter = 3 3 3 Počet nodů a polygonů: 1.iterace 2.iterace Nodů 40 200 Polygonů 5 25 3.iterace 1000 125 Tabulka 12.3: Parametry koláže FRC C Parametry IFS: FRC D.base = 0.3350 0.3350 0.3350 0.3350 0.3350 0.3350 103.9236 0 207.8460 60 207.8460 180 103.9236 240 0 180 0 60 0 0 0 0 0 0 0 0 0 FRC D.tran = 0 0 0 FRC D.iter = 130 0.3350 0 0 0.3350 66.7 0 0.3350 −33.5 57.8 0.3350 100 57.8 0.3350 0 115.5 0.3350 66.7 115.5 3 3 3 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.7: Fraktál FRC D v prvnı́, druhé a třetı́ iteraci Obrázek 12.8: Fraktál FRC D inicializačnı́ objekt a transformace Parametry IFS: FRC E.base = 1 0 0.5 0.886 −0.5 0.886 −1 0 −0.5 −0.886 0.5 −0.886 0.5 0 0 0.5 FRC E.tran = 0.5 0 0 0.5 0.5 0 0 0.5 FRC E.iter = 3 3 131 −0.5 0 0.25 0.443 0.25 −0.443 3 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Počet nodů a polygonů: 1.iterace 2.iterace Nodů 36 216 Polygonů 6 36 3.iterace 1296 216 Tabulka 12.4: Parametry koláže FRC D Obrázek 12.9: Fraktál FRC E v prvnı́, druhé a třetı́ iteraci Počet nodů a polygonů: 1.iterace 2.iterace Nodů 18 54 Polygonů 3 9 3.iterace 162 27 Tabulka 12.5: Parametry koláže FRC E Parametry IFS: −50 −30 −50 30 FRC F.base = 50 30 50 −30 0.15 0 0 0.3 0 0 0.5 0 0 0.35 30 18 FRC F.tran = 0.5 0 0 0.35 30 −18 0.5 0 0 0.35 −30 18 0.5 0 0 0.35 −30 −18 FRC F.iter = 3 3 3 132 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.10: Fraktál FRC E inicializačnı́ objekt a transformace Obrázek 12.11: Fraktál FRC F v prvnı́, druhé a třetı́ iteraci Parametry IFS: FRC H.base = FRC H.tran = FRC 0.3333 0.3333 0.3333 0.3333 0.3333 4.6194 1.9134 −1.9134 −4.6194 −4.6194 −1.9134 1.9134 4.6194 0 0 0 0 0 0.3333 3 0 0.3333 0 3 0.3333 −3 0 0.3333 0 −3 0.3333 0 0 H.iter = 3 3 3 133 0 0 0 0 0 1.9134 4.6194 4.6194 1.9134 −1.9134 −4.6194 −4.6194 −1.9134 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.12: Fraktál FRC F inicializačnı́ objekt a transformace Počet nodů a polygonů: 1.iterace 2.iterace Nodů 20 100 Polygonů 5 25 3.iterace 500 125 Tabulka 12.6: Parametry koláže FRC F Parametry IFS: −1 −1 −1 1 FRC J.base = 1 1 1 −1 0.5 0 0 0.5 0 0 0.3 0 0 0.3 0.7 0.7 0.3 0 0 0.3 −0.7 0.7 FRC J.tran = 0.3 0 0 0.3 −0.7 −0.7 0.3 0 0 0.3 0.7 −0.7 FRC J.iter = 3 3 3 134 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.13: Fraktál FRC H v prvnı́, druhé a třetı́ iteraci Obrázek 12.14: Fraktál FRC H inicializačnı́ objekt a transformace Parametry IFS: FRC K.base = −0.75 −0.75 −0.25 −0.25 0.25 0.25 0.75 0.75 0.25 0.25 −0.25 −0.25 135 0.75 −0.75 −0.75 −0.25 −0.25 −0.75 −0.75 0.75 0.75 0.25 0.25 0.75 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Počet nodů a polygonů: 1.iterace 2.iterace Nodů 40 200 Polygonů 5 25 3.iterace 1000 125 Tabulka 12.7: Parametry koláže FRC H Obrázek 12.15: Fraktál FRC J v prvnı́, druhé a třetı́ iteraci 0.334 0.334 0.334 0.334 0.334 0 0 0 0 0 0 0 0 FRC K.tran = 0 0 FRC K.iter = 136 0.334 0 0 0.334 0.5 0.375 0.334 0.5 −0.375 0.334 0.5 0.375 0.334 −0.5 −0.375 3 3 3 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.16: Fraktál FRC J inicializačnı́ objekt a transformace Počet nodů a polygonů: 1.iterace 2.iterace Nodů 20 100 Polygonů 5 25 3.iterace 500 125 Tabulka 12.8: Parametry koláže FRC J Obrázek 12.17: Fraktál FRC K v prvnı́, druhé a třetı́ iteraci Počet nodů a polygonů: 1.iterace 2.iterace Nodů 60 300 Polygonů 5 25 3.iterace 1500 125 Tabulka 12.9: Parametry koláže FRC K 137 Nástroj pro modálnı́ analýzu FPA 12.1. Dodatek A: Výběr IFS fraktálů Obrázek 12.18: Fraktál FRC K inicializačnı́ objekt a transformace 138 Nástroj pro modálnı́ analýzu FPA 12.2. Dodatek B: Simulace vybraných FRC 12.2 Dodatek B: Simulace vybraných FRC Obrázek 12.19: VD pro 1. mód koláže FRC F (CST-MWS) 139 Nástroj pro modálnı́ analýzu FPA 12.2. Dodatek B: Simulace vybraných FRC Obrázek 12.20: VD pro 2. mód koláže FRC F (CST-MWS) 140 Nástroj pro modálnı́ analýzu FPA 12.2. Dodatek B: Simulace vybraných FRC Obrázek 12.21: Módy struktury FRC C (CM, 1-8 zleva doprava) Obrázek 12.22: Módy struktury FRC J (CM, 1-4 zleva doprava) 141 Nástroj pro modálnı́ analýzu FPA 12.2. Dodatek B: Simulace vybraných FRC Obrázek 12.23: Proudové rozloženı́ dominantnı́ch modů 142 Nástroj pro modálnı́ analýzu FPA 12.3 12.3. Dodatek C: Přehled aplikacı́ Dodatek C: Přehled aplikacı́ Obrázek 12.24: Schéma celého projektu Název AntTool IFSMaker IFSLimiter PSOptimizer PSOPost EvalInFem EvalRadPattern OptimRadPattern DBT Status 09/08 nedokončeno 11/08 1/09 2/09 10/08 03/09 ne ne Komentář pozastaveno +sweep, FEM, poly a dalšı́ +multiple-min, DBT, GSO / SPSO volba dimenzı́, dalšı́ údaje max fr podle meshe upravit algoritmus podle licence Tabulka 12.10: Přehled všech vyvinutých nástrojů 143 Nástroj pro modálnı́ analýzu FPA 12.4 12.4. Dodatek D: Přı́kazy AntTool Dodatek D: Přı́kazy AntTool Přı́kaz add pt x,y add tr a,b,c,d,e,f add it x save pt X save pt save tr / tr X save ifs X save ifs x,y,z save pc load pt X load pt load tr / tr X cor pt x cor tr x del pt x,y,z,. . . del tr x,y,z,. . . del pt/tr 0 sw pt sw tr sw ifs sw ifs y,z solve ifs sc txt about ant Operace uložı́ bod [x, y] uložı́ transf. podle [a, b, c, d, e, f ] uložı́ počet iteracı́, v rozsahu (1, 15) uložı́ všechny body do souboru points arrayX.mat otevře dialog, ukládá do zadaného txt souboru ukládánı́ transformacı́, podobně jako u bodů uložı́ polygony (cell) do externı́ho souboru jako výše, ale od iterace y do iterace z screenshot obrázků, otevře výběr možnostı́ načte slot X s body otevře dialog pro výběr txt souboru načı́tánı́ transformacı́, jako u bodů umožnı́ opravit bod č.x lze opravit transformaci x smaže body č.x,y,z,. . . smaže transformace č.x,y,z,. . . maže všechny body/transformace vykreslı́ zadané body vykreslı́ zadané transformace vykreslı́ celou koláž vykreslı́ IFS od iterace y do z vypočte IFS fraktál načte a vyřešı́ skript z B program source/script data1.txt otevře info okno Tabulka 12.11: Přehled1 dostupných přı́kazů programu AntTool (Matlab) Většina uvedených přı́kazů má vı́ce tvarů, rozšiřujı́cı́ jejich možnosti. Tento přehled je základnı́ a měl by umožnit vytvořit a vykreslit koláž. I když funkci AntToolu převzal IFSMaker, je vhodné tyto přı́klady uvést, nebot’ dokladujı́, že i v Matlabu lze vytvořit fungujı́cı́ konzoly založenou na přesném tokenizeru a rychlé interpretaci rozdělených přı́kazů. 12.5 Dodatek E: Srovnánı́ programů Tato přı́loha dokladuje vývoj vybraných aplikacı́ od BP k DP. 144 Nástroj pro modálnı́ analýzu FPA 12.5. Dodatek E: Srovnánı́ programů Vyžaduje připojený Comsol Multiphysics conv ifs převede IFS na FEM geometrii conv ifs y,z převede IFS na FEM geometrii od it. y do z conv poly převede polygony na FEM geometrii sw geom vykreslı́ FEM geometrii siz ifs xk,yk body koláže jsou násobeny xk,yk dim ifs slot najde max. rozměr koláže a ten vypı́še mesh geo Y,Z diskretizuje FEM geometrii, Y je multiplik., Z ∼ Qmin a dalšı́ . . . Tabulka 12.12: Přehled2 dostupných přı́kazů programu AntTool (Comsol) Obrázek 12.25: CM solver z BP (vlevo) a z DP (vpravo) 145 Nástroj pro modálnı́ analýzu FPA 12.5. Dodatek E: Srovnánı́ programů Obrázek 12.26: IFS editor z BP (dole) a DP (nahoře) 146 Nástroj pro modálnı́ analýzu FPA 12.6 12.6. Dodatek F: Obsah DVD Dodatek F: Obsah DVD DVD přiložené k hotové práci obsahuje: • Zdrojový kód všech programů v Matlabu, složka mfiles • Vzory FRC proměných, PsoData, výsledky a hladiny funkcı́, vars • Přes 250 obrázků1 (z DP, výsledky, fraktály a dalšı́), doc • Excel tabulku s fraktály, optimalizačnı́mi úlohami a jejich výsledky, doc • Publikované články, Artics • Vybrané články z Literatury, Liter • Schémata, data a mfile soubory k normále v Matlabu, Norm • CST model FRC F ma 10mm, CST • Videa (Video): – CST animace rozloženı́ proudu na FRC – Analýza pomocı́ EvalInFem, vč. chybného zadánı́ – Ukázka tvorby IFS v IFSMakeru – Tutoriál na IFSLimiter – Záznam optimalizace IFS pomocı́ PSO a CM (celý projekt) – Pohyb roje nad FRC, úloha H2, 100 iteracı́ 1 Pozn.: Nenı́-li uvedeno jinak, jsou všechny obr. dı́lem autora (Corel, Visio, Photoshop . . . ). 147
Podobné dokumenty
Diplomová práce
Obr. 24 Alokace dvou buněk v prostoru do duální mříže ........................................................ 35
Obr. 25 ESA (velká i malá) – H. R. Stuart, převzato z *17+ ...........................
PDF soubor
Klı́čem k řešenı́ je potom vyřešit nalezenı́ n-té mocniny takovéto matice v logaritmickém čase, což lze dostat
jako důsledek toho, že každé n lze zapsat jako součet mocnin dvojky (bi...
ABSOLVENTSK´A PR´ACE
se vůbec řešily simulátory na škole VOŠ SŠ Centrum odborné přı́pravy. Tyto informace
budou zı́skány od zaměstnanců školy a v neposlednı́ řadě ze svých zkušenostech při výuce,
př...
nyc.gov zdraví cir
World Scientific, Singapore, 1994(2. vydání)
• K. Huang, Statistical Mechanics, John Wiley & Sons,
Singapore, 1987 (2. vydání)
• A. -L Barabasi a H. E. Stanley, Fractal Concepts is Surface
Growth, ...
Stiahnuť PDF - Veronika Pizano
STRET ZÁUJMOV MEDIÁLNEHO PRIESTORU A PRÁVNEJ OCHRANY OSOBNOSTI Z
POH ADU VOJENSKÉHO ARCHÍVU – CENTRÁLNEJ REGISTRATÚRY MO SR V TRNAVE
Vy´konovy´ zesilovacˇ pro pa´smo 21–23 GHz
návrh koncového stupně byla použita load-pull měřicı́ metoda. Celý zesilovač je navržen jako
dvoustupňový, kde každý stupeň je v balančnı́ struktuře. Práce je rozdělena na teoreti...
KYBERNETIKA A UMEL´A INTELIGENCE 1.´Uvod do kybernetiky a
Tento model je lineárnı́, řešenı́ je x(k) = pk , pro p > 1 nestabilnı́ (x(k) →k→∞ ∞).
Populace nemůže růst do ∞ kvůli nedostatku potravy. Do modelu je třeba začlenit faktor
(1 − x(k)) potr...
Rešeršní práce
Soběpodobnost (matematicky se tato vlastnost nazývá invariance vůči změně měřítka) je
taková vlastnost objektu, že objekt vypadá stejně, ať se na něj díváme v jakémkoliv zvětšení.
Soběpodobnost je ...