FDTD二维圆柱散射.ppt

上传人:xt****7 文档编号:1840827 上传时间:2019-11-08 格式:PPT 页数:53 大小:17.80MB
返回 下载 相关 举报
FDTD二维圆柱散射.ppt_第1页
第1页 / 共53页
FDTD二维圆柱散射.ppt_第2页
第2页 / 共53页
FDTD二维圆柱散射.ppt_第3页
第3页 / 共53页
点击查看更多>>
资源描述
基于fdtd的PML的TM波散射和mur边界的TE波散射,组员:樊家伟、黄登祥、袁一粟、 江亚男、陈永炜,我们的任务,1、没有吸收边界条件下的TM波同轴圆柱散射; 2、PML吸收边界条件下的TM波同轴圆柱散射; 3、Mur吸收边界条件下的TE波圆柱散射。,重写Maxswell方程组,二维Maxswell方程组标量方程,1、二维FDTD基本原理,对时间和空间差分后,迭代公式,完美匹配层(Perfectly matched Layer, PML)是由Berenger 提出的,使用最为灵活、广泛的一种ABC(Absorbing Boundary Conditions)。其基本原理是:电磁波的反射量由两个介质的波阻抗决定:,其中,2、完全匹配层基本原理,2.1 在X 方向上实现PML (仅仅保留与X 方向有关的 F* 、 F* ),将 F* 、 F*带入到左式,注意到: H x方向上的磁导率与 H y方向上的磁导率互成倒数。因此,满足 了PML 的第二个条件。,(1),(2),(3),时域,对(1)式左边进行差分,其中,其中,同理,(2)式,其中,(3)式,引进辅助参数,随着电磁波进入到 PML,该参数是增大的。,i=1,2, length_pml,注意到参变量 i/length_pml的变化范围是从0 到1,而权值0.333 是保持稳定状态的最大值,2.2 在y 方向上实现PML,(1),(2),(3),(1),其中,(2),其中,(3),源程序 clear all;clc; %设置网格数 IE = 101; % x 方向网格100,实际有101个点 JE = 101; % y 方向网格多少 %设置圆柱中心 ic = round(IE / 2); jc = round(JE / 2); %总场区区域 ia=15; ib=IE-ia+1; ja =15; jb=JE-ja+1; %初始化设置 ddx = .01; %空间网格大小,x 方向和y 方向网格大小相同 dt = ddx / 6e8; %时域网格大小 epsz = 8.8e-12; %介电常数 epsilon=30; sigma=0.3; pi = 3.13159; %常数PI c=3e8;,%初始化系统变量 dz = zeros(IE,JE); %电场通量D hx = dz; %x 方向磁场强度 hy = dz; %y 方向磁场强度 ihy = dz; %用于中间变量ihy,是用来计算磁场强度的,是curl_e 的积分 ihx = dz; %用于中间变量ihy,是用来计算磁场强度的,是curl_e 的积分 ga = ones(IE,JE); %电场强度与D 之间的关系矩阵, gb=zeros(IE,JE); iz=gb; real_pt=gb; imag_pt=gb; real_in=0; imag_in=0; amp=zeros(JE,1); %由于做了归一化,同时在真空中,因此ga 为1,%初始化变量 ez_inc=zeros(JE,1);hx_inc=ez_inc;hy_inc=ez_inc; ez_inc_low_m1=0;ez_inc_low_m2=0;ez_inc_high_m1=0; ez_inc_high_m2=0; radius = 15; epsilon=10;%越大衰减越大 sigma=0.3;%越大衰减越大 for j=ja:jb for i=ia:ib xdist=ic-i; ydist=jc-j; dist=sqrt(xdist*xdist+ydist*ydist); if(dist=radius) ga(i,j)=1./(epsilon+(sigma*dt/epsz); gb(i,j)=sigma*dt/epsz; end end end,%内圆 radius1 = 10; epsilon1=1000; sigma1=10; for j=ja:jb for i=ia:ib xdist=ic-i; ydist=jc-j; dist=sqrt(xdist*xdist+ydist*ydist); if(dist=radius1) ga(i,j)=1./(epsilon1+(sigma1*dt/epsz); gb(i,j)=sigma1*dt/epsz; end end end,%输入PML Cell 个数,即PML 有多少个单元网格,在此,x 方向和y 方向上的PML 网格相同 npml = input(Please input the number of PML Cell: ); %x 方向用*i*表示,一方向用*j*表示 %x 方向上的PML 参数设置 for i = 1:npml xnum = npml -i + 1; %从npml 到0 xd = npml; xxn = xnum / xd; %辅助变量xxn,从1 到0 xn = 0.33 * xxn3; %成立方衰减 gi2(i) = 1 / ( 1 + xn ); gi2(IE-i+1) = 1 / ( 1 + xn ); gi3(i) = (1 - xn) / (1 + xn); gi3(IE-i+1) = ( 1 - xn ) / ( 1 + xn ); xxn = ( xnum - 0.5 ) / xd; if(xxn0) break; end,xn = 0.33 * xxn3; fil(i) = xn; fil(IE-i+1) = xn; fi2(i) = 1 / ( 1 + xn ); fi2(IE-i+1) = 1 / ( 1 + xn ); fi3(i) = ( 1-xn ) / ( 1 + xn ); fi3(IE-i+1) = ( 1 - xn ) / ( 1 + xn ); end; %y 方向上的PML 参数设置 for j = 1:npml+1 xnum = npml - j + 1; xd = npml; xxn = xnum / xd; xn = 0.33 * xxn3; gj2(j) = 1 / ( 1 + xn ); gj2(JE+1-j) = 1 / ( 1 + xn ); gj3(j) = ( 1 - xn ) / ( 1 + xn ); gj3(JE-j+1) = ( 1 - xn ) / ( 1 + xn ); xxn = ( xnum - 0.5 ) / xd;,if(xxn0) break end xn = 0.33 * xxn3; fj1(j) = xn; fj1(JE-j+1) = xn; fj2(j) = 1 / ( 1 + xn ); fj2(JE-j+1) = 1 / ( 1 + xn ); fj3(j) = ( 1 - xn ) / ( 1 + xn ); fj3(JE-j+1) = ( 1 - xn ) / ( 1 + xn ); end; %高斯脉冲变量设置 t0 = 40; spread = 10; T = 0; %输入nsteps 必须为正整数 nsteps = input(Please input the number of nsteps ); %设置循环次数,从常数可以得到空间和时间上的传输情况,for n = 1:nsteps T = T+1; for j=2:JE ez_inc(j)=ez_inc(j)+0.5*(hx_inc(j-1)-hx_inc(j); end real_in=real_in+cos(2*pi*frequency*T*dt)*ez_inc(ja); imag_in=imag_in-sin(2*pi*frequency*T*dt)*ez_inc(ja); %边界条件 ez_inc(1)=ez_inc_low_m2; ez_inc_low_m2=ez_inc_low_m1; ez_inc_low_m1=ez_inc(1); ez_inc(JE)=ez_inc_high_m2; ez_inc_high_m2=ez_inc_high_m1; ez_inc_high_m1=ez_inc(JE-1); %计算D for j = 2:JE for i = 2:IE dz(i,j) = gi3(i) * gj3(j) * dz(i,j) + gi2(i) * gj2(j) * 0.5 * ( hy(i,j) - hy(i-1,j) - hx(i,j) + hx(i,j-1) ); end; end;,% 激励元 在此采用正弦波,频率为1.5G,可选为高斯脉冲 % hard source %pulse_choice = input(Enter 1 for Gaussian, 2 for sine wave pulse: ); %if pulse_choice = 1 pulse = exp( -0.5 * ( t0-T ) / spread ) 2 ) ; %clear j; %pulse=1;%exp(-j*omiga*ddx*T/c); %dz(IE/2,JE/2) = pulse + dz(IE/2,JE/2); %else %pulse = sin( 2*pi*1500*1e6*dt*T); ez_inc(10) = pulse; %end; for i=ia:ib dz(i,ja)=dz(i,ja)+0.5*hx_inc(ja-1); dz(i,jb)=dz(i,jb)-0.5*hx_inc(jb); end,%计算E for j = 1:JE for i = 1:IE ez(i,j) = ga(i,j) * (dz(i,j)-iz(i,j); iz(i,j)=iz(i,j)+gb(i,j)*ez(i,j); end; end; %Set the Ez edges to 0, as part of the PML for j=1:JE ez(1,j) = 0; ez(IE,j) = 0; end; for i = 1:IE ez(i,1) = 0; ez(i,JE) = 0; end; for j=1:JE-1 hx_inc(j)=hx_inc(j)+0.5*(ez_inc(j)-ez_inc(j+1); end for j=1:JE for i=1:IE real_pt(i,j)=real_pt(i,j)+cos(2*pi*frequency*T*dt)*ez(i,j); imag_pt(i,j)=imag_pt(i,j)-sin(2*pi*frequency*T*dt)*ez(i,j); end end,%计算Hx for j = 1:JE-1 for i = 1:IE curl_e = ez(i,j) - ez(i,j+1); ihx(i,j) = ihx(i,j) + fi1(i) * curl_e; hx(i,j) = fj3(j) * hx(i,j) + fj2(j) * 0.5 * ( curl_e + ihx(i,j) ); end; end; %修正场区域 for i=ia:ib hx(i,ja-1)=hx(i,ja-1)+0.5*ez_inc(ja); hx(i,jb)=hx(i,jb)-0.5*ez_inc(jb); end,%计算Hy for j = 1:JE for i = 1:IE -1 curl_e = ez(i+1,j) - ez(i,j); ihy(i,j) = ihy(i,j) + fj1(j) * curl_e; hy(i,j) = fi3(i) * hy(i,j) + fi2(i) * 0.5 * ( curl_e + ihy(i,j) ); end; end; %修正场区域 for j=ja:jb hy(ia-1,j)=hy(ia-1,j)-0.5*ez_inc(j); hy(ib,j)=hy(ib,j)+0.5*ez_inc(j); end,%画图 figure(1); surfc(1:IE,1:JE,ez) %surfc(ia:ib,ja:jb,ez(ia:ib,ja:jb) axis(0 IE 0 JE -0.2 1.) pause(.01); end; amp_in=sqrt(real_in2+imag_in2); for j=ja:jb if(ga(ic,j)1) amp(j)=sqrt(real_pt(ic,j)2+imag_pt(ic,j)2)/amp_in; end end figure(2); plot(ja+26:jb-30,amp(ja+26:jb-30); title(电磁波的幅度变化);,3、Mur 吸收边界原理,在此之前先了解一下 Engquist-Majda吸收边界条件,Engquist-Majda吸收边界条件,考虑齐次波动方程,在二维情形为: 其平面波解为: 其中 设x=0平面为截断面,如图所示,x=0右侧区 域同时存在入射波和反射波叠加,此区域中有: 式中设 左行波 右行波,Engquist-Majda吸收边界条件,带入得 定义微分算子 注:保留对x的导数 算子L做因式分解 左行波算子 右行波算子,Engquist-Majda吸收边界条件,将左行波算子作用在平面波上得 若在 截断边界处设置条件 ,相当于使截断截面处右行波(反射波)成分等于零。 将算子具体表示代入上式得 作频域到时域的转换,Engquist-Majda吸收边界条件,Engquist-Majda吸收边界条件 (截断边界位于区域左侧) (截断边界位于区域右侧) 通过波动方程的因子分解获得直角坐标系下FDTD吸收边界的单向波动方程,一阶和二阶近似吸收边界,算子中含有根式运算,限制了数值实现。做近似处理: 利用Taylor级数展开 重写左行波算子 保留级数第一项做近似 这就是x=0平面作为区域左侧界面不产生反射波的一阶近似吸收边界条件。,一阶和二阶近似吸收边界,保留级数至第二项 这就是x=0平面作为区域左侧界面不产生反射波的二阶近似吸收边界条件。 二阶近似比一阶近似吸收边界条件有所改善,残留反射波小。 Mur对表中的吸收边界条件引入了一种简单有效的差分数值算法,即对时间和空间的偏微分取二阶中心差分近似,将单向波方程离散化,便形成了Mur的一阶二阶吸收边界条件,其总体虚假反射在1%5%,能满足许多工程需求。,Mur 吸收边界条件,对于二维电磁场问题,Mur指出二阶近似吸收边界可降低为只含E,H分量的一阶导数,从而使数值计算简化。 TM波 二维直角坐标TM波,将上式对t积分,并设初始场为0,Mur 吸收边界条件,对于TE波,同理 Mur二阶近似吸收边界条件比一阶近似多出一项一阶导数。 Mur吸收边界条件的FDTD离散式 先看TM波的一阶近似 ,Mur 吸收边界条件,将上式在 作离散 利用下式线性插值关系消去,Mur 吸收边界条件,将上式带入,再带入得 整理后得到TM波边界条件的一阶近似 对照Yee元胞图可知位于左截断边界上的 节点值是用区域内部节点值及前一时刻边界上的节点值来表示,不涉及截断边界以为的场量。,Mur 吸收边界条件,对于TM波的Mur吸收边界条件二阶形式,比一阶多一项 离散式 线性插值 整理后得吸收边界的离散式:,Mur 吸收边界条件,TE波一阶二阶吸收边界条件可类似推导得到,Mur 吸收边界条件,对于二维TM波情况,电磁场除了 还有 、 。 由图可知,在用FDTD计算边界处的TM波元胞 时并不会涉及截断边界以外E或H的节点。 只有 涉及截断边界外侧的H节点。因此只需给出边界处切向场分量 的吸收边界条件。 对TE波同理只需 的 边界。,Mur 吸收边界条件,以上只讨论了x=0的左侧界面的吸收边界条件。对于其余三边有相似结果。,Mur程序 网格划分,% Define the FDTD grid s_smaller = 1; t_smaller = sqrt(2); del_s = lambda/20/s_smaller del_t = del_s/c/sqrt(2)/t_smaller dim_s = 5; s_range = dim_s * lambda; s_range = ceil(s_range / del_s) * del_s; s_cells = s_range / del_s; cells = s_cells; nodes = cells+1;,主循环,while (done=0), % Store previous values of E Ex_o = Ex; Ey_o = Ey; Hz_o = Hz;,Mur边界,% Update boundary conditions (Ex , Ey) Ex(1,1:nodes) = Ex_o(2,1:nodes) + c_MUR*(Ex(2,1:nodes) - Ex(1,1:nodes); Ey(1:nodes,nodes) = Ey_o(1:nodes,nodes-1) + c_MUR*(Ey(1:nodes,nodes-1) - Ey(1:nodes,nodes); Ex(nodes,1:nodes) = Ex_o(nodes-1,1:nodes) + c_MUR*(Ex(nodes-1,1:nodes) - Ex(nodes,1:nodes); Ey(1:nodes,1) = Ey_o(1:nodes,2) + c_MUR*(Ey(1:nodes,2) - Ey(1:nodes,1);,作图,% Plot response figure(5); mesh(abs(Ex + i*Ey); axis(0 nodes 0 nodes 0 1); end;,TE波MUR效果,5、仿真结果及分析,TM波在圆柱体内的幅度随着相对介电常数不同而呈现不同程度的衰减,TM波在圆柱体内的幅度随着电导率的不同而呈现不同程度的衰减,没有吸收边界时的散射情况:,PML吸收边界条件下的散射情况:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!