You are on page 1of 23

Решавање на проблеми од теороијата на полиња во MATLAB

_______________________________________________________________________________________

2. РЕШАВАЊЕ НА ПРОБЛЕМИ ОД ТЕОРИЈАТА НА


ПОЛИЊА ВО MATLAB

Со користење на MATLAB можат да се решаваат комплексни проблеми од теоријата на


полиња, електричното и магнетното, вклучувајќи и 2D и 3D визуелизација на векторските и
скаларните величини со кои тие се опишуваат.

2.1 ОПЕРАЦИИ СО ВЕКТОРИ ВО MATLAB

Векторите дефинирани во трите координатни системи (правоаголен, цилиндричен и сферен)


во MATLAB се претставуваат како матрици со една редица или една колона. Стандардните
операции врз векторите се поддржани со вградени функции во MATLAB. Во продолжение
ќе бидат прикажани некои примери со кои се прикажува користењето на MATLAB за
решавање на проблеми на пресметки на електричното и магнетното поле со вектрско
сметање.

2.1.1 ВЕКТОРИ И КООРДИНАТНИ СИСТЕМИ

На сликата се прикажани стандардните ознаки за трите координатни системи со нивните


соодветните единечни вектори (ортови) дефинирани во насока на оските на системот:
а) (ix, iy, iz) – за правоаголен координатен систем, б) (iφ, ir, iz) – за цилиндричен систем, и
в) (iφ, iθ, iρ) – за сферен систем.

z z
а) iz б) iz в) iψ iρ
iy iφ θ iφ
ρ
ix y ir iθ
φ r φ
x ψ=π/2−θ

Важно е да се забележи дека сферниот координатен систем во MATLAB е дефиниран нешто


поразлично, така што наместо агловна координата θ е дефинирана агловна координата
ψ=(π/2−θ) и важи следниов редоследот на координатите: iφ, iψ, iρ.

2-1
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Со таа забелешка, единечните вектори во MATLAB се дефинираат со соодветна матрица


редица во која вредност 1 има елементот кој според редоследот одговара на соодветниот
ортот за дадена оска, додека останатите се со вредност 0, како што следува
ix=[1 0 0]; iy=[0 1 0]; iz=[0 0 1] правоаголен к.с.
iphi=[1 0 0]; ir=[0 1 0]; iz=[0 0 1] цилиндричен к.с.
iphi=[1 0 0]; ipsi=[0 1 0]; irho=[0 0 1] сферен к.с.

G G G G G pi G G G
Така на пример векторите A = 3ix + 4iy + 0iz во правоаголен, B = iφ + 5ir + 2iz во
3
G pi G pi G G
цилиндричен и C = iφ + iψ + 3iρ во сферен координатен систем (агловите координати во
3 4
цилиндричниот и сферниот систем се во rad), во MATLAB се претставуваат спред
>> A=[3 4 0];
>> B=[pi/3 5 2];
>> C=[pi/3 pi/4 3];

Во MATLAB можат директно да се користат следниве наредбите за операции со вектори


G
norm(А) модул на векторот A
G G
dot(A,B) скаларен производ A ⋅ B
G G
cross(A,B) векторски производ A × B

Трансформациите од еден во друг координатен систем можат директно да се изведат со


користење на следниве наредби
[phi,r,z]=cart2pol(x,y,z) од правоаголен во цилиндричен к.с.

[x,y,z]=pol2cart(phi,r,z) од цилиндричен во правоаголен к.с.

[phi,psi,rho]=cart2sph(x,y,z) од правоаголен во сферен к.с.

[x,y,z]=sph2cart(phi,psi,rho) од правоаголен во сферен к.с.

Пример 2-1. Да се напише функција во MATLAB што како излезен аргумент ќе враќа
матрица во која се содржани податоците за векторот, модулот и единечниот вектор
дефиниран меѓу две произволни точки A=(a1,a2,a3) и B=(b1, b2, b3) во правоаголен
координатен систем.

MATLAB Script function vector.m


function AB=vector(A,B)
% Given a pair of Cartesian pointsA and B
% the program determines the vector from A to B
% Result AB is complex row matrix which first three elements
% are ABx, ABy and ABz coordinates; fourth element is norm of AB
% and last three elements are ix, iy and iz of vector AB
vecAB=B-A; % determination of vector AB
norAB=norm(vecAB) % determination od vector norm
unAB=vecAB(1:3)./norAB % determination of ix, iy and iz
AB=[vecAB norAB unAB] % determination output complex matrix
end

2-2
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Како резултат на повикување на функцијата vector се добива


>> P=[1 2 3];
>> Q=[6 5 4];
>> PQ=vector(P,Q)

PQ =
Columns 1 through 6
5.0000 3.0000 1.0000 5.9161 0.8452 0.5071
Column 7
0.1690

Пример 2-2. Дадени се точките P=(4,1,0) и Q=(1,3,0). Да се напише програма во MATLAB


што ќе ги изврши следниве пресметки.(користете ја функцијата vector.m)

вектор модул единечен вектор


