MATLAB仿真平面电磁波在不同媒介分界面上的入射复习课程
MATLAB在平面电磁波可视化课堂中的应用研究

MATLAB在平面电磁波可视化课堂中的应用研究作者:王艳来源:《数字技术与应用》2017年第03期摘要:把MATLAB软件应用到电磁场与波课程平面电磁波章节中,可以方便地获得平面波的波形图,也可以吧抽象的电磁场与电磁波通过图形可视化,并动态模拟电磁波的传播和辐射特性,理论与实践有效结合,这有助于学生获得符号表达式中无法直接得到的讯息,加深对平面波特性的理解,取得了较好的效果。
关键词:平面电磁波;Matlab;可视化中图分类号:TM15 文献标识码:A 文章编号:1007-9416(2017)03-0116-02MATLAB软件是美国MathWorks公司开发的数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
该软件可以实现高效的数值计算,符号计算功能和绘图功能,从而使人们摆脱繁杂的数学运算分析,并且可以方便绘出函数图形。
使用者能够从直观的图形中获得符号表达式无法展现的信息,把握函数的基本特性。
这也是MATLAB软件在高等院校的许多课程中得以广泛应用的原因。
平面电磁波是现实生活中电磁波最简单的理想的一种形式,也是我们理解电磁场与波课程中电磁波这部分内容的基础。
我们发现,虽然平面电磁波看似很简单,但是学生有时理解不深刻,无法掌握和灵活运用该部分知识,以致明显影响后面的内容,如平面电磁波的反射折射、电磁波的辐射散射等内容。
MATLAB软件应用我们可以很方便简洁的获得平面电磁波的二维或三维图,而且可以从多角度分析观察,使学生获得直观信息,并与符号表达式相关物理量相结合,加深对该部分内容的理解。
下面以平面电磁波的相关知识为基础,简单介绍如何应用MATLAB软件,主要针对平面电磁波的传播特性这一部分内容。
1 利用MATLAB软件实现平面电磁波可视化均匀平面波是电磁波的一种理想情况,其分析方法简单,但又表征了电磁波的重要特性。
为了简单起见,选择坐标通常以电场沿x轴方向,即其对应的的瞬时值为。
matlab入射平面极化电磁波

matlab入射平面极化电磁波
入射平面极化电磁波是指电磁波的电场矢量在入射平面上振荡的情况。
在Matlab中可以通过以下步骤来生成入射平面极化
电磁波:
1. 定义入射平面的方向,可以使用向量来表示。
例如,假设入射平面在X-Y平面上,可以定义入射平面方向向量为 [1, 0, 0],表示x轴的正方向。
2. 定义入射电磁波的波长、振幅和相位。
波长表示电磁波在一个完整周期内传播的距离,振幅表示电磁波的最大幅值,相位表示电磁波在某一点的相位角度。
3. 根据入射平面的方向,可以得到电磁波的电场矢量在入射平面上的分量。
如果入射平面方向向量为 [1, 0, 0],则电磁波的
电场矢量在入射平面上的分量为 [Ex, Ey, Ez],其中Ex和Ey
表示电磁波在入射平面上的电场分量,Ez表示电磁波在垂直
入射平面的电场分量。
4. 使用Matlab的绘图函数来绘制电磁波的振动情况。
可以使
用plot3函数来绘制三维图形,其中x、y和z分别表示三个坐
标轴的坐标,可以使用sin和cos函数来表示电磁波的振动情况。
以上是在Matlab中生成入射平面极化电磁波的一种方式,具
体的实现代码可以根据具体需求进行调整和优化。
应用MATLAB设计电磁场与电磁波模拟仿真实验

