登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
Sullivan 写的两个程序FDTD1D_1.5和FDTD_2.1模拟相 ..
发帖
回复
1
2
3592
阅读
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模拟相同的情景(即正弦波通过损耗介质)为什么输出的结 ..
{$.{VE+v5
F.hC%Ncu
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
1楼
发表于: 2009-05-06 23:14:49
两个都是1D的?
~ M"[FYw[
代码贴出来?
共
条评分
逆流而上
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
2楼
发表于: 2009-05-07 09:45:11
FDTD1D_1.5
d&fENnt?h
f_ ::?
r1[0#5kJ;J
delta_x = .01;%Set the cell size to 1cm
-0W;b"]+A
delta_t = delta_x/(2*3e8);%Calculate the time step
-Oo$\=d
max_time = 500;% time is be limited
Y-Z.AA,
max_space = 200;
'd28YjtoX
E = zeros(max_space,1);
F4k`x/ak
H = E;
G~_dSa@g G
dielectric_begin = 100;
, w_ Ew
dielectric_end = max_space;
IE|$>q0Z
dielectic_space_a = ones(max_space,1);
R4o_zwWgPw
dielectic_space_b = ones(max_space,1);
7~IAgjo,@
eta = 0.5;
M]&9Kg3
dielectric_constant = 4;
+pE-Yn`YS
etaeps = eta/dielectric_constant;
8\[6z0+;
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
s)-=l_4T
sigma = 0.04;
iR_X,&p
epszero = 8.85419e-12;
$FD0MrB_+
loss_term = (delta_t*sigma) / (2*epszero*dielectric_constant);
a.q=
%ABS needed for LHS of problem space do not work with Lossy medium
nY6^DE2f
E_low_m2 = 0;
3D\I#g
E_low_m1 = 0;
zW\&q!`IRP
E_high_m2 = 0;
%=GnGgu
E_high_m1 = 0;
RhYf+?2
%Initialize Pulse Variables
fSSDOH!U,
frequency = 700*1e6;% Unit of Mhz
-{ZRk[>Z
place_pulse = 5;
vmL0H)q
% center_problem_space = max_space/2;
@k6>&PS
%Set up dielectric medium within the problem space
rtOXK4)]I
for i = 1:max_space
"*?^'(yA@
if (i>=dielectric_begin & i <= dielectric_end)
?-6oh~W<
dielectric_space_a(i)=(1-loss_term)/(1+loss_term);
HogT#BMs
dielectric_space_b(i)=0.5/(dielectric_constant *(1+loss_term));
c$>Tfa'H
else
/S]<MS
dielectric_space_a(i)=1;
:] :q=1;c
dielectric_space_b(i)=eta;
Qq>M}
end
+Ge-!&.;A
end
}"A.[9 b
for n = 1:max_time
kvKbl;<
for k = 2:max_space
b]@^SN9
E(k) = dielectric_space_a(k)*E(k) + dielectric_space_b(k)*(H(k-1)-H(k));
58WL8xu
end
2b2/jzO}J
%Soft Source- adds a value on the grid
^xFZ;Yf
pulse = sin(2*pi*frequency*delta_t*n);
@*!8
E(place_pulse) = E(place_pulse) + pulse;
]M#_o]
%ABC E
FL-sXg
E(1) = E_low_m2;
/JJU-A(
E_low_m2 = E_low_m1;
PY~cu@'k{
E_low_m1 = E(2);
bfhap(F~(e
E(max_space) = E_high_m2;
|h4aJv
E_high_m2 = E_high_m1;
{|a=
E_high_m1 = E(max_space-1);
UhXZ^k3
for j = 1:max_space-1
EN'}+E 8
H(j) = H(j) +eta*(E(j)-E(j+1));
|cUTP!iy
end
+O2T%
plot(E)
?u/RQ 1
title('Soft Source Simulation with Dielectric Constant = 4')
ZxLgV$U
axis([0 max_space -1.2 1.2])
(w`9*1NO
drawnow
XhhV7J_F
end
Z2!O)8
rK7m(
FDTD_2.1
^1nQDd*
-lAX-W0
AQ7w5}g+V
delta_x = .01;%Set the cell size to 1cm
OLg=kF[[
delta_t = delta_x/(2*3e8);%Calculate the time step
^U)xQD"
max_time = 500; %time is not be limited
EPkmBru ^
max_space = 200;
ef *Vs
E = zeros(max_space,1); %Electric array
h0_od/D1r
H = E; %Magnetic array
PS7ta?V QC
D = E; %flux density array
^Q0%_V,
I = E;
fq-e2MCX5
dielectric_begin = 100;
iK%%
dielectric_end = 200;
kLtm_
dielectic_space_a = ones(max_space,1);
* `1W})
dielectic_space_b = ones(max_space,1);
OXAr..
eta = 0.5;
.?|pv}V
dielectric_constant = 4;
/?C}PM
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
AXFQd@#
sigma = 0.04;
dTcrJ|/Y
epszero = 8.85419e-12;
V $Y=JK@
etaeps = (delta_t*sigma) / epszero;
W:VRLT>w>
%Initalize ABC conditions
]jQj/`v1
E_low_m2 = 0;
X+dLk(jI`u
E_low_m1 = 0;
'~{bq'7`m
E_high_m2 = 0;
V'alzw7#
E_high_m1 = 0;
l/ufu[x!a
%Initialize Pulse Variables
U|yXJ.Z3
frequency = 700*1e6;% Unit of Mhz
(]ToBju
place_pulse = 5;
}JPLhr|d^
%Dielectric Medium - wave velocity slows as it travels through the medium
&![3{G"+>l
for i = 1:max_space
=cz^g^7
if ( i >= dielectric_begin & i <= dielectric_end )
'ONCz
dielectric_space_a(i) = 1/(dielectric_constant+etaeps);
bYt[/K,
dielectric_space_b(i) = etaeps;
`-yo-59E[
else
hc#Sy:T>
dielectric_space_a(i)=1;
tr?U/YG
dielectric_space_b(i)=0;
b%A+k"d
end
pg0Sq9qCN
end
EIdEXAC(
%Main Loop
'ip2| UG
for n = 1:max_time
rlMahY"C
%Loop for D_x
VO u/9]a
for k = 2:max_space
VCf/EkC
D(k) = D(k)+0.5*(H(k-1)-H(k));
[0>I6Jl
end
m!#'4
%Soft Source- adds a value on the grid
w&F.LiX^
pulse = sin(2*pi*frequency*delta_t*n);
p#;I4d G
D(place_pulse) = D(place_pulse)+pulse;
{$AwG#kt
%Loop for E_x
m-u3 ^\'
for k = 1:max_space-1
j3=%J5<
E(k) = dielectric_space_a(i)*(D(k)-I(k));
4>R)2g
I(k) = I(k)+dielectric_space_b(i)*E(k);
-}x( MZ
end
VPi*9(LS
%ABC E
9@3cz_[J
E(1) = E_low_m2;
IEmjWw4
E_low_m2 = E_low_m1;
cZR9rnZT
E_low_m1 = E(2);
i U"2uLgb
E(max_space) = E_high_m2;
}ebu@)r
E_high_m2 = E_high_m1;
>}H3V]
E_high_m1 = E(max_space-1);
Gg TrIF
%Loop for H_y
$ VTk0J-W
for j = 1:max_space-1
JfLoGl;pm
H(j) = H(j) +eta*(E(j)-E(j+1));
z{m%^,Cs,
end
Qo\+FkhYq
plot(E)
+d!"Zy2|B
title('Soft Source Simulation with Dielectric Constant = 4')
_jWGwO
axis([0 max_space -1.2 1.2])
)=TS)C4
drawnow
*e,GXU@
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波形吗?
I'>r
我看源一个是加到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) 的帖子
去掉
m}oqs0xx
g!*5@k|C
%Soft Source- adds a value on the grid
7Fd`MTo
pulse = sin(2*pi*frequency*delta_t*n);
WXzSf.8p|
D(place_pulse) = D(place_pulse)+pulse;
?cRGdLP'D
4' MmT'
%ABC E 前面加上
~R!M.gY[rK
%Soft Source- adds a value on the grid
IVblSiFF
pulse = sin(2*pi*frequency*delta_t*n);
iF#|Z$g-(
E(place_pulse) = E(place_pulse) + pulse;
]/klKqz
mtunD;_Dek
试一下看看。
共
条评分
逆流而上
离线
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删掉没,没删的话,下班后回去看一下。
共
条评分
逆流而上
发帖
回复