登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
Sullivan 写的两个程序FDTD1D_1.5和FDTD_2.1模拟相 ..
发帖
回复
1
2
3586
阅读
18
回复
[
已解决
]
Sullivan 写的两个程序FDTD1D_1.5和FDTD_2.1模拟相同的情景为什么输出的结果不同呀
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
0楼
发表于: 2009-05-06 22:35:11
关键词:
FDTD
哪位高手指点下:Sullivan 写的两个程序FDTD1D_1.5和FDTD_2.1模拟相同的情景(即正弦波通过损耗介质)为什么输出的结 ..
|u<7?)mp
"ze|W\Bv!
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
1楼
发表于: 2009-05-06 23:14:49
两个都是1D的?
eJ-nKkg~a
代码贴出来?
共
条评分
逆流而上
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
2楼
发表于: 2009-05-07 09:45:11
FDTD1D_1.5
CU!Dhm/U
5Gm_\kd
c7H^$_^ =
delta_x = .01;%Set the cell size to 1cm
La[V$+Y
delta_t = delta_x/(2*3e8);%Calculate the time step
do'GlU oMC
max_time = 500;% time is be limited
'LDQgC*%
max_space = 200;
t%8BK>AHvw
E = zeros(max_space,1);
7b+6%fV
H = E;
?}Y]|c^W
dielectric_begin = 100;
,eS)e+yzc2
dielectric_end = max_space;
G' 1'/
dielectic_space_a = ones(max_space,1);
=7UsVn#o
dielectic_space_b = ones(max_space,1);
5)X=*I
eta = 0.5;
2GG2jky{/
dielectric_constant = 4;
GTHt'[t@;
etaeps = eta/dielectric_constant;
}^\oCR@
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
MF'JeM;H
sigma = 0.04;
]6j{@z?{
epszero = 8.85419e-12;
m9;SrCN_
loss_term = (delta_t*sigma) / (2*epszero*dielectric_constant);
v`T c}c '
%ABS needed for LHS of problem space do not work with Lossy medium
j1<Yg,_.p
E_low_m2 = 0;
E!F^H^~$8
E_low_m1 = 0;
Wx#;E9=Im
E_high_m2 = 0;
))Za&S*<
E_high_m1 = 0;
*{5fq_
%Initialize Pulse Variables
;$Jo+#
frequency = 700*1e6;% Unit of Mhz
{_*yGK48n
place_pulse = 5;
!5!<C,U
% center_problem_space = max_space/2;
xoME9u0x4
%Set up dielectric medium within the problem space
Dw"\/p:-3
for i = 1:max_space
{M)Nnst"~
if (i>=dielectric_begin & i <= dielectric_end)
.e-#yET
dielectric_space_a(i)=(1-loss_term)/(1+loss_term);
);YDtGip J
dielectric_space_b(i)=0.5/(dielectric_constant *(1+loss_term));
*0ro0Z|Iq
else
8eRLy/`gd
dielectric_space_a(i)=1;
uXiN~j &Be
dielectric_space_b(i)=eta;
2~[juWbz
end
k;Y5BB
end
gRzxLf`K
for n = 1:max_time
`WS&rmq&'
for k = 2:max_space
t6t!t*jO
E(k) = dielectric_space_a(k)*E(k) + dielectric_space_b(k)*(H(k-1)-H(k));
B33\?Yj)
end
3OB"#Ap8<
%Soft Source- adds a value on the grid
/gas2k==^
pulse = sin(2*pi*frequency*delta_t*n);
rvM {M/4
E(place_pulse) = E(place_pulse) + pulse;
lU]nd[x
%ABC E
yf,z$CR
E(1) = E_low_m2;
e|r`/:M
E_low_m2 = E_low_m1;
-nwypu
E_low_m1 = E(2);
F"mmLao
E(max_space) = E_high_m2;
Vjpy~iP4B
E_high_m2 = E_high_m1;
A@u@ift
E_high_m1 = E(max_space-1);
NHE18_v5
for j = 1:max_space-1
-'Mf\h8
H(j) = H(j) +eta*(E(j)-E(j+1));
cZ3v=ke^
end
"J1 4C9u
plot(E)
0"SU_jQzv
title('Soft Source Simulation with Dielectric Constant = 4')
[G3E%z
axis([0 max_space -1.2 1.2])
?V=CB,^
drawnow
vih9KBT
end
U$UIN#
fN2lLn9/u
FDTD_2.1
0*v2y*2V
TcoB,Kdce
B<C&xDRZ0
delta_x = .01;%Set the cell size to 1cm
wuo,kM
delta_t = delta_x/(2*3e8);%Calculate the time step
/mZE/>&~,
max_time = 500; %time is not be limited
;AG()NjOO:
max_space = 200;
2Khv>#l
E = zeros(max_space,1); %Electric array
B-mowmJ3dg
H = E; %Magnetic array
5lum $5
D = E; %flux density array
+w~oH =
I = E;
s#GLJl\E_P
dielectric_begin = 100;
_e2=ado
dielectric_end = 200;
.RL=xb|[
dielectic_space_a = ones(max_space,1);
|vC~HJpuv'
dielectic_space_b = ones(max_space,1);
T> p&$]OG
eta = 0.5;
rmOj
dielectric_constant = 4;
z(~_AN M4,
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
nr3==21Om4
sigma = 0.04;
[fyLV`
epszero = 8.85419e-12;
+cRn%ioVi
etaeps = (delta_t*sigma) / epszero;
eJX#@`K
%Initalize ABC conditions
&M[?h}B6
E_low_m2 = 0;
lLIAw$
E_low_m1 = 0;
3(UVg!t
E_high_m2 = 0;
h@BY]80
E_high_m1 = 0;
'<uq3?5
%Initialize Pulse Variables
*NQ/UXE
frequency = 700*1e6;% Unit of Mhz
cH)";]k*-
place_pulse = 5;
)M^ gT}M
%Dielectric Medium - wave velocity slows as it travels through the medium
[-x7_=E#
for i = 1:max_space
phz&zlD
if ( i >= dielectric_begin & i <= dielectric_end )
V~ _>U}
dielectric_space_a(i) = 1/(dielectric_constant+etaeps);
5-A\9UC*@
dielectric_space_b(i) = etaeps;
&nK<:^n
else
K Y^Z
dielectric_space_a(i)=1;
dF2RH)Ud
dielectric_space_b(i)=0;
Yr|4Fl~U
end
-n;}n:wL
end
7-A2_!_x{
%Main Loop
ss-D(K"
for n = 1:max_time
Ea=P2:3*
%Loop for D_x
w2J<WC+_<
for k = 2:max_space
d d;T-wa}
D(k) = D(k)+0.5*(H(k-1)-H(k));
Bbp|!+KP{(
end
eV~goj
%Soft Source- adds a value on the grid
*lb<$E]="!
pulse = sin(2*pi*frequency*delta_t*n);
@%SQFu@FJ
D(place_pulse) = D(place_pulse)+pulse;
S]{oPc[7
%Loop for E_x
_ x*3PE
for k = 1:max_space-1
F:ELPs4"
E(k) = dielectric_space_a(i)*(D(k)-I(k));
)pn3~t<ed
I(k) = I(k)+dielectric_space_b(i)*E(k);
UCWBYC+
end
3gf1ownC
%ABC E
`F6C-
E(1) = E_low_m2;
:gC#hmm^
E_low_m2 = E_low_m1;
?h2}#wg
E_low_m1 = E(2);
b`_Q8 J
E(max_space) = E_high_m2;
paMa+jhQQ
E_high_m2 = E_high_m1;
,z?':TZ
E_high_m1 = E(max_space-1);
_vZOZKS+
%Loop for H_y
?X;RLpEc|A
for j = 1:max_space-1
wyG;8I
H(j) = H(j) +eta*(E(j)-E(j+1));
y+;|Fz
end
-K$)DvV^(E
plot(E)
%XTI-B/K
title('Soft Source Simulation with Dielectric Constant = 4')
:hA#m[
axis([0 max_space -1.2 1.2])
XfmwVjy
drawnow
y?# Loe
end
共
条评分
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
3楼
发表于: 2009-05-07 09:50:13
程序代码已经贴在上面了,哪位大侠帮忙看下,这两个程序计算相同的东西为何输出结果却不一样,Sullivan 书上说两个结果应该一样才对呀
共
条评分
离线
yiting39
UID :24312
注册:
2009-01-08
登录:
2009-12-03
发帖:
25
等级:
仿真新人
4楼
发表于: 2009-05-07 11:17:01
好像两叠加系数不一样吧?
共
1
条评分
cem-uestc
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-05-07
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
5楼
发表于: 2009-05-07 14:17:05
什么结果不一样?输出的E波形吗?
sNwI0o
我看源一个是加到E上的,一个是加到D上的,源不一样,出来的电场波形当然有点区别了,但频谱分析下来应该结果是一样的。
共
1
条评分
cem-uestc
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-05-07
逆流而上
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
6楼
发表于: 2009-05-07 15:31:51
回 5楼(gwzhao) 的帖子
输出的E波形不一样,如果要使得输出的E波形一样,我该怎么修改FDTD_2.1这个程序呢
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
7楼
发表于: 2009-05-07 16:00:15
回 6楼(xiahuiz) 的帖子
去掉
e@OX_t_
bbyg8;/
%Soft Source- adds a value on the grid
\} :PLCKT
pulse = sin(2*pi*frequency*delta_t*n);
5o8EC" 0
D(place_pulse) = D(place_pulse)+pulse;
cjIh}:|'
{jX2}
%ABC E 前面加上
xlg9TvvI
%Soft Source- adds a value on the grid
g'qa}/X
pulse = sin(2*pi*frequency*delta_t*n);
3kMf!VL
E(place_pulse) = E(place_pulse) + pulse;
w)Qp?k d
)%@J=&G8TT
试一下看看。
共
条评分
逆流而上
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
8楼
发表于: 2009-05-07 16:21:15
回 7楼(gwzhao) 的帖子
刚试过,输出的E波形还是不对
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
9楼
发表于: 2009-05-07 16:34:28
回 8楼(xiahuiz) 的帖子
哦,不知道我Matlab删掉没,没删的话,下班后回去看一下。
共
条评分
逆流而上
发帖
回复