登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
一维程序求解读
发帖
回复
744
阅读
0
回复
[
求助
]
一维程序求解读
离线
422204942
UID :74635
注册:
2011-03-28
登录:
2011-05-20
发帖:
25
等级:
仿真新人
0楼
发表于: 2011-05-09 13:20:32
%%Try changing the value of "profile".
&F~97F)A)
close all;
Ci$?Hm9 n
clear all;
xz3|m _)
L = 5; %长度
71G\b|5
N = 505; %# 空间划分
^*'fDP*
Niter = 400; %迭代次数
0JU+v:J[=
fs = 300e6; %频率
$ #bWh
ds = L/N; %步长
SYA0Hiw7P
dt = ds/300e6; %”单位时间“
FJ] ?45
eps0 = 8.854e-12; %真空中的介电常数
zbAyYMtEk
mu0 = pi*4e-7; %真空中的磁导率
Mz: "p.
x = linspace(0,L,N); %x 轴划分
_g%,/y 9y
showWKB=0;
D_M73s!U
ae = ones(N,1)*dt/(ds*eps0);
E_-g<Cw
am = ones(N,1)*dt/(ds*mu0);
eOZ"kw"uHu
as = ones(N,1);
?)2; W
epsr = ones(N,1);
k{J\)z
mur= ones(N,1);
pcNpr`
sigma = zeros(N,1);
>l^[73,]L
%Try profile = 1,2,3,4,5,6 in sequence.
WSqo\]
%You can define epsr(i)介电常数ε=εr*ε0, mur(i)磁导率μ %and sigma(i)导电性
}ws(:I^
profile =1;
@y8) "m"
for i=1:N/2
,:xses*7
epsr(i) = 1;
ODKHI\U
mur(i) = 1;
l,ic-Y1
w1 = 0.5;
u9j1>QU
w2 = 1.5;
h3j`X'
if (profile==1) %介电窗口
Ntlbn&lc;D
if (abs(x(i)-L/2)<0.5) epsr(i)=4; end
i|!W;2KL5
end
qlC4&82=Q
if (profile==2)%平稳过渡
wUKt$_]``
if (abs(x(i)-L/2)<1.5) epsr(i)=1+3*(1+cos(pi*(abs(x(i)-L/2)-w1)/(w2-w1)))/2; end
K>_~|ZN1C8
if (abs(x(i)-L/2)<0.5) epsr(i)=4; end
TJUYd9O4[
end
@me ( pnD
if (profile==3) %介质不连续
B8>3GZi
if (x(i)>L/2) epsr(i) = 9; end
jE!?;} P1
end
{w mP
if (profile==4)
4^7*R
if (x(i)>(L/2-0.1443)) epsr(i) = 3; end
9a]J Q
if (x(i)>L/2) epsr(i) = 9; end
h@ @q:I=
end
juB /?'$~
=8AL>:_
end
<])kO`+G
ae = ae./epsr;
z_%}F':
am = am./mur;
og`g]Z<I
ae = ae./(1+dt*(sigma./epsr)/(2*eps0));
LF ;gdF%@
as = (1-dt*(sigma./epsr)/(2*eps0))./(1+dt*(sigma./epsr)/(2*eps0));
kiu#THF
Hz = zeros(N,1);
^zKP5nzL
Ey = zeros(N,1);
H8h,JBg5<F
figure(2);
p4@0Dz`Q
set(gcf,'doublebuffer','on');
;CDa*(e
plot(Ey);
~ep^S^V+
grid on;
8gW$\
for iter=1:Niter
JfzfxfM
Ey(3) = Ey(3)+2*(1-exp(-((iter-1)/50)^2))*sin(2*pi*fs*dt*iter);
K~A@>~vFb
Hz(1) = Hz(2);
&W%fsy<
for i=2:N-1
y$+_9VzYB
Hz(i) = Hz(i)-am(i)*(Ey(i+1)-Ey(i));
]uXmug
end
i2?TMM!Fe
Ey(N) = Ey(N-1);
$d Nmq
for i=2:N-1
}[: i!t.m
Ey(i) = as(i)*Ey(i)-ae(i)*(Hz(i)-Hz(i-1));
3XhLn/@
end
Z9zsvg
figure(2)
=xr2-K)e
hold off
/;WFRp.
plot(x,Ey,'b');
$?y\3GX
axis([3*ds L -2 2]);
u_.Ig|Va
grid on;
S7B?[SPrN[
title('E (blue) and 377*H (red)');
0}-MWbG
hold on
RY]jY | E
plot(x,377*Hz,'r');
dC?l%,W
xlabel('x (m)');
?3do-tTp
pause(0);
s[%@3bY!7
iter
rQ)I
end
/gP"X1.
if (showWKB==1)
UVD*GsBk
phase = cumsum((epsr).^0.5)*ds;
JnS@}m
beta0 = 2*pi*fs/(300e6);
]Uul~T
theory = sin(2*pi*fs*(Niter+4)*dt-beta0*phase)./(epsr.^0.25);
(S8hr,%n
  ..
mV|Z5 =f
~Hvf"bvK|
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
发帖
回复