第39卷 第9期 高 师 理 科 学 刊 Vol. 39 No.9 2019年 9月 Journal of Science of Teachers′College and University Sep. 2019文章编号:1007-9831(2019)09-0052-04应用MATLAB设计电磁场与电磁波模拟仿真实验凌滨,郭也,刘文川(东北林业大学 机电工程学院,黑龙江 哈尔滨 150040)摘要:由于电磁场与电磁波课程在电磁波传播部分授课中的理论和概念抽象,难以理解.利用MATLAB语言编程技术,针对电磁场和电磁波传播2个方面,设计2个模拟仿真实验:均匀平面波在无界空间中的传播和设定各参数实验数据获得分界面上波形的变化.2个具体仿真实验形象地再现了均匀平面电磁波在自由空间传播状态和在2个媒介边界上的变化特征,通过实验有助于学生对电磁场和电磁波基本规律的掌握.关键词:电磁场与电磁波;MATLAB;仿真实验;均匀平面波中图分类号:O441.4 文献标识码:A doi:10.3969/j.issn.1007-9831.2019.09.014Application of MATLAB to design electromagnetic field andelectromagnetic wave simulation experimentLING Bin,GUO Ye,LIU Wen-chuan(School of Mechanical and Electrical Engineering,Northeast Forestry University,Harbin 150040,China)Abstract:The theoretical and conceptual abstraction of the electromagnetic field and electromagnetic wave course in the teaching of electromagnetic wave propagation is difficult to understand.Using MATLAB language programming technology,two simulation experiments were designed for electromagnetic field and electromagnetic wave propagation,the propagation of uniform plane wave in unbounded space and setting experimental data of each parameter to obtain the waveform change on the interface.Two specific simulation experiments vividly reproduced the variation characteristics of uniform plane electromagnetic waves in free space and the boundary of two media.The experiment helps students master the basic laws of electromagnetic fields and electromagnetic waves.Key words:electromagnetic field and electromagnetic wave;MATLAB;simulation experiment;uniform plane wave电磁场与电磁波作为电子信息和通信工程的专业基础课之一,通过实验课程的环节来加深对电磁场理论知识的理解,并且可以将课堂上所学到的理论知识在实验课中进行验证,加深理解[1-2].由于目前教学过程中受到实验室的硬件环境的限制,在实验教学环节中以仿真验证为主,利用MATLAB软件对所学的理论知识进行实验,通过理论知识来指导实践.将两者相结合,可以达到提高学生发现并分析问题,利用所学知识解决问题能力的目的,进一步将所学的理论知识完善巩固,更加全面地了解电磁场与电磁波的概念[3-5].MATLAB仿真软件的数据分析和数据计算的能力十分强大,将实验数据以图形的形式进行展示,提供了一个数据可视化的平台[6].本文在电磁场与电磁波的实验教学中,利用MATLAB模拟了2种情况下的仿收稿日期:2019-04-10基金项目:东北林业大学教育教学研究课题项目(JG2016008)作者简介:凌滨(1962-),男,黑龙江哈尔滨人,副教授,硕士,从事电磁场与电磁波研究.E-mail:756595015@第9期 凌滨,等:应用MATLAB 设计电磁场与电磁波模拟仿真实验 53真实验,分别是自由空间和媒质空间中均匀平面电磁波传播波形的变化以及2种介质分界面上电磁波波形的变化.1 均匀平面波在真空和媒质中的传播仿真实验由麦克斯韦方程组可知,变化的电场和磁场相互作用下,产生的电磁波以光速在真空中传播;电磁波在理想介质中是横波,电场和磁场的方向与波的传播方向相互垂直,另外,电场方向与磁场方向也相互垂直[7].理想介质中均匀平面电磁波的波动方程可以由麦克斯韦方程组推理得到220022200200E E tH H t e m e m ì¶Ñ-=ïï¶í¶ïÑ-=ï¶îu vu v uu v uu v (1) 若电场为线极化方式,且电磁波沿x 轴方向,可以得到22000022(()E H H Ex t t x x tm m e m ¶¶¶¶¶¶=-=-=¶¶¶¶¶¶ (2) 同理220022H Hx te m ¶¶=¶¶,这2个公式都属于波动方程.电场与磁场的传播速度,也就是电磁波在真空中的传播速度,即81/310m/s c =»´.由此可见,电磁波的传播速度(在真空中)与光速等值,理论数据和实验数据一致,这为光的电磁波理论提供了一个重要的理论依据.由波动方程 220022220022E E x tH H x t e m e m ì¶¶=ïï¶¶í¶¶ï=ï¶¶î (3) 在真空中当平面电磁波的电场强度和磁场强度的频率和相位相同时,2个波动方程的瞬时表达式为m (,)cos()x x E z t e E t z w b =-r r(4)m (,)cos()x y E H z t e t z w b h=-r r (5) 其中:m x E 是电场强度振幅;w 是电磁波的圆频率;b 是相位常数;h 是本征阻抗.设计的仿真均匀平面波形波动见图 1.均匀平面波在导电媒质中具有传播特性:电媒质的典型特征是电导率 0s ¹;电磁波在导电媒质中传播时,由于传导电流J E s =的存在,同时还伴随着电磁能量的损耗;电磁波的传播特性与非导电介质中的传播特性有所不同[8-10].电场E 、磁场H 瞬时值形式m (,)e cos()z x x E z t e E t z a w b -=-v r(6) m (,)e cos()z x y cEH z t e t z a w b j h -=--r r (7)在导电媒质中衰减常数a 、相位常数b 和本征阻抗c h分别为a = (8)b = (9)54 高 师 理 科 学 刊 第39卷1arctg 2e j c c s weh h === (10)通过改变介电参数e 、磁导率m 、电导率s 和波的频率w ,电磁波在传播中是不断变化的,设计的仿真实验波形变化见图2.应用仿真实验可以形象直观地看到均匀平面波的传播特征,并通过改变介质各参数来观察电磁波的波形变化特性.2 均匀平面波的传播、反射及透射的仿真实验电磁波在入射到不同媒质分界面上时,一部分波会在分界面上进行反射,一部分波会透过分界面.入射波(已知)+反射波(未知)= 透射波(未知) (1) 0z <中,导电媒质1的参数为111s e m ,,;(2) 0z >中,导电媒质2的参数为222s e m ,,.沿x 方向极化的均匀平面波从媒质1 垂直入射到与导电媒质2 的分界平面上,电场和磁场的变化见图3. 媒质1中的入射波 1i im ()e zx E z e E g -=r r (11)1im i 1()e z y cEH z e g h -=r r (12)媒质1中的反射波1r rm ()e z x E z e E g -=r r(13) 1rm r 1()e z y cEH z e g h -=r r (14)媒质1中的合成波11im rm 1i r 12()()()e e z z y y c cE E H z H z H z e e g g h h --=+=-r r r r r H (15)111i r im rm ()()+()e e z z x x E z E z E z e E e E g g --==+r r r r r(16)其中传播常数1g 和波阻抗1c h为11211)j j s g we =- (17)11211c j s h we -==- (18) 媒质2中的透射波第9期 凌滨,等:应用MATLAB 设计电磁场与电磁波模拟仿真实验 5522tm t tm t 2()e ,()e zz x y cE E z e E H z e g g h --==r r r r (19)其中:传播常数2g 和波阻抗2c h为12222)j j s g we =- (20)12222c j s h we -=- (21) 改变各参数的数值,介质1,2为不同媒质时,设计的仿真实验波形见图4.改变各参数的数值,介质1为非导电媒质、2为导电媒质时,设计的仿真实验波形见图5.改变各参数的数值,介质1,2为相同电媒质时,设计的仿真实验波形见图6.通过该仿真实验系统操作,设定各参数实验数据,即获得分界面上波形的变化特征.对实验结果进行分析和解释,得到合理有效的结论.3 结束语本文提出了利用MATLAB 来完成电磁场与电磁波的仿真实验,通过仿真实验将理论教学有效地运用到实践教学中,能够使学生更加有效地理解所学的理论知识.电磁场与电磁波的仿真实验练习可以让学生对自己所学的知识有更深地理解,可以用更加灵活的方式掌握专业技能,并对所学专业的应用领域和前景有进一步的了解.在鼓励学生自己利用所学知识解决实际问题的同时,将书本知识与工程实践相结合,将复杂的电磁波问题简化,可以有效地提高授课效果. 参考文献:[1] 谢处方,饶克谨.电磁场与电磁波[M].北京:高等教育出版社,2006[2] 刘亮元,贺达江.电磁场与电磁波仿真实验教学[J].实验室研究与探索,2010,29(5):30-32[3] 王明军.MATLAB 在电磁场与电磁波课程教学中的应用[J].咸阳师范学院学报,2009,24(2):89-91 [4] 郭瑜,虞致国.电磁场与电磁波仿真实验教学研究[J].无锡职业技术学院学报,2018,17(2):28-31[5] 杨明珊,谭凤杰,李志中,等.电磁场与电磁波实验仿真系统[J].郑州大学学报:理学版, 2013,45(2):64-67 [6] 乔世坤.Matlab 在通信课程中的仿真应用[M].哈尔滨:东北林业大学出版社,2017 [7] 马冰然.电磁场与微波技术[M].广州:华南理工大学出版社,1999[8] William Hayt,John Buck.Engineering Electromagnetics[M].Beijing:Tsinghua University Press,2011[9] 万棣,范懿.电磁场与电磁波虚拟仿真系统的设计与开发[J].电气电子教学,2017,39(4):141-144[10]邓红涛,刘巧,田敏.利用仿真软件优化电磁场与电磁波教学[J].电脑知识与技术,2014,10(4):792-794。
电磁波传播的matlab仿真教学实践

