李慧+白雪峰
摘要:本文针对工程电磁场教学过程中遇到的难讲、难学问题,利用科学计算语言MATLAB的运算和绘图等辅助功能,帮助学生理解和掌握工程电磁场的分布规律。这样不仅激发学生的学习兴趣,而且锻炼他们使用计算机的能力,有效提高课堂教学质量。
关键词:工程电磁场;MATLAB;教学
中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2015)27-0220-02
“工程电磁场”是电气工程及其自动化专业的专业基础课,利用高等数学的积分与微分、场论和矢量分析等知识解决工程电磁场中的物理问题,不仅是大学物理中电磁学内容的深化,也是电气工程专业后续课程所不可缺少的计算工具。“工程电磁场”涉及的知识面广、课程内容难度大、对高等数学的应用要求高,被公认为难讲、难学的一门课程,学生们普遍产生厌学情绪,课程通过率较低。为了适应21世纪教学改革中精简学时的要求,有必要改变原有的仅公式推导的教学方法,借助MATLAB等可视化辅助教学手段,使学生从复杂的数学问题中“解放”出来,主动参与到教学过程中,提高学生的学习积极性。
一、MATLAB软件特点及应用
MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。它作为一款集科学计算、图像处理、信号处理于一体的程序仿真开发工具,具有许多突出优点[1]。
1.功能性强。MATLAB是一个包含大量计算算法的集合,拥有600多个工程中要用到的数学运算函数,可以方便地实现用户所需的各种计算功能。还具有可扩展性,用户可以根据自己的需要任意扩充函数工具库。
2.简单易用。MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。新版本的MATLAB语言是基于最为流行的C++语言编写的,更加符合科技人员对数学表达式的书写格式,使之更利于非计算机专业的科技人员使用。这种语言可移植性好、可拓展性强,界面友好。
3.图形处理能力强。MATLAB不仅具有一般数据可视化软件的功能,例如二维曲线和三维曲面的绘制和处理等,还具有一些其他软件没有的功能,例如图形的光照处理、色度处理以及四位数据的表现等。MATLAB软件如此强的功能特性,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。目前,大学教育和科学研究中的应用也日益广泛[2,3]。
二、MATLAB在矢量运算中的应用
1.矢量场分析。利用MATLAB的矢量分析函数,学生可以很方便地进行矢量运算,并用此来验证手算的正确性。在运算过程中,主要用到的函数有:
点积:dot(A,B)
叉积:cross(A,B)
求模:norm(A)
其中,A、B为任意矢量。
例如,已知矢量■=2■■+3■■+■■,■=4■■+2■■+5■■,■=6■■+5■■+4■■。求(1)矢量■的长度;(2)(■×■)·■。
代码如下:
A=[2 3 1];B=[4 2 5];C=[6 5 4];
norm(B) %求模
dot(cross(A,B),C) %先求旋度,再求散度
2.场的梯度、散度和旋度的计算。除了进行常数矢量运算外,利用MATLAB的符号运算功能,还可以进行符号的微分和积分。因为梯度、散度、旋度都是微分算子,所以可以用符号微分进行计算。
例如:一个矢量场■=4x■■■+(2xz-5y■)■■+3xyz,求■的散度和旋度。代码如下:
syms x y z %定义符号变量
A=[4*x^2,2*x*z-5*y^2,3*x*y*z];
divA=diff(A(1),x)+diff(A(2),y)+diff(A(3),z) %计算散度
rotA=[diff(A(3),y)-diff(A(2),z)-diff(A(3),x),diff(A(2),x)-diff(A(1),y)] %计算旋度
由以上代码可以看出,MATLAB实现矢量运算简单,代码数极少,纠错性强,学生使用起来方便快捷。
三、MATLAB在图形演示中的应用
工程电磁场课程的难点之一就是理论知识概念抽象,需要学生具有较强的多维空间想象能力和逻辑思维能力,而往往大部分学生不能直观地进行观察和研究,在学习时难以很好地掌握[4]。借助MATLAB强大的图形处理功能,可以很方便地演示电磁场中的物理现象。下面通过两个典型的例子介绍MATLAB图形处理在工程电磁场教学中的应用。
1.静电场电位和电场强度线的MATLAB演示。在求解电磁场问题中,静电场场量的计算和场图的绘制是基础。当涉及到矢量的积分运算时,求解过程及其复杂。但是,如果应用MATLAB软件进行辅助求解并绘图,过程相当简单。例如,已知空间电位分布函数为■=3x■■■+4y■■■,计算空间各点的电场强度,并画出电位线和电场强度线。我们知道,电场强度与电位的关系是负梯度的关系,即
■=-grad■=-(■■■+■■■)?摇?摇 (1)
因此,可以利用MATLAB中的gradient函数来求解上述问题。其代码如下:
x_Max=8;N_Grid=20; %设置绘图区域和网格线数
x_Plot=linspace(-x_Max,x_Max,N_Grid); %生成线性空间
[x,y]=meshgrid(x_Plot); %生成二维网格
F_Plot=log(3*x.^2+4*y.^2); %电位endprint
[Ex_Plot,Ey_Plot]=gradient(-F_Plot); %求解场强
subplot(1,2,1),meshc(F_Plot); %画三维电位图
xlabel('x');ylabel('y');zlabel(‘空间电位); %标出坐标
subplot(1,2,2),axis([-x_Max,x_Max,-x_Max,x_Max]);
qh=contour(x,y,F_Plot); %画等高线
clabel(qh);hold on; %加上编号
quiver(x,y,Ex_Plot,Ey_Plot); %加上场强
xlabel('x');ylabel('y');
经过MATLAB编程,很方便得出■=3x■■■+4y■■■的等位线和电场分布图(即电场强度线),如图1所示。
2.无限长平面电流磁场分布的MATLAB演示。假设无限长平面电流沿z轴方向,即与z轴平行,则电流产生的磁场在z轴方向的分量为0,即磁场分布与z轴无关,所以计算时只需考虑x-y平面内磁场分布的情况。若流过单位宽度的导体薄板的线电流密度为I/2a,经过推导得到空间P(x,y)点处的磁感应强度大小的表达式为:
利用MATLAB可以直观地将x-y平面内磁场分布的曲线在计算机上模拟出来。为了方便,设A=■为常数1,取a=20。其代码如下:
[x,y]=meshgrid(-100:2:100); %生成二维网格
a=20;
a1=atan((x+a)./y)-atan((x-a)./y);
a2=(1/2).*log(((x+a).^2+y.^2)./((x-a).^2+y.^2));
c=sqrt(a1.^2+a2.^2); %计算磁感应强度
mesh(c);gridon %绘制磁力线
最终,得到无限长平面电流磁场的三维空间分布图。
四、结束语
在“工程电磁场”课程教学过程中,充分利用MATLAB软件矩阵运算和绘图功能,一方面可以使学生从烦琐的数学计算中解脱出来,另一方面让学生对电磁场的抽象理论有感官认识,激发他们的学习兴趣,提高教学质量。
参考文献:
[1]魏巍.MATLAB信息工程工具箱技术手册[M].北京:国防工业出版社,2004.
[2]张新建,范娟,鲁艳旻,等.基于Matlab的“电力电子技术”课程仿真教学研究[J].中国电力教育,2014,(9):75-76,102.endprint