登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
X波段标准波导BJ100主模式FDTD仿真求解程序
发帖
回复
1855
阅读
3
回复
[
转载
]
X波段标准波导BJ100主模式FDTD仿真求解程序
离线
tingo
临渊羡鱼,不如退而结网
UID :28673
注册:
2009-03-29
登录:
2019-09-21
发帖:
126
等级:
仿真三级
0楼
发表于: 2011-10-25 15:33:03
最近初学FDTD的人挺多的,经常遇到问问题的朋友,在此
转载一个
自己在微网分享的二维FDTD仿真求解X波段标准波导BJ100主模程序,希望对大家有所帮助。
<%!@cE+y
其中包含的内容有:FDTD仿真TE波,调制的高斯信号,离散傅里叶变换。
/q> "">
{u:DC4eut
[code]% FDTD 仿真求解X波段标准波导BJ-100主模式
cgU7)`0j
%编写者:何国强;
wk3yz6V2
%Email:guoqianghe22@gmail.com;
al5?w{us
%编写时间:2011年10月25日;
?e BN_a,r6
clear;
}NUP[%
clc;
7~IAgjo,@
%% 计算中用到的一些电磁常量;
0uZH H
mu=4*pi*(1e-7); %磁导率;
`527vK 6
epsilon=(1/36/pi)*(1e-9); %介电常数;
\Wo,^qR
Vvacuum=1/sqrt(mu*epsilon); % 真空中的波传播速度;
xD~:= ]G
%% 网格数据;
T# 8O:
a=22.86e-3; %波导宽边;
A5z`3T;1
b=10.16e-3; %波导窄边;
<@?bYp
nx=100;
lAoH@+dyA+
ny=50;
>FY`xl\m}<
dx=a/nx;
^@N@gB
dy=b/ny;
WUHijHo5(8
kweyp IB
dt=1/Vvacuum/sqrt(1/dx/dx+1/dy/dy);
-JcfP+{wS
6VA@ ;g0$
io=round(nx/4); %观察点位置
O=yUAAD$
jo=round(ny/2); %观察点位置
[1s B
%% 激励源;
KQEn C`Nz
fc=6.5e9; % GHz;
{6n B83BB
fmax=8e9; % GHz;
< B'BlqTS
T=1/2/fmax; % 激励源周期;
!7_Q_h',
tau=3*T;
nTLdknh"
ntau=tau/dt;
N[AX29
ndelay=3*ntau;
YS;Ql\4
omega=fc*2*pi; %角频率
d`Wd"LJ=
itmax=round(20*tau/dt); %最大时间步进数目;
m:'fk;khN
t=(1:itmax)*dt; %时域时间采样点;
fFsA[@5tul
source=zeros(1,itmax);
S3 &L
%调制的高斯信号;
?gTY!;$P
for n=1:round(6*ntau)+1;
ATwPfo8jx@
source(n)=sin(omega*(n-ndelay)*dt)*exp(-((n-ndelay)^2/ntau^2));
/N~.,vf
end
WT1ch0~2
is=round(nx/2);
nlJxF5/
%
GU_R6Wt+
%% 内存分配;
#wt#-U;
% EM场值
VPf=LSxJe
ex=zeros(nx,ny+1);
0{ \AP<
ey=zeros(nx+1,ny);
$oh}!Smt
hz=zeros(nx,ny);
@k6>&PS
%系数变量;
!"_\5$5i<X
caex=zeros(nx,ny+1);
R7vO,kZ6Q
cbex=zeros(nx,ny+1);
w,^!kO0)~8
caey=zeros(nx+1,ny);
Wz9 }glr
cbey=zeros(nx+1,ny);
{ c]y<q
cahz=zeros(nx,ny);
oas}8A)
cbhz=zeros(nx,ny);
HogT#BMs
eyobsv=zeros(1,itmax);
r=u>TA$
%% 波导中的介质参数;
>R :Bkf-
sigma=0;
G6L'RP
rou=0;
'./s'!Lj
eaf=sigma*dt/2/epsilon;
5*~G7/hT
ca=(1-eaf)/(1+eaf);
nqr[HFWs
cb=dt/epsilon/(1+eaf);
o@"H3 gz
haf=rou*dt/2/mu;
v\&Wb_;A
cp=(1-haf)/(1+haf);
)y._]is)b
cq=dt/mu/(1+haf);
6VIi nuOW
caex=ca*ones(size(caex));
p*vEVo
cbex=cb*ones(size(cbex));
d?'q(6&H
caey=ca*ones(size(caey));
zU]95I
cbey=cb*ones(size(cbey));
58WL8xu
cahz=cp*ones(size(cahz));
/-1[}h%U'
cbhz=cq*ones(size(cbhz));
f~t*8rG~m
% PEC边界处的ex,ey计算系数;
0*x
caex(:,1)=1;
\= i>}Sg
cbex(:,1)=0;
G/=tC8eX
caex(:,ny+1)=1;
$O=m/l$
cbex(:,ny+1)=0;
{8'I+-
caey(1,:)=1;
NKh 8'=S
cbey(1,:)=0;
10t9Qv/
caey(nx+1,:)=1;
D/{hLp{
cbey(nx+1,:)=0;
9z,V]v=
%% FDTD Looping
%I?uO( @
for it=1:itmax
=lA*?'kd
%% Update Hz;
.I<#i9Le
hz(1:nx,1:ny)=cahz(1:nx,1:ny).*hz(1:nx,1:ny)-...
{ "=d7i
cbhz(1:nx,1:ny).*( ( ey(2:nx+1,:)-ey(1:nx,:) )/dx - ( ex(:,2:ny+1)-ex(:,1:ny) )/dy );
Ub0g{
%% Update Ex , Ey;
u0\?aeg`
ex(:,2:ny)=caex(:,2:ny).*ex(:,2:ny)+...
R0AVAUG
cbex(:,2:ny).*( hz(:,2:ny)-hz(:,1:ny-1) )/dy;
E{|j
ey(2:nx,:)=caey(2:nx,:).*ey(2:nx,:)-...
Q/L:0ovR
cbey(2:nx,:).*( hz(2:nx,:)-hz(1:nx-1,:) )/dx;
<$/'iRtRzW
ey(is,:)=ey(is,:)+source(it); % 加载激励源;
~^ Q`dJL
eyobsv(it)=ey(io,jo); % 记录观察点的场值;
:Fu.S1j$
end
u6;SgPw
%% 观察点场值做离散傅里叶变换(时域到频域)
|h4aJv
nf=1000; %频率采样点数目;
{e,S}:$g4
fmin=5e9; % 5GHz;
bZz ,'
df=(fmax-fmin)/(nf-1); %频率采样步长;
g"^<LX-
Ef=zeros(1,nf); %为频域场量分配内存;
HOBM?|37CU
J=sqrt(-1); %虚数i;
94\k++kc
for n=1:nf
(@[c;+x
coe=exp(-J*2*pi*( fmin+(n-1)*df ).*t );
{p-&8-
Ef(n)=dt*sum(eyobsv(1,:).*coe );
9F@ Q
end
Fn1|Wt*
freq=fmin:df:fmax;
~}PB&`%7
Ef=abs(Ef);
xXQDHc-Ba
[Efmax,idmax]=max(Ef);
[O7:<co
%% 输出计算结果
ZXlW_CGO
% figure1 Ey在观察点的瞬态响应
zq _*)V
figure(1)
v?vm-e
plot(t,eyobsv);
#[ipJ %
xlabel('时间(s)')
C,HKao\
ylabel('电场(V/m)')
0"3l2Eo
title('观察点Ey瞬态响应')
rK7m(
*\L\Bzm
% figure2 Ey的频域响应
IXc"gO
figure(2)
-lAX-W0
plot(freq,Ef,'c');
#Fm, mO$v
hold on;
|Q[[WHqj2f
plot(freq(idmax),Ef(idmax),'r^');
V]&0"HX2r!
xlabel('频率(Hz)');
@FU9!
ylabel('电场(V/m)')
4'_PLOgnX
title('电场的频域值')
+a0q?$\
legend('Ey频域值','主模')
Pm*FA8 a7
% 输出主模式TE10模截止频率的理论值和仿真值;
\c (R#*0,
Theorynamdac=4.572e-2;
kzcl
Theoryfc=Vvacuum./Theorynamdac;
tUaDwIu#
Simfc=freq(idmax);
`2.[8%6
disp('=*******************************************************=');
2guWWFS
disp('** ..
Y`.FSs
\("|X>00
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
tingo
临渊羡鱼,不如退而结网
UID :28673
注册:
2009-03-29
登录:
2019-09-21
发帖:
126
等级:
仿真三级
1楼
发表于: 2011-10-25 20:17:49
这比较适合于初学FDTD者做参考,有问题大家可以在此一起讨论!
共
条评分
仿真新人!
离线
lx84
呵呵
UID :30566
注册:
2009-04-22
登录:
2020-09-16
发帖:
866
等级:
积极交流六级
2楼
发表于: 2011-10-26 23:20:23
前排支持楼主
共
条评分
继续!
离线
tingo
临渊羡鱼,不如退而结网
UID :28673
注册:
2009-03-29
登录:
2019-09-21
发帖:
126
等级:
仿真三级
3楼
发表于: 2011-10-27 22:22:27
回 2楼(lx84) 的帖子
谢谢支持!
共
条评分
仿真新人!
发帖
回复