diplomov´a pr´ace - Katedra elektromagnetického pole

Transkript

diplomov´a pr´ace - Katedra elektromagnetického pole
Č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

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+ ...........................

Více

PDF soubor

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...

Více

ABSOLVENTSK´A PR´ACE

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ř...

Více

nyc.gov zdraví cir

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, ...

Více

Stiahnuť PDF - Veronika Pizano

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

Více

Vy´konovy´ zesilovacˇ pro pa´smo 21–23 GHz

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...

Více

KYBERNETIKA A UMEL´A INTELIGENCE 1.´Uvod do kybernetiky a

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...

Více

Rešeršní práce

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 ...

Více