a. Да се определи AOP = 4 ix + 1 iy 4.12 iAOP = 0.97 ix + 0.24 iy
векторот А=ОP
b. Да се определи BOQ = 1 ix + 3 iy 3.16 iOQ = 0.32 ix + 0.95 iy
векторот B=ОQ
c. Да се определи CPQ = -3 ix + 2 iy 3.61 iPQ = -0.83 ix + 0.55 iy
векторот C= PQ
d. Да се определи A + B = 5 ix + 4 iy 6.4 i = 0.78 ix + 0.62 iy
векторот D=A+B
e. Да се определи C - A = -7 ix + 1 iy 7.07 i = -0.99 ix + 0.14 iy
векторот E=C–A
f. Да се определи B - A = -3 ix + 2 iy 3.6 i = -0.83 ix + 0.55 iy
векторот F=B–A

G G G G
Пример 2-3. Да се определат: скаларниот производ A ⋅ B , аголот меѓу векторите A и B ,
G G G G
скаларниот производ A ⋅ A , и векторскиот производ A × B на векторите А=[3 4 0] и
B=[12 5 0]. Агол меѓу двa вектори се дефинира од скаларниот производ
G G
G G AB cos )( A, B )
)( A, B ) = arccos .
AB

MATLAB Script ex2_3.m


% this program illustrates integrated MATLAB commands for vectors
A= [3 4 0]
B= [12 5 0]
scalar_product=dot(A,B)
angle_rad=acos(scalar_product/(norm(A)*norm(B)))
angle_deg=angle_rad*180/pi
magnitude=dot(A,A)
cross_product= cross(A,B)

Резултатите од извршените пресметки се


A =
3 4 0
B =
12 5 0

2-3
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

scalar_product =
56
angle_rad =
0.5325
angle_deg =
30.5102
magnitude =
25
cross_product =
0 0 -33

G G G G
Пример 2-4. Да се изврши трансформација на векторот A = 3ix + 2iy + 4iz од правоаголен во

цилиндричен координатен систем и сферен координатен систем. Векторот


G pi G G G
B = iφ + 2ir + 4iz да се трансформира од цилиндричен во правоаголен и сферен
6
координатен систем.

MATLAB Script ex2_4.m


% Cartesian to polar and spherical coordinates
A=[3 2 4]; B=[pi/6 2 4];
fprintf('Vector A: x=%g y=%g z=%g \n',A)
[phi,r,z]=cart2pol(3,2,4);
fprintf('A - Cartesian to Polar coordinates \n')
fprintf('r= %g phi_rad= %g z= %g \n',r,phi,z)
fprintf('r= %g phi_deg= %g z= %g \n \n',r,phi*180/pi,z)

fprintf('A - Cartesian to Spherical coordinates \n')


