• 大小: 8.07MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-11
  • 语言: C/C++
  • 标签: fdtd  matlab  

资源简介

一份matlab代码模拟TM波传播,实测可用,附赠一篇外国博士论文,文中附录带模拟探地雷达电磁波场传递源代码,这份代码用C语言开发

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%TM波的传播
%今日完成 tm波的传播

clear all; clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 真空常数设定
epsz=1/(4*pi*9*10^9);          %真空介电常数
mu=4*pi*10^(-7);               %真空磁导率
Z=sqrt(mu/epsz);               %真空阻抗
epsilon=1;                     %真空相对介电常数
sigma=0;                       %真空电导率

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定截止频率
v=3e8;                         %波速
f=0.3e9;                       %截止频率
lamda=v/f;                     %波长
k=2*pi/lamda;                  %波数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定网格
IE=150;                        %x向网格数
JE=150;                        %y向网格数
ISteps=450;                    %迭代次数
ddx=lamda/20;                  %网格尺寸
dt=ddx/(2*v);                  %时间步大小

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定总场
ia=30;
ib=IE-ia;                      %x向总场边界位置
ja=30;                         
jb=JE-ja;                      %y向总场边界位置

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PML层数
npml=10;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  设定脉冲源参数
spread=8;                      %脉冲宽度
t0=25;                         %脉冲高度
%x0=IE/2;
x0=11;
%y0=JE/2;                       %脉冲位置
%x0=50;
y0=50;
pulse=0;                       %记录脉冲大小


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 计算中的变量内存分配
u=zeros(IStepsIEJE); 
u1=zeros(ISteps);
u2=zeros(IEJE);
dz=zeros(IEJE);               %z向电场密度,归一化后的
ez=zeros(IEJE);               %z向电场强度

em=zeros(IEJE);  %%%%%%%%%%%%%
IE1=IE/3;
IE2=IE1+1;
IE3=IE/2;
IE4=IE3+1;

iz=zeros(IEJE);               %迭代中间变量
hx=zeros(IEJE);               %x向磁场变量
hy=zeros(IEJE);               %y向磁场变量
ihx=zeros(IEJE);              %x向hx计算的中间变量
ihy=zeros(IEJE);              %y向hy计算的中间变量
     for i=1:IE1;
        for j=1:JE;
            em(ij)=1;
        end
     end
     for i=IE2:IE3;
        for j=1:JE;
            em(ij)=2;
        end
     end
     for i=IE4:IE;
        for j=1:JE;
            em(ij)=3;
        end
     end
%% PML初始化设置
gi2=ones(1IE);                  %x向系数
gi3=ones(1IE);
fi1=zeros(1IE);
fi2=ones(1IE);
fi3=ones(1IE);

gj2=ones(1JE);                  %y向系数
gj3=ones(1JE);
fj1=zeros(1JE);
fj2=ones(1JE);
fj3=ones(1JE);

%% PML层中阻抗渐变设置
for i=1:npml+1;
    xnum=npml-i+1;
    xxn=xnum/npml;
    xn=0.333*(xxn^3);
    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)/npml;
    xn=0.25*(xxn^3);
    fi1(i)=xn;
    fi1(IE-i)=xn;
    fi2(i)=1/(1+xn);
    fi2(IE-i)=1/(1+xn);
    fi3(i)=(1-xn)/(1+xn);
    fi3(IE-i)=(1-xn)/(1+xn);
end;

for j=1:npml+1;
    xnum=npml-j+1;   
    xxn=xnum/npml;      
    xn=0.33*(xxn^3);   
    gj2(j)=1/(1+xn);   
    gj2(JE-j+1)=1/(1+xn);   
    gj3(j)=(1-xn)/(1+xn);   
    gj3(JE-j+1)=(1-xn)/(1+xn);   
       
    xxn=(xnum-0.5)/npml;   
    xn=0.25*(xxn^3);   
    fj1(j)=xn;   
    fj1(JE-j)=xn;   
    fj2(j)=1/(1+xn);   
    fj2(JE-j)=1/(1+xn);   
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5618  2019-04-06 22:05  matlabfdtd\todaywork.m

     文件    8876895  2018-10-30 08:21  matlabfdtd\外国博士正演.pdf

     目录          0  2019-04-06 22:34  matlabfdtd

----------- ---------  ---------- -----  ----

              8882513                    3


评论

共有 条评论