电磁波传播的matlab仿真教学实践
Matlab仿真实践教学——电磁波传播
Matlab是用于科学计算和可视化仿真的一款专业软件,其电磁波传播
仿真功能可能会广泛应用到电波传播理论的教学实践中,因此本文将
通过一个实例来展示如何使用Matlab进行电磁波传播的仿真。
一、准备工作
(一)安装Matlab软件,安装Matlab。
可以从Mathworks网站下载安
装Matlab软件。
(二)熟悉Matlab的基本操作,包括如何使用Matlab编辑器、命令行、代码窗口以及如何可视化。
二、仿真过程
(一)定义数据,定义包括电磁波方向、频率、和速度在内的各种参
数作为条件输入到Matlab中进行仿真;
(二)设置初始条件,调整环境条件(空气温度、大气压力等),并
考虑物理地形的影响。
(三)开始仿真,通过Matlab的仿真功能可以获得电磁波的时频响应
曲线,以及不同方向上的信号发射特性等;
(四)完成仿真,观察电磁波在空间传播、穿过物体和大气层时以及解读不同场景下实现仿真信号传播特性,得出最终仿真结果。
三、总结
通过本文展示的Matlab实现电磁波传播仿真的实例,可以更好地理解电磁波传播理论,利用Matlab进行仿真实验教学,进一步提高教学效果,加深学生对相关理论的理解。
基于matlab的磁场与电磁波可视化教学