[phi,psi,rho]=cart2sph(3,2,4);
theta=pi/2-psi;
fprintf('phi= %g theta_rad= %g rho_rad= %g \n',phi,theta,rho)
fprintf('phi= %g theta_deg= %g rho_deg= %g \n
\n',phi,theta*180/pi,rho*180/pi)

fprintf('Vector B: phi=%g r=%g z=%g \n ',B)


[x,y,z]=pol2cart(pi/6,2,4);
[phi,psi,rho]=cart2sph(x,y,z);
theta=pi/2-psi;
fprintf('B - Polar to Spherical coordinates \n')
fprintf('phi_rad= %g theta_rad= %g rho= %g \n',phi,theta,rho)
fprintf('phi-deg= %g theta_deg= %g rho= %g
\n',phi*180/pi,theta*180/pi,rho)

Како резултат од извршување на наредбите следува


Vector A: x=3 y=2 z=4
A - Cartesian to Polar coordinates
r= 3.60555 phi_rad= 0.588003 z= 4
r= 3.60555 phi_deg= 33.6901 z= 4

A - Cartesian to Spherical coordinates


phi= 0.588003 theta_rad= 0.733581 rho_rad= 5.38516
phi= 0.588003 theta_deg= 42.0311 rho_deg= 308.547

Vector B: phi=0.523599 r=2 z=4


B - Polar to Spherical coordinates
phi_rad= 0.523599 theta_rad= 0.463648 rho= 4.47214
phi-deg= 30 theta_deg= 26.5651 rho= 4.47214

2-4
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

2.1.2 ГРАДИЕНТ, ДИВЕРГЕНЦИЈА И РОТОР

Во теоријата на полиња се користат диференцијални операции врз скаларни и векторски


функции со кои се опишуваат одредни својства на полињата во доменот ∆V→0, околина на
одредена точка во просторот: градиент, дивергенција и ротор.

Операцијата градиент како резултат дава вектор со кој во дадена точка се определува
правецот и насоката каде скаларната функција на полето има максимален пораст (најбргу
расте). Модулот на градиентот ја определува апсолутната вредност на диференцијалот. За
правоаголен координатен систем градиентот се дефинира според

G ∂a G ∂a G ∂a G
A = ∇a = ix + iy + iz
∂x ∂y ∂z
Операцијата дивергенција како резултат дава скалар со кој се изразува постоењето на извори
и понори на векторското поле во дадена точка од просторот. За правоаголен координатен
систем диверенцијата се дефинира според
G G
G ∂Ax ∂Ay ∂Az
a =∇⋅ A = + + = lim

v A ⋅ dS
∂x ∂y ∂z ∆V →0 ∆V
Во случај кога дивергенцијата на векторот е нула, тоа значи дека во таа точка не постојат
ниту извори ниту понори на векторот на полето.

Операцијата ротор како резултат дава вектор со кој се определува постоењето на вртлози на
векторското поле во дадена точка од просторот. За правоаголен координатен систем роторот
на даден вектор е дефиниран според
G G G
G G  ∂Az ∂Ay  G  ∂Ax ∂Az  G  ∂Ay ∂Ax  G in v∫ A ⋅ dl
B = ∇× A =  −  ix +  − iy +  −  iz = ∆lim
 ∂y ∂z   ∂z ∂x   ∂x ∂y  S →0 ∆S
2
+ y2 )
Пример 2-5. Ако се претпостави дека во просторот постои функцијата z ( x, y ) = e − ( x , да
се определи и графички да се прикаже нејзиниот градиент grad(z(x,y)).

Во решавањето на наведената задача се користат наредбите:

[Fx,Fy,Fz]=gradient(F,h1,h2,h3) градинт на скаларот F во однос


на компонентите x, y и z со чекор h1, h2 и
h3 соодветно;

quiver(x,y,u,v) приказ со стрелки на вектори на брзина со


компоненти u,v во точка со координати x,y
(матриците u,v,x и y треба да се со иста
диемнзија);

2-5
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

MATLAB Script ex2_5.m


% this illustrates the gradient and contour commands in MATLAB
clear;clf
[x,y] =meshgrid(-2: .2: 2, -2: .2: 2);
[xx,yy] =meshgrid(-2: .4: 2, -2: .4: 2);
z=exp(-x.^2-y.^2);
zz=exp(-xx.^2-yy.^2);
subplot (2, 1, 1)
mesh(x,y,z); axis equal; axis off
view(-30,20); text(-5, 0, 'Scalar field z','fontsize', 14)
subplot (2, 1, 2)
contour(x,y,z, 5); hold on; axis square
[u,v] = gradient (zz, .2);
quiver(xx,yy,u,v)
axis equal; axis off; hold off
text(-6, 0, 'Gradient (z)','fontsize', 14)

Како резултат од изведување на програмата се добива графички приказ

Scalar field z

Gradient (z)

Пример 2-6. Да се определи и графички да се прикаже дивергенцијата на векторското поле


G 2 G G G G
A = e − ( r / α ) r (α = 3), каде r 2 = x 2 + y 2 и r = xix + yiy .

Во решавањето на наведената задача се користат наредбите


div=divergence(x,y,z,U,V,W) дивергенција на 3D векторското поле
U,V,W, каде x,y и z ги определуваат
кооординатите за компонентите U,V,W;

[C,h]=contour(x,y,z) го означува интензитетот на контурите z


clabel(C,h)

2-6
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

MATLAB Script ex2_6.m


% this illustrates the divergence operator
clear, clf;
alpha=3;
[x,y] =meshgrid( -2 : .5 : 2, -2 : .5 : 2 );% 0.2 -- > 0.5
M=length(x); N=length(y);
r2=x.^2+y.^2;
%
for k=1:M
for l=1:N
Ax(k,l)=exp(-r2(k,l)/alpha.^2)*x(k,l);
Ay(k,l)=exp(-r2(k,l)/alpha.^2)*y(k,l);
end
end
% plot vector field A
subplot(2,2,1)
mesh(x,y,sqrt(Ax.^2+Ay.^2))
title('Vector field A','fontsize', 14)
subplot(2,2,3)
quiver(x,y,Ax,Ay)
axis equal
axis off
% plot divergence(A)
subplot(2,2,[2 4])
hold on
axis square
D=divergence(x,y,Ax,Ay);
[C,h] = contour(x,y,D);
clabel(C,h,'FontSize',8,'Rotation',0)
axis equal
axis off
hold off
title('Divergence (A)','fontsize', 14)

Vector field A Divergence (A)

1
0.4 0.6 0.4
0.6
1 0.8
0
2 1.2 1.4
2
0 0.8 11.2
0 1 1.6 1.2
-2 -2 1.4 1.6
1.8
1.8 1
1.4

1.2 1.6
0.8 1 1.2
1.4
1 0.80.6
0.6
0.4 0.4

2-7
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Пример 2-7. Да се определи и графички да се прикаже роторот на векторското поле


G 2 G G G G G
A = e − ( r / α ) wiz × r (α = 3, w = 1), каде r 2 = x 2 + y 2 и r = xix + yiy .

G G G G
Како резултат се добива векторот C = rot ( A) кој има само z- компонента, C = Ciz .

Во решавањето на наведената задача се користат наредбите


[curlx,curly,curlz,cav]=curl(X,Y,Z,U,V,W) ротор и аголна брзина на
на 3D векторското поле U,V,W, каде x,y и z
ги определуваат кооординатите за
компонентите U,V,W;

MATLAB Script ex2_7.m


% this illustrates the curl operator
clear, clf;
alpha=3;
omega=1;
[x,y] =meshgrid( -2 : .5 : 2, -2 : .5 : 2 );
M=length(x);
N=length(y);
r2=x.^2+y.^2;
for k=1:M
for l=1:N
Ax(k,l)=-exp(-r2(k,l)/alpha.^2)*y(k,l)*omega;
Ay(k,l)=exp(-r2(k,l)/alpha.^2)*x(k,l)*omega;
end
end
%
% plot vector field
subplot(2,2,1)
mesh(x,y,sqrt(Ax.^2+Ay.^2))
title('Vector field A','fontsize', 14)
subplot(2,2,3)
quiver(x,y,Ax,Ay)
axis equal
axis off
%
% plot curl(A)
subplot(2,2,[2 4])
hold on
axis square
C=curl(x,y,Ax,Ay);
[C,h] = contour(x,y,C);
clabel(C,'FontSize',8)
axis equal
axis off
hold off
title('Rotor (A) z-comp.','fontsize', 14)

Како резултат од изведување на наредбила се добива графички приказ

2-8
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Vector field A Rotor (A) z-comp.

1
0.2 0.2
0.4
0 0.3 0.3
2
2
0 0 0.4 0.5
0.9
-2 -2 0.8 0.6

0.7 0.4

0.2 0.3 0.4 0.3 0.2

2.2 ПРЕСМЕТКИ И ГРАФИЧКИ ПРИКАЗ НА ЕЛЕКТРИЧНО И


МАГНЕТНО ПОЛЕ

Врз основа на законите кои важат за електомагнетното поле во диференцијална или


интегрална форма: Кулоновиот закон, Гаусовиот закон, Био-Саваровиот закон, Граничните
услови, Принципот на суперпозиција, Методот на огледување и др., во MATLAB можат да
се пресметуваат и визуелно да се претставуваат 2D и 3D слики на електричното поле и
магнетното поле во просторот. Во продолжение ќе бидат прикажани некои примери на
пресметка и визуелизација на електричното и магнетното поле во MATLAB.

2.2.1 ЕЛЕКТРИЧНО ПОЛЕ И ПОТЕНЦИЈАЛ ОД ТОЧКАСТИ ПОЛНЕЖИ

Пример 2-8. Користејќи го принципот на суперпозиција за потенцијал и релацијата помеѓу


векторт на јачина на електричното поле и скаларниот потенцијал во диференцијална форма
G
E = − grad (V ) , да се пресмета и графички да се прикаже распределбата на потенцијалот и
електричното поле кое потекнува од систем од точкасти полнежи Q1=2, Q2=1, Q3=1.5, Q4=-1,
Q5=-1 поставени во рамнина во точките (0,-3), (0,3), (-3,1.5), (3,3) и (0,0).

Во решавање на проблемот се користат вградени функции за нумеричка интерполација


zi=interp2(x,y,z,xi,yi,method) дава матрица со елементи zi во
точките xi и yi добиени со интерполација според
method=(nearest, line, spline, cubic)

2-9
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

MATLAB Script ex2_8.m


% dipole potential and electric field
clear;clf
[x,y]=meshgrid(-5:0.75:5,-5:0.75:5);
subplot(2,2,1:2)
R1=((x-0.).^2+(y-3.).^2).^.5;
R2=((x+0.).^2+(y+3.).^2).^.5;
R3=((x-3.).^2+(y+1.5).^2).^.5;
R4=((x+3.).^2+(y+3).^2).^.5;
R5=((x+0.).^2+(y+0.).^2).^.5;
% calculate potential by using superposition principle
V=2*(1./R1)+1*(1./R2)+1.5*(1./R3)-(1./R4)-(1./R5);
surf(x,y,V); axis image; axis off
view( -35,20); axis ([-5 5 -5 5 -1. 3.9])
title('Scalar potential','fontsize',14)
subplot(2,2,3)
[u,v]=gradient(V);
quiver(x,y,-u,-v,2,'r')
mag=sqrt(u.^2 + v.^2);
axis equal; axis off
title('Electric field vector','fontsize',14)
hold on
subplot(2,2,4)
[xi,yi] = meshgrid(-4:0.05:4);
zz=[0.075 0.1 0.2 0.3 0.4 0.5 0.6 0.8 1.];
%zi2 = interp2(x,y,mag,xi,yi,'bilinear'); %interpolation1
zi3 = interp2(x,y,mag,xi,yi,'bicubic'); %interpolation2
contour(xi,yi,zi3,zz); axis square; axis image; axis off
title('Electric field magnitude','fontsize',14)
hold on
После извршување на програмата се добива приказот

Scalar potential

Electric field vector Electric field magnitude

0.8

0.6

0.4

0.2

2-10
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Пример 2-9. Нека се посматраат два полнежи Q1(0,-5.0m,0)=1.0 nC и Q2(0, 5m, 0)=2.0 nC. Да
се пресмета напонот меѓу точките А(0,0,0) и B(5,0,0) користејќи: а) директно нумеричко
интегрирање од А до B, б) аналитичко решение.

