Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Modelování a vizualizace elektromagnetických polí v MATLABu
Tomáš Mikolanda Ústav mechatroniky a technické informatiky Oddělení elektrotechniky a elektroniky BETA verze
2
Obsah přednášky Úvod do problematiky.
Význam a podstata základních. matematických vektorových operátorů. Numerický výpočet, interpretace, chyby a vizualizace. MATLAB Základní grafické prostředky. Nástroje pro vizualizaci skalárních polí. Nástroje pro vizualizaci vektorových polí. Praktické ukázky. Elektrostatické pole. Magnetostatické pole. BONUS na konec Ukázka příkladů ze zápočtových prací z loňského roku. Vaše otázka na závěr? „Co budeme řešit za semestrální práci?“ Obsah přednášky
3
Úvod do problematiky Otázky a co si musíme uvědomit. Co se počítá?
Jak se to počítá? V čem se to spočítá? Jak zobrazit výsledky? Jak výsledky interpretovat? PROČ se to počítá??? Úvod do problematiky
4
Úvod do problematiky Co se počítá?
Komplikované prostorové nebo rovinné technické úlohy. Šíření nebo rozložení EM pole v anizotropním, nehomogenním, nelineárním či tvrdém prostředí. Vysokofrekvenční EM pole. Dynamické úlohy. Sdružené úlohy (termo-EM, EM-mech) Příklady: Rozložení EM pole v elektrickém motoru. Magnetické projevy hvězd. Úvod do problematiky
5
Úvod do problematiky Jak se to počítá?
Jednoduché úlohy analyticky – ručně. Elektrické pole soustavy bodových nábojů. Elektrické a magnetické pole jednoduchých a symetrických úloh (koule, vodič, polorovina, rovina). Vyjadřujeme v kartézských, cylindrických nebo sférických souřadnicích; mezi všema existují vzájemné převody. Jednoduché příklady obvodů s rozprostřenými parametry – homogenní vedení, hloubka vniku.. Úvod do problematiky
6
Úvod do problematiky Jak se to počítá? Komplikované úlohy numericky
Numerická aproximace (Runge-Kutta, ODE, …) Metoda konečných diferencí Metoda konečných prvků (FEM) Dle typu úlohy lze použít buďto některý ze specializovaných numerických řešičů nebo si vytvořit svůj vlastní. Úvod do problematiky
7
Úvod do problematiky V čem se to spočítá?
ANSYS COMSOL MATLAB MATHEMATICA MATHCAD Následují ukázky výstupů z jednotlivých programů. Úvod do problematiky
8
ANSYS Úvod do problematiky
9
COMSOL Úvod do problematiky
10
MATLAB Úvod do problematiky
11
MATHEMATICA Úvod do problematiky
12
MATHCAD Úvod do problematiky
13
Úvod do problematiky Jak zobrazit výsledky?
Přímo ve výpočetním systému, pokud to umožňuje. Pomocí některého z grafických postprocessorů. Jak výsledky interpretovat? Velmi opatrně, proč? Modely se realizují za určitých zjednodušujících předpokladů (nulová tloušťka, nekonečná rychlost šíření,…) Moderní je se spoléhat se na výsledky numerických modelů aniž bychom rozuměli fyzikální podstatě problému!!! PROČ se to počítá? … Úvod do problematiky
14
Význam a podstata základních. matematických vektorových operátorů
Význam a podstata základních. matematických vektorových operátorů. Numerický výpočet, interpretace, chyby a vizualizace. grad div (Div) rot (Rot) laplace
15
Operátorový počet Operátor grad Významy operátoru
Skalární funkci převádí na funkci vektorovou. Určuje směr největšího spádu funkce. MATLAB: gradient Operátorový počet
16
Operátorový počet Operátor div (Div) Významy operátoru
Vektorovou funkci převádí na funkci skalární. Udává zřídlovost vektorového pole. Div – plošná divergence Velký význam v teorii EM pole při zkoumání podmínek na rozhraní dvou prostředí. MATLAB: divergence Operátorový počet
17
Operátorový počet Operátor rot (Rot) Významy operátoru
Zachovává vektorovou funkci. Udává v každém bodě lokální míru rotace (otáčení) definované tímto polem. Rot – plošná rotace Velký význam v teorii EM pole při zkoumání podmínek na rozhraní dvou prostředí. MATLAB: curl Operátorový počet
18
Operátorový počet Operátor Laplace Významy operátoru
Je-li operátor aplikován na skalární pole je výsledkem opět skalární pole. Pokud je aplikován na tenzorové pole je výsledkem tenzorové pole stejného řádu. MATLAB: --- Operátorový počet
19
Operátorový počet MATLAB a problémy numerického řešení
MATLAB nepracuje s jednotkami -> rozměrová analýza je pouze na nás. Výsledky včetně chyb závisejí charakteru řešené úlohy a hustotě sítě s kterou počítáme => je bezpodmínečně nutné rozumět fyzikální podstatě řešeného problému! Pozor na výsledky integrací a zejména derivací! MATLAB nezobrazí nedefinované hodnoty, viz ukázka. Malá změna zadání způsobí velké změny na výstupu! Ukázka na funkci: Phi = 2 / sqrt(x^2 + y^2) Operátorový počet
20
Operátorový počet Zobrazení a význam divergence pole
Stejná funkce jako u ukázky gradientu. Otázka: Proč je tentokráte vrchol záporný?? Funkce: Phi = 2 / sqrt(x^2 + y^ ) Operátorový počet
21
Operátorový počet Zobrazení a význam rotace pole
První dva obrázky, funkce: A = (-y; x) Druhá dvojice, funkce: A = (-y/R^2; x/R), kde R=sqrt(X^2 + Y^2) Operátorový počet
22
MATLAB je koncipován jako nástroj pro počítání s vektory => lineární algebra.
MATLAB je interpreter, nikoli kompilátor! Maximálního výkonu při výpočtech dosáhnete při vektorovém zápisu operací. Pouze v těch nejnutnějších situacích používat cykly! MATLAB - základy
23
MATLAB je postaven na principu toolboxů (zásuvných modulů).
Toolboxy se dají dokupovat (licencovat) zvlášť podle potřeby. Průměrná cena jednoho toolboxu je pro školství 7.980,- Kč, standardní licence je pak v intervalu <16; 80> tis. Kč. Informace o instalaci: ver Nápověda: help doc MATLAB - základy
24
MATLAB - základy Pozor na zápis a typ operandů!
B = magic(3); // např. [8 1 6; 3 5 7; 4 9 2] C1 = A * B; // =[ ; ; ] C2 = A .* B;// =[8 2 18; ; ] C1 != C2 MATLAB - základy
25
MATLAB – základní grafické prostředky
Funkce pro kreslení čárových grafů Odlišují se pouze v tom jaké nastavují měřítko osám grafu. Pro všechny funkce je vstupem vektor nebo matice. Funkce automaticky upraví měřítko os podle vstupních dat. Změnu měřítka lze provést funkcemi: xlim Ylim zlim MATLAB – základní grafické prostředky
26
MATLAB – základní grafické prostředky
plot - 2D graf s lineárním měřítkem na obou osách plot3 – 3D graf s lineárním měřítkem na všech osách loglog – Graf s logaritmickým měřítkem pro všechny osy semilogx – Graf s logaritmickým měřítkem pro osu X a lineárním měřítkem pro osu Y. semilogy – Graf s logaritmickým měřítkem pro osu Y a lineárním měřítkem pro osu X. plotyy – Graf se dvěma osami Y, na levé a pravé straně s odlišným měřítkem. MATLAB – základní grafické prostředky
27
MATLAB – základní grafické prostředky
plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyName',PropertyValue,...) plot(axes_handle,...) Př: x = -pi : .1 : pi; y = sin(x); plot(x, y) set(gca,'XTick',-pi:pi/2:pi) set(gca,'XTickLabel',{'-pi','-i/2','0','pi/2','pi'}) MATLAB – základní grafické prostředky
28
MATLAB – základní grafické prostředky
plot3(X1,Y1,Z1,...) plot3(X1,Y1,Z1,LineSpec,...) plot3(...,'PropertyName',PropertyValue,...) plot3(X1,Y1,Z1,X2,Y2,Z2,LineSpec,X3,Y3,Z3) Př: Lorenzův attractor MATLAB – základní grafické prostředky
29
MATLAB – základní grafické prostředky
loglog(Y) loglog(X1,Y1,...) loglog(X1,Y1,LineSpec,...) loglog(...,'PropertyName',PropertyValue,...) Př: x = logspace(-1,2); loglog(x,exp(x),'-s') ; grid on; MATLAB – základní grafické prostředky
30
MATLAB – základní grafické prostředky
semilogx(Y) semilogy(...) semilogx(X1,Y1,...) semilogx(X1,Y1,LineSpec,...) semilogx(...,'PropertyName',PropertyValue,...) Př: x = 0 : .1 : 10; semilogy(x, 10.^x); MATLAB – základní grafické prostředky
31
MATLAB – základní grafické prostředky
plotyy(X1,Y1,X2,Y2) plotyy(X1,Y1,X2,Y2,function) plotyy(X1,Y1,X2,Y2,'function1','function2') [AX,H1,H2] = plotyy(...) Př: x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); set(get(AX(1),'Ylabel'),'String','Slow Decay'); set(get(AX(2),'Ylabel'),'String','Fast Decay'); xlabel('Time (\musec)'); title('Multiple Decay Rates'); set(H1,'LineStyle','--'); set(H2,'LineStyle',':'); MATLAB – základní grafické prostředky
32
MATLAB – vizualizace skalárních polí
Skalární funkce Skalární funkce je funkce, které každému bodu v prostoru přiřazuje jedno číslo - skalár. Příklady skalárních polí Teplota atmosféry Země v blízkosti povrchu. Absolutní hodnoty vektorových polí (absolutní hodnota magnetické indukce, intenzity el. pole) Jak zobrazit skalární funkci? Otázka do pléna.. MATLAB – vizualizace skalárních polí
33
MATLAB – vizualizace skalárních polí
surface – low-level funkce, nedoporučuji používat, lze nadělat hodně chyb mesh# vs surf# ??? mesh# – drátový model surf# – povrchový model (vyplněný) contour – vrstevnicový graf (zobrazuje ekvipotenciály - izokřivky) pcolor – hodnota funkce odpovídá barevné složce, z = 0 -> jedná se o rovinu, hodnota funkce je vyjádřena barvou. MATLAB – vizualizace skalárních polí
34
MATLAB – vizualizace skalárních polí
Jak funkce používat? 1) meshgrid – generuje pole pro X a Y souřadnice pro 3D grafy [X,Y] = meshgrid(x,y) x, y ~ 1D vektory, rozsah vst. hodnot pro „x“ resp. „y“ X, Y ~ matice (2D) pole složená z kopií vektorů „x“ a „y“ Pozn.: Veškeré výpočty se musejí realizovat s „novými“ proměnnými „X“ a „Y“ !!! 2) Výpočet: MATLAB – vizualizace skalárních polí
35
MATLAB – vizualizace skalárních polí
[X,Y] = meshgrid(-8 : .5 : 8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surfc(X,Y,Z); MATLAB – vizualizace skalárních polí
36
MATLAB – vizualizace skalárních polí
Další možnosti Stínování: shading [###] flat faceted interp Default nastavení: faceted MATLAB – vizualizace skalárních polí
37
MATLAB – vizualizace skalárních polí
Barevné mapy: Jet HSV Hot Cool Spring Summer Autumn Winter Gray Bone Copper Pink Lines Změna: colormap ### MATLAB – vizualizace skalárních polí
38
MATLAB – vizualizace skalárních polí
Výpočet a zobrazení normálových vektorů surfnorm(Z) surfnorm(X,Y,Z) [Nx,Ny,Nz] = surfnorm(...) Normálové vektory nejsou normalizované! Nezobrazuje ty, které směřují od pozorovatele. Příklad: [X,Y] = meshgrid(-8 : .5 : 8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surfc(X,Y,Z); hold on; surfnorm(X, Y, Z); MATLAB – vizualizace skalárních polí
39
MATLAB – vizualizace vektorových polí
comet - 2-D comet plot. comet3 - 3-D comet plot. compass – Vektory vycházející z počátku (dobré pro fázorový diagram). feather – Vektory, které jsou rovnoměrně rozloženy podél horizontální osy. quiver – Zobrazí vektor o hodnotách (u,v) v bodě (x,y). quiver3 - 3-D varianta předchozí funkce. MATLAB – vizualizace vektorových polí
40
MATLAB – vizualizace vektorových polí
comet(y) comet(x,y) comet(x,y,p) comet(axes_handle,...) Příklad: t = 0:.01:2*pi; x = cos(2*t).*(cos(t).^2); y = sin(2*t).*(sin(t).^2); comet(x,y); MATLAB – vizualizace vektorových polí
41
MATLAB – vizualizace vektorových polí
comet3(z) comet3(x,y,z) comet3(x,y,z,p) comet3(axes_handle,...) Příklad: t = -10*pi:pi/250:10*pi; comet3((cos(2*t).^2).*sin(t), (sin(2*t).^2).*cos(t),t); MATLAB – vizualizace vektorových polí
42
MATLAB – vizualizace vektorových polí
compass(U,V) compass(Z) compass(...,LineSpec) compass(axes_handle,...) h = compass(...) Příklad: t = -10*pi:pi/250:10*pi; comet3((cos(2*t).^2).*sin(t), (sin(2*t).^2).*cos(t),t); MATLAB – vizualizace vektorových polí
43
MATLAB – vizualizace vektorových polí
feather(U,V) feather(Z) feather(...,LineSpec) feather(axes_handle,...) h = feather(...) Příklad: theta = (-90:10:90)*pi/180; r = 2*ones(size(theta)); [u,v] = pol2cart(theta,r); feather(u,v); MATLAB – vizualizace vektorových polí
44
MATLAB – vizualizace vektorových polí
quiver(x,y,u,v) quiver(u,v) quiver(...,scale) quiver(...,LineSpec) quiver(...,LineSpec,'filled') quiver(axes_handle,...) h = quiver(...) hlines = quiver('v6',...) Příklad: [X,Y] = meshgrid(-2:.2:2); Z = X.*exp(-X.^2 - Y.^2); [DX,DY] = gradient(Z,.2,.2); contour(X,Y,Z) hold on; quiver(X,Y,DX,DY); colormap hsv; hold off; MATLAB – vizualizace vektorových polí
45
MATLAB – vizualizace vektorových polí
quiver3(x,y,z,u,v,w) quiver3(z,u,v,w) quiver3(...,scale) quiver3(...,LineSpec) quiver3(...,LineSpec,'filled') quiver3(axes_handle,...) h = quiver3(...) Příklad: [X,Y] = meshgrid(-2:0.25:2,-1:0.2:1); Z = X.* exp(-X.^2 - Y.^2); [U,V,W] = surfnorm(X,Y,Z); quiver3(X,Y,Z,U,V,W,0.5); hold on surf(X,Y,Z); colormap hsv view(-35,45) axis ([ ]) hold off MATLAB – vizualizace vektorových polí
46
Pokročilé metody vizualizace
47
Pokročilé metody vizualizace
streamline – zobrazuje proudnice. coneplot – zobrazí vektory rychlosti jako kužele. stream2 – vypočte proudnice – rovinná úloha. stream3 – vypočte proudnice – prostorová úloha. streamslice – zobrazí rozložené proudnice. Pokročilé metody vizualizace
48
Pokročilé metody vizualizace
streamline(X,Y,U,V,startx,starty) streamline(U,V,startx,starty) streamline(XY) streamline(...,options) streamline(axes_handle,...) h = streamline(...) Příklad: load wind [sx,sy,sz] = meshgrid(80,20:10:50,0:5:15); h = streamline(x,y,z,u,v,w,sx,sy,sz); set(h,'Color','red') ; view(3); Pokročilé metody vizualizace
49
Pokročilé metody vizualizace
coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz) coneplot(U,V,W,Cx,Cy,Cz) coneplot(...,s) coneplot(...,color) coneplot(...,'quiver') coneplot(...,'method') coneplot(X,Y,Z,U,V,W,'nointerp') coneplot(axes_handle,...) h = coneplot(...) Příklad: viz nápověda k příkazu.. Pokročilé metody vizualizace
50
Pokročilé metody vizualizace
XY = stream2(x,y,u,v,startx,starty) XY = stream2(u,v,startx,starty) XY = stream2(...,options) Příklad: load wind; [sx,sy] = meshgrid(80,20:10:50); streamline(stream2(x(:,:,5),y(:,:,5),u(:,:,5),v(:, :,5),sx,sy)); Pokročilé metody vizualizace
51
Pokročilé metody vizualizace
XYZ = stream3(X,Y,Z,U,V,W,startx,starty,startz) XYZ = stream3(U,V,W,startx,starty,startz) XYZ = stream3(...,options) Příklad: load wind; [sx sy sz] = meshgrid(80,20:10:50,0:5:15); streamline(stream3(x,y,z,u,v,w,sx,sy,sz)) view(3); Pokročilé metody vizualizace
52
Pokročilé metody vizualizace
streamslice(X,Y,Z,U,V,W,startx,starty,startz) streamslice(U,V,W,startx,starty,startz) streamslice(X,Y,U,V) streamslice(U,V) streamslice(...,density) streamslice(...,'arrowsmode') streamslice(...,'method') streamslice(axes_handle,...) h = streamslice(...) [vertices arrowvertices] = streamslice(...) Příklad: load wind; daspect([1 1 1]); [verts averts] = streamslice(u,v,w,10,10,10); streamline([verts averts]); spd = sqrt(u.^2 + v.^2 + w.^2); hold on; slice(spd,10,10,10); colormap(hot); shading interp; view(30,50); axis(volumebounds(spd)); camlight; material([.5 1 0]); Pokročilé metody vizualizace
53
Praktické ukázky Magnetostatické pole Pole osamoceného vodiče
Pole závitu Pole cívky (solenoidu) Praktické ukázky
54
Pole osamoceného vodiče
55
Pole závitu
56
Pole cívky
57
Modelování a vizualizace elektromagnetických polí v MATLABu
Tomáš Mikolanda Ústav mechatroniky a technické informatiky Oddělení elektrotechniky a elektroniky Děkuji za pozornost
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.