59武汉东湖学院论文集基于MATLAB 的磁场与电磁波可视化教学武汉东湖学院电子信息工程学院 刘雅娴电磁场与电磁波是一门通信类理论专业课,具有公式多、难于理解等特点。
本文通过MATLAB 软件,对电磁场与电磁波课程进行了可视化研究,通过形象化的场图等辅助手段,帮助学生理解和掌握电磁场的规律。
一、前言电磁场与电磁波课程具有公式复杂、推导过程多的特点。
而且,电磁场、电磁波方程大多是偏微分方程,充满了矢量运算,如果仅仅通过公式很难理解电磁场、电磁波传播的物理图形。
通过MATLAB 这个图形专家工具,可以很清晰地表述电磁场和电磁波的传播图形,同时可以提高学生的学习兴趣,帮助学生检查作业的正确与否。
二、电磁波二维图形的可视化借助MATLAB 特有的图形功能,可以显示电磁波的二维,增强学生的理解能力。
众所周知,静电场强度可以表示为φ()()E r r =−∇。
以点电荷的静电场为例,点电荷Q 的电场强度02F QE k q r ==,在r 处的电势为()kQr r φ=。
利用MATLAB 的梯度函数gradient ,可以直接计算场强的数值分量,而等势线可以用等值指令contour 绘制。
现以二维情况为例说明。
程序如下:%点电荷的电力线和等势线clear;xm=2.5;ym=2.5; %设置横坐标和纵坐标的范围x=linspace(-xm,xm,400);y=linspace(-ym,ym,400); %设置横坐标和纵坐标向量[X,Y]=meshgrid(x,y); %坐标网点,矩阵R=sqrt(X.^2+Y.^2); %点电荷到场点的距离U=1./R;u=-3:0.5:3; %计算电势,设置等势线的电势相量中可以看出,点电荷的电场线是从点电荷出发的射线,等势线是一系列的同心圆,且越远离中心,间隔越大。
三、电磁波的三维图形可视化麦克斯韦方程表明,变化的电场和变化的磁场相互激发,形成的电磁波在真空中以光速传播,电磁波是横波,电场方向和磁场方向相互垂直,并与传播方向垂直。
基于Matlab的均匀平面电磁波的仿真