Во решавањето на оваа задача под а) се користи нумеричко интегрирање заради


B
G G
определување на напонот VAB = ∫ E ⋅ dl , додека за делот под б) се користи принципот на
A

суперпозиција и разлика на потенцијалитеUAB=VA-VB= (VA1-VB1) + (VA2-VB2).

MATLAB Script ex2_9.m


% calculate the potential
% difference going from the point A(0,0,0) to the point B(5,0,0)
% given a pair of point charges Q1(0,-5,0)=1nC and Q2(0,5,0)=2nC
%
% The approach will be to break up the distance
% from A to B into k sections. The total field E will
% be found at the center of each section (located
% at point P) and then dot(Ep,dLv) will give the
% potential drop across the kth section. Total
% potential is found by summing the potential drops.
%
% Variables:
% Q1,Q2 the point charges, in nC
% k number of numerical integration steps
% dL magnitude of one step
% dLv vector for a step
% x(n) x location at center of section at P
% R1,R2 vector from Q1,Q2 to P
% E1,E2 electric fields from Q1 & Q2 at P
% Etot total electric field at P
% V(n) portion of dot(Etot,dL) at P
% Vnumerical numerical solution
% Vanalytical analytical solution
clear %clears variables
% Initialize variables
format long;
k=100;
L=5;
Q1=1e-9;
Q2=2e-9;
dL=L/k;
dLv=dL*[1 0 0];
% Numerical solution
for n=1:k % Perform calculation cycle
x(n)=(n-1)*dL+dL/2;
R1=[x(n) 5 0];
R2=[x(n) -5 0];
Rmag1=norm(R1);
Rmag2=norm(R2);
E1=Q1*R1/(4*pi*Rmag1^3);
E2=Q2*R2/(4*pi*Rmag2^3);
Etot=E1+E2;
V(n)=dot(Etot,dLv); % dot product
end
Vnumerical=sum(V)

