Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Modelování a vizualizace elektromagnetických polí v MATLABu

Podobné prezentace


Prezentace na téma: "Modelování a vizualizace elektromagnetických polí v MATLABu"— Transkript prezentace:

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


Stáhnout ppt "Modelování a vizualizace elektromagnetických polí v MATLABu"

Podobné prezentace


Reklamy Google