基于Matlab的均匀平面电磁波的仿真作者:李丽芬张秋菊李扬来源:《现代电子技术》2013年第21期摘要:在电磁场与电磁波的教学中,应用Matlab编程对电磁场的分布和电磁波的传输进行仿真,使得抽象的概念直观化,有助于学生对于电磁场和电磁波教学内容的学习。
着重仿真了均匀平面电磁波的传播、极化、反射和折射的动态过程。
关键词: Matlab;均匀平面电磁波;反射;折射中图分类号: TN710⁃34; G434 文献标识码: A 文章编号: 1004⁃373X(2013)21⁃0136⁃020 引言“电磁场与电磁波”是电子与通信类专业本科生必修的一门专业基础课,课程涵盖的内容是电子与通信类专业本科阶段所应具备的知识结构的重要组成部分。
在教学过程中,学生普遍反映该门课程比较抽象,包含了大量的数学公式推导,很多概念难以理解。
无论是电磁场还是电磁波,都是看不到、摸不着的,教师难讲、学生难懂是当前该门课程教学中普遍存在的现象。
Matlab由于其强大的功能、简单易学的编程语言和可视化的仿真环境,为电磁场与电磁波的教学提供了仿真条件。
借助Matlab模拟和实现结构的可视化,把抽象概念变为清晰,对复杂公式进行计算和绘图,动态直观的描述了电磁场的分布和电磁波传播状态,帮助学生理解和掌握电磁场与电磁波传播的规律,有助于学生对这门课程的学习。
本文利用Matlab对平面电磁波的传播、极化、反射和折射的仿真,将抽象的电磁波形象化,取得了很好的教学效果。
1 均匀平面电磁波传播的仿真设电磁波沿[z]轴方向传播,在与[z]轴垂直的平面上,其电磁场强度各点具有相同的振幅和振动方向,即[E]和[H]只与[z]有关,而与[x]和[y]无关,这种电磁波就是均匀平面电磁波。
1.1 电场和磁场只有一个分量的情况沿[z]轴传播的均匀平面电磁波的瞬时值可表示为如下形式:[E=exE0mcos(ωt-kz+φ0)H=eyE0mηcos(ωt-kz+φ0)]式中:本征阻抗[η=με],波数[k=ωμε]。
Matlab中的电磁场模拟和电磁波传播