2-11
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

% Analytical solution
R1a=norm([0 5 0]); R1b=norm([5 5 0]);
R2a=norm([0 -5 0]); R2b=norm([5 -5 0]);
V1A=Q1/(4*pi*R1a); V1B=Q1/(4*pi*R1b);
V2A=Q2/(4*pi*R2a); V2B=Q2/(4*pi*R2b);
Vanalytical=(V1A-V1B)+(V2A-V2B)

После извршување на програмата се добиваат следниве резултати


Vnumerical =
1.398485519018480e-011
Vanalitical =
1.398462107167713e-011

Пример 2-10. Со користење на методот на огледување на се определи и графички да се


прикаже распределбата на скаларниот потенцијал и векторот на електричното поле во
околина на точкаст полнеж Q=4πε0 (C) кој се наоѓа меѓу две идеални метални површини
поставени под прв агол во точка со координати (-.35,0.35).

MATLAB Script ex2_10.m


% method of images
clear;clf
[x,y] =meshgrid(0.: .1: 1., 0.0: .1: 1.);
z1=sqrt((x- .35).^2+(y- .35).^2); z2=sqrt((x- .35).^2+(y+ .35).^2);
z3=sqrt((x+ .35).^2+(y- .35).^2); z4=sqrt((x+ .35).^2+(y+ .35).^2);
V= (1./z1)- (1./z2) - (1./z3) + (1./z4);
[p]=meshgrid(0.3:.5:10);
contour(x,y,V,p); hold on; axis square;
[u,v] = gradient (V);quiver(x,y,-u,-v);
line ([0 1], [0 0]); line ([0 0], [0 1])
line ([0.35 .35], [.35 .35],'Color','k','LineStyle','*')
text (.365, .365, 'Q','fontsize',16)
axis off; hold off; text(-.07, .9, 'y','fontsize', 16)
text(.85, -.05, 'x','fontsize', 16)

2-12
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

2.2.2 ЕЛЕКТРИЧНО ПОЛЕ И ПОТЕНЦИЈАЛ ОД КОНТИНУИРАНО РАСПРЕДЕЛЕНИ


ПОЛНЕЖИ

Ако се посматра метална плоча со површина S со страни a и b како што е прикажано на


сликата, која е наелектризирана со површинска густина σ (константа или функција од
координати), решавањето на потенцијалот може да се изведе со користење на принципот на
b a σ
суперпозиција и решавање на интегралот V ( x, y , z ) = ∫ 2

2
dx ' dy ' .
2 4πε o R
−b −a
2

Приближното решение на интегралот може да се напише како конечна сума


N M
σ ( j , k ) ∆x ' ∆y '
V ( x, y , z ) = ∑ ∑ . При тоа, најпрво целата површина се дели на (N-1)(M-1)
j =1 k =1 4πε o R jk

