Matlab 在电磁场中的应用课件.ppt_第1页
Matlab 在电磁场中的应用课件.ppt_第2页
Matlab 在电磁场中的应用课件.ppt_第3页
Matlab 在电磁场中的应用课件.ppt_第4页
Matlab 在电磁场中的应用课件.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab 在电磁场中的应用,2009.10.8,Matlab是美国Mathworks公司于80年代推出的大型数学软件,通过多年的升级换代,现在已发展成为集数值计算、符号计算、可视化功能以及诸多的工具箱为一体的大型科学计算软件,它已广泛应用于科研院所、工程技术等各个部门,并成为大学生、研究生必备的工具软件。Matlab语言以矩阵为基本运算单元,界面极其友好,初学者只要具备必要的数学基础就可以以令人难以置信的速度将其学到手。它对许多物理学的典型问题的计算和处理只需很少的几条语句就能做到。特别是它强大的作图及动画功能能够准确而科学地反应物理学问题的本质,语句也是简洁清晰。,Matlab特点:,功

2、能强大的数值运算功能, 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱与模块集 易于扩充,预备知识,一 MATLAB运算 1.算术运算(1)基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,(2)点运算 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,2. 关系运算 MATLAB提供了6种关系运算符:(大于)、=(大于或等于)

3、、=(等于)、=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。 3. 逻辑运算 MATLAB提供了3种逻辑运算符: if x=0 y= (x+sqrt(pi)/exp(2); else y=log(x+sqrt(1+x*x)/2; end Y,多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构,3 循环结构 for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式2的

4、值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。,while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环,三 几个绘图命令 1. plot函数:用来绘制线形图形 plot(y), 当y是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 plot(x,y), 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 plot(x,y,s) contour函数:用来绘制等高线图形 ezplot函数:对于显式

5、函数f=f(x),在默认范围 -2x2上绘制函数f(x)的图形; 对于隐式函数f=f(x,y),在默认的平面区域-2x2, -2y2上绘制函数f(x,y)的图形。,2具有两个纵坐标标度的图形 在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为: plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。,3 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2

6、,y2,z2,选项2,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。,一、单电荷的场分布,单电荷的外部电位计算公式 等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向外辐射的线,比较简单,这里就不再赘述。,theta=0:0.01:2*pi; r=0:10; x=sin(theta)*r; y=cos(theta)*r; plot(x,y,b) x=linsp

7、ace(-5,5,100); for theta=-pi/4 0 pi/4 y=x*tan(theta); hold on; plot(x,y); end grid on,单电荷的等位线和电力线分布图,二、点电荷电场线的图像,考虑一个三点电荷系所构成的系统。如图所示,其中一个点电荷-q位于坐标原点,另一个-q位于y轴上的点,最后一个+2q位于y轴的-点,则在xoy平面内,电场强度应满足,y,x,.,.,.,-q,-q,+2q,任意条电场线应满足方程 (1),求解式(1)可得,(2),这就是电场线满足的方程,常数C取不同值将得到不同的电场线。解出y=f(x) 的表达式再作图是不可能的。用Matl

8、ab语言即能轻松的做到这一点,如图2所示。其语句是: syms x y % 设置x,y变量; for C=0:0.1:3.0 ezplot(2*(y+1)/sqrt(y+1)2+x2)-y/sqrt(y2+x2)- (y-1)/sqrt(y-1)2+x2)-C, - 5,5,0.1); hold on; end 其中取了a=1,C=0,0.1,0.2,3.0,三、线电荷产生的电位,设电荷均匀分布在从z=-L到z=L,通过原点的线段上,其密度为q(单位C/m),求在xy平面上的电位分布。 点电荷产生的电位可表示为 是一个标量。其中r为电荷到测量点的距离。线电荷所产生的电位可用积分或叠加的方法来求

9、。为此把线电荷分为N段,每段长为dL。每段上电荷为q*dL,看作集中在中点的点电荷,它产生的电位为 然后对全部电荷求和即可。,把xy平面分成网格,因为xy平面上的电位仅取决于离原点的垂直距离R,所以可以省略一维,只取R为自变量。把R从0到10米分成Nr+1点,对每一点计算其电位。 matlab程序 clear all; L=input(线电荷长度L:); N=input(分段数N:); Nr=input(分段数Nr:); q=input(电荷密度q=:); E0=8.85e-12; C0=1/4/pi/E0;,L0=linspace(-L,L,N+1); L1=L0(1:N);L2=L0(2:

10、N+1); Lm=(L1+L2)/2;dL=2*L/N; R=linspace(0,10,Nr+1); for k=1:Nr+1 Rk=sqrt(Lm.2+R(k)2); Vk=C0*dL*q./Rk; V(k)=sum(Vk); end max(V),min(V) plot(R,V),grad,输入: 线电荷长度L:5 分段数N:50 分段数Nr:50 电荷密度q=:1 可得最大值和最小值为: ans = 1.0e+010 *9.3199 0.8654,线电荷产生的静电位分布图,四、 计算平面上N个电荷之间的库仑引力,建模: 由库仑定律:,其分量的公式可以写成:,编写程序时,先输入电荷的数目

