Symbolic Analysis of Magnetic Field with Symbolic Analysis of Magnetic Field with the Biot-Savart-Laplace Method

Daniel Ioan and Irina Munteanu

9  Problems

9.2  Problem 2 (optional) - System of infinite, current-carrying filamentary conductors

Calculate and plot the lines of the magnetic field produced by two infinitely long parallel thin conductors, placed in air at the distance d and carrying the currents I1 and I2.

Solution

The magnetic field produced by an infinitely long thin conductor placed along the Oz axis has, according to the results of problem 1, the expression:

H = I (k x r) / (2 p r2)

and the vector potential is given by:

A = I k ln r / 2 p

in which r is the position vector in a plane perpendicular to the conductor (called the problem's plane, in which the study will be made).

The field produced by two or more conductors placed in points characterized by the position vectors rk is obtained by the superposition of the fields produced by each conductor separately:

H(r) = Sk Ik (k x (r-rk) / (2 p (r - rk)2)

A(r) = Sk Ik ln | r - rk| / (2 p).

> restart: with(linalg):with(plots):

Warning, new definition for norm

Warning, new definition for trace

> i:=vector([1,0]);j:=vector([0,1]); # unit vectors of the coordinate axes in the problem's plane


i : = [1,  0]


j : = [0,  1]

> r:= evalm(x*i + y*j); # position of the field point


r : = [x,  y]

> r0:= evalm(x0*i + y0*j); # position of the source point


r0 : = [x0,  y0]

> modR := norm(r-r0,2); # distance between source and field points


modR : =

 

|  x - x0  | 2 + |  y - y0  | 2
 

> kxr:=([-(r[2]-r0[2]), (r[1]-r0[1])]); # the vector product


kxr : = [ - y + y0,  x - x0]

> H0 := evalm(I0 * kxr/(2*Pi*modR)); # field produced by a conductor


H0 : =



1
2
  I0 ( - y + y0)
p 


|  x - x0  | 2 + |  y - y0  | 2
,   1
2
  I0 (x - x0)
p 


|  x - x0  | 2 + |  y - y0  | 2




> H:=unapply([H0[1],H0[2]], I0, x0, y0); # field of a conductor, function of current and of coordinates


H : = (I0,  x0,  y0) [ 1
2
  I0 ( - y + y0)
p 


|  x - x0  | 2 + |  y - y0  | 2
,   1
2
  I0 (x - x0)
p 


|  x - x0  | 2 + |  y - y0  | 2
]

> Htot := H(I1,x1,y1) + H(I2,x2,y2); # total field of two conductors


Htot : = [ 1
2
  I2 ( - y + y2)
p 


|  x - x2  | 2 + |  y - y2  | 2
+ 1
2
  I1 ( - y + y1)
p 


|  x - x1  | 2 + |  y - y1  | 2
,
1
2
  I2 (x - x2)
p 


|  x - x2  | 2 + |  y - y2  | 2
+ 1
2
  I1 (x - x1)
p 


|  x - x1  | 2 + |  y - y1  | 2
]           

> Htot3 := H(I1,x1,y1) + H(I2,x2,y2) + H(I3,x3,y3); # total field of three conductors


Htot3 : = [
1
2
  I3 ( - y + y3)
p 


|  x - x3  | 2 + |  y - y3  | 2
+ 1
2
  I2 ( - y + y2)
p 


|  x - x2  | 2 + |  y - y2  | 2
+ 1
2
  I1 ( - y + y1)
p 


|  x - x1  | 2 + |  y - y1  | 2
,
1
2
  I3 (x - x3)
p 


|  x - x3  | 2 + |  y - y3  | 2
+ 1
2
  I2 (x - x2)
p 


|  x - x2  | 2 + |  y - y2  | 2
+ 1
2
  I1 (x - x1)
p 


|  x - x1  | 2 + |  y - y1  | 2
]

> I1:=1: I2:=-1: x1:=0:y1:=0: x2:=1: y2:=0: x3:=0.5:y3:=0.5: # Numerical data

> with(plottools): pct1 := disk([x1, y1], 0.05, color=red): pct2 := disk([x2, y2], 0.05, color=red): pct3 := disk([x3, y3], 0.05, color=red):

> cpl:=fieldplot(Htot,x=-1..2,y=-1..1): display(pct1,pct2,cpl,scaling=constrained);

pictures/bsl_en11.gif
> I1:=1: I2:=1: I3:=-1: x1:=0:y1:=0: x2:=1: y2:=0: x3:=0.5:y3:=0.5:Ht:

> cpl:=fieldplot(Htot3,x=-1..2,y=-1..1): display(pct1,pct2,pct3,cpl,scaling=constrained);

pictures/bsl_en12.gif
> A:=int(Htot3[1],y): cpl:=contourplot(A, x=-1..2,y=-1..1,color=blue):

> display(pct1,pct2,pct3,cpl,scaling=constraine d);

pictures/bsl_en13.gif
> #plot3d(A,x=-0.5..1.5,y=-0.5..0.6,color=red,g rid=[21,12]);

9.2.1  Animations

> I1:=sin(t): I2:=sin(t-2*Pi/3): I3:=sin(t+2*Pi/3):

> x1:=0:y1:=0: x2:=1: y2:=0: x3:=0.5:y3:=0.5*sqrt(3):A:=int(Htot3[1],y):

> len:=16; step := 2*Pi/len; # Number of frames and step for animation


len : = 16


step : = 1
8
 p

> dd:= [seq(i, i=1..len)]; # Sequence to animate


dd : = [1,  2,  3,  4,  5,  6,  7,  8,  9,  10,  11,  12,  13,  14,  15,  16]

> plotsetup(plotoptions=`color,portrait`):

> for i from 1 to len do temp := (i-1)*step; f1:= subs(t=temp, A); temp := contourplot(f1, x=-1..2,y=-1..1,color=blue,grid=[15,15]); dd[i] := display(pct1,pct2,pct3,temp); od:

> display(seq(dd[i],i=1..len),insequence=true,s caling=constrained); # Rotating field lines of a three-phase line

pictures/anima1tex.gif

Figure 1: Animation - rotating field lines of a three-phase line

Interchange the expressions of I2 and I3 and observe the result!

> for i from 1 to len do temp := (i-1)*step; f1:= subs(t=temp, map(subs,Htot3)); temp := fieldplot(f1,x=-1..2,y=-1..1): dd[i] := display(pct1,pct2,pct3,temp); od:

> display(seq(dd[i],i=1..len),insequence=true,s caling=constrained); # Rotating field vectors of a three-phase line

pictures/animb1tex.gif

Figure 1: Animation - rotating field vectors of a three-phase line


File translated fromTEX by
TTH, version 2.62.
On 16 Feb 2000, 02:04.