мали површини ∆S = ∆x’∆y’ = a/N b/M = delx dely. Централната точка на сегментот ∆Sjk
определен долж a како реден број ј а долж b со реден број k e дефинирана со координата
cjk (hjk, vjk)= (j⋅delx−delx/2, k⋅dely−dely/2). Секој сегмнт се смета како еквивалентен полнеж со
количина електрицитет ∆Qjk = σjk∆Sjk. Ако површинската густина е константна, тогаш
∆Qjk = const.

y'
y'
Q
b ∆Qjk
k=M-1
x' x'

R R

z z
A A

j=N-1
k= 1
a j=1

Пример 2-11. Се посматра метална квадратната плоча со страна а која е рамномерно


наелектризирана со количина електрицитет Q. Користејќи го принципот на суперпозиција за
потенцијал да се споредат приближното и точното решение за потенцијалот во точката А
според бројот на сегменти на кои се дели површината на плочата (deltax=a/N-1). Точката А е
централно поставена на растојание z = a пред плочата.

Според претходното, аналитичкото решение се добива со решението на интегралот

2-13
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

b a σ
V (0,0, a ) = 2∫ 2 2∫ 2
dx′dy ′ ,
0 0
4πε o x′ + y ′2 + a 2
2

кое може нумерички да се изведе со примена на директно нумеричко интегрирање (во


MATLAB), додека приближно решение на проблемот се добива со сумата

N M
1 N M σ∆S jk
V (0,0, a )  ∑∑ ∆V jk = ∑∑ .
j =1 k =1 4πε 0 j =1 k =1 ( j ⋅ h jk ) 2 + (k ⋅ v jk ) 2 + a 2

За решавање на проблемот во MATLAB се користат функциите


q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method) нумеричко решавање
на двоен интеграл

f=inline(expr,arg1,arg2,...) дефинирање на функција f со изразот


expr и аргументите arg1, arg2,...

MATLAB Script 2_11.m


% approximate solution
clear;clf
%
Max=7;
a= 1; s=a^2;
Q=1e-9;
sgma=Q/s;
eps0=1e-9/(36*pi);
cons=sgma/(4*pi*eps0);
%
% approximative solution based on superposition principle
for n = 1: Max
V(n) = 0;
nn=(2^(n-1));
mm=nn;
h=a/nn;
v=a/mm;
for j=1:nn
for k=1:mm
sourc=[-a/2+j*h-h/2 -a/2+k*v-v/2 0];
obser=[0 0 a];
vec_dist=obser-sourc;
R=norm(vec_dist);
V(n)=V(n)+cons*h*v/R;
end
end
end
%