11、,各电荷的坐标及电荷量,再选一个电荷,求其它电荷对它的作用力,叠加求合力。再选下一个电荷,依次类推。,Matlab程序:,clear all; N = input(输入电荷数目N=:); for ic = 1:N %输入给定条件 fprintf(-/n对电荷#%gn,ic); rc = input(输入电荷位置x,y(米):); x(ic) = rc(1); %电荷ic的x坐标 y(ic) = rc(2); %电荷ic的y坐标 q(ic) = input(输入电荷量(库仑):); end,E0 = 8.85e-12; %真空中的常数 C0 = 1/(4*pi*E0); %合并常数 for ic

12、 = 1:N %循环计每个电荷所受的力 Fx = 0.0;Fy = 0.0; for jc = 1:N if(ic = jc) xij = x(ic)-x(jc);yij = y(ic)-y(jc); Rij = sqrt(xij2+yij2); Fx = Fx+C0*q(ic)*q(jc)*xij/Rij3; Fy = Fy+C0*q(ic)*q(jc)*yij/Rij3; end end,fprintf(其它电荷作用在电荷#%g上的合力为:n,ic); fprintf(x-分量:%gNn,Fx); fprintf(y-分量:%gNn,Fy); end 本程序注意学会循环提示并输入参数的方法

13、,以及用双循环解决较复杂的计算过程的编程问题。,输入已知条件:,输入电荷数目N=3 -对电荷#1 输入电荷位置x,y(m):1 2 输入电荷量(库仑):2 -对电荷#2 输入电荷位置x,y(m):1 1 输入电荷量(库仑):1 -对电荷#3 输入电荷位置x,y(m):3 3 输入电荷量(库仑):3,计算结果:,其它电荷作用在 # 1 上的合力为: X-分量为:-9.65102e+009N Y-分量为 1.31581e+010 其它电荷作用在 # 2 上的合力为: X-分量为:-2.38431e+009N Y-分量为 -2.03679e+010 其它电荷作用在 # 3 上的合力为: X-分量为:

14、1.20353e+010N Y-分量为 7.20982e+009,有限差分法处理电磁场问题,在很多实际情况下,往往我们不知道电荷的分布情况,而只知道边界的电位。例如在静电场中的导体,边界是等位面,但是表面上的电荷分布往往不一样,而且很难求得。,如果我们想求导体附近的电场,这里就介绍用差分法解电场的方法。,解决这个问题的关键是对电位使用以下结论:在一个没有电荷的区域,给出一个点的电位等于周围点的电位数值的平均值。我们使用高斯定律以及以下公式来证明这个结论:,(根据电压V的电场分量),(T8.1),我们将集中讨论该情况,其中电位只取决于两个坐标,x和y。一个例子是一个带电的长圆柱体。在一个点的电势

15、只依赖于这一点在平面垂直于圆柱体的轴线,而不是z坐标。对于这样一个二维的情况下,考虑一个点P的坐标(x,Y,Z),并在一个由高斯表面封闭的立方体的一面长度是2l,中心在P(图T8.1)。如果立方体的内部没有电荷,通过立方体的电通量E等于零。由方程 (T8.1) 可知Z轴的电场分量为零,因为电势V并不是z的函数。因此,并没有通过高斯表面的平行于xy -平面的电通量。由于是一个小的立方体,通过其他四个面每通量有一个良好的逼近,等于在每面的中心和每一面的(2l)2的E的垂直分量的乘积 。总流量(等于0)可以表示为;,(T8.2),T8.1(在一个没有电荷的区域,点P的电位数值等于P点周围电位值的平均

16、值),使用(T8.1),我们可以近似的写出电场的各分量:,我们可以得到P点的电位是:,(T8.3),(T8.4),总之,P点的电位值等于P点周围点的电位值的平均值, 前提是 非常小。,下面是用计算机绘图的过程:,1:选取一个正电压 。 2:选取横纵线上网格点数m。则在内场区的网格点数为 3:V(j,k)为网格上点的坐标,j从1到m,k从1到m。 4:开始循环k从1到m。 5:开始循环j 从1到m。 6:给网格上的点赋初值,k=1时,V(j,k)= , j=1,j=m或者k=m时V(j,k)=0,其余的 V(j,k)= 0 。 7:j和k都结束循环。,8:设置一个值,为最小精度,这里设为cha=

17、0.01 。 9:设置一个变量,初值为0,这里设为delta=0 。 10:k开始循环,从2到们m1。 11: j开始循环,从2到们m1。(就是内场的点,不包含边界) 12:设置一个变量 使之等于:,13:设置一个变量d,使之等于 如果ddelta,则把d 的值赋给delta。 14:把 的值赋给以前的 V(j,k)。 15:结束j,k的循环。 16:如果delta的值大于前面设置的精度cha,则至少有一个网格上的点两次计算之间的差值大于所设的精度。则程序从第10步开始重新计算,直到delta的值小于cha为止。 17:输出网格上点的电压值。 18:程序结束。,计算场点电压值程序如下:,m=1

18、2 for k=1:m for j=1:m if k=1 V(j,k)=1; elseif(j=1)|(j=m)|(k=m) V(j,k)=0; else V(j,k)=0.5; end end end,cha=0.01; delta=0; n=0;,while(1) n=n+1; for k=2:m-1 for j=2:m-1 Vnew(j,k)=1/4*(V(j+1,k)+V(j-1,k)+V(j,k+1)+V(j,k-1); d=abs(Vnew(j,k)-V(j,k)/V(j,k); if ddelta delta=d; end V(j,k)=Vnew(j,k);,end end if delta100) break; end delta=0.; end,程序计算出的结果如下:,代入m22

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论