您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MATLAB仿真平面电磁波在不同媒介分界面上的入射
MATLAB仿真平面电磁波在不同媒介分界面上的入射、反射和折射一、实验目的:1、进一步学习MATLAB,初步掌握GUI界面的编程。2、通过编程实现电磁波仿真效果图。3、进一步理解平面电磁波的入射、反射和折射现象二、实验要求:1、以电场为例,动态演示平面电磁波的传播情况。2、可以任意设置媒介的介电常数和入射角。3、考虑金属导体和空气的分界面平面电磁波的入射、反射情况。三、实验原理:电磁波从一种媒质入射到第二种媒质时,分界面使一部分能量反射回第一种媒质,另一部分能量折射到第二种媒质中,反射波和折射波得大小和相位取决于分界面两侧的媒质特性、极化方向和入射角大小等,当电磁波入射到理想导体表面时,会发生全反射。这一过程中包括的主要原理有以下三点。1、正弦平面波在媒质分界面的反射和折射规律波对分界面的入射是任意的,但为了方便,我们假设入射面与zox面重合。波在z0时发生入射和反射,在z0时发生折射并令空间任意一点r处的入射波、反射波和折射波场强为:111(sincos)00(sincos)00(sincos)00iiiirrittjKrjKxziiijKrjKxzrrrjKrjKxztttEEeEeEEeEeEEeEe图表1正弦波斜入射示意图根据在z=0的界面上电场强度的切线分量相等的边界条件,有(,,0)(,,0)(,,0)irtExyExyExy故必有112sinsinsinirtkkk反射定律:ir折射定律:12sinsinirkk2、正弦平面波对理想介质的斜入射①垂直极化波垂直极化波对理想介质斜入射如图所示,由折射和反射定律,我们可以得到在任意媒质中的场强。在第一煤质中111111111111111111coscossin10coscossin101coscossin101()(cos)()(sin)()jkzjkzjkxyijkzjkzjkxxijkzjkzjkxziEEeReeHHeReeHHeRee在第二煤质中2112002112coscoscoscosriEE210021122coscoscostiEE222222222(sincos)20(sincos)202(sincos)202(cos)(sin)jkxxytjkxxxtjkxxztEEeHHeHHe图表2垂直极化波斜入射②平行极化波平行极化波对理想介质斜入射如图所示,由折射和反射定律,我们可以得到在任意媒质中的场强。在第一煤质中111111111111111111coscossin101coscossin101coscossin10(cos)()(sin)()()jkzjkzjkxxijkzjkzjkxzijkzjkzjkxyiEEeReeEEeReeHHeRee在第二煤质中2211002211coscoscoscosriEE210022112coscoscostiEE222222222(sincos)202(sincos)201(sincos)20(cos)(sin)jkxzxtjkxzztjkxzytEEeEEeHHe图表3平行极化波斜入射3、正弦平面波对理想导体表面的斜入射①垂直极化波垂直极化波对理想导体斜入射如图所示,入射波在导体表面发生全反射,我们可以得到在任意媒质中的场强。coscossin0sin0coscossin0sin0coscos0()2sin(cos)sinsinsin[]2sinsin(cos)coscoscos[]jkxjkxjkzyirijkzijkxjkxjkzxirijkzijkxjkxziriEEEEeeejEkxeHHHHeeejHkxeHHHHeeesinsin02coscos(cos)jkzjkziHkxe②平行极化波垂直极化波对理想导体斜入射如图所示,入射波在导体表面发生全反射,我们可以得到在任意媒质中的场强。sin0sin0sin02sincos(cos)2cossin(cos)2cos(cos)jkzxijkzzijkzyiEEkxeEjEkxeHHkxe四、实验程序;实验程序比较长,可参见此文件夹中的jm.m文件。(附件)生成的界面:五、实验总结;这次实验总体感觉收获比较大。首先,之前学习的MATLAB都是基于图片之类的编程,没有学习过GUI的使用。通过这次实验,我初步学习了一下GUI,算是现学现卖吧。虽然学的不是很深,但是对于基本的功能的使用应该还是可以的。再次,对于电磁场地学习都是停留在书面作业上,通过这次实验,加深了我对电磁场传播的理解。最后,其实如果只有我一个人,应该是很难完成这次实验的,在这期间有同学的帮忙和合作。通过这次实验,感受到合作的力量,不懂要问呐。程序代码:functionvarargout=jm(varargin)%JMM-fileforjm.fig%JM,byitself,createsanewJMorraisestheexisting%singleton*.%%H=JMreturnsthehandletoanewJMorthehandleto%theexistingsingleton*.%%JM('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinJM.Mwiththegiveninputarguments.%%JM('Property','Value',...)createsanewJMorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforejm_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtojm_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpjm%LastModifiedbyGUIDEv2.513-May-201100:01:24%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@jm_OpeningFcn,...'gui_OutputFcn',@jm_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforejmismadevisible.functionjm_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstojm(seeVARARGIN)%Choosedefaultcommandlineoutputforjmhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesjmwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=jm_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%---Executesonbuttonpressinpushbutton1.functionpushbutton1_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;fori=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(sit
本文标题:MATLAB仿真平面电磁波在不同媒介分界面上的入射
链接地址:https://www.777doc.com/doc-5367594 .html