% numerical integration
%
f=inline('1./sqrt(x.^2+y.^2+1)');
v_int=dblquad(f, -.5, .5, -.5, .5);
voltnum=v_int*cons;
fprintf('Approximative solution for V in (V) with respect to
segmentation\n')
V
fprintf('Numerical integration for V is %g (V)\n',voltnum)
%
% plot results

2-14
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

set(gca,'fontsize', 14)
plot (1:Max,V,'*r')
grid on
hold on
plot (1:Max, voltnum,'ob')

Резултатите од програмата се
Approximative solution for V with respect to segments
V =
Columns 1 through 6
9.0000 8.4853 8.3883 8.3651 8.3593 8.3579
Column 7
8.3575
Numerical integration for V is 8.35738

9
approximation
8.9 integration

8.8
Voltage (V)

8.7

8.6

8.5

8.4

8.3
1 2 3 4 5 6 7
n in formula seglen=a/2(n-1)

Пример 2-12. Даден е праволиниски тенкожичен проводник со должина 2L поставен


симетрично долж оската z (во поларен координатен систем). Проводникот е рамномерно
наелектризиран со оптоварување со подолжна густина на електрицитет Q’. Да се определи и
графички прикаже односот на интензитетите на електричното поле кога проводникот е со
конечна должина L или бесконечна должина L→∞ во функција од односот L/r.

Со решавање според принципот на суперпозиција, се добива дека елктричното поле има


α Q′ Q′ Q′ L
само радијална компонента EL ( r ) = 2 ∫ cos α dα = sin α = . За
0 4πε o r 2πε o r 2πε o r L + r2
2

2-15
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Q′
бесконечно долг проводник α=π/2 горниот интеграл добива решение EL∞ (r ) = . Од
2πε o r

EL ( r ) L L/r
тука може да се дефинира кличникот = = .
EL∞ (r ) L +r
2 2
L / r2 +1
2

MATLAB Script ex2_12.m


% This program compares the E-field from a finite length
% segment of charge (from -L to +L on the z-axis)
% to the E-field from an infinite length line
% of charge. The ratio (E from segment to E from
% infinite length line) is plotted versus the ratio
% Lr_ratio=L/r, where r is the radial distance
% Lr_ratio the ratio L/r
% Eratio ratio of E from segment to E from infinite line
%
clc %clears the command window
clear %clears variables
%
% Initialize Lod array and calculate Eratio
Lr_ratio=0.01:0.01:50;
Eratio=Lr_ratio./(sqrt(1+Lr_ratio.^2));
% Plot Eratio versus Lod
semilogx(Lr_ratio,Eratio,'Linewidth',2)
%plot(Lr_ratio,Eratio,'Linewidth',2)
axis([0.01 50 0 1.1])
grid on
xlabel('L/r ratio')
ylabel('E ratio: finite to infinite charged line')

1
E ratio: finite to infinite charged line

0.8

0.6

0.4

0.2

0
-2 -1 0 1
10 10 10 10
L/r ratio

2-16
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

Пример 2-13. Да се пресмета векторот на електричното поле во точката P(0,0,0.2m) што го


создрава рамномерно волуменски наелектризиран волумен со форма на паралелопипед со
димензии 0≤x≤4cm, 0≤y≤5cm и -6≤z≤0cm. Густината на електрицитет е 40nC/cm3.

Со користење на принципот на суперпозиција за векторот на електричното поле се добива


изразот
G G
G 1 ρ dV R 1 ρijk ∆xi ∆y j ∆zk R
E= ∫ 2

4πε 0 V R R 4πε 0
∑∑∑
i j k R2 R
.

MATLAB Script ex2_13.m


% variables
% xstart,xstop limits on x for vol charge (cm)
% ystart,ystop
% zstart,zstop
% xt,yt,zt test point (m)
% rhov vol charge density, nC/cm^3
% Nx,Ny,Nz discretization points
% dx,dy,dz differential lengths
% dQ differential charge, nC
% eps0 free space permittivity (F/m)
% dEi differential field vector
% dEix,dEiy,dEiz x,y and z components of dEi
% dEjx,dEjy,dEjz of dEj
% dEkx,dEky,dEkz of dEk
% Etot total field vector, V/m
clc; clear
% initialize variables
xstart=0; xstop=0.04;
ystart=0; ystop=0.05;
zstart=-0.06; zstop=0;
xt=0; yt=0; zt=20;
rhov=40e-9/e+6;
Nx=10; Ny=10; Nz=10;
eps0=8.854e-12;
dx=(xstop-xstart)/Nx;
dy=(ystop-ystart)/Ny;
dz=(zstop-zstart)/Nz;
dQ=rhov*dx*dy*dz;
for k=1:Nz
for j=1:Ny
for i=1:Nx
xv=xstart+(i-0.5)*dx;
yv=ystart+(j-0.5)*dy;
zv=zstart+(k-0.5)*dz;
R=[xt-xv yt-yv zt-zv];
magR=norm(R);
uvR=unitvector(R);
dEi=(dQ/(4*pi*eps0*magR^2))*uvR;
dEix(i)=dEi(1);
dEiy(i)=dEi(2);
dEiz(i)=dEi(3);
end
dEjx(j)=sum(dEix);
dEjy(j)=sum(dEiy);
dEjz(j)=sum(dEiz);
end

2-17
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

dEkx(k)=sum(dEjx);
dEky(k)=sum(dEjy);
dEkz(k)=sum(dEjz);
end
Etotx=sum(dEkx);
Etoty=sum(dEky);
Etotz=sum(dEkz);
Etot=[Etotx Etoty Etotz]

Како резултат следува


Etot =
1.0e+005 *
-0.6998 -0.8710 7.9767

2.2.3 ПРЕСМЕТКА НА ВЕКТОР НА МАГНЕТНА


ИНДУКЦИЈА

Пример 2-14. Да се определи и графчки да се


G
прикаже векторoт на магнетна индукција B во
внатрешноста и надвор од праволинијски бакарен проводник (µr=1) со радиус а=1dm кој
води константна струја I=1A која е рамномерно распоредена по кружниот пресек на
проводникот.
G G
Според Амперовиот закон v∫ B ⋅ dl = µ ∑ I
c
0 интезнитетот на векторот на магнетна индукција

се добива според

µ0 Ir µ0 I
0 ≤ r ≤ a− B1 (r ) = и a+ ≤ r ≤ ∞ B2 (r ) =
2π a 2
2π r
MATLAB Script ex2_14.m
% magnetic field vector inside and outside of a line current
clear;clf
a=0.1; L=0.25;
mi0=4*pi*1e-7; I=1;
step=0.025;
[x,y]=meshgrid(-L: step: L, -L: step: L);
[Phi,R]=cart2pol(x,y);
NR=length(R);
NP=length(Phi);
for n=1:NR,
for m=1:NP,
Rn=R(m,n);
if Rn>a
B(m,n)=mi0*I./(2*pi*Rn); % outside
else
B(m,n)=mi0*I*Rn./(2*pi*a^2); % inside
end;
end;
end;
Bx=-B.*sin(Phi);
By=B.*cos(Phi);

2-18
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

angle = (0: 0.01: 1)'*2*pi;


u= a*cos(angle); v= a*sin(angle);
fill(u,v,'y')
hold on
fill(u/30,v/30,'k')
text(0.005,0.005,'I','fontsize',14)
text(-0.045,-0.0125,'conductor','fontsize',14)
text(0.125,0.0,'air','fontsize',14)
%
quiver(x,y,Bx,By)
title('Magnetix flux density B','fontsize',14)
xlabel('x')
ylabel('y')
После извршување на програмата се добива приказот

Magnetix flux density B


0.25

0.2

0.15

0.1

0.05

0 I air
conductor
y

-0.05

-0.1

-0.15

-0.2

-0.25
-0.3 -0.2 -0.1 0 0.1 0.2 0.3
x

Пример 2-15. Да се повтори претходната задача но резултатот да се прикаже со 2D график.


clear;
a=0.1; %radius of solid wire (m)
I=1; %current (A)
N=30; %number of data points to plot
rmax=0.25; %max radius for plot (m)
dr=rmax/N;
mi0=4*pi*1e-7;
%
for i=2:round(a/dr)
r(i)=i*dr;
B(i)=(mi0*I/(2*pi*a^2))*r(i);
end
for i=round(a/dr)+1:N
r(i)=i*dr;
B(i)=mi0*I/(2*pi*r(i));
end
B(1)=0;
r(1)=0;

2-19
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

plot(r,B,'-*r')
xlabel('rho(m)')
ylabel('B (T)')
grid on
-6
x 10
2

1.8

1.6

1.4

1.2
B (T)

0.8

0.6

0.4

0.2

0
0 0.05 0.1 0.15 0.2 0.25
rho(m)

Пример 2-16. Даден е соленоид со N=200 навивки низ кои тече струја I=1A. Должината на
соленоидот е L= 10cm а радиусот на јадрото е a=1cm. Да се нацрта споредбен график за
јачината на магнетното поле долж
N L
оската на соленоидот (од -2cm до -2cm
a L+2cm
L+2cm) определена според точен и
I
приближен израз.

0 z

Векторот на магнетната индукција што го создава соленоидна намотка која води струја I се
изведува врз основа на изразот за магнетната индукција по оската на една навивка низ која
тече струја I. Приближниот израз со кој се дефинира јaчината на магнетнот поле по оската е
NI NI z z−L
H= , додека точниот израз е H = [ − ].
L 2L z 2 + a2 ( z − L) 2 + a 2

MATLAB Script ex2_16.m


% Plot H vs length thru center of a solenoid
%
clear
% initialize variables
N=200; %number of turns
L=0.10; %height of solenoid
a=0.01; %radius of solenoid

2-20
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

I=1; %current
dz=0.001; %step change in z
z=-.02:dz:L+.02;
zz=.0:dz:L;
zcm=z.*100;
A1=(L-z)./sqrt((L-z).^2+a^2);
A2=z./sqrt(z.^2+a^2);
Atot=A1+A2;
H1=N*I.*Atot/(2*L);
H2=N*I/L;
% generate plot
plot(zcm,H1,'LineWidth',2)
hold on
plot(zz.*100,H2,'og')
axis([-2 12 0 H2*1.1])
xlabel('L(cm)'); ylabel('H (A/m)')
legend('Exact formulae','Apprximative formulae','location','South')
grid on

2200

2000

1800

1600

1400

1200
H (A/m)

1000

800

600

400

200 Exact formulae


Apprximative formulae
0
-2 0 2 4 6 8 10 12
L(cm)

Пример 2-17. Се посматраат два проводници кои водат константна струја I, едниот со
бесконечна должина а другиот со конечна должина 2h поставени долж оската z. Да се
определи на кое радијално растојание ρ=а од центарот на проводниците може да се смета
дека дека јачината на магнетното поле не зависи повеќе од должината на проводникот.

Со изведување според Biot-Savart – овиот закон


јачината на магнетното поле кога проводникот е со
бесконечна должина го добива изразот
I
H L∞ ( ρ ) = , додека за конечна должина јачината
2πρ
на магнетното поле се дефинира според

2-21
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

α
I I I h
H L (ρ ) =
4πρ − ∫α cos α dα = 2πρ sin α = 2πρ h2 + ρ 2
. Од тука може да се дефинира одност на

H L (a) h/a
јачините на магнетното поле според = .
H L∞ ( a ) (h / a)2 + 1

MATLAB Script ex2_17.m


%Consider the field for a finite line of length 2h
%oriented on z-axis with current I in +z direction.

%The field is to be found a distance a away from


%the current on the y axis (point (0,a,0)).

%We want to compare this field with that of an infinite


%length line of current.

%Plot Hf/Hi versus h/a. We expect that as h/a grows large,


%the line will appear more 'infinite' to an observation %point at
(0,a,0).

hova=0.01:.01:100;
HfovHi=hova./sqrt(1+(hova).^2);

semilogx(hova,HfovHi)
xlabel('h/a')
ylabel('Hf/Hi')
grid on

0.9

0.8

0.7

0.6
Hf/Hi

0.5

0.4

0.3

0.2

0.1

0
-2 -1 0 1 2
10 10 10 10 10
h/a

2-22
Решавање на проблеми од теороијата на полиња во MATLAB
_______________________________________________________________________________________

2-23

You might also like