PK
IUf$ $ , Elements of Electromagnetics/chapter_2.ipynb{
"metadata": {
"name": "",
"signature": "sha256:d78c85d754b20d2817dcaff01d1e4d9adbe09676da8e1b1ab97dcc0ae047a88a"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Chapter 2: Coordinate Systems and Transformation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 2.1, Page number: 36"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"x=-2\n",
"y=6\n",
"z=3 \n",
"\n",
"#Calculations\n",
"\n",
"r=scipy.sqrt(x**2+y**2)\n",
"phi=scipy.arctan(-y/x) #phi in radians in 1st quadrant\n",
"phid=180-(phi*180/scipy.pi) #phi in degrees in second quadrant\n",
"phic=scipy.pi*phid/180.0 #phi in radians in second quadrant\n",
"R=scipy.sqrt(x**2+y**2+z**2) \n",
"theta=scipy.arctan(r/z) \n",
"\n",
" #P in cylindrical coordinates\n",
" \n",
"Pcyl=array([round(r,2),round(phid,2),z]) \n",
"\n",
" #P in spherical coordinates\n",
" \n",
"Psph=array([round(R,2),round(theta*180/scipy.pi,2),\n",
" round(phid,2)]) \n",
"\n",
" #Vector A in cylindrical coordinate system\n",
"\n",
"Xc=r*scipy.cos(phic)\n",
"Yc=r*scipy.sin(phic)\n",
"Zc=z \n",
"Ar=Yc*scipy.cos(phic)+(Xc+Zc)*scipy.sin(phic)\n",
"Aphi=-Yc*scipy.sin(phic)+(Xc+Zc)*scipy.cos(phic)\n",
"Az=0\n",
"Acyl=array([round(Ar,4),round(Aphi,3),Az])\n",
"\n",
" #Vector A in spherical coordinate system\n",
"\n",
"Xs=R*scipy.cos(phic)*scipy.sin(theta)\n",
"Ys=R*scipy.sin(phic)*scipy.sin(theta)\n",
"Zs=R*scipy.cos(theta)\n",
"AR=Ys*scipy.sin(theta)*scipy.cos(phic)+(Xs+Zs)*scipy.sin(theta)*scipy.sin(phic) \n",
"Ath=Ys*scipy.cos(theta)*scipy.cos(phic)+(Xs+Zs)*scipy.cos(theta)*scipy.sin(phic) \n",
"Aph=-Ys*scipy.sin(phic)+(Xs+Zs)*scipy.cos(phic)\n",
"Asph=array([round(AR,4),round(Ath,4),round(Aph,3)])\n",
"\n",
"#Results\n",
"\n",
"print 'P in cylindrical coordinates =',Pcyl\n",
"print 'P in spherical coordinates =',Psph\n",
"print 'A in cylindrical coordinates =',Acyl\n",
"print 'A in spherical coordinates =',Asph"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"P in cylindrical coordinates = [ 6.32 108.43 3. ]\n",
"P in spherical coordinates = [ 7. 64.62 108.43]\n",
"A in cylindrical coordinates = [-0.9487 -6.008 0. ]\n",
"A in spherical coordinates = [-0.8571 -0.4066 -6.008 ]\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 2.2, Page number: 39"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
" \n",
"#Variable Declaration\n",
"\n",
"x=-3\n",
"y=4\n",
"z=0\n",
"p=5\n",
"phi=scipy.pi/2 \n",
"Zc=-2\n",
"\n",
"#Calculations\n",
"\n",
" #B in cartesian coordinates\n",
"\n",
"R=scipy.sqrt(x**2+y**2+z**2)\n",
"r=scipy.sqrt(x**2+y**2) \n",
"P=scipy.arcsin(r/R) #in radians\n",
"Q=scipy.arccos(x/r) #in radians \n",
"f=10/R \n",
"Bx=f*scipy.sin(P)*scipy.cos(Q)+R*(scipy.cos(P))**2*scipy.cos(Q)-scipy.sin(Q) \n",
"By=f*scipy.sin(P)*scipy.sin(Q)+R*(scipy.cos(P))**2*scipy.sin(Q)+scipy.cos(Q) \n",
"Bz=f*scipy.cos(P)-R*scipy.cos(P)*scipy.sin(P) \n",
"Bcart=array([round(Bx,0),round(By,0),round(-Bz,0)])\n",
"\n",
" #B in cylindrical coordinates\n",
" \n",
"Rc=sqrt(p**2+Zc**2) \n",
"Pc=scipy.arccos(Zc/Rc) #in radians\n",
"Br=(10/Rc)*scipy.sin(Pc)+Rc*(scipy.cos(Pc))**2 \n",
"Bp=1 \n",
"Bzc=(10/Rc)*scipy.cos(Pc)-Rc*scipy.cos(Pc)*scipy.sin(Pc) \n",
"Bcyl=array([round(Br,3),Bp,round(Bzc,3)])\n",
"\n",
"#Results\n",
"\n",
"print 'B(-3,4,0) in cartesian coordinates is',Bcart\n",
"print 'B(5,pi/2,-2) in cylindrical coordinates is',Bcyl"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"B(-3,4,0) in cartesian coordinates is [-2. 1. 0.]\n",
"B(5,pi/2,-2) in cylindrical coordinates is [ 2.467 1. 1.167]\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 2.3, Page number: 44"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"E=array([-5,10,3]) #in cylindrical coordinates\n",
"F=array([1,2,-6]) #in cylindrical coordinates\n",
"P=array([5,scipy.pi/2,3]) #in cylindrical coordinates\n",
"\n",
"#Calculations\n",
"\n",
"exf=cross(E,F)\n",
"ansa=scipy.sqrt(dot(exf,exf)) #|EXF|\n",
"ay=array([round(scipy.sin(scipy.pi/2),0),\n",
" round(scipy.cos(scipy.pi/2),0),0])\n",
"ansb=dot(E,ay)*ay\n",
"modE=scipy.sqrt(dot(E,E))\n",
"az=array([0,0,1])\n",
"thetaEz=(180/scipy.pi)*arccos(dot(E,az)/modE) #in degrees\n",
"ansc=90-thetaEz #in degrees\n",
"\n",
"#Results\n",
"\n",
"print '|EXF| =',round(ansa,2)\n",
"print 'The vector component of E at P parallel to the line x=2,z=3 =',ansb,','\n",
"print 'in spherical coordinates'\n",
"print 'The angle E makes with the surface z = 3 at P =',round(ansc,2),'degrees'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"|EXF| = 74.06\n",
"The vector component of E at P parallel to the line x=2,z=3 = [-5. -0. -0.] ,\n",
"in spherical coordinates\n",
"The angle E makes with the surface z = 3 at P = 15.02 degrees\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 2.4, Page number: 45"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"aR=array([1,0,0]) #Unit vector along radial direction\n",
"ath=array([0,1,0]) #Unit vector along theta direction\n",
"aph=array([0,0,1]) #Unit vector along phi direction\n",
"P=array([10,scipy.pi*150/180,scipy.pi*330/180])\n",
"\n",
"#Calculations\n",
"\n",
"r=dot(P,aR)\n",
"q=dot(P,aph)\n",
"p=dot(P,ath)\n",
"R=r*scipy.sin(q)\n",
"Ph=-scipy.sin(p)*scipy.cos(q)/r\n",
"Q=r*r\n",
"D=array([R,Ph,Q]) #D at P(10,150\u00b0,330\u00b0)\n",
"rDr=round(dot(aR,D),0) #radial component of D\n",
"rDth=round(dot(-ath,D),3) #theta component of D\n",
"rDph=round(dot(aph,D),0) #phi component of D\n",
"\n",
"Dn=array([r*scipy.sin(q),0,0]) #Component of D normal to surface r=10\n",
"Dt=D-Dn #Component of D tangential to surface r=10\n",
"Dtr=round(dot(aR,Dt),0) #radial component of Dt\n",
"Dtth=round(dot(-ath,Dt),3) #theta component of Dt\n",
"Dtph=round(dot(aph,Dt),0) #phi component of Dt\n",
"rDt=array([Dtr,Dtth,Dtph])\n",
"\n",
" #Unit vector normal to D and tangential to cone theta=45 degrees\n",
"\n",
"U=cross(D,ath)\n",
"u=U/scipy.sqrt(dot(U,U)) \n",
"ru=array([round(dot(aR,u),4),round(dot(ath,u),4),round(dot(aph,u),4)])\n",
"\n",
"#Results\n",
"\n",
"print 'D at P(10,150\u00b0,330\u00b0) = [',rDr,' ',rDth,' ',rDph,']'\n",
"print 'The component of D tangential to the spherical surface r = 10 at P ='\n",
"print '[',Dtr,' ',Dtth,' ',Dtph,']'\n",
"print 'A unit vector at P perpendicular to D and tangential to cone 0 = 150\u00b0 ='\n",
"print ru"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"D at P(10,150\u00b0,330\u00b0) = [ -5.0 0.043 100.0 ]\n",
"The component of D tangential to the spherical surface r = 10 at P =\n",
"[ 0.0 0.043 100.0 ]\n",
"A unit vector at P perpendicular to D and tangential to cone 0 = 150\u00b0 =\n",
"[-0.9988 0. -0.0499]\n"
]
}
],
"prompt_number": 10
}
],
"metadata": {}
}
]
}PK IV$- $- , Elements of Electromagnetics/chapter_1.ipynb{
"metadata": {
"name": "",
"signature": "sha256:eb36bd65b4a83ec123fa29550d3c2d667495d3d3383848faa667d8b6a5548ac3"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 1: Vector Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.1, Page number: 8"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"A=array([10,-4,6]) \n",
"B=array([2,1,0])\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
"Ay=dot(A,ay) #Component of A along y direction\n",
"l=scipy.sqrt(dot(3*A-B,3*A-B)) #Magnitude of the vector 3A-B\n",
"\n",
" #Defining the x,y and z components of the unit vector along A+2B\n",
" \n",
"ux=round(dot(A+2*B,ax)/scipy.sqrt(dot(A+2*B,A+2*B)),4)\n",
"uy=round(dot(A+2*B,ay)/scipy.sqrt(dot(A+2*B,A+2*B)),4)\n",
"uz=round(dot(A+2*B,az)/scipy.sqrt(dot(A+2*B,A+2*B)),4)\n",
"\n",
"u=array([ux,uy,uz])\n",
"\n",
"#Results\n",
"\n",
"print 'The component of A along y direction is',Ay\n",
"print 'Magnitude of 3A-B =',round(l,2)\n",
"print 'Unit vector along A+2B is',u"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The component of A along y direction is -4\n",
"Magnitude of 3A-B = 35.74\n",
"Unit vector along A+2B is [ 0.9113 -0.1302 0.3906]\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.2, Page number: 9"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"P=array([0,2,4]) \n",
"Q=array([-3,1,5])\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"origin=array([0,0,0]) #Defining the origin\n",
"\n",
"#Calculations\n",
"\n",
"PosP=P-origin #The position vector P\n",
"Dpq=Q-P #The distance vector from P to Q\n",
"l=scipy.sqrt(dot(Dpq,Dpq)) #Magnitude of the distance vector from P to Q\n",
"\n",
" #Defining the x,y and z components of the unit vector along Dpq\n",
" \n",
"ux=round(dot(Dpq,ax)/l,4)\n",
"uy=round(dot(Dpq,ay)/l,4)\n",
"uz=round(dot(Dpq,az)/l,4)\n",
"\n",
"vect=array([ux*10,uy*10,uz*10]) #Vector parallel to PQ with magntude of 10\n",
"\n",
"#Results\n",
"\n",
"print 'The position vector P is',PosP\n",
"print 'The distance vector from P to Q is',Dpq\n",
"print 'The distance between P and Q is',round(l,3)\n",
"print 'Vector parallel to PQ with magntude of 10 is',vect"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The position vector P is [0 2 4]\n",
"The distance vector from P to Q is [-3 -1 1]\n",
"The distance between P and Q is 3.317\n",
"Vector parallel to PQ with magntude of 10 is [-9.045 -3.015 3.015]\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.3, Page number: 10"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"vriver=10 #Speed of river in km/hr\n",
"vman=2 #Speed of man relative to boat in km/hr\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
" #Velocity of boat\n",
"\n",
"Vboat=vriver*(scipy.cos(scipy.pi/4)*ax- \n",
" scipy.sin(scipy.pi/4)*ay) \n",
" \n",
" #Relative velocity of man with respect to boat\n",
"\n",
"Vrelman=vman*(-scipy.cos(scipy.pi/4)*ax- \n",
" scipy.sin(scipy.pi/4)*ay) \n",
" \n",
" #Absolute velocity of man\n",
" \n",
"Vabs=Vboat+Vrelman\n",
" \n",
"mag=scipy.sqrt(dot(Vabs,Vabs)) #Magnitude of the velocity of man\n",
"Vabsx=dot(Vabs,ax) #X component of absolute velocity\n",
"Vabsy=dot(Vabs,ay) #Y component of absolute velocity\n",
"angle=scipy.arctan(Vabsy/Vabsx)*180/scipy.pi #Angle made with east in degrees\n",
"\n",
"#Result\n",
"\n",
"print 'The velocity of the man is',round(mag,1),'km/hr at an angle of'\n",
"print -round(angle,1),'degrees south of east'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The velocity of the man is 10.2 km/hr at an angle of\n",
"56.3 degrees south of east\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.4, Page number: 17"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"A=array([3,4,1])\n",
"B=array([0,2,-5])\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
"magA=scipy.sqrt(dot(A,A)) #Magnitude of A\n",
"magB=scipy.sqrt(dot(B,B)) #Magnitude of B\n",
"angle=scipy.arccos(dot(A,B)/(magA*magB)) #Angle between A and B in radians\n",
"angled=angle*180/scipy.pi #Angle between A and B in degrees\n",
"\n",
"\n",
"#Result\n",
"\n",
"print 'The angle between A and B =',round(angled,2),'degrees'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The angle between A and B = 83.73 degrees\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.5, Page number: 17"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"P=array([2,0,-1])\n",
"Q=array([2,-1,2])\n",
"R=array([2,-3,1])\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
"ansa=cross((P+Q),(P-Q))\n",
"ansb=dot(Q,cross(R,P))\n",
"ansc=dot(P,cross(Q,R))\n",
"lqxr=scipy.sqrt(dot(cross(Q,R),cross(Q,R))) #Magnitude of QXR\n",
"lq=scipy.sqrt(dot(Q,Q)) #Magnitude of Q\n",
"lr=scipy.sqrt(dot(R,R)) #Magnitude of R\n",
"ansd=lqxr/(lq*lr)\n",
"anse=cross(P,cross(Q,R))\n",
"\n",
"#Finding unit vector perpendicular to Q and R\n",
"\n",
"ux=dot(cross(Q,R),ax)/lqxr #X component of the unit vector\n",
"uy=dot(cross(Q,R),ay)/lqxr #Y component of the unit vector\n",
"uz=dot(cross(Q,R),az)/lqxr #Z component of the unit vector\n",
"\n",
"ansf=array([round(ux,3),round(uy,3),round(uz,3)])\n",
"\n",
"ansg=round((float(dot(P,Q))/dot(Q,Q)),4)*Q\n",
"\n",
"\n",
"#Results\n",
"\n",
"print '(P+Q)X(P-Q) =',ansa\n",
"print 'Q.(R X P) =',ansb\n",
"print 'P.(Q X R) =',ansc\n",
"print 'Sin(theta_QR) =',round(ansd,4)\n",
"print 'P X (Q X R) =',anse\n",
"print 'A unit vector perpendicular to both Q and R =',ansf\n",
"print 'The component of P along Q =',ansg\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(P+Q)X(P-Q) = [ 2 12 4]\n",
"Q.(R X P) = 14\n",
"P.(Q X R) = 14\n",
"Sin(theta_QR) = 0.5976\n",
"P X (Q X R) = [2 3 4]\n",
"A unit vector perpendicular to both Q and R = [ 0.745 0.298 -0.596]\n",
"The component of P along Q = [ 0.4444 -0.2222 0.4444]\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 1.7, Page number: 21"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"P1=array([5,2,-4])\n",
"P2=array([1,1,2])\n",
"P3=array([-3,0,8])\n",
"P4=array([3,-1,0])\n",
"\n",
"#Calculations\n",
"\n",
"R12=P2-P1; #Distance vector from P1 to P2\n",
"R13=P3-P1; #Distance vector from P1 to P3\n",
"R14=P4-P1; #Distance vector from P1 to P4\n",
"s=cross(R12,R13)\n",
"x=cross(R14,R12)\n",
"d=scipy.sqrt(dot(x,x))/scipy.sqrt(dot(R12,R12)) #Distance from line to P4 \n",
"\n",
"#Results\n",
"\n",
"print 'The cross product of the distance vectors R12 and R14 =',s\n",
"print 'So they are along same direction and hence P1, P2 and P3 are collinear.'\n",
"print 'The shortest distance from the line to point P4 =',round(d,3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The cross product of the distance vectors R12 and R14 = [0 0 0]\n",
"So they are along same direction and hence P1, P2 and P3 are collinear.\n",
"The shortest distance from the line to point P4 = 2.426\n"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}PK IM9* * , Elements of Electromagnetics/chapter_3.ipynb{
"metadata": {
"name": "",
"signature": "sha256:02fdf3d71909ffefa3365717544dbd108f534a28cb15d60e71866e85ef9ac76f"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 3: Vector Calculus"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 3.1, Page number: 58"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"A=array([5,0,0])\n",
"B=array([0,5,0])\n",
"C=array([0,5,10])\n",
"D=array([5,0,10])\n",
"\n",
"#Calculations\n",
"\n",
" #A,B,C,D in cylindrical coordinates\n",
" \n",
"A=array([5,0,0])\n",
"B=array([5,scipy.pi,0])\n",
"C=array([5,scipy.pi,10])\n",
"D=array([5,0,10])\n",
"\n",
"p=5\n",
"\n",
"def BC(z): \n",
" return 1\n",
"ansa, erra = scipy.integrate.quad(BC, 0, 10)\n",
" \n",
"def CD(phi): \n",
" return p\n",
"ansb, errb = scipy.integrate.quad(CD, 0, scipy.pi/2)\n",
"ansbb=ansb/scipy.pi #answer in multiples of pi\n",
"\n",
"def ABCD(phi,z): \n",
" return p\n",
"ansc, errc = scipy.integrate.dblquad(lambda z , phi: ABCD(phi,z), \n",
" 0, scipy.pi/2, lambda z: 0, lambda z: 10) \n",
"anscc=ansc/scipy.pi #answer in multiples of pi\n",
" \n",
"def ABO(phi,rho): \n",
" return rho\n",
"ansd, errd = scipy.integrate.dblquad(lambda rho , phi: ABO(phi,rho), \n",
" 0, scipy.pi/2, lambda rho: 0, lambda rho: 5)\n",
"ansdd=ansd/scipy.pi #answer in multiples of pi\n",
"\n",
"def AOFD(rho,z): \n",
" return 1\n",
"anse, erre = scipy.integrate.dblquad(lambda z , rho: AOFD(rho,z), \n",
" 0, 10, lambda z: 0, lambda z: 5)\n",
" \n",
"def ABDCFO(z,phi,rho):\n",
" return rho\n",
"ansf, errf=scipy.integrate.tplquad(ABDCFO,0,5,lambda rho:0,\n",
" lambda rho:scipy.pi/2,lambda rho,phi:0,lambda rho,phi:10)\n",
"ansff=ansf/scipy.pi #answer in multiples of pi\n",
"\n",
"#Results\n",
"\n",
"print 'The distance BC =',ansa\n",
"print 'The distance CD =',ansbb,'pi'\n",
"print 'The surface area ABCD =',anscc,'pi'\n",
"print 'The surface area ABO =',ansdd,'pi'\n",
"print 'The surface area AOFD =',anse\n",
"print 'The volume ABDCFO =',ansff,'pi'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The distance BC = 10.0\n",
"The distance CD = 2.5 pi\n",
"The surface area ABCD = 25.0 pi\n",
"The surface area ABO = 6.25 pi\n",
"The surface area AOFD = 50.0\n",
"The volume ABDCFO = 62.5 pi\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 3.2, Page number: 61"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"import scipy.integrate\n",
"from fractions import Fraction\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
"def C1(x): \n",
" return x**2\n",
"seg1, err1 = scipy.integrate.quad(C1, 1, 0) #segment 1\n",
"Seg1=Fraction(seg1).limit_denominator(100) #converting to fraction\n",
"\n",
"def C2(y): \n",
" return 0\n",
"seg2, err2 = scipy.integrate.quad(C2, 0, 1) #segment 2\n",
"\n",
"def C3(x): \n",
" return (x**2-1)\n",
"seg3, err3 = scipy.integrate.quad(C3, 0, 1) #segment 3\n",
"Seg3=Fraction(seg3).limit_denominator(100) #converting to fraction\n",
"\n",
"def C4(y): \n",
" return (-y-y**2)\n",
"seg4, err4 = scipy.integrate.quad(C4, 1, 0) #segment 4\n",
"Seg4=Fraction(seg4).limit_denominator(100) #converting to fraction\n",
"\n",
"seg=Seg1+seg2+Seg3+Seg4 #total circulation around path\n",
"Seg=Fraction(seg).limit_denominator(100) #converting to fraction\n",
"\n",
"#Results\n",
"\n",
"print 'F along segment 1 is',Seg1\n",
"print 'F along segment 2 is',seg2\n",
"print 'F along segment 3 is',Seg3\n",
"print 'F along segment 4 is',Seg4\n",
"print 'Circulation of F around the path is',Seg"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"F along segment 1 is -1/3\n",
"F along segment 2 is 0.0\n",
"F along segment 3 is -2/3\n",
"F along segment 4 is 5/6\n",
"Circulation of F around the path is -1/6\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 3.4, Page number: 68"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from fractions import Fraction\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"Al=array([3,4,12])\n",
"x=2\n",
"y=-1\n",
"z=0\n",
"\n",
"#Calculations\n",
"\n",
"gradW=(2*x*y**2+y*z)*ax+(2*x**2*y+x*z)*ay+(x*y)*az\n",
"gradWl=Fraction(dot(gradW,Al)/scipy.sqrt(dot(Al,Al))).limit_denominator(1000)\n",
"\n",
"#Result\n",
"\n",
"print 'dW/dl =',gradWl\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"dW/dl = -44/13\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 3.7, Page number: 74"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"ap=array([1,0,0]) #Unit vector along radial direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"#Calculations\n",
"\n",
"def psi1(phi,p): \n",
" return 10*scipy.e**(-2)*p\n",
"psit, errt = scipy.integrate.dblquad(lambda p , phi: psi1(phi,p), #flux through top\n",
" 0, 2*scipy.pi, lambda p: 0, lambda p: 1) \n",
"\n",
"def psi2(phi,p): \n",
" return -10*p\n",
"psib, errb = scipy.integrate.dblquad(lambda p , phi: psi2(phi,p), #flux through bottom\n",
" 0, 2*scipy.pi, lambda p: 0, lambda p: 1) \n",
"\n",
"def psi3(phi,z): \n",
" return 10*scipy.exp(-2*z)\n",
"psis, errs = scipy.integrate.dblquad(lambda z , phi: psi3(phi,z), #flux through side\n",
" 0, scipy.pi*2, lambda z: 0, lambda z: 1) \n",
"\n",
"psi=psit+psib+psis #total flux through cylinder\n",
"\n",
"#Results\n",
"\n",
"print 'The total flux through the cylinder is',psi\n",
"print 'The total flux through cylinder using divergence theorem is also 0'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The total flux through the cylinder is 0.0\n",
"The total flux through cylinder using divergence theorem is also 0\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 3.9, Page number: 81"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"ap=array([1,0,0]) #Unit vector along radial direction\n",
"ath=array([0,1,0]) #Unit vector along theta direction\n",
"aph=array([0,0,1]) #Unit vector along phi direction\n",
"\n",
"#Calculations\n",
"\n",
" #segment 1\n",
"def ab(phi): \n",
" return 2*scipy.sin(phi)\n",
"seg1,err1 = scipy.integrate.quad(ab,scipy.pi*60/180,scipy.pi*30/180) \n",
"\n",
" #segment 2\n",
"def bc(p): \n",
" return p*scipy.cos(scipy.pi*30/180)\n",
"seg2,err2 = scipy.integrate.quad(bc,2,5) \n",
"\n",
" #segment 3\n",
"def cd(phi): \n",
" return 5*scipy.sin(phi)\n",
"seg3,err3 = scipy.integrate.quad(cd,-scipy.pi*30/180,scipy.pi*60/180)\n",
"\n",
" #segment 4\n",
"def da(p): \n",
" return p*scipy.cos(scipy.pi*60/180)\n",
"seg4,err4 = scipy.integrate.quad(da,5,2)\n",
"\n",
"I1=seg1+seg2+seg3+seg4\n",
"\n",
" #using stoke's theorem\n",
"\n",
"def curlA(phi,p): \n",
" return ((1+p)*scipy.sin(phi))\n",
"I2, err = scipy.integrate.dblquad(lambda p , phi: curlA(phi,p), \n",
" scipy.pi*30/180, scipy.pi*60/180, lambda p: 2, lambda p: 5)\n",
"\n",
"#Results\n",
"\n",
"print 'The integral calculated segment wise =',round(I1,3)\n",
"print 'The integral calculated using Stokes Theorem =',round(I2,3)\n",
"print 'Since I1 = I2, Stokes theorem is verified'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The integral calculated segment wise = 4.941\n",
"The integral calculated using Stokes Theorem = 4.941\n",
"Since I1 = I2, Stokes theorem is verified\n"
]
}
],
"prompt_number": 3
}
],
"metadata": {}
}
]
}PK
I7֯M M , Elements of Electromagnetics/chapter_4.ipynb{
"metadata": {
"name": "",
"signature": "sha256:891c986a46f113e35878dc6d6a0b8d702286ad7b4ea91bae03f716286f9bdeaa"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 4: Electrostatic Fields"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.1, Page number: 107"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"Q1=1*10**-3 #charge 1 at (-1,-1,4) in C\n",
"Q2=-2*10**-3 #charge 2 at (3,2,-1) in C\n",
"Q=10*10**-9 #charge 3 at (0,3,1) in C\n",
"P1=array([0,3,1])-array([3,2,-1]) #distance vector from charge 3 to 1\n",
"P2=array([0,3,1])-array([-1,-1,4]) #distance vector from charge 3 to 2\n",
"e=10**-9/(36*scipy.pi) #permittivity in Farad/m \n",
"\n",
"#Calculations\n",
"\n",
"modP1=scipy.sqrt(dot(P1,P1))\n",
"modP2=scipy.sqrt(dot(P2,P2))\n",
"F1=(Q*Q1)*P1*10**3/(4*scipy.pi*e*modP1**3) #force on charge 3 by 1 in mN\n",
"F2=(Q*Q2)*P2*10**3/(4*scipy.pi*e*modP2**3) #force on charge 3 by 2 in mN\n",
"\n",
" #Total force on charge 3\n",
" \n",
"Fx=round(dot(F1+F2,ax),3)\n",
"Fy=round(dot(F1+F2,ay),3)\n",
"Fz=round(dot(F1+F2,az),3)\n",
"F=array([Fx,Fy,Fz]) #Total force in mN\n",
"E=(10**-6)*(F/Q) #Electric field in kV/m\n",
"\n",
"#Results \n",
"\n",
"print 'Total force on charge at (0,3,1) =',F,'in mN'\n",
"print 'Electric field at (0,3,1) =',E,'kV/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Total force on charge at (0,3,1) = [-6.512 -3.713 7.509] in mN\n",
"Electric field at (0,3,1) = [-651.2 -371.3 750.9] kV/m\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 4.3, Page number: 109"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"#Variable Declaration\n",
"\n",
"E=500*10**3 #electric field in V/m\n",
"Qm=9*10**-6 #Q/m in C/kg\n",
"y=0.8 #distance fallen in m\n",
"g=9.8 #acceleration due to gravity in m/s^2\n",
"\n",
"#Calculations\n",
"\n",
"t=scipy.sqrt(2*y/g) #time taken to fall in seconds\n",
"x=Qm*E*t**2/2 #half the separation between particles in m\n",
"sep=2*x #separation between particles in m\n",
"\n",
"#Result\n",
"\n",
"print 'The separation between particles is',round(sep*100,2),'cm'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The separation between particles is 73.47 cm\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 4.5, Page number: 120"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"q=-1 #charge in mC\n",
"\n",
"#Calculations\n",
"\n",
"def charge(x,y): \n",
" return x*y*(x**2+y**2+25)**(1.5)\n",
"Q, errq = scipy.integrate.dblquad(lambda y , x: charge(x,y), #total charge in nC\n",
" 0, 1, lambda y: 0, lambda y: 1) \n",
"\n",
"d=(4*scipy.pi*Eo*(x**2+y**2+25)**(1.5))\n",
"\n",
"def elecx(x,y): \n",
" return 10**-9*x*y*(x**2+y**2+25)**(1.5)*(-x)/d #x component of electric field\n",
"Ex, errx = scipy.integrate.dblquad(lambda y , x: elecx(x,y), \n",
" 0, 1, lambda y: 0, lambda y: 1) \n",
"\n",
"def elecy(x,y): \n",
" return 10**-9*x*y*(x**2+y**2+25)**(1.5)*(-y)/d #y component of electric field\n",
"Ey, erry = scipy.integrate.dblquad(lambda y , x: elecy(x,y), \n",
" 0, 1, lambda y: 0, lambda y: 1) \n",
"\n",
"def elecz(x,y): \n",
" return 10**-9*x*y*(5)/(4*scipy.pi*Eo) #z component of electric field\n",
"Ez, errz = scipy.integrate.dblquad(lambda y , x: elecz(x,y), \n",
" 0, 1, lambda y: 0, lambda y: 1) \n",
"\n",
"E=array([round(Ex,1),round(Ey,1),round(Ez,2)]) #electric field in V/m\n",
"\n",
"F=q*E #force in mN \n",
"\n",
"#Results\n",
"\n",
"print 'Total charge =',round(Q,2),'nC'\n",
"print 'Electric field at (0,0,5) =',E,'V/m'\n",
"print 'Force experienced by -1mC =',F,'mN'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Total charge = 33.15 nC\n",
"Electric field at (0,0,5) = [ -1.5 -1.5 11.25] V/m\n",
"Force experienced by -1mC = [ 1.5 1.5 -11.25] mN\n"
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.6, Page number: 121"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"ps1=10*10**-9 #Surface charge density of plane 1\n",
"ps2=15*10**-9 #Surface charge density of plane 2\n",
"pl=10*scipy.pi*10**-9 #charge density of line\n",
"e=(10**-9)/(36*scipy.pi) #permittivity of free space in Farad/m\n",
"\n",
"#Calculations\n",
"\n",
"E1=(ps1/(2*e))*-ax/scipy.pi #field due to plane 1 in multiples of pi in V/m\n",
"E2=(ps2/(2*e))*ay/scipy.pi #field due to plane 2 in multiples of pi in V/m\n",
"\n",
" #field due to line charge in multiples of pi in V/m\n",
" \n",
"a=(ax-3*az) \n",
"moda=scipy.sqrt(dot((ax-3*az),(ax-3*az)))\n",
"e3=(pl/(2*scipy.pi*e*moda**2))*a\n",
"E3=array([dot(e3,ax)/scipy.pi,0,dot(e3,az)/scipy.pi])\n",
"\n",
" #total field in multiples of pi in V/m\n",
" \n",
"E=E1+E2+E3 \n",
"\n",
"#Result\n",
"\n",
"print 'The total electric field at (1,1,-1) =',E,'Pi V/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The total electric field at (1,1,-1) = [-162. 270. -54.] Pi V/m\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.7, Page number: 123"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"Q=-5*scipy.pi*10**-3 #charge at (4,0,0) in C\n",
"pl=3*scipy.pi*10**-3 #charge density of line charge in C/m\n",
"r=array([4,0,3]) #point where D is to be found \n",
"rp=array([4,0,0]) #position of point charge\n",
"\n",
"#Calculations \n",
"\n",
"R=r-rp \n",
"modR=scipy.sqrt(dot(R,R)) \n",
"Dq=(Q*R)/(4*scipy.pi*modR**3) #flux density due to point charge in C/m^2\n",
"p=scipy.sqrt(dot(r,r))\n",
"ap=r/p \n",
"Dl=(pl/(2*scipy.pi*p))*ap #flux density due to line charge in C/m^2\n",
"D=(Dq+Dl)*10**6 #total flux density in micro C/m^2\n",
"Dz=round(dot(D,az),0)\n",
"Dx=round(dot(D,ax),0)\n",
"Dy=round(dot(D,ay),0)\n",
"Dround=array([Dx,Dy,Dz]) #value of D rounded to 0 decimal points\n",
"\n",
"#Result\n",
"\n",
"print 'D at (4,0,0) due to point charge and line charge =',Dround,'micro C/m^2'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"D at (4,0,0) due to point charge and line charge = [ 240. 0. 41.] micro C/m^2\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.8, Page number: 130"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"import scipy.integrate\n",
"from fractions import Fraction\n",
"\n",
"#Variable Declaration\n",
"\n",
"ap=array([1,0,0]) #Unit vector along rho direction\n",
"aph=array([0,1,0]) #Unit vector along phi direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"point=array([1,scipy.pi/4,3])\n",
"p1=0\n",
"p2=1\n",
"ph1=0\n",
"ph2=2*scipy.pi\n",
"\n",
"#Calculations\n",
"\n",
"pointp=dot(point,ap)\n",
"pointph=dot(point,aph)\n",
"pv=pointp*scipy.cos(pointph)**2 #charge density at (1,pi/4,3) in C/m^3\n",
"\n",
"def ctop(phi,p): \n",
" return 2*p**2*(scipy.cos(phi)**2)\n",
"psya, erra = scipy.integrate.dblquad(lambda p , phi: ctop(phi,p), \n",
" ph1, ph2, lambda p: p1, lambda p: p2)\n",
"\n",
"def cbot(phi,p): \n",
" return 2*p**2*(scipy.cos(phi)**2)\n",
"psyb, errb = scipy.integrate.dblquad(lambda p , phi: cbot(phi,p), \n",
" ph1, ph2, lambda p: p1, lambda p: p2)\n",
" \n",
"psy=psya+psyb #Charge in C\n",
"psyp=psy/scipy.pi #Charge in multiples of Pi in C\n",
"psyf=Fraction(psyp).limit_denominator(100) #converting to fraction\n",
"\n",
"\n",
"#Results\n",
"\n",
"print 'Charge density at (1,pi/4,3) =',pv,'C/m^3'\n",
"print 'Total charge enclosed by the cylinder =',psyf,'Pi C'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Charge density at (1,pi/4,3) = 0.5 C/m^3\n",
"Total charge enclosed by the cylinder = 4/3 Pi C\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.10, Page number: 136"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"Q1=-4 #charge 1 in micro C\n",
"Q2=5 #charge 2 in micro C\n",
"e=10**-9/(36*scipy.pi) #permittivity of free space in Farad/m \n",
"\n",
"#Calculations\n",
"\n",
"R1=array([1,0,1])-array([2,-1,3]) #distance vector from (1,0,1) to charge 1\n",
"R2=array([1,0,1])-array([0,4,-2]) #distance vector from (1,0,1) to charge 2\n",
"modR1=scipy.sqrt(dot(R1,R1))\n",
"modR2=scipy.sqrt(dot(R2,R2)) \n",
"V=10**-9*((Q1/modR1)+(Q2/modR2))/(4*scipy.pi*e) #potential in kV\n",
"\n",
"#Result\n",
"\n",
"print 'The potential at (1, 0, 1) =',round(V,3),'kV'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The potential at (1, 0, 1) = -5.872 kV\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 4.11, Page number: 136"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space\n",
"Vo=0 #potential at O in V\n",
"Vb=100 #potential at B in V\n",
"po=scipy.sqrt(2)\n",
"ro=5\n",
"pa=1\n",
"ra=9\n",
"pb=1\n",
"rb=scipy.sqrt(21)\n",
"pc=scipy.sqrt(20)\n",
"rc=scipy.sqrt(11)\n",
"pl=2*10**-9 #charge density of the line in C/m\n",
"Q=5*10**-9 #point charge at (-3,4,0) in C\n",
"\n",
"#Calculations\n",
"\n",
"Va=Vo-(-pl*scipy.log(po/pa)/(2*scipy.pi*Eo)+Q*(ra-ro)/(4*scipy.pi*Eo*ra*ro))\n",
"Vc=Vb+(-pl*scipy.log(pc/pb)/(2*scipy.pi*Eo)+Q*(rb-rc)/(4*scipy.pi*Eo*rb*rc))\n",
"Vbc=Vc-Vb\n",
"\n",
"#Results\n",
"\n",
"print 'Va =',round(Va,3),'V'\n",
"print 'Vc =',round(Vc,3),'V'\n",
"print 'Vbc =',round(Vbc,3),'V'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Va = 8.477 V\n",
"Vc = 49.825 V\n",
"Vbc = -50.175 V\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.12, Page number: 140"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ar=array([1,0,0]) #Unit vector along radial direction\n",
"ath=array([0,1,0]) #Unit vector along theta direction\n",
"aph=array([0,0,1]) #Unit vector along phi direction\n",
"e=(10**-9)/(36*scipy.pi) #permittivity of free space in Farad/m\n",
"\n",
" #The point (2, pi/2, 0)\n",
"r=2\n",
"th=scipy.pi/2\n",
"ph=0\n",
" #Point A\n",
"ra=1\n",
"tha=scipy.pi*30/180\n",
"pha=scipy.pi*120/180\n",
" #Point B\n",
"rb=4\n",
"thb=scipy.pi/2\n",
"phb=scipy.pi*60/180\n",
"\n",
"q=10*10**-6 \n",
"\n",
"#Calculations\n",
"\n",
"Er=(20.0/r**3)*scipy.sin(th)*scipy.cos(ph) #Radial component of E in V/m\n",
"Eth=-(10/r**3)*scipy.cos(th)*scipy.cos(ph) #Theta component of E in V/m\n",
"Eph=(10/r**3)*scipy.sin(ph) #Phi component of E in V/m\n",
"E=array([Er,Eth,Eph])\n",
"D=E*e*10**12 #Electric flux density D in pC/m^2\n",
"Dr=round(dot(D,ar),1) #Radial component of D in V/m rounded to 1 decimal\n",
"Dth=round(dot(D,ath),0) #Theta component of D in pC/m^2 rounded to 0 decimal\n",
"Dph=round(dot(D,aph),0) #Phi component of D in pC/m^2 rounded to 0 decimal\n",
"Dc=array([Dr,Dth,Dph]) #Rounded D in pC/m^2\n",
"\n",
"Va=10*scipy.sin(tha)*cos(pha)/ra**2 #potential at point A in V\n",
"Vb=10*scipy.sin(thb)*cos(phb)/rb**2 #potential at point B in V\n",
"W=q*(Vb-Va)*10**6 #work done in micro J\n",
"\n",
"#Results\n",
"\n",
"print 'The electric flux density D at (2, pi/2, 0) =',Dc,'pC/m^2'\n",
"print 'Work done in moving the charge =',W,'micro J'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The electric flux density D at (2, pi/2, 0) = [ 22.1 -0. 0. ] pC/m^2\n",
"Work done in moving the charge = 28.125 micro J\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.13, Page number: 145"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"p1=-5*10**-9 #dipole moment of dipole 1 in C/m\n",
"p2=9*10**-9 #dipole moment of dipole 2 in C/m\n",
"z1=2 #z component of position vector of dipole 1\n",
"z2=-3 #z component of position vector of dipole 2\n",
"e=10**-9/(36*scipy.pi) #permittivity of free space in Farad/m\n",
"\n",
"#Calculation\n",
"\n",
"V=(1/(4*scipy.pi*e))*((p1*abs(z1)/z1**3)+(p2*abs(z2)/z2**3))\n",
"\n",
"#Result\n",
"\n",
"print 'Potential at origin =',V, 'V'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Potential at origin = -20.25 V\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 4.14, Page number: 148"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"Q1=-1*10**-9 #Charge 1 in C\n",
"Q2=4*10**-9 #Charge 2 in C\n",
"Q3=3*10**-9 #Charge 3 in C\n",
"e=10**-9/(36*scipy.pi) #permittivity of free space in farad/m\n",
"\n",
"#Calculations\n",
"\n",
"V1=(1/(4*scipy.pi*e)*(Q2+Q3))\n",
"V2=(1/(4*scipy.pi*e)*(Q1+Q3/(2**.5)))\n",
"V3=(1/(4*scipy.pi*e)*(Q1+Q2/(2**.5)))\n",
"W=0.5*((V1*Q1)+(V2*Q2)+(V3*Q3))*10**9 #Energy in nJ\n",
"\n",
"#Result\n",
"\n",
"print 'Energy in the system =',round(W,2),'nJ'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Energy in the system = 13.37 nJ\n"
]
}
],
"prompt_number": 8
}
],
"metadata": {}
}
]
}PK
IXb; ; , Elements of Electromagnetics/chapter_5.ipynb{
"metadata": {
"name": "",
"signature": "sha256:08d693988f55ded7946a3910c4b750b4a1419d79f72e5b56719c0d924a66fd5a"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 5: Electric Fields in Material Space"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.1, Page number: 167"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"r1= 0.2 # radius of hemispherical shell in metres\n",
"r2= 0.1 # radius of spherical shell in metres\n",
"\n",
"#Calculations\n",
"\n",
"#Calculation of current through hemispherical shell \n",
"\n",
"def J1(phi,theta):\n",
"\ts1=(1/r1)*(2* scipy.cos(theta)* scipy.sin(theta))\n",
"\treturn s1\n",
"\n",
"if __name__ == '__main__':\n",
"\n",
" I1, error = scipy.integrate.dblquad(lambda theta , phi: J1(phi,theta), \n",
" 0, 2*scipy.pi, lambda theta: 0, lambda theta: scipy.pi/2) \n",
"\t \n",
"#Calculation of current through spherical shell \n",
"\n",
"def J2(phi,theta):\n",
"\ts2=(1/r2)*(2* scipy.cos(theta)* scipy.sin(theta))\n",
"\treturn s2\n",
"\n",
"if __name__ == '__main__':\n",
"\n",
" I2, error = scipy.integrate.dblquad(lambda theta , phi: J1(phi,theta), \n",
" 0, 2*scipy.pi, lambda theta: 0, lambda theta: scipy.pi) \n",
"\t \n",
"#Results\n",
"\n",
"print 'Current through hemispherical shell=',round(I1,1),'A' \n",
"print 'Current through spherical shell=',round(I2,0),'A'\n",
"\t"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Current through hemispherical shell= 31.4 A\n",
"Current through spherical shell= 0.0 A\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.2, Page number: 168"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"#Variable Declaration\n",
"\n",
"ps=10**-7 #Surface charge density of the belt in Couloumb/metre^2\n",
"u=2 #Speed of the belt in metres/sec\n",
"w=0.1 #Width of the belt in metres\n",
"t=5 #Time taken in seconds \n",
"\n",
"#Calculations\n",
"\n",
"I=ps*u*w #Current in amperes\n",
"Q=I*t*10**9 #Charge collected in 5 seconds in nano Coloumbs\n",
"\n",
"#Result\n",
"\n",
"print \"The charge collected in 5 seconds is \",Q,\"nC\" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The charge collected in 5 seconds is 100.0 nC\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.3, Page number: 169"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"#Variable Declaration\n",
"\n",
"n=10**29 #Number density of electrons in m^-3\n",
"e=-1.6*10**-19 #Electronic charge in Coloumbs\n",
"sigma=5*10**7 #Current density in S/m\n",
"E=10**-2 #Electric Field in V/m\n",
"S=(3.14*10**-6)/4 #Cross sectional area of the wire in m^2\n",
"\n",
"#Calculations\n",
"\n",
"pv=n*e #Charge density of free electrons in C/m^3\n",
"J=sigma*E*10**-3 #Current density in kA/m^2\n",
"I=J*S*10**3 #Current in amperes\n",
"u=J*10**3/pv #Drift velocity in m/s\n",
"\n",
"#Results\n",
"\n",
"print \"The charge density is \",pv,\"C/m^3\" \n",
"print \"The current density is \",J,\"kA/m^2\" \n",
"print \"The current is \",round(I,3), \"A\"\n",
"print \"The drift velocity is \",-u,\"m/s\" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The charge density is -16000000000.0 C/m^3\n",
"The current density is 500.0 kA/m^2\n",
"The current is 0.393 A\n",
"The drift velocity is 3.125e-05 m/s\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.4, Page number: 170"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"l=4 #Length of the lead bar in m\n",
"d=3 #Width of the lead bar in cm\n",
"r=0.5 #Radius of the hole drilled in cm\n",
"sigma=5*10**6 #Conductivity of the bar in S/m\n",
"\n",
"#Calculation\n",
"\n",
"S=(d**2-(scipy.pi*r**2)) #Cross sectional area in cm^2\n",
"R=l/(S*sigma*10**-4) #Resistance in ohms\n",
"\n",
"#Result\n",
"\n",
"print 'The resistance between the square ends is',round(R*10**6),'micro ohms'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The resistance between the square ends is 974.0 micro ohms\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.6, Page number: 177"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"e0=10**-9/(36*scipy.pi) #permittivity of free space in Farad/m\n",
"er=2.55 #relative permittivity (dimensionless)\n",
"E=10*10**3 #Electric field in V/m\n",
"chi=er-1.0 #Electric susceptibility (dimensionless)\n",
"d=1.5 #Distance between plates in mm\n",
"\n",
"#Calculations\n",
"\n",
"D=e0*er*E*10**9 #D in nC/m^2\n",
"\n",
"P=chi*e0*E*10**9 #P in nC/m^2\n",
"\n",
"ps=D #The surface charge density of \n",
" #free charge in nC/m^2\n",
" \n",
"pps =P #The surface charge density of\n",
" #polarization charge in nC/m^2\n",
" \n",
"V=E*d*10**-3 #The potential difference between \n",
" #the plates in volts\n",
"\n",
"#Results\n",
"\n",
"print 'D =',round(D,2),'nC/m^2'\n",
"print 'P =',round(P,0),'nC/m^2'\n",
"print 'Surface charge density of free charge =',round(ps,2),'nC/m^2'\n",
"print 'Surface charge density of polarization charge =',round(pps,0),'nC/m^2'\n",
"print 'The potential difference between the plates =',V,'V'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"D = 225.47 nC/m^2\n",
"P = 137.0 nC/m^2\n",
"Surface charge density of free charge = 225.47 nC/m^2\n",
"Surface charge density of polarization charge = 137.0 nC/m^2\n",
"The potential difference between the plates = 15.0 V\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.7, Page number: 178"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"e0=10**-9/(36*scipy.pi) #permittivity of free space\n",
" #in Farad/m\n",
" \n",
"er=5.7 #relative permittivity\n",
" #(dimensionless)\n",
" \n",
"chi=er-1 #Electric susceptibility\n",
" #(dimensionless)\n",
" \n",
"r=0.1 #radius of sphere in m\n",
"\n",
"q1=2 #charge on sphere in pC\n",
"\n",
"q2=-4 #value of point charge in pC\n",
"\n",
"#Calculations\n",
"\n",
"E=q1/(4*scipy.pi*e0*er*r**2) #Electric field on the\n",
" #sphere in pV/m\n",
" \n",
"P=chi*e0*E #Polarisation in pC/m^2\n",
"\n",
"pps=P #The surface density of polarization \n",
" #charge in pC/m^2\n",
" \n",
"F=(q1*q2*10**-12)/(4*scipy.pi*e0*er*r**2) #Force exerted on point charge in pN\n",
"\n",
"#Results\n",
"\n",
"print 'The surface density of polarization'\n",
"print 'charge on the surface of the sphere =',round(pps,2),'pC/m^2'\n",
"print 'Force exerted on -4 pC charge =',round(F,3),'pN in the radial direction'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The surface density of polarization\n",
"charge on the surface of the sphere = 13.12 pC/m^2\n",
"Force exerted on -4 pC charge = -1.263 pN in the radial direction\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.9, Page number: 188"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"#Variable Declarartion\n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"an=array([0,0,1]) #Unit vector normal to the interface\n",
"E1=array([5,-2,3]) #Electric field for z >=0 in kV/m\n",
"e_r1=4 #Relative permittivity for z >=0 (dimensionless)\n",
"e_r2=3 #Relative permittivity for z <=0 (dimensionless)\n",
"e0=(10**-9)/(36*scipy.pi) #Permittivity of free space in Farad/m\n",
"V=2*2*2 #Volume of cube placed in region 2 in m^3\n",
"\n",
"#Calculations\n",
"\n",
"E1n=array([0,0,dot(E1,an)]) #The normal component of E1 in kV/m\n",
"E1t=E1-E1n #Transverse component of E1 in kV/m\n",
"E2t=E1t #Transverse component of E2 in kV/m\n",
"E2n=e_r1*E1n/e_r2 #Normal Component of E2 in kV/m\n",
"E2=E2n+E2t #The total field E2 in kV/m\n",
"\n",
"theta1= 90- 180*scipy.arccos(dot(E1,an)/ #Angle between E1 and \n",
" scipy.sqrt(dot(E1,E1)))/scipy.pi #interface in degrees\n",
" \n",
"theta2= 90- 180*scipy.arccos(dot(E2,an)/ #Angle between E2 and \n",
" scipy.sqrt(dot(E2,E2)))/scipy.pi #interface in degrees\n",
"\n",
"\n",
"We1= 0.5*e0*e_r1*dot(E1,E1)*10**6 # The energy density of E1 in J/m^3\n",
"We2= 0.5*e0*e_r2*dot(E2,E2)*10**6 # The energy density of E2 in J/m^3\n",
"W= We2*V # The energy within the cube in J\n",
"\n",
"#Results\n",
"\n",
"print 'The electric field for the region z <=0 is',E2,'kV/m'\n",
"print 'The angle E1 makes with the boundary is',round(theta1,1),'degrees'\n",
"print 'The angle E2 makes with the boundary is',round(theta2,1),'degrees'\n",
"print 'The energy density in dielectric 1 is',round(We1*10**6,0),'J/m^3'\n",
"print 'The energy density in dielectric 2 is',round(We2*10**6,0),'J/m^3'\n",
"print 'The energy within the cube is',round(W*1000,3),'mJ'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The electric field for the region z <=0 is [ 5 -2 4] kV/m\n",
"The angle E1 makes with the boundary is 29.1 degrees\n",
"The angle E2 makes with the boundary is 36.6 degrees\n",
"The energy density in dielectric 1 is 672.0 J/m^3\n",
"The energy density in dielectric 2 is 597.0 J/m^3\n",
"The energy within the cube is 4.775 mJ\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 5.10, Page number: 190"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"e=(10**-9)/(36*scipy.pi) #Permittivity of free space in Farad/m\n",
"er=2 #Relative permittivity (dimensionless)\n",
"ps=2 #Surface charge in nC/m^2\n",
"\n",
"#Calculations\n",
"\n",
"#Point A is in the region y <=0. Hence E=D=0\n",
"#For point B which is in the region y >=0,\n",
"\n",
"Dn=ps #Displacement current in nC/m^2\n",
"En=Dn*10**-9/(e*er) #Electric Field\n",
"\n",
"#Result\n",
"\n",
"print 'E at point A= 0'\n",
"print 'D at point A= 0'\n",
"print 'E at point B=',round(En,2),'V/m along positive y direction'\n",
"print 'D at point B=',Dn,'nC/m^2 along positive y direction'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"E at point A= 0\n",
"D at point A= 0\n",
"E at point B= 113.1 V/m along positive y direction\n",
"D at point B= 2 nC/m^2 along positive y direction\n"
]
}
],
"prompt_number": 8
}
],
"metadata": {}
}
]
}PK IL&x x , Elements of Electromagnetics/chapter_6.ipynb{
"metadata": {
"name": "",
"signature": "sha256:0404b66522ba62c52bb8d112f6cb8c3bcc64527b3152c58a7bd723197eac9b68"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 6: Electrostatic Boundary Value Problems"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 6.12, Page number: 238"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"e0=10**-9/(36*scipy.pi) #Permittivity of free space in Farad/m\n",
"er1=4 #Relative permittivity of material 1 (dimensionless)\n",
"er2=6 #Relative permittivity of material 2 (dimensionless)\n",
"d=5*10** -3 #The spacing between the capacitor plates in m\n",
"S=30*10** -4 #The surface area of the plates\n",
"\n",
"#Calculations\n",
"\n",
"#Calculation for Capacitor 1\n",
"\n",
"C1=e0*er1*S*2/d #Capacitance in Farads\n",
"C2=e0*er2*S*2/d #Capacitance in Farads\n",
"Ca=C1*C2/(C1+C2) #Total capacitance in Farads\n",
"\n",
"#Calculation for Capacitor 2\n",
"\n",
"C1= e0*er1*S/(2*d) #Capacitance in Farads\n",
"C2= e0*er2*S/(2*d) #Capacitance in Farads\n",
"Cb= C1+C2 #Total capacitance in Farads\n",
"\n",
"\n",
"#Results\n",
"\n",
"print 'The capacitance of capacitor 1 =',round(Ca*10**12,2),'pF'\n",
"print 'The capacitance of capacitor 2 =',round(Cb*10**12,2),'pF'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The capacitance of capacitor 1 = 25.46 pF\n",
"The capacitance of capacitor 2 = 26.53 pF\n"
]
}
],
"prompt_number": 1
}
],
"metadata": {}
}
]
}PK
IگH H , Elements of Electromagnetics/chapter_7.ipynb{
"metadata": {
"name": "",
"signature": "sha256:07eafc200928a1fc85942d637323ac709731a49898cf69ec16ea9de55515ee47"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 7: Magnetostatic Fields"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 7.1, Page number: 266"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"p=5 #Distance from side 1 of loop to (0,0,5) in m\n",
"l=2 #Length of the side in m\n",
"I=10 #Current through loop in A\n",
"\n",
"#Calculation\n",
"\n",
"a1=scipy.arccos(l/(scipy.sqrt(l**2+p**2))) #Angle in radians\n",
"a2=scipy.pi/2 #Angle in radians\n",
"H=I*(scipy.cos(a1)-scipy.cos(a2))/(4*scipy.pi*p) #Field Intensity in A/m\n",
"\n",
"#Result\n",
"\n",
"print 'H=',round(H*1000,1),'mA/m in the negative y direction'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"H= 59.1 mA/m in the negative y direction\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 7.2, Page number: 268"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"a1=scipy.arccos(0)\n",
"a2=scipy.arccos(1)\n",
"b1=scipy.arccos(0.6)\n",
"b2=scipy.arccos(1)\n",
"p1=5\n",
"p2=4\n",
"I1=3 #current in A\n",
"I2=3 #current in A\n",
"\n",
"#Calculations\n",
"\n",
"Hz=I1/(4*scipy.pi*p1)*(cos(a2)-cos(a1))*array([0.8,0.6,0])\n",
"Hx=I2/(4*scipy.pi*p2)*(cos(b2)-cos(b1))*array([0,0,1])\n",
"Hzcyl=-I1/(4*scipy.pi*p1)*array([0,1,0])\n",
"Hzx=round(dot(Hz,ax),4)\n",
"Hzy=round(dot(Hz,ay),5)\n",
"Hxz=round(dot(Hx,az),5)\n",
"Hxr=array([0,0,Hxz])\n",
"Hzr=array([Hzx,Hzy,0])\n",
"Hzcyly=round(dot(Hzcyl,ay),5)\n",
"Hzcylr=array([0,Hzcyly,0])\n",
"Hcart=(Hxr+Hzr)*10**3 #H in cartesian coordinates in mA \n",
"Hcyl=(Hxr+Hzcylr)*10**3 #H in cylindrical coordinates in mA\n",
"\n",
"#Result\n",
"\n",
"print 'H at (-3, 4, 0) in cartesian coordnates =',Hcart,'mA/m'\n",
"print 'H at (-3, 4, 0) in cylindrical coordnates =',Hcyl,'mA/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"H at (-3, 4, 0) in cartesian coordnates = [ 38.2 28.65 23.87] mA/m\n",
"H at (-3, 4, 0) in cylindrical coordnates = [ 0. -47.75 23.87] mA/m\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 7.5, Page number: 279"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"#Variable Declaration\n",
"\n",
"i0=-10 #current through plane z=0 in A/m\n",
"i4=10 #current through plane z=4 in A/m\n",
"\n",
"#Calculations\n",
"\n",
"H0a=0.5*i0*-1 #H in positive Y direction in A/m\n",
"H4a=0.5*i4*-1*-1 #H in positive Y direction in A/m\n",
"Ha=H0a+H4a #H at (1,1,1) in A/m \n",
"H0b=0.5*i0*-1 #H in positive Y direction in A/m\n",
"H4b=0.5*i4*-1 #H in negative Y direction in A/m\n",
"Hb=H0b+H4b #H at (0,-3,10) in A/m\n",
"\n",
"#Results\n",
"\n",
"print 'H at (1,1,1) =',Ha,'A/m'\n",
"print 'H at (0,-3,10) =',Hb,'A/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"H at (1,1,1) = 10.0 A/m\n",
"H at (0,-3,10) = 0.0 A/m\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 7.7, Page number: 287"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy.integrate\n",
"\n",
"#Calculation\n",
"\n",
"def B(z,p): \n",
" return 0.5*p\n",
"psy, err = scipy.integrate.dblquad(lambda p , z: B(z,p), \n",
" 0, 5, lambda p: 1, lambda p: 2)\n",
"\n",
"#Result\n",
"\n",
"print 'Total magnetic flux crossing the surface phi=pi/2 is',psy,'Wb'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Total magnetic flux crossing the surface phi=pi/2 is 3.75 Wb\n"
]
}
],
"prompt_number": 4
}
],
"metadata": {}
}
]
}PK
I@l/ / , Elements of Electromagnetics/chapter_8.ipynb{
"metadata": {
"name": "",
"signature": "sha256:3a0360df3c22e5e4c6f88ae6f9ab32945c496822bb8898446d53149d9f1116ec"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 8: Magnetic Forces, Materials and Devices"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 8.1, Page number: 308"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"m=2 #mass in kg\n",
"q=3 #charge in C\n",
"v=array([4,0,3]) #initial velocity in m/s\n",
"E=array([12,10,0]) #electric field in V/m\n",
"t=1 #time in sec\n",
"\n",
"#Calculations\n",
"\n",
"a=q*E/m #acceleration in m/s^2 after 1 sec\n",
"u=array([18*t+4,15*t,3]) #velocity in m/s after 1 sec\n",
"modofu=scipy.sqrt(dot(u,u))\n",
"KE=0.5*m*(modofu)**2 #kinetic energy in J at t=1 sec\n",
"s=array([9*t**2+4*t+1,7.5*t**2-2,3*t]) #position after 1 sec in m\n",
"\n",
"#Results\n",
"\n",
"print 'At time t=1 sec,'\n",
"print' The acceleration of the particle =',a,'m/s^2'\n",
"print 'Its velocity =',u,'m/s' \n",
"print 'Its kinetic energy =',KE,'J'\n",
"print 'Its position =',s,'m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"At time t=1 sec,\n",
" The acceleration of the particle = [18 15 0] m/s^2\n",
"Its velocity = [22 15 3] m/s\n",
"Its kinetic energy = 718.0 J\n",
"Its position = [ 14. 5.5 3. ] m\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 8.6, Page number: 322"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"ar=array([1,0,0]) #Unit vector along radial direction\n",
"ath=array([0,1,0]) #Unit vector along theta direction\n",
"aph=array([0,0,1]) #Unit vector along phi direction \n",
"x=4\n",
"y=-3\n",
"z=10\n",
"muo=4*scipy.pi*10**-7 #permeability of free space\n",
"m1=5 #magnetic moment in A/m^2\n",
"\n",
"#Calculations\n",
"\n",
"r=scipy.sqrt(x**2+y**2+z**2)\n",
"p=scipy.sqrt(x**2+y**2)\n",
"sinphi=y/p\n",
"cosphi=x/p\n",
"sintheta=1/scipy.sqrt(5)\n",
"costheta=2/scipy.sqrt(5)\n",
"B1=muo*m1*(2*costheta*ar+sintheta*ath)/(4*scipy.pi*r**3)\n",
"m2=3*(sintheta*sinphi*ar+costheta*sinphi*ath+cosphi*aph)\n",
"T2=cross(m2,B1)*10**9\n",
"T2x=round(dot(T2,ar),3)\n",
"T2y=round(dot(T2,ath),3)\n",
"T2z=round(dot(T2,aph),3)\n",
"T2r=array([T2x,T2y,T2z]) #torque in nNm\n",
"\n",
"#Result\n",
"\n",
"print 'Torque T2 =',T2r,'nNm'\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Torque T2 = [-0.384 1.536 0.902]\n"
]
}
],
"prompt_number": 14
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 8.7, Page number: 330"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"muo=4*scipy.pi*10**-7 #permeability of free space\n",
"mur=2 #relative permeability\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"\n",
"\n",
"#Calculations\n",
"\n",
"J=(-5-10)*10**-6/(4*scipy.pi*10**-7*2.5) #in kA/m^2\n",
"Jb=1.5*J #in kA/m^2\n",
"MbyB=(1.5)*10**4/(4*scipy.pi*2.5) \n",
"Mv=MbyB*10*10**-3*ax+MbyB*5*10**-3*ay\n",
"Kb=cross(az,Mv)\n",
"\n",
"#Results\n",
"\n",
"print 'J =',round(J,3),'kA/m^2'\n",
"print 'Jb =',round(Jb,3),'kA/m^2'\n",
"print 'M =(',round(dot(Mv,ax),3),'y,',round(dot(Mv,ay),3),'x, 0) kA/m'\n",
"print 'Kb =(',round(dot(Kb,ax),3),'x,',round(dot(Kb,ay),3),'y, 0) kA/m' \n",
" \n",
"\n",
" \n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"J = -4.775 kA/m^2\n",
"Jb = -7.162 kA/m^2\n",
"M =( 4.775 y, 2.387 x, 0) kA/m\n",
"Kb =( -2.387 x, 4.775 y, 0) kA/m\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 8.8, Page number: 332"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction \n",
"H1=array([-2,6,4]) #in A/m\n",
"mu0=4*scipy.pi*10**-7 #permeability of free space\n",
"mur1=5 #relative permeabililty in region 1\n",
"mur2=2 #relative permeabililty in region 2\n",
"an=array([-1,1,0])/scipy.sqrt(2)\n",
"\n",
"#Calculatios\n",
"\n",
"mu1=mu0*mur1\n",
"mu2=mu0*mur2\n",
"M1=(mur1-1)*H1 # magnetisation in region 1 in A/m\n",
"B1=mu1*H1*10**6 # field in micro Wb/m^2\n",
"B1x=round(dot(B1,ax),2) # x component of B1\n",
"B1y=round(dot(B1,ay),1) # y component of B1\n",
"B1z=round(dot(B1,az),2) # z component of B1\n",
"B1r=array([B1x,B1y,B1z]) # B1 rounded to 2 decimal places\n",
"H1n=dot(H1,an)*an \n",
"H1t=H1-H1n\n",
"H2t=H1t # using transverse boundary condition\n",
"H2n=(mu1/mu2)*H1n # using normal boundary condition\n",
"H2=H2t+H2n # in A/m\n",
"B2=mu2*H2*10**6 # field in micro Wb/m^2\n",
"B2x=round(dot(B2,ax),2) # x component of B2\n",
"B2y=round(dot(B2,ay),2) # y component of B2\n",
"B2z=round(dot(B2,az),2) # z component of B2\n",
"B2r=array([B2x,B2y,B2z]) # B2 rounded to 2 decimal places\n",
"\n",
"#Results\n",
"\n",
"print 'M1= ',M1,'A/m'\n",
"print 'B1= ',B1r,'micro Wb/m^2'\n",
"print 'H2= ',H2,'A/m'\n",
"print 'B2= ',B2r,'micro Wb/m^2'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"M1= [-8 24 16] A/m\n",
"B1= [-12.57 37.7 25.13] micro Wb/m^2\n",
"H2= [ -8. 12. 4.] A/m\n",
"B2= [-20.11 30.16 10.05] micro Wb/m^2\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 8.14, Page number: 350"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable declaration\n",
"\n",
"p=10*10**-2 #in m\n",
"a=1*10**-2 #in m\n",
"Ur=1000 #relative permeability\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"n=200 #number of turns\n",
"phi=0.5*10**-3 #flux in the core in Wb\n",
"U=Uo*Ur #permeability of steel core\n",
"\n",
"#Calculation\n",
"\n",
"I=phi*2*scipy.pi*p/(U*n*scipy.pi*a*a) #current in A\n",
"\n",
"#Result\n",
"\n",
"print 'The current that will produce a flux of 0.5 mWb =',round(I,3),'A'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The current that will produce a flux of 0.5 mWb = 3.979 A\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 8.15, Page number: 351"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"Ur=50 #relative permeability of coil\n",
"l1=30*10**-2\n",
"s=10*10**-4 \n",
"l3=9*10**-2\n",
"la=1*10**-2 \n",
"B=1.5 #flux density in Wb/m^2\n",
"N=400 #number of turns\n",
"\n",
"#Calculations\n",
"\n",
"R1=l1/(Uo*Ur*s)\n",
"R2=R1\n",
"R3=l3/(Uo*Ur*s)\n",
"Ra=la/(Uo*s)\n",
"R=R1*R2/(R1+R2)\n",
"Req=R3+Ra+R\n",
"I=B*s*Req/N #current in A\n",
"\n",
"#Result\n",
"\n",
"print 'The current required =',round(I,3),'A'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The current required = 44.165 A\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 8.16, Page number: 353"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"m=400 #mass in kg\n",
"g=9.8 #acceleration due to gravity in m/s^2\n",
"Ur=3000 #relative permeability of the iron yoke\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"S=40*10**-4 #cross sectional area of iron yoke in m^2\n",
"la=1*10**-4 #air gaps in m\n",
"li=50*10**-2 #mean length of yoke in m\n",
"I=1 #excitation current in A \n",
"\n",
"#Calculations\n",
"\n",
"B=scipy.sqrt(m*g*Uo/S) #field in Wb/m^2\n",
"Ra=2*la/(Uo*S) \n",
"Ri=li/(Uo*Ur*S) \n",
"N=(Ra+Ri)/(Ra*Uo)*B*la #number of turns\n",
"\n",
"#Result\n",
"\n",
"print 'The nmber of turns in the coil when the excitation current is 1 A ='\n",
"print round(N,0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The nmber of turns in the coil when the excitation current is 1 A =\n",
"162.0\n"
]
}
],
"prompt_number": 5
}
],
"metadata": {}
}
]
}PK
Iŀ , Elements of Electromagnetics/chapter_9.ipynb{
"metadata": {
"name": "",
"signature": "sha256:25d377db4166fc7d1439fb19889672d7cd5de596e5478e8198d3671878cf5493"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 9: Maxwells Equations"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 9.1, Page number: 375"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"u2=20\n",
"B2=4\n",
"l=0.06\n",
"#Calculations\n",
"\n",
"def ansa(x,y): \n",
" return 4*10**3\n",
"Va, erra = scipy.integrate.dblquad(lambda y , x: ansa(x,y), #in V \n",
" 0, 0.06, lambda y: 0, lambda y: 0.08)\n",
"\n",
"Vb=-u2*B2*l #in mV\n",
"\n",
"def ansc(x,y): \n",
" return 4\n",
"psic, errc = scipy.integrate.dblquad(lambda y , x: ansc(x,y), #in mWb \n",
" 0, 0.06, lambda y: 0, lambda y: 1)\n",
"\n",
"#Results\n",
"\n",
"print 'Va =',Va,'sin(10^6t) V'\n",
"print 'Vb =',Vb,'mV'\n",
"print 'Vc= ',psic*10**3,'cos(10^6t-y) -',psic*10**3,'cos(10^6t) V'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Va = 19.2 sin(10^6t) V\n",
"Vb = -4.8 mV\n",
"Vc= 240.0 cos(10^6t-y) - 240.0 cos(10^6t) V\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 9.3, Page number: 379"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"n1=200\n",
"n2=100 \n",
"S=10**-3 #cross section in m^2\n",
"muo=4*scipy.pi*10**-7 #permeabiility of free space\n",
"mur=500 #relative permeability\n",
"r=10*10**-3 #radius in m\n",
"\n",
"#Calculations\n",
"\n",
"psiI=n1*muo*mur*S/(2*scipy.pi*r)\n",
"\n",
"#Result\n",
"\n",
"print 'V2 =',psiI*n2*300*scipy.pi,'cos(100pi t) V'\n",
"print '= 6Pi cos(100pi t) V'\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"V2 = 188.495559215 cos(100pi t) V\n",
"= 6Pi cos(100pi t) V\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 9.5, Page number: 393"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"\n",
"#Variable Declaration\n",
"\n",
"z3=1j\n",
"z4=3+4j \n",
"z5=-1+6j \n",
"z6=3+4j\n",
"z7=1+1j\n",
"z8=4-8j\n",
"\n",
"#Calculations\n",
"\n",
"z1=(z3*z4/(z5*z6))\n",
"z2=scipy.sqrt(z7/z8)\n",
"z1r=round(z1.real,4) #real part of z1 rounded to 4 decimal places\n",
"z1i=round(z1.imag,4) #imaginary part of z1 rounded to 4 decimal places\n",
"z2r=round(z2.real,4) #real part of z2 rounded to 4 decimal places\n",
"z2i=round(z2.imag,4) #imaginary part of z2 rounded to 4 decimal places\n",
"\n",
"absz2=round(abs(z2),4) #absolute value of z2 rounded to 4 decimal places\n",
"\n",
"ang=scipy.arctan(z2i/z2r)*180/scipy.pi #in degrees\n",
"\n",
"#Results\n",
"\n",
"print 'z1 =',z1r,'+',z1i,'j'\n",
"print 'z2 ='\n",
"print 'mod =',absz2,'and angle=',round(ang,1),'degrees'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"z1 = 0.1622 + -0.027 j\n",
"z2 =\n",
"mod = 0.3976 and angle= 54.2 degrees\n"
]
}
],
"prompt_number": 1
}
],
"metadata": {}
}
]
}PK
IT9$ $ - Elements of Electromagnetics/chapter_10.ipynb{
"metadata": {
"name": "",
"signature": "sha256:cdf18287acc82150753d10351b24abe70a503e3715e5a7f68621619ab02a6a02"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 10: Electromagnetic Wave Propagation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.1, Page number: 416"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from pylab import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"w=10**8 \n",
"c=3.0*10**8\n",
"\n",
"#Calculations\n",
"\n",
"T=2*scipy.pi/w #timeperiod of the wave in sec\n",
"B=(w/c) #in rad/m\n",
"lam=2*scipy.pi/B #wavelength in m\n",
"t1=lam*10**9/(2*c) #time taken to travel half the wavelength in ns \n",
"\n",
"x=arange(-6*scipy.pi,6*scipy.pi,0.1)\n",
"\n",
"t=0\n",
"E=50*scipy.cos(10**8*t+x*w/c)\n",
"\n",
"subplot(3,1,1)\n",
"xlabel(\"x\")\n",
"ylabel(\"E for t=0\")\n",
"plot(x,E,'r')\n",
"\n",
"subplot(3,1,2)\n",
"t=T/4\n",
"E=50*scipy.cos(10**8*t+x*w/c)\n",
"xlabel(\"x\")\n",
"ylabel(\"E for t=T/4\")\n",
"plot(x,E)\n",
"\n",
"subplot(3,1,3)\n",
"t=T/2\n",
"E=50*scipy.cos(10**8*t+x*w/c)\n",
"xlabel(\"x\")\n",
"ylabel(\"E for t=T/2\")\n",
"plot(x,E,'g')\n",
"show()\n",
"\n",
"#Results\n",
"\n",
"print 'Since the argument of cosine function is positive, '\n",
"print 'the wave is propagating in the negative x direction.'\n",
"print' B =',round(B,4),'rad/m'\n",
"print 'Time taken to travel a distance of lambda/2 =',round(t1,2),'n sec'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nsg9maiqQnMwKpf76ixVKTZrErAt4wRunJp4+ZZvHO3awws5+/dg11LMn0KMHu+5eeYXNfEtKgCdP\n2HV34QKbHURGssK8oUOByZOBgQN54oO2oXSrDTEi9gBRnmfPmF1HTAxw8SKQksKWAnJyWOOUZ89Y\nP4AuXVggsbICnJ2B11/XLJsFjrh48oS1k42NZQ8eV64wr6dnz5izanEx66rYpQsLIL16seuub1++\ndKnN8AAhIqKjo6tMvy0rY4Z6urrCG5pVp1NMcJ31p/x1FxsrXp3lEfP5fI4maARU2JNaFWzduhUW\nFhawsrLC/5XzOF6zZg3MzMxgaWmJ+Ph4IaQpheryj3V02HRf6OAAVK9TTHCd9af8dSdmneXRBJ2a\noLE+qL3U6+LFi9i0aRPCwsJgZmaGzMxMAMCDBw+wbt06HD9+HGlpaQgMDERSUpK65XE4HA7nX9Qe\nIMLDw+Hv7w8zMzMAQPv27QFUtNowNDSUW22INdWVw+FwtB2170G4u7vDysoK8fHxkMlkmDt3Liwt\nLfHZZ59BX18fU6dOBQD4+fnh3XffrWC1IeGpFRwOh6MQitzqVTKDcHd3x71KDO2/+uorFBYW4vHj\nx4iLi8OxY8cwc+ZMREVFVSr+xYCgCRvUHA6Hoy2oJEBERkZW+bu4uDg4OTmhefPm8Pb2xtSpU1FY\nWAgHBwccO3ZM/v9dunQJdnZ2qpDH4XA4nFqg9lyafv36ITw8HESEhIQEdO/eHbq6uhpltcHhcDgN\nAbVvUvv4+CAiIgKWlpaQSqVYuXIlgIpWG02bNsXGjRvVLY3D4XA45amPQ6C6mDdvHkmlUrK1taVZ\ns2ZRfrnWbjW1KVUnu3fvJktLS9LR0aFz587Jj6elpZGuri7JZDKSyWQUEBAgoMqqdRKJ63yWJygo\niLp27So/h+Hh4UJLqkBMTAxJpVIyNTWlNWvWCC2nSoyMjKhnz54kk8nIzs5OaDly3nnnHerQoQNZ\nW1vLj2VnZ9OwYcPIwMCAfHx8KCcnR0CFjMp0iu3aTE9PJycnJ7K0tKQ33niDfvzxRyJS7HxqRICI\niIig0tJSKi0tpSlTptD3339PRLVrU6pOUlNT6fLly+Tk5PRSgCh/QQlNVTrFdj7Ls2jRIlqxYoXQ\nMqpEJpNRTEwM3bhxg8zNzSkzM1NoSZVSvs2vmIiNjaWkpKQKn5Pg4GCaOXMmFRYW0owZM2jZsmUC\n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\n",
"text": [
""
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Since the argument of cosine function is positive, \n",
"the wave is propagating in the negative x direction.\n",
" B = 0.3333 rad/m\n",
"Time taken to travel a distance of lambda/2 = 31.42 n sec\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.2, Page number: 428"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import cmath\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"Ho=10 \n",
"n=200*scipy.exp(1)**(1j*scipy.pi/6) \n",
"b=0.5\n",
"\n",
"#Calclations\n",
"\n",
"Eo=n*Ho #amplitude of electric field in kV/m\n",
"P=scipy.arctan(scipy.sqrt(3)) \n",
"a=b*((scipy.sqrt(((1+(scipy.tan(P))**2)**0.5)-1))/(scipy.sqrt(((1+(scipy.tan(P)\n",
")**2)**0.5)+1)))\n",
"delta=1/a\n",
"\n",
"#Results\n",
"\n",
"print 'E has the same form as H except for amplitude and phase.'\n",
"print 'The amplitude and phase of E =',Eo,'kV/m'\n",
"print '= magnitude of 2000 and angle of pi/6'\n",
"print 'a =',round(a,4),'Np/m'\n",
"print 'Skin depth =',round(delta,3),'m'\n",
"print 'The polarization of wave is in z direction since it has an z component.'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"E has the same form as H except for amplitude and phase.\n",
"The amplitude and phase of E = (1732.05080757+1000j) kV/m\n",
"= magnitude of 2000 and angle of pi/6\n",
"a = 0.2887 Np/m\n",
"Skin depth = 3.464 m\n",
"The polarization of wave is in z direction since it has an z component.\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.3, Page number: 430"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"B=1\n",
"n=60*scipy.pi \n",
"Ur=1 #relative permeability\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"\n",
"#Calculations\n",
"\n",
"Er=Uo*Ur/(n**2*Eo) #relative permittivity\n",
"w=B/scipy.sqrt(Eo*Er*Uo*Ur) #in rad/sec\n",
"eps=Eo*Er #permittivity of the medium in Farad/m\n",
"H1o=-0.1\n",
"H2o=0.5\n",
"Ex=H2o/(eps*w) #amplitude of x component of E in V/m\n",
"Ey=H1o/(eps*w) #amplitude of y component of E in V/m\n",
"\n",
"\n",
"#Results\n",
"\n",
"print 'er =',Er\n",
"print 'w =',w,'rad/sec'\n",
"print 'E =',round(Ex,2),'sin(wt-z)ax +',round(-Ey,2),'cos(wt-z)ay V/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"er = 4.0\n",
"w = 150000000.0 rad/sec\n",
"E = 94.25 sin(wt-z)ax + 18.85 cos(wt-z)ay V/m\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.4, Page number: 432"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"E=2 #amplitude of E in V/m\n",
"sigma=3 #in mhos/m\n",
"w=10**8 #in rad/sec\n",
"Ur=20 #relative permeability\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space in Farad/m\n",
"Er=1 #relative permittivity\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"\n",
"#Calculations\n",
"\n",
"a=round(scipy.sqrt(Uo*Ur*w*sigma/2),1) #in Np/m\n",
"B=a #rad/m\n",
"theta=scipy.arctan(sigma/(w*Eo*Er))*0.5 #in radians\n",
"thetad=round(theta*180/scipy.pi,0) #in degrees\n",
"H=E/(scipy.sqrt(Uo*Ur*w/sigma))*10**3 #amplitude of H in mA/m\n",
"\n",
"#Results\n",
"\n",
"print 'alpha =',a,'Np/m'\n",
"print 'beta =',B,'rad/m'\n",
"print 'H =',round(H,1),'e^ (',a,'z ) sin(wt - Bz -',thetad,') mA/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"alpha = 61.4 Np/m\n",
"beta = 61.4 rad/m\n",
"H = 69.1 e^ ( 61.4 z ) sin(wt - Bz - 45.0 ) mA/m\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.6, Page number: 434"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
" \n",
"a=2*10**-3 #in m\n",
"b=6*10**-3 #in m \n",
"t=10**-3 #in m\n",
"l=2 #in m\n",
"c=5.8*10**7 #conductivity in seimens\n",
"f=100*10**6 #frequency in Hz\n",
"mu=4*scipy.pi*10**-7 #permeability of free space\n",
"\n",
"#Calculations\n",
"\n",
"Ri=l/(c*scipy.pi*a*a) #dc resistance of inner cable in ohms\n",
"Ro=l/(c*scipy.pi*((b+t)**2-b**2)) #dc resistance of outer cable in ohms\n",
"Rdc=Ro+Ri #total dc resistance in ohms\n",
"\n",
"Ria=round(l/(2*scipy.pi*a)*scipy.sqrt(scipy.pi*f*mu/c),1)\n",
"Roa=round(l/(2*scipy.pi*b)*scipy.sqrt(scipy.pi*f*mu/c),4)\n",
"Rac=Ria+Roa #ac resistance in ohms\n",
"\n",
"#Results\n",
"\n",
"print 'Rdc =',round(Rdc*10**3,3),'m ohms'\n",
"print 'Rac =',round(Rac,4),'ohms'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Rdc = 3.588 m ohms\n",
"Rac = 0.5384 ohms\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.7, Page number: 439"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"a=0 #alpha in m^-1\n",
"b=0.8 #beta in m^-1\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space in farad/m\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"Ur=1 #relative permeability of medium\n",
"w=2*scipy.pi*10**7 #omega in rad/s\n",
"Eamp=4 #amplitude of the field in V/m\n",
"\n",
"#Calculations\n",
"\n",
"Er=b**2/(Uo*Eo*w*w) #relative permittivity of the medium\n",
"n=scipy.sqrt(Uo/(Eo*Er)) #eta in ohms\n",
"Pav=Eamp**2/(2*n)*ax #average power in W/m^2\n",
"an=(2*ax+ay)/scipy.sqrt(5) #normal to the plane\n",
"S=100*10**-4*an #area in m^2\n",
"P=dot(Pav,S)*10**6 #power through the plane in micro W\n",
"\n",
"#Results\n",
"\n",
"print 'Er=',round(Er,2)\n",
"print 'eta= ',round(n,1),'ohms'\n",
"print 'The time-average power =',round(dot(Pav,ax)*10**3,0),'ax mW/m^2'\n",
"print 'The total power crossing 100 cm^2 of the plane =',round(P,2),'micro W'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Er= 14.59\n",
"eta= 98.7 ohms\n",
"The time-average power = 81.0 ax mW/m^2\n",
"The total power crossing 100 cm^2 of the plane = 725.0 micro W\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 10.10, Page number: 458"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy \n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"kx=0 #in m^-1\n",
"ky=0.866 #in m^-1\n",
"kz=0.5 #in m^-1\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space in farad/m\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"c=1/(scipy.sqrt(Uo*Eo)) #speed of light in m/s\n",
"kvect=kx*ax+ky*ay+kz*az #propogation vector in m^-1\n",
"Eo=100 #amplitude of electric field\n",
"\n",
"#Calculations\n",
"\n",
"k=round(scipy.sqrt(kx*kx+ky*ky+kz*kz),0) #magnitude of k in m^-1\n",
"w=k*c #omega in rad/sec\n",
"lam=2*scipy.pi/k #wavelength in m\n",
"Ho=cross(kvect,Eo*ax*10)/(Uo*w) #amplitude of magnetic field in mA/m\n",
"Hoy=round(dot(Ho,ay),2) #y component of Ho\n",
"Hoz=round(dot(Ho,az),1) #z component of Ho\n",
"Hr=array([0,Hoy,Hoz]) #Ho with components rounded off\n",
"P=Eo**2/(2*120*scipy.pi)*kvect #average power in W/m^2\n",
"Py=round(dot(P,ay),2) #y component of P\n",
"Pz=round(dot(P,az),3) #z component of P\n",
"Pr=array([0,Py,Pz]) #P with components rounded off\n",
"\n",
"#Results\n",
"\n",
"print 'w =',w,'rad/sec'\n",
"print 'lambda =',round(lam,3),'m'\n",
"print 'The magnetic field component =',Hr,'e^j(0.866x-0.5z) mA/m'\n",
"print 'The time average power in the wave =',Pr,'W/m^2'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"w = 300000000.0 rad/sec\n",
"lambda = 6.283 m\n",
"The magnetic field component = [ 0. 1.33 -2.3 ] e^j(0.866x-0.5z) mA/m\n",
"The time average power in the wave = [ 0. 11.49 6.631] W/m^2\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 10.11, Page number: 459"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"ax=array([1,0,0]) #Unit vector along x direction\n",
"ay=array([0,1,0]) #Unit vector along y direction\n",
"az=array([0,0,1]) #Unit vector along z direction\n",
"Ei=8 #incident wave amplitude\n",
"k=5 #propogation constant\n",
"Eo=10**-9/36*scipy.pi #permittivity of free space\n",
"Erel=2.5 #relative permittivity\n",
"muo=4*scipy.pi*10**-7 #permeability of free space\n",
"mur=1 #relative permeability\n",
"c=3*10**8 #speed of light\n",
"etao=377\n",
"\n",
"#Calculations\n",
"\n",
"w=k*c #frequency in rad\n",
"theta=scipy.arctan(4/3.0) #angle of incidence in rad\n",
"eta1=etao\n",
"eta2=377/scipy.sqrt(2.5)\n",
"thetai=scipy.arcsin(sin(theta)/scipy.sqrt(2.5))\n",
"gamm=(eta2*cos(theta)-eta1*cos(thetai))/(eta2*cos(theta)+eta1*cos(thetai))\n",
"Er=Ei*gamm #reflected E field amplitude in V/m\n",
"kt=w*scipy.sqrt(mur*Erel)/c\n",
"tao=2*eta2*cos(theta)/((eta2*cos(theta)+eta1*cos(thetai)))\n",
"Et=tao*Ei*ay\n",
"Ht=cross((4*ax+6.819*az)/(eta2*kt),Et)*10**3\n",
"Htx=round(dot(Ht,ax),2)\n",
"Hty=round(dot(Ht,ay),2)\n",
"Htz=round(dot(Ht,az),2)\n",
"Htc=array([Htx,Hty,Htz]) #transmitted H field amplitude\n",
"\n",
"#Results\n",
"\n",
"print 'Polarisation is perpendicular polarization'\n",
"print 'Angle of incidence is ',round(180*theta/scipy.pi,2),'degrees'\n",
"print 'Er =',round(Er,3),'cos(',w,'t - 4x + 3z) V/m'\n",
"print 'Ht =',Htc,'cos(',w,'t - 4x - 6.819z) mA/m'\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Polarisation is perpendicular polarization\n",
"Angle of incidence is 53.13 degrees\n",
"Er = -3.112 cos( 1500000000 t - 4x + 3z) V/m\n",
"Ht = [-17.68 0. 10.37] cos( 1500000000 t - 4x - 6.819z) mA/m\n"
]
}
],
"prompt_number": 25
}
],
"metadata": {}
}
]
}PK I+!|q q - Elements of Electromagnetics/chapter_11.ipynb{
"metadata": {
"name": "",
"signature": "sha256:b3709cc764fd68911c53d14fdc3847f8e66fbdd5fcd89885b01f065610802430"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 11: Transmission Lines"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.1, Page number: 482"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"R=0\n",
"G=0\n",
"a=0\n",
"Ro=70 #characteristic impedence in ohms\n",
"B=3 #phase constant in rad/sec\n",
"f=100*10**6 #frequency in Hz\n",
"w=2*scipy.pi*f #omega in rad/sec\n",
"\n",
"#Calculations\n",
"\n",
"C=B/(w*Ro) #capacitance in F/m\n",
"L=Ro*Ro*C #inductance in H/m\n",
"\n",
"#Results\n",
"\n",
"print 'inductance per meter =',round(L*10**9,1),'nH/m'\n",
"print 'capacitance per meter =',round(C*10**12,1),'pF/m'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"inductance per meter = 334.2 nH/m\n",
"capacitance per meter = 68.2 pF/m\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.2, Page number: 483"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"#Variable Declaration\n",
"\n",
"Zo=60 #in ohms\n",
"a=20*10**-3 #in Np/m\n",
"u=0.6*3*10**8 #in m/sec\n",
"f=100*10**6 #in Hz\n",
"\n",
"#Calculations\n",
"\n",
"R=a*Zo #resistance in ohms/m\n",
"L=Zo/u #inductance in H/m\n",
"G=a*a/R #conductivity in S/m\n",
"C=1/(u*Zo) #capacitance in F/m\n",
"lam=u/f #wavelentgh in m\n",
"\n",
"#Results\n",
"\n",
"print 'R =',R,'ohm/m'\n",
"print 'L =',round(L*10**9,0),'nH/m'\n",
"print 'G =',round(G*10**6,0),'micro S/m'\n",
"print 'C =',round(C*10**12,2),'pF/m'\n",
"print 'lambda =',lam,'m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"R = 1.2 ohm/m\n",
"L = 333.0 nH/m\n",
"G = 333.0 micro S/m\n",
"C = 92.59 pF/m\n",
"lambda = 1.8 m\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.3, Page number: 490"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"w=10**6 #omega in rad/sec\n",
"B=1 #phase factor in rad/m\n",
"a=8.0/8.686 #alpha in Np/m\n",
"Y=a+1j #in m^-1\n",
"l=2 #length in m\n",
"Vg=10 #source voltage in volts\n",
"Zo=60+40j #in ohms\n",
"Zg=40 #in ohms\n",
"Zl=20+50j #load impedance in ohms\n",
"\n",
"#Calculations\n",
"\n",
"s=scipy.tanh(Y*l)\n",
"Zin=Zo*(Zl+Zo*s)/(Zo+Zl*s) #input impedance in ohms\n",
"Zinr=round(Zin.real,2) #real part of Zin rounded to 2 decimal places\n",
"Zini=round(Zin.imag,2) #imaginary part of Zin rounded to 2 decimal places\n",
"Io=Vg/(Zin+Zg) #in A\n",
"absIo=round(abs(Io),6) #absolute value of Io rounded to 6 decimal place\n",
"Ior=Io.real #real part of Io\n",
"Ioi=Io.imag #imaginary part of Io\n",
"angIo=scipy.arctan(Ioi/Ior)*180/scipy.pi \n",
" #in degrees\n",
"Vo=Zin*Io\n",
"Vop=(Vo+Zo*Io)/2\n",
"Vom =(Vo-Zo*Io)/2\n",
"Im=((Vop*scipy.e**(-Y)/Zo))-((Vom*scipy.e**Y)/Zo)\n",
" #current at the middle in A\n",
"absIm=round(abs(Im),5) #absolute value of Im rounded to 6 decimal place\n",
"Imr=Im.real #real part of Im \n",
"Imi=Im.imag #imaginary part of Im\n",
"angIm=360+scipy.arctan(Imi/Imr)*180/scipy.pi \n",
" #in degrees\n",
"\n",
"#Results\n",
"\n",
"print 'The input impedance =',Zinr,'+',Zini,'j ohms'\n",
"print 'The sending-end current is'\n",
"print 'mod =',absIo*10**3,'mA, angle =',round(angIo,2),'degrees'\n",
"print 'The current at the middle is'\n",
"print 'mod =',absIm*10**3,'mA, angle =',round(angIm,0),'degrees'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The input impedance = 60.25 + 38.79 j ohms\n",
"The sending-end current is\n",
"mod = 93.03 mA, angle = -21.15 degrees\n",
"The current at the middle is\n",
"mod = 34.92 mA, angle = 281.0 degrees\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.4, Page number: 499"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"l=30 #length in m\n",
"Zo=50 #in ohms\n",
"f=2*10**6 #frequency in Hz\n",
"Zl=60+40j #load impedence in ohms\n",
"u=0.6*3*10**8 #in m/s\n",
"w=2*scipy.pi*f #omega in rad/sec\n",
"\n",
"#Calculations\n",
"\n",
"T=(Zl-Zo)/(Zl+Zo) #reflection coefficient\n",
"ang=scipy.arctan(T.imag/T.real)*180/scipy.pi #argument of T is degrees\n",
"s=(1+abs(T))/(1-abs(T)) #standing wave ratio \n",
"B=w/u #propogation vector in m^-1\n",
"Zin=Zo*(Zl+Zo*scipy.tan(B*l)*1j)/(Zo+Zl*scipy.tan(B*l)*1j)\n",
"Zinr=round(Zin.real,2) #real part of Zin rounded to 2 decimal places\n",
"Zini=round(Zin.imag,2) #imaginary part of Zin rounded to 2 decimal places\n",
"\n",
"#Results\n",
"\n",
"print 'The reflection coefficient is'\n",
"print 'mod =',round(abs(T),4),'angle =',round(ang,0),'degrees'\n",
"print 'The standing wave ratio s =',round(s,3)\n",
"print 'The input impedance =',Zinr,'+',Zini,'j ohms'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The reflection coefficient is\n",
"mod = 0.3523 angle = 56.0 degrees\n",
"The standing wave ratio s = 2.088\n",
"The input impedance = 23.97 + 1.35 j ohms\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.5, Page number: 501"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"Zl=100+150j #load impedance in ohms\n",
"Zo=75 #impedance of line in ohms\n",
"B=2*scipy.pi \n",
"\n",
"#Calculations\n",
"\n",
"T=(Zl-Zo)/(Zl+Zo)\n",
"angT=scipy.arctan(T.imag/T.real)*180/scipy.pi \n",
"s=(1+abs(T))/(1-abs(T))\n",
"Yl=(1/Zl)*10**3 #admittance in mS\n",
"Ylr=round(Yl.real,2) #real part of Yl rounded to 2 decimal places\n",
"Yli=round(Yl.imag,2) #imaginary part of Yl rounded to 2 decimal places\n",
"l1=0.4\n",
"Zin=Zo*(Zl+Zo*scipy.tan(B*l1)*1j)/(Zo+Zl*scipy.tan(B*l1)*1j)\n",
"Zinr=round(Zin.real,2) #real part of Zin rounded to 2 decimal places\n",
"Zini=round(Zin.imag,2) #imaginary part of Zin rounded to 2 decimal places\n",
"\n",
"\n",
"#Results\n",
"\n",
"print 'r is mod =',round(abs(T),3),',angle =',round(angT,0),'degrees'\n",
"print 's =',round(s,2)\n",
"print 'The load admittance Yl =',Ylr,'+',Yli,'j mS'\n",
"print 'Zin at O.4 lambda from the load =',Zinr,'+',Zini,'j ohms'\n",
"#part (e) and (f) don't require computations"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"r is mod = 0.66 ,angle = 40.0 degrees\n",
"s = 4.88\n",
"The load admittance Yl = 3.08 + -4.62 j mS\n",
"Zin at O.4 lambda from the load = 21.96 + 47.61 j ohms\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.6, Page number: 509"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"s=2\n",
"l1=11 \n",
"l2=19\n",
"ma=24 \n",
"mi=16\n",
"u=3*10**8 #speed of wave in m/s\n",
"Zo=50 #in ohms\n",
"\n",
"#Calculations\n",
"\n",
"l=(l2-l1)*2 #lambda in cm\n",
"f=(u/l)*10**-7 #frequency in GHz\n",
"L=(24-19)/l #Let us assume load is at 24cm\n",
"zl=1.4+0.75j # by smith chart\n",
"Zl=Zo*zl #ZL in ohms\n",
"\n",
"#Results\n",
"\n",
"print 'lambda =',l,'cm'\n",
"print 'f =',f,'GHz'\n",
"print 'ZL =',Zl,'ohms'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"lambda = 16 cm\n",
"f = 1.875 GHz\n",
"ZL = (70+37.5j) ohms\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.7, Page number: 510"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"Zo=100 #in ohms\n",
"Zl=40+30j #in ohms\n",
"\n",
"#Calculations\n",
"\n",
"Yo=1.0/Zo #in S\n",
"yl=Zo/Zl\n",
"ys1=1.04j #By smith chart\n",
"ys2=-1.04j #By smith chart\n",
"Ys1=Yo*ys1 #in S\n",
"Ys2=Yo*ys2 #in S\n",
"la=round(0.5-(62-(-39))/720.0,2) #in units of lambda\n",
"lb=round((62-39)/720.0,3) #in units of lambda\n",
"da=round(88/720.0,4) #in units of lambda\n",
"db=round(272/720.0,4) #in units of lambda\n",
"\n",
"#Results\n",
"\n",
"print 'The required stub admittance values in mS are',Ys1*1000,'and',Ys2*1000\n",
"print 'The distance between stub and antenna at A =',la,'in units of lambda'\n",
"print 'The distance between stub and antenna at B =',lb,'in units of lambda'\n",
"print 'The stub lengths =',da,'and',db,'in units of lambda'\n",
"print 'Part (d) is done using smith chart'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The required stub admittance values in mS are 10.4j and -10.4j\n",
"The distance between stub and antenna at A = 0.36 in units of lambda\n",
"The distance between stub and antenna at B = 0.032 in units of lambda\n",
"The stub lengths = 0.1222 and 0.3778 in units of lambda\n",
"Part (d) is done using smith chart\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Example 11.9, Page number: 521"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import matplotlib.pyplot as plt\n",
"\n",
"#Variable Declarataion\n",
"\n",
"zo=75 #in ohms\n",
"zg=25 #in ohms\n",
"zl=100 #in ohms\n",
"vg=4 #in volts\n",
"l=60 #in m\n",
"c=3*10**8 #speed of light in m/s\n",
"u=0.1*c #in m/s\n",
"\n",
"#Calculations\n",
"\n",
"gammag=(zg-zo)/(zg+zo)\n",
"gammal=(zl-zo)/(zl+zo)\n",
"Vo=zo*vg/(zo+zg) #in V\n",
"t1=l/u #in micro sec\n",
"Io=vg/(zo+zg) #in mA\n",
"\n",
"#Results\n",
"\n",
"t1=[0,4,5,8,9,12,13,15]\n",
"I1=[40,31.43,-8.571,-7.959,0.6123,0.5685,-0.0438,-0.438]\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"ax.step(t1,I1,where='post')\n",
"ax.set_xlabel('Time (micro s)')\n",
"ax.set_ylabel(r'I(0,t) in mA')\n",
"plt.show()\n",
"\n",
"t2=[0,2,6,7,10,11,14]\n",
"I2=[0,34.3,31.9,-2.46,-2.28,0.176,0.176]\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"ax.step(t2,I2,where='post')\n",
"ax.set_xlabel('Time (micro s)')\n",
"ax.set_ylabel(r'I(l,t) in mA')\n",
"plt.show()\n",
"\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nnv/85z8qKyvT0KFDFRsbq/3792v48OE6ePCg09HqSU5O1i233KIuXbooLS1NpaWljY7G201BnJx3\n3rhxo8rKyvTuu+8qKSnJ4VR2xhhlZmZq8ODBmj9/vtNxrBYtWqR9+/Zpz549WrFiha6++mo9//zz\nTseyGjBggAoKCvTDDz/o7bff1rhx45yOVM+YMWO0bds2HT16VMeOHdOaNWs0YcIEp2M1KCkpSXl5\neaqqqlJeXp5r/9h65513lJ2drVWrVqlz585Ox6nnyiuv1Ndff609e/Zoz549ioqKUlFRkXr27Ol0\ntHpSUlK0Zs0aGWNUUFCgfv36Nf6ctvz589YTCASM1+s1/fr1M4sXL3Y6ToM2bdpkPB6PGTp0qElI\nSDAJCQlmzZo1TsdqUCAQcPUqpk8//dQkJSWZoUOHmvvuu89UVFQ4HcnqueeeM6mpqWbEiBFm4cKF\npra21ulIxhhjpk6dai677DITERFhoqKiTF5eniuXuZ7M+aMf/chERUWZZ5991vTv399ER0eH/x3N\nmTPHFRlPfS5PFRsb64pVTLacx48fN7NnzzZer9dMmjTJBIPBRvfT7j5yFADQNtrNFBMAoG1REAAA\nKwoCAGBFQQAArCgItHtHjhyRz+eTz+fTZZddpqioKPl8PnXr1u2M3gzUFM8++6xycnLO6jGjR49u\nlSyne/XVV5Wdnd0mx8K5jVVMOKc89NBD6tatm+69995WPc6oUaO0du3aVvu8ktraWp133nlNeuz3\n33+vUaNGqbCwsN4nMgJngxEEzjkn/+YJBALha/dkZWVp9uzZSk1NVb9+/bRu3Tr9/ve/1+DBgzVn\nzpzwYz799NPwdZ/uuusuHTlypN7+CwoKdPnll4fLwe/3a+HChUpISJDP59Pu3bs1efJkDR48WLm5\nueHHde3aNfz1ihUrNH78eA0dOlQPPPBAeD+/+93vNGLECC1ZskQffvihpkyZosTERD3++OM6fvx4\nvSwvvfSSUlJSNHToUGVkZEiSIiIi5PP5mvSpjsCpHPnAIMAJBQUF2rRpk4qKinTDDTfoqaee0vbt\n2zV+/HgVFRVp+PDh+vWvf62//vWvuuKKK7R06VI988wz+u1vf1tnP8XFxYqLiwvf93g8+vrrr1VU\nVKT/+7//08iRI1VYWKhevXopPj5es2fPlsfjCf81X1ZWpj/96U9avXq1+vTpo2+//Ta8nz179mjL\nli2KiIjQ8OHDtXTpUg0ZMkQZGRmKj4/XddddVyfLww8/rKKiIl1wwQUqLy8Pb4+Li1NRUZGr380N\n92MEgQ7B4/HoxhtvVLdu3ZSSkqJjx45p6tSp8ng8SkpKUn5+vg4dOqRNmzbpxhtvlM/nU25urv75\nz3/W29fu3bsVExNTZ1tGRoY6deqklJQUDRo0SP369VPXrl11xRVX1Ltq5sqVKzV16lT16dNHknTR\nRReFv3frrbcqIiJCX375pWpqapSUlKQuXbrotttu06pVq+plGTFihDIyMvSPf/yjzgUh+/Xrp08/\n/bQ5TxnACAIdx8nreUVERCgyMlKRkZHh+99//71qa2t1ySWXqLi4uNF9nX7q7uSLfERERJ0X/IiI\nCB07dqzRx590sjRO/35DP798+XJt2bJFy5cvV3Z2dvhzHX744QfOP6DZGEGgQ2hsLYYxRr1791Zs\nbKxee+01GWNUU1NjvWb+gAEDVFZW1uQskydP1ooVK/TFF19Ikr755pt6OS+//HJFRkYqGAyqqqpK\nK1asqHdVYGOMysrKNGrUKP35z3/WV199FS6jzz77TAMHDmxyRkCiIHAOOvmX86nz/qd+ferPnH5/\n6dKl+uCDD8InnPPz8+vtPyEhoc6l50/fT0N/uZ/cHhsbqwceeEDTpk1TQkKCHn/8cWuu3NxcZWdn\nKzU1VaNHj653Fdva2lpNnz5dQ4YM0TXXXKOsrKzwqKi0tFQ+n8+aAzhTLHMFmiAlJUVr167VhRde\n6HSUeo4dO6ZRo0Zp27ZtTDOhWRhBAE3wy1/+Ui+++KLTMazefPNNZWRkUA5oNkYQAAArRhAAACsK\nAgBgRUEAAKwoCACAFQUBALCiIAAAVv8PIrVuLX2NSRcAAAAASUVORK5CYII=\n",
"text": [
""
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nOaYrgsLCQoWHhzfd98fN+wvKy8tVWlqqKVOmGB2lw37/+98rOztbvXqZ7r9Gu7788kudPXtW6enp\ncjqdevLJJ3X27FmjY3VY3759tXr1aoWFhSkoKEjTpk3zq/87F1z8NxweHq6CggKDE3Xdiy++6He7\nSDds2KDg4GBNmjSpw8/xv792P+HxePTzn/9cK1as0I9+9COj43TIv//9bw0dOlQOh8MvtwbOnj2r\ngwcP6vbbb5fb7VZpaalef/11o2N12PHjx5Wenq7PPvtMFRUV2rVrl9555x2jY3WaP/7facnjjz8u\nu92uefPmGR2lw2pra7Vs2TItXbq06bGOjIfpiiA2Nlb79+9vul9aWqq4uDgDE3XeuXPndPvtt+ue\ne+5RcnKy0XE6bOfOndq4caNGjRqllJQU/ec//9G9995rdKwOGzNmjMaPH6+kpCT17dtXKSkp2rRp\nk9GxOqygoEBxcXEaM2aMrr32Ws2bN0/btm0zOlanxcbGqqysTJJUVlam2NhYgxN13t///ndt2bJF\na9euNTpKp/z3v/9VRUWFJk+erFGjRunLL79UTEyMjh071ubzTFcEF/bpbtu2TRUVFdq6daucTqfB\nqTrO6/UqLS1NEyZM8IuzPi62bNkyHT16VIcPH1ZeXp5uuukmvfrqq0bH6pSxY8cqPz9f58+f1zvv\nvKObb77Z6EgdNn36dBUVFenUqVOqr6/Xpk2bNGvWLKNjdZrT6VROTo7q6uqUk5Pjd2/kNm/erOzs\nbG3cuFF9+vQxOk6nTJw4UVVVVTp8+LAOHz6s4OBgFRcXa+jQoW0/0WtCbrfbGx4e7h09erT3mWee\nMTpOp2zfvt1rs9m8kydP9kZHR3ujo6O9mzZtMjpWp7ndbm9SUpLRMTrtwIEDXqfT6Z08ebL3oYce\n8tbU1BgdqVNeeeUVb0JCgvfGG2/0LlmyxNvY2Gh0pDbdeeed3uHDh3sDAgK8wcHB3pycHG91dbV3\n9uzZ3pEjR3qTk5O9Ho/H6JitupC/d+/e3uDgYO/LL7/sHTNmjDckJKTp7zc9Pd3omK1q6fd/sVGj\nRnlPnjzZ7nIMn2ICAGAs0+0aAgD0LIoAACyOIgAAi6MIAMDiKAL4hZMnT8rhcMjhcGj48OEKDg6W\nw+GQ3W7Xb37zG5+85ssvv6zVq1d36jnTpk3zSZYfev3115Wdnd0jr4UrH2cNwe8sXbpUdrtdmZmZ\nPn2dqVOnasuWLZd8jOrl0tjYqKuuuqpLz/3uu+80depUFRYW+uXkgDAXtgjgly68f3G73U1zwWRl\nZen+++9XQkKCRo8erffee09/+tOfNGHCBKWnpzc958CBA03zET3wwAM6efLkJcvPz8/X9ddf31QC\nLpdLS5YsUXR0tBwOh8rLy3XHHXdowoQJzWbX7N+/f9PtvLw8zZw5U5MnT9YjjzzStJw//vGPuvHG\nG/Xss8/qk08+0bx58xQbG6vly5eroaHhkiy5ubmKj4/X5MmTlZKSIkkKCAiQw+HQ1q1bL8evExZ3\ntdEBgMspPz9f27dvV3FxsX7605/qb3/7m/bt26eZM2equLhYMTExWrx4sZ577jmNHDlSzz//vF56\n6SU9/PDDzZZTUlLSbAprm82mqqoqFRcX64knntCUKVNUWFioYcOGKTIyUvfff79sNlvTu/OKigr9\n9a9/1bvvvqsRI0bo9OnTTcs5fPiwdu7cqYCAAMXExOj555/XpEmTlJKSosjISP3kJz9pluXxxx9X\ncXGx+vXrp+rq6qbHIyIiVFxc7JdXH8Nc2CLAFcNms2n27Nmy2+2Kj49XfX297rzzTtlsNjmdTu3a\ntUvHjx/X9u3bNXv2bDkcDq1Zs6bFz8suLy9XWFhYs8dSUlLUq1cvxcfHKyoqSqNHj1b//v01cuRI\nffbZZ81+dv369brzzjs1YsQISdI111zT9L1f/OIXCggI0P/+9z+dO3dOTqdTffv21V133aWNGzde\nkuXGG29USkqK3njjjWYTGI4ePVoHDhzozq8MkMQWAa4wF+aqCggIUGBgoAIDA5vuf/fdd2psbNS1\n116rkpKSdpf1w8NnF1bmAQEBzVbsAQEBqq+vb/f5F1wohx9+v7WfX7t2rXbu3Km1a9cqOzu7aX7/\n8+fPc3wAlwVbBLhitHfeg9frVVBQkEaNGqU333xTXq9X586du+TdvPT95HUVFRVdznLHHXcoLy9P\nX331lSTpm2++uSTn9ddfr8DAQBUUFKiurk55eXmXzFbr9XpVUVGhqVOn6umnn1ZlZWVT6Xz++eca\nP358lzMCF1AE8EsX3glfvF/+4tsX/8wP7z///PP64IMPmg787tq165LlR0dHN5sO/YfLae2d+IXH\nR40apUceeUR33323oqOjtXz58hZzrVmzRtnZ2UpISNC0adMumS21sbFR99xzjyZNmqQf//jHysrK\natrK2b9/vxwOR4s5gM7g9FGgFfHx8dqyZYsGDBhgdJRL1NfXa+rUqSoqKmL3ELqNLQKgFffdd59e\ne+01o2O0aMOGDUpJSaEEcFmwRQAAFscWAQBYHEUAABZHEQCAxVEEAGBxFAEAWBxFAAAW9/8AjjI6\n8BSLXDoAAAAASUVORK5CYII=\n",
"text": [
""
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.10, Page number: 527"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"Er=3.8 #relative permittivity\n",
"c=3*10**8 #speed of wave in m/s\n",
"r=4.5 #ratio of line width to substrate thickness\n",
"\n",
"#Calculations\n",
"\n",
"Eeff=((Er+1)/2)+((Er-1)/(2*(1+12/r)**0.5))\n",
"Zo=(120*scipy.pi)/((r+1.393+(0.667*scipy.log(r+1.444)))*((Eeff)**0.5))\n",
"f=10**10\n",
"l=c/(f*scipy.sqrt(Eeff))\n",
"\n",
"#Results\n",
"\n",
"print 'The effective relative permittivity of the substrate =',round(Eeff,3)\n",
"print 'The characteristic impedance of the line =',round(Zo,2),'ohms'\n",
"print 'The wavelength of the line at 10 GHz =',round(l*1000,2),'mm'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The effective relative permittivity of the substrate = 3.131\n",
"The characteristic impedance of the line = 30.08 ohms\n",
"The wavelength of the line at 10 GHz = 16.95 mm\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 11.11, Page number: 527"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"h=1 #in mm\n",
"w=0.8 #in mm\n",
"Er=6.6 #relative permittivity\n",
"P=scipy.arctan(0.0001) \n",
"c=5.8*10**7 #conductivity in S/m\n",
"f=10**10 #frequency in Hz\n",
"mu=4*scipy.pi*10**-7 #permeability of free space\n",
"C=3*10**8 #speed of wave in m/s\n",
"r=w/h\n",
"\n",
"#Calculations\n",
"\n",
"Ee=((Er+1)/2.0)+((Er-1)/(2.0*(1+12/r)**0.5))\n",
"Zo=(120.0*scipy.pi)/((r+1.393+(0.667*scipy.log(r+1.444)))*((Ee)**0.5))\n",
"Rs=scipy.sqrt((scipy.pi*f*mu)/c)\n",
"ac=8.686*Rs/(w*(10**-3)*Zo)\n",
"l=C/(f*(Ee)**0.5)\n",
"ad=27.3*(Ee-1)*Er*scipy.tan(P)/((Er-1)*Ee*l)\n",
"\n",
"#Results\n",
"\n",
"print 'attenuation due to conduction loss =',round(ac,2),'dB/m'\n",
"print 'attenuation due to dielectric loss =',round(ad,3),'dB/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"attenuation due to conduction loss = 4.35 dB/m\n",
"attenuation due to dielectric loss = 0.177 dB/m\n"
]
}
],
"prompt_number": 9
}
],
"metadata": {}
}
]
}PK
IA8. 8. - Elements of Electromagnetics/chapter_12.ipynb{
"metadata": {
"name": "",
"signature": "sha256:7e2f43e6e0f517c2aac74f69be1d132b3ab84b5c247c20e556eb69dbe9aedae5"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 12: Waveguides"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 12.1, Page number: 557"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from __future__ import division\n",
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"a=2.5*10**-2 #in m\n",
"b=1*10**-2 #in m\n",
"c=0\n",
"Ur=1 #relative permeability\n",
"Er=4 #relative permittivity\n",
"C=3*10**8 #speed of wave in m/s\n",
"fc=0\n",
"m=0\n",
"n=0\n",
"\n",
"#Calculations\n",
"\n",
"while (fc*10**-9 < 15.1) :\n",
" fc = (C/(4*a))*scipy.sqrt(m**2+(a*n/b)**2)\n",
" if (( fc*10**-9) < 15.1) :\n",
" n=n+1\n",
" else:\n",
" print 'Maximum value of n is ',n-1\n",
"\n",
"nmax=n-1 \n",
"fc=0\n",
"m=0\n",
"n=0\n",
"while(fc*10**-9 < 15.1):\n",
" fc =(C/(4*a))*scipy.sqrt(m**2+(a*n/b)**2)\n",
" if((fc*10**-9) < 15.1):\n",
" m=m+1\n",
" else:\n",
" print 'Maximum value of m is ',m-1 \n",
"\n",
"mmax=m-1\n",
"m=0\n",
"while(mExample 12.3, Page number: 561"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"a=1.5*10**-2 #in m\n",
"b=0.8*10**-2 #in m\n",
"c=0\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"Ur=1 #relative permeability\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space\n",
"Er=4 #relative permittivity\n",
"C=3*10**8 #speed of light in m/s\n",
"w=scipy.pi*10**11 #omega in rad/s\n",
"m=1\n",
"n=3\n",
"u=C/2 #speed of wave in m/s\n",
"\n",
"#Calculations\n",
"\n",
"f=w/(2*scipy.pi) #frequency of wave in Hz\n",
"fc=u*((m*m)/(a*a)+(n*n)/(b*b))**0.5/2 #cutoff frequency in Hz\n",
"B=w*scipy.sqrt(1-(fc/f)**2)/u #phase constant in rad/m\n",
"eta=377/scipy.sqrt(Er)*scipy.sqrt(1-(fc/f)**2) #intrinsic wave impedance in ohm\n",
"\n",
"#Results\n",
"\n",
"print 'The cutoff frequency =',round(fc*10**-9,2),'GHz'\n",
"print 'The phase constant =',round(B,2),'rad/m'\n",
"print 'The propagation constant =',round(B,2),'j /m'\n",
"print 'The intrinsic wave impedance =',round(eta,1),'ohms'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The cutoff frequency = 28.57 GHz\n",
"The phase constant = 1718.93 rad/m\n",
"The propagation constant = 1718.93 j /m\n",
"The intrinsic wave impedance = 154.7 ohms\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 12.4, Page number: 565"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"a=8.636*10**-2 #in m\n",
"b=4.318*10**-2 #in m\n",
"f=4*10**9 #in Hz\n",
"u=3*10**8 #speed of wave in m/s\n",
"\n",
"#Calculations\n",
"\n",
"fc=u/(2*a)\n",
"if(f>fc):\n",
" print 'As f>fc, TE10 mode will propogate'\n",
"else:\n",
" print 'It will not propogate'\n",
"\n",
"Up=u/scipy.sqrt(1-(fc/f)**2) #phase velocity in m/s\n",
"Ug=u*u/Up #group velocity in m/s\n",
"\n",
"#Results\n",
"\n",
"print 'Phase velocity =',round(Up*10**-6,0),'Mm/s'\n",
"print 'Group velocity =',round(Ug*10**-6,1),'Mm/s'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"As f>fc, TE10 mode will propogate\n",
"Phase velocity = 333.0 Mm/s\n",
"Group velocity = 270.2 Mm/s\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 12.5, Page number: 570"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"f=10*10**9 #frequency of operation in Hz\n",
"a=4*10**-2 #in m\n",
"b=2*10**-2 #in m\n",
"u=3*10**8 #velocity in m/s\n",
"Pavg=2*10**-3 #average power in W\n",
"\n",
"#Calculations\n",
"\n",
"fc=u/(2*a) #cutoff frequency in Hz\n",
"n=377/scipy.sqrt(1-(fc/f)**2) #intrinsic wave impedance in ohms\n",
"E=scipy.sqrt(4*n*Pavg/(a*b)) #peak value of electric field in V/m\n",
"\n",
"#Result\n",
"\n",
"print 'Peak value of electric field =',round(E,2),'V/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Peak value of electric field = 63.77 V/m\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 12.6, Page number: 571"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable declaration\n",
"\n",
"cc=5.8*10**7 #in S/m\n",
"f=4.8*10**9 #in Hz\n",
"c=10**-17 #in S/m\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"Eo=10**-9/(36*scipy.pi) #permittivity of free space\n",
"Er=2.55 #relative permittivity\n",
"z=60*10**-2 #in m\n",
"l=4.2*10**-2 #in m\n",
"b=2.6*10**-2 #in m\n",
"P=1.2*10**3 #in W\n",
"\n",
"#Calculations\n",
"\n",
"n=377/scipy.sqrt(Er)\n",
"u=3*10**8/scipy.sqrt(Er)\n",
"fc=u/(2*l)\n",
"ad=c*n/(2*scipy.sqrt(1-(fc/f)**2))\n",
"Rs=scipy.sqrt(scipy.pi*f*Uo/cc)\n",
"ac=2*Rs*(0.5+(b/l)*(fc/f)**2)/(b*n*scipy.sqrt(1-(fc/f)**2))\n",
"a=ac\n",
"Pd=P*(scipy.e**(2*a*z)-1)\n",
"\n",
"#Result\n",
"\n",
"print 'power dissipated =',round(Pd,3),'W'\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"power dissipated = 6.096 W\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 12.8, Page number: 579"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"\n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
" \n",
"a=5*10**-2 #in m\n",
"b=4*10**-2 #in m\n",
"c=10*10**-2 #in m\n",
"C=5.8*10**7 #in mhos/m\n",
"Uo=4*scipy.pi*10**-7 #permeability of free space\n",
"u=3*10**8 #speed of wave in m/s\n",
"\n",
"#Calculations\n",
"\n",
"def f(m,n,p):\n",
" fr=scipy.sqrt((m/a)**2+(n/b)**2+(p/c)**2)*u/2 #resonant frequency in Hz\n",
" print round(fr*10**-9,3)\n",
" \n",
"\n",
"f101=3.35*10**9\n",
"d=scipy.sqrt(1/(scipy.pi*f101*Uo*C))\n",
"Q=(a*a+c*c)*a*b*c/(d*(2*b*(a**3+c**3)+a*c*(a*a+c*c))) #quality factor\n",
"\n",
"#Results\n",
"\n",
"print 'Thus the five lowest order modes in ascending order are '\n",
"print 'TE101, frequency in GHz ='\n",
"f(1,0,1)\n",
"print 'TE011, frequency in GHz ='\n",
"f(0,1,1)\n",
"print 'TE102, frequency in GHz ='\n",
"f(1,0,2)\n",
"print 'TE110, frequency in GHz ='\n",
"f(1,1,0)\n",
"print 'TE111 or TM111, frequency in GHz ='\n",
"f(1,1,1)\n",
"print 'Quality factor =',round(Q,0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Thus the five lowest order modes in ascending order are \n",
"TE101, frequency in GHz =\n",
"3.354\n",
"TE011, frequency in GHz =\n",
"4.039\n",
"TE102, frequency in GHz =\n",
"4.243\n",
"TE110, frequency in GHz =\n",
"4.802\n",
"TE111 or TM111, frequency in GHz =\n",
"5.031\n",
"Quality factor = 14358.0\n"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}PK
I4_V* V* - Elements of Electromagnetics/chapter_13.ipynb{
"metadata": {
"name": "",
"signature": "sha256:5168da214feed4bdafc5432918593870d207c98c8ad5626a85639886ab07fdcb"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 13: Antennas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.1, Page number: 601"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"H=5*10**-6 #magnetic field strentgh in A/m\n",
"theta=scipy.pi/2 \n",
"r=2*10**3 #distance in m\n",
"Bdl=2*scipy.pi/25\n",
"N=10 #number of turns\n",
"\n",
"#Calculations\n",
"\n",
"Ia=4*scipy.pi*r*H/(Bdl*scipy.sin(theta)) #current for part (a) in A\n",
"Pa=40*scipy.pi**2*(1/25.0)**2*Ia**2 #power for part (a) in W\n",
"def pow(Io,Rrad):\n",
" P=0.5*Io**2*Rrad\n",
" print round(P*10**3,0),'mW'\n",
"\n",
"denom=scipy.cos(scipy.pi*scipy.cos(theta)/2) \n",
"Ib=H*2*scipy.pi*r*scipy.sin(theta)/denom #current for part (b) in A\n",
"Rradb=73 #wave impedance in ohms for (b)\n",
"Ic=Ib #current for part (c) in A\n",
"Rradc=36.56 #wave impedance in ohms for (c)\n",
"Id=H*r*400/(10*scipy.pi**2) #current for part (d) in A\n",
"Rradd=320*scipy.pi**6*N**2/20**4 #wave impedance in ohms for (d)\n",
"\n",
"#Results\n",
"\n",
"print 'The power transmitted in mW if antenna is ;'\n",
"print '(a) A Hertzian dipole of length lambda/25 =','\\n',round(Pa*10**3,0),'mW'\n",
"print '(b) A half-wave dipole ='\n",
"pow(Ib,Rradb)\n",
"print '(c) A quarter-wave monopole ='\n",
"pow(Ic,Rradc)\n",
"print '(d) A 10-turn loop antenna of radius Po = lambda/20 ='\n",
"pow(Id,Rradd)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The power transmitted in mW if antenna is ;\n",
"(a) A Hertzian dipole of length lambda/25 = \n",
"158.0 mW\n",
"(b) A half-wave dipole =\n",
"144.0 mW\n",
"(c) A quarter-wave monopole =\n",
"72.0 mW\n",
"(d) A 10-turn loop antenna of radius Po = lambda/20 =\n",
"158.0 mW\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.2, Page number: 603"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"\n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"c=3*10**8 #speed of wave in m/s\n",
"f=50*10**6 #frequency in Hz\n",
"E=10*10**-6 #field strength in V/m\n",
"theta=scipy.pi/2\n",
"r=500*10**3 #distance in m\n",
"eta=120*scipy.pi #wave impedance in ohms\n",
"Rrad=73 #in ohms\n",
"Zo=75 #in ohms\n",
"Zl=73+42.5j\n",
"\n",
"#Calculations\n",
"\n",
"l=c/(2*f)\n",
"I=E*2*r*scipy.pi*sin(theta)/(eta*(cos((scipy.pi/2)*cos(theta))))\n",
"P=0.5*I**2*Rrad\n",
"T=(Zl-Zo)/(Zl+Zo)\n",
"s=(1+abs(T))/(1-abs(T))\n",
"\n",
"#Results\n",
"\n",
"print 'The length of the dipole =',l,'m'\n",
"print 'The current that must be fed to the antenna =',round(I*10**3,2),'mA'\n",
"print 'The average power radiated by the antenna =',round(P*10**3,1),'mW'\n",
"print 'The standing wave ratio =',round(s,4)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The length of the dipole = 3 m\n",
"The current that must be fed to the antenna = 83.33 mA\n",
"The average power radiated by the antenna = 253.5 mW\n",
"The standing wave ratio = 1.7636\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.4, Page number: 610"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"G=5\n",
"r=10*10**3 #in m\n",
"P=20*10**3 #power in W\n",
"n=120*scipy.pi #wave impedance in ohms\n",
"\n",
"#Calculations\n",
"\n",
"Gd=10**(G/10.0)\n",
"E=scipy.sqrt(n*Gd*P/(2*scipy.pi*r*r)) #field intensity in V/m\n",
"\n",
"#Result\n",
"\n",
"print 'electric field intensity =',round(E,4),'V/m'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"electric field intensity = 0.1948 V/m\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.5, Page number: 611"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import scipy.integrate\n",
"\n",
"#Variable Declaration\n",
"\n",
"Umax=2.0\n",
"\n",
"def U(phi,theta):\n",
" s=2*scipy.sin(theta)*(scipy.sin(phi))**3/(4.0*scipy.pi)\n",
" return s\n",
" \n",
"#Calculations\n",
"\n",
"if __name__ == '__main__':\n",
" \n",
" Uav,er=scipy.integrate.dblquad(lambda theta,phi:U(phi,theta)*scipy.sin(theta), \n",
" 0, scipy.pi, lambda theta: 0, lambda theta: scipy.pi)\n",
"\n",
"D=Umax/Uav #Directivity\n",
"\n",
"#Result\n",
"\n",
"print 'directivity of the antenna =',D"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"directivity of the antenna = 6.0\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.8, Page number: 624"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"c=3*10**8 #speed of wave in m/s\n",
"f=30*10**6 #frequency in Hz\n",
"E=2*10**-3 #field strength in V/m\n",
"n=120*scipy.pi\n",
"R=73 \n",
"\n",
"#Calculations\n",
"\n",
"l=c/f #wavelength in m\n",
"Gdmax=round(n/(scipy.pi*R),2) \n",
"Amax=(l**2/(4*scipy.pi))*Gdmax #maximum effective area in m^2\n",
"Pr=(E*E*Amax)/(2*n) #power received in W\n",
"\n",
"#Results\n",
"\n",
"print 'maximum effective area =',round(Amax,2),'m^2'\n",
"print 'power received =',round(Pr*10**9,2),'nW'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"maximum effective area = 13.05 m^2\n",
"power received = 69.24 nW\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.9, Page number: 624"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"Gt=25 #in dB\n",
"Gr=18 #in dB\n",
"r=200 #in units of lambda\n",
"Pr=5*10**-3 #power received in W\n",
"\n",
"#Calculations\n",
"\n",
"Gdt=10**(Gt/10.0) \n",
"Gdr=10**(Gr/10.0)\n",
"Pt=Pr*(4*scipy.pi*r)**2/(Gdr*Gdt)\n",
"\n",
"#Result\n",
"\n",
"print 'minimum transmitted power =',round(Pt,3),'W'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"minimum transmitted power = 1.583 W\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 13.10, Page number: 627"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"c=3*(10)**8 #speed of wave in m/s\n",
"f=3.0*(10)**9 #frequency in Hz\n",
"Aet=9 #effective area in m^2\n",
"r1=1.852*(10)**5 #distance in m\n",
"r2=4*r1 #distance in m\n",
"r3=5.556*10**5 #distance in m\n",
"Pr=200*(10)**3 #in W\n",
"a=20 #target area in m^2\n",
"\n",
"#Calculations\n",
"\n",
"l=c/f #wavelength in m\n",
"Gdt=4*scipy.pi*Aet/(l*l)\n",
"P1=Gdt*Pr/(4*scipy.pi*r1*r1) #power at 100 nmiles in W/m^2\n",
"P2=Gdt*Pr/(4*scipy.pi*r2*r2) #power at 400 nmiles in W/m^2\n",
"Pr=Aet*a*Gdt*Pr/(4*scipy.pi*r3*r3)**2 #power of reflected signal in W\n",
"\n",
"#Results\n",
"\n",
"print 'Signal power density at 100 nautical miles =',round(P1*1000,3),'mW/m^2'\n",
"print 'Signal power density at 400 nautical miles =',round(P2*1000,3),'mW/m^2'\n",
"print 'Power of reflected signal =',round(Pr*10**12,5),'pico W'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Signal power density at 100 nautical miles = 5.248 mW/m^2\n",
"Signal power density at 400 nautical miles = 0.328 mW/m^2\n",
"Power of reflected signal = 0.02706 pico W\n"
]
}
],
"prompt_number": 8
}
],
"metadata": {}
}
]
}PK
I
_d d - Elements of Electromagnetics/chapter_14.ipynb{
"metadata": {
"name": "",
"signature": "sha256:8b3ccd88c7aadd311b6269c4809d3b632a222a912e8231c54428ad90a16f0d12"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chapter 14: Modern Topics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 14.1, Page number: 643"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"import cmath\n",
"from numpy import *\n",
"\n",
"#Variable Declaration\n",
"\n",
"S11=0.85*scipy.e**(-30j*scipy.pi/180)\n",
"S12=0.07*scipy.e**(56j*scipy.pi/180)\n",
"S21=1.68*scipy.e**(120j*scipy.pi/180)\n",
"S22=0.85*scipy.e**(-40j*scipy.pi/180)\n",
"Zl=75 \n",
"Zo=75\n",
"\n",
"#Calculations\n",
"\n",
"Tl=(Zl-Zo)/(Zl+Zo)\n",
"Ti=S11+(S12*S21*Tl)/(1-S22*Tl) #reflection coefficient\n",
"Timod=abs(Ti) #mod of Ti\n",
"Tiang=scipy.arctan(Ti.imag/Ti.real)*180/scipy.pi #argument of Ti in degrees\n",
"\n",
"#Results\n",
"\n",
"print 'input reflection coefficient =',Timod,'/',Tiang,'degrees'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"input reflection coefficient = 0.85 / -30.0 degrees\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 14.2, Page number: 654"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"d=80*(10)**-6 #diameter in m\n",
"n1=1.62 #core refractive index\n",
"NA=0.21 #numerical aperture\n",
"L=8*(10)**-7 #wavelength in m\n",
"\n",
"#Calculations\n",
"\n",
"P=scipy.arcsin(NA)*180/scipy.pi #acceptance angle\n",
"n2=scipy.sqrt(n1**2-NA**2) #refractive index\n",
"V=(scipy.pi*d/L)*scipy.sqrt(n1**2-n2**2)\n",
"N=V**2/2 #number of modes\n",
"\n",
"#Results\n",
"\n",
"print 'Acceptance angle =',round(P,2),'degrees'\n",
"print 'Refractive index =',round(n2,3)\n",
"print 'No. of modes =',round(N,0)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Acceptance angle = 12.12 degrees\n",
"Refractive index = 1.606\n",
"No. of modes = 2176.0\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example 14.3, Page number: 655"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
" \n",
"import scipy\n",
"\n",
"#Variable Declaration\n",
"\n",
"a=0.25 #in dB/km\n",
"P=1-0.4 #strength of pulse im %\n",
"\n",
"#Calculation\n",
"\n",
"l=(10/a)*scipy.log(1/P)/scipy.log(10) #distance in km\n",
"\n",
"#Result\n",
"\n",
"print 'distance through which the power is reduced by 40% =',round(l,3),'km'"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"distance through which the power is reduced by 40% = 8.874 km\n"
]
}
],
"prompt_number": 3
}
],
"metadata": {}
}
]
}PK
IUf$ $ , Elements of Electromagnetics/chapter_2.ipynbPK IV$- $- , % Elements of Electromagnetics/chapter_1.ipynbPK IM9* * , R Elements of Electromagnetics/chapter_3.ipynbPK
I7֯M M , p} Elements of Electromagnetics/chapter_4.ipynbPK
IXb; ; , Elements of Electromagnetics/chapter_5.ipynbPK IL&x x , Elements of Electromagnetics/chapter_6.ipynbPK
IگH H , Elements of Electromagnetics/chapter_7.ipynbPK
I@l/ / , (' Elements of Electromagnetics/chapter_8.ipynbPK
Iŀ , kW Elements of Electromagnetics/chapter_9.ipynbPK
IT9$ $ -