Matlab中的电磁场模拟和电磁波传播1. 引言电磁场模拟和电磁波传播在现代科学和工程中起着至关重要的作用。
借助计算机仿真和数值模拟工具,我们可以预测和分析电磁场中的各种现象,包括场强分布、能量传输、辐射特性等。
Matlab作为一种功能强大的数值计算软件,为电磁场模拟和电磁波传播提供了便捷而高效的工具。
本文将围绕Matlab中的电磁场模拟和电磁波传播展开深入探讨。
2. 电磁场模拟方法在电磁场模拟中,最常用的方法之一就是有限元分析(Finite Element Analysis,简称FEA)。
Matlab中提供了丰富的有限元分析工具箱,如Partial Differential Equation Toolbox和RF Toolbox等。
利用这些工具箱,我们可以建立各种复杂的电磁场模型,并进行精确的分析和计算。
FEA方法相对于其他方法具有较高的准确性和灵活性,能够适应不同场景中的电磁问题。
除了有限元分析,Matlab还支持其他一些电磁场模拟方法,如有限差分法(Finite Difference Method,简称FDM)、时域有限差分法(Finite Difference Time Domain,简称FDTD)和边界元法(Boundary Element Method,简称BEM)。
这些方法在不同场景和应用中有着各自的优势,可以根据具体情况选择使用。
3. 电磁波传播特性的模拟与分析电磁波传播是电磁场模拟中一个重要的研究方向。
Matlab提供了用于电磁波传播分析的各种工具函数和库,我们可以利用这些工具函数和库模拟电磁波在不同环境中的传播特性。
在电磁波传播分析中,波束传播(Beam Propagation)是常用的方法之一。
Matlab中的光纤传输工具箱(Optical Fiber Toolbox)提供了一系列用于光波束传播分析的函数和类,可以模拟光波在光纤中的传播特性,并分析波束的衍射、色散等效应。
此外,Matlab还提供了用于天线设计和分析的工具箱,如Antenna Toolbox。
平面波斜入射多层介质matlab代码

平面波斜入射多层介质matlab代码以平面波斜入射多层介质为题,我们将介绍如何使用Matlab代码模拟该现象。
平面波斜入射多层介质是电磁波在不同介质边界上的反射和折射现象。
通过模拟并可视化这些现象,我们可以更好地理解平面波在不同介质中的传播特性。
我们需要了解平面波斜入射多层介质的物理原理。
当平面波以一定角度斜入射到介质边界上时,部分能量会被反射回来,部分能量会被折射进入下一个介质层。
这个过程可以通过菲涅尔公式来描述,该公式可以计算出反射和折射的振幅和相位。
为了模拟这个过程,我们可以使用Matlab中的函数来计算菲涅尔公式。
首先,我们需要定义入射波的振幅、波长和入射角度。
然后,我们可以根据菲涅尔公式计算出反射和折射的振幅和相位。
接下来,我们可以使用这些参数来计算出在每个介质层中的电磁波的振幅和相位。
根据电磁波的传播方程,我们可以使用传递矩阵法来计算每个介质层中的电场和磁场分布。
传递矩阵法是一种递推的方法,通过将每个介质层的传递矩阵相乘,可以得到整个多层介质系统的传递矩阵,从而计算出电磁波的传播特性。
我们可以使用Matlab中的绘图函数将电磁波的传播特性可视化。
通过绘制反射光和折射光的强度分布图,我们可以直观地观察到平面波在多层介质中的传播情况。
我们还可以通过改变入射角度、介质层的折射率等参数,来观察不同条件下的传播特性。
通过使用Matlab代码模拟平面波斜入射多层介质现象,我们可以更好地理解电磁波在不同介质中的传播特性。
这种模拟和可视化的方法不仅可以帮助我们深入理解物理原理,还可以为实际应用中的光学器件设计和优化提供指导。
希望本文对你理解平面波斜入射多层介质的模拟和可视化方法有所帮助。
如果你对这个领域感兴趣,可以进一步学习相关的物理原理和数值计算方法,以及探索更多的应用场景和研究方向。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M A T L A B仿真平面电磁波在不同媒介分界面上的入射MATLAB 仿真平面电磁波在不同媒介分界面上的入射、反射和折射一、实验目的:1、 进一步学习MATLAB ,初步掌握GUI 界面的编程。
2、 通过编程实现电磁波仿真效果图。
3、 进一步理解平面电磁波的入射、反射和折射现象二、实验要求:1、 以电场为例,动态演示平面电磁波的传播情况。
2、 可以任意设置媒介的介电常数和入射角。
3、 考虑金属导体和空气的分界面平面电磁波的入射、反射情况。
三、实验原理:电磁波从一种媒质入射到第二种媒质时,分界面使一部分能量反射回第一种媒质,另一部分能量折射到第二种媒质中,反射波和折射波得大小和相位取决于分界面两侧的媒质特性、极化方向和入射角大小等,当电磁波入射到理想导体表面时,会发生全反射。
这一过程中包括的主要原理有以下三点。
1、正弦平面波在媒质分界面的反射和折射规律波对分界面的入射是任意的,但为了方便,我们假设入射面与zox 面重合。
波在z>0时发生入射和反射,在z<0时发生折射并令空间任意一点r 处 的 入 射 波、反射波和折射波场强为:111(sin cos )00(sin cos )00(sin cos )00i i i i r r i t t jK r jK x z i i i jK r jK x z r r r jK r jK x z tt t E E e E e E E e E e E E e E e θθθθθθ--+--+--+⎧==⎪==⎨⎪==⎩ 图表 1 正弦波斜入射示意图根据在z=0的界面上电场强度的切线分量相等的边界条件,有(,,0)(,,0)(,,0)i r t E x y E x y E x y ==故必有 112sin sin sin i r t k k k θθθ==反射定律: i r θθ=折射定律: 12sin sin i r k k θθ=2、正弦平面波对理想介质的斜入射 ① 垂直极化波垂直极化波对理想介质斜入射如图所示,由折射和反射定律,我们可以得到在任意媒质中的场强。
在第一煤质中111111111111111111cos cos sin 10cos cos sin 101cos cos sin 101()(cos )()(sin )()jk z jk z jk x y i jk z jk z jk x x i jk z jk z jk x zi E E e Re e H H e Re e H H e Re e θθθθθθθθθθθ------⎧=+⎪=--⎨⎪=+⎩在第二煤质中2112002112cos cos cos cos r i E E ηθηθηθηθ-=+ 210021122cos cos cos t i E E ηθηθηθ=+ 222222222(sin cos )20(sin cos )202(sin cos )202(cos )(sin )jk x x y t jk x x x t jk x x zt E E e H H e H H e θθθθθθθθ-+-+-+⎧=⎪=-⎨⎪=⎩ 图表 2 垂直极化波斜入射② 平行极化波平行极化波对理想介质斜入射如图所示,由折射和反射定律,我们可以得到在任意媒质中的场强。
在第一煤质中111111111111111111cos cos sin 101cos cos sin 101cos cos sin 10(cos )()(sin )()()jk z jk z jk x x i jk z jk z jk x z i jk z jk z jk x y i E E e Re e E E e Re e H H e Re e θθθθθθθθθθθ------⎧=+⎪=--⎨⎪=-⎩在第二煤质中2211002211cos cos cos cos r i E E ηθηθηθηθ-=+ 210022112cos cos cos t i E E ηθηθηθ=+ 222222222(sin cos )202(sin cos )201(sin cos )20(cos )(sin )jk x z x t jk x z z t jk x z y t E E e E E e H H e θθθθθθθθ-+-+-+⎧=⎪=-⎨⎪=⎩图表 3 平行极化波斜入射3、正弦平面波对理想导体表面的斜入射 ① 垂直极化波垂直极化波对理想导体斜入射如图所示,入射波在导体表面发生全反射,我们可以得到在任意媒质中的场强。
cos cos sin 0sin 0cos cos sin 0sin 0cos cos 0()2sin(cos )sin sin sin []2sin sin(cos )cos cos cos []jkx jkx jkz y i r i jkz i jkx jkx jkz x i r i jkz i jkx jkx zi r i E E E E e e e j E kx e H H H H e e e j H kx e H H H H e e e θθθθθθθθθθθθθθθθθθθ-------=+=-==--=--=-=-+=-+sin sin 02cos cos(cos )jkz jkz i H kx e θθθθ--⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪=-⎩② 平行极化波垂直极化波对理想导体斜入射如图所示,入射波在导体表面发生全反射,我们可以得到在任意媒质中的场强。
sin 0sin 0sin 02sin cos(cos )2cos sin(cos )2cos(cos )jkz x i jkz z i jkz y i E E kx e E j E kx e H H kx e θθθθθθθθ---⎧=⎪=⎨⎪=⎩四、实验程序;实验程序比较长,可参见此文件夹中的jm.m 文件。
(附件)生成的界面:五、实验总结;这次实验总体感觉收获比较大。
首先,之前学习的MATLAB 都是基于图片之类的编程,没有学习过GUI 的使用。
通过这次实验,我初步学习了一下GUI ,算是现学现卖吧。
虽然学的不是很深,但是对于基本的功能的使用应该还是可以的。
再次,对于电磁场地学习都是停留在书面作业上,通过这次实验,加深了我对电磁场传播的理解。
最后,其实如果只有我一个人,应该是很难完成这次实验的,在这期间有同学的帮忙和合作。
通过这次实验,感受到合作的力量,不懂要问呐。
程序代码:function varargout = jm(varargin)% JM M-file for jm.fig% JM, by itself, creates a new JM or raises the existing% singleton*.%% H = JM returns the handle to a new JM or the handle to% the existing singleton*.%% JM('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in JM.M with the given input arguments. %% JM('Property','Value',...) creates a new JM or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before jm_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to jm_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help jm% Last Modified by GUIDE v2.5 13-May-2011 00:01:24% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jm_OpeningFcn, ...'gui_OutputFcn', @jm_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before jm is made visible.function jm_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to jm (see VARARGIN)% Choose default command line output for jmhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jm wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jm_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)axes(handles.axes1);mu1=1;%c´Åµ¼ÂÊ1mu2=1;%c´Åµ¼ÂÊ2w=get(handles.edit5);w=str2num(w.String);%¼«»¯ÆµÂÊa=get(handles.edit3);epsilon1=str2num(a.String);%½éÖÊ1µÄÏà¶Ô½éµç³£Êýb=get(handles.edit4);epsilon2=str2num(b.String)%½éÖÊ2µÄÏà¶Ô½éµç³£Êý;k1=w*sqrt(mu1*epsilon1);k2=w*sqrt(mu2*epsilon2);sita=get(handles.edit1);sita=str2num(sita.String);sita1=asind(k1*sind(sita)./k2);xv = 0:pi/10:20*pi;ym=xv;%plot(ym)er=0.5;for i=1:900yv = sin(xv+pi/30*i);%%>>>>²¨Ðκ¯Êýx=-xv*sind(sita);y=xv*cosd(sita);x=x+cosd(sita)*yv;y=y+sind(sita)*yv;xv1 = 0:pi/10:20*pi;yv1 = sqrt(1-er*er)*sin(xv-pi/30*i);%%>>>·´É䲨Ðκ¯Êýx1=xv1*sind(sita);y1=xv1*cosd(sita);x1=x1-2*cosd(sita)*yv1;y1=y1+sind(sita)*yv1;xv2 = 0:pi/10:20*pi;yv2 = er*sin(xv-pi/30*i);%%>>>ÕÛÉ䲨Ðκ¯Êýx2=xv2*sind(sita1);y2=xv2*cosd(sita1);x2=x2-cosd(sita1)*yv2;y2=y2+sind(sita1)*yv2;%plot(zeros(1:81))%plot(-40:0.01:40,0)%hold on%plot(0,-60:0.01:60)%hold onplot(x,y,x1,y1,x2,-y2,[-50 50],[0 0],'k',[0 0],[-50 50],'k');su=get(handles.edit2);su=str2num(su.String);sudu=1/su;pause(sudu)endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit5_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit8_Callback(hObject, eventdata, handles)% hObject handle to edit8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit8 as text% str2double(get(hObject,'String')) returns contents of edit8 as a double% --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles)% hObject handle to edit8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit10_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties. function edit10_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit4_Callback(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit4 as text% str2double(get(hObject,'String')) returns contents of edit4 as a double% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end。