登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
Sullivan 写的两个程序FDTD1D_1.5和FDTD_2.1模拟相 ..
发帖
回复
1
2
3589
阅读
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模拟相同的情景(即正弦波通过损耗介质)为什么输出的结 ..
<&2,G5XA
4:'] 'E
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
1楼
发表于: 2009-05-06 23:14:49
两个都是1D的?
Rn(F#tI
代码贴出来?
共
条评分
逆流而上
离线
xiahuiz
UID :20367
注册:
2008-10-29
登录:
2012-04-07
发帖:
30
等级:
仿真一级
2楼
发表于: 2009-05-07 09:45:11
FDTD1D_1.5
K[a<
C\2 >7
x*"pDI0k)
delta_x = .01;%Set the cell size to 1cm
OjlB0
delta_t = delta_x/(2*3e8);%Calculate the time step
NT9- j#V
max_time = 500;% time is be limited
$17 v,
max_space = 200;
xVz -_z
E = zeros(max_space,1);
-kri3?Y,
H = E;
MN M>
dielectric_begin = 100;
+JAfHQm-
dielectric_end = max_space;
JS7}K)A2B6
dielectic_space_a = ones(max_space,1);
0/00W6r0
dielectic_space_b = ones(max_space,1);
<\9Ijuq}k
eta = 0.5;
V?V)&y] 4
dielectric_constant = 4;
fRa-bqQ
etaeps = eta/dielectric_constant;
9 c5G6n0
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
*ez~~ Y
sigma = 0.04;
(=tF2YBV
epszero = 8.85419e-12;
aU]O$Pg{
loss_term = (delta_t*sigma) / (2*epszero*dielectric_constant);
Z=Y_;dS9
%ABS needed for LHS of problem space do not work with Lossy medium
]V769B9
E_low_m2 = 0;
\%?8jQ'tX
E_low_m1 = 0;
3G/ mB
E_high_m2 = 0;
dYew7
E_high_m1 = 0;
>;&V~q:di
%Initialize Pulse Variables
]7R&m)16
frequency = 700*1e6;% Unit of Mhz
@1SKgbt>
place_pulse = 5;
a2=uM}Hsp
% center_problem_space = max_space/2;
`_g?y)
%Set up dielectric medium within the problem space
O$umu_
for i = 1:max_space
':2*+
if (i>=dielectric_begin & i <= dielectric_end)
Gp3nR<+
dielectric_space_a(i)=(1-loss_term)/(1+loss_term);
0m YZ7S5g
dielectric_space_b(i)=0.5/(dielectric_constant *(1+loss_term));
c>WpO Z,
else
"K$ Wh1<7
dielectric_space_a(i)=1;
GKsL~;8"
dielectric_space_b(i)=eta;
~)m t &
end
sHPwW5j/o'
end
NZ+?Ydr8k
for n = 1:max_time
'oHOFH9:{b
for k = 2:max_space
"G-0i KW;
E(k) = dielectric_space_a(k)*E(k) + dielectric_space_b(k)*(H(k-1)-H(k));
XG\a-dq[
end
pGbFg&
%Soft Source- adds a value on the grid
v!{'23`87
pulse = sin(2*pi*frequency*delta_t*n);
;GgQ@s@
E(place_pulse) = E(place_pulse) + pulse;
qfP"UAc{/
%ABC E
#9hXZr/8
E(1) = E_low_m2;
#nf%ojh
E_low_m2 = E_low_m1;
5IE+M
E_low_m1 = E(2);
fF9oYOh|
E(max_space) = E_high_m2;
+?5Uy*$
E_high_m2 = E_high_m1;
zr; Y1Xt4
E_high_m1 = E(max_space-1);
lF}$`6
for j = 1:max_space-1
i h$@:^\
H(j) = H(j) +eta*(E(j)-E(j+1));
l;{N/cS
end
~ut& U
plot(E)
ug6f
title('Soft Source Simulation with Dielectric Constant = 4')
Z>w^j.(
axis([0 max_space -1.2 1.2])
e"s {_V
drawnow
k"^t?\Q%vI
end
Va/@#=,q]
9>[.=
FDTD_2.1
D@rn@N
LnI{S{]wDh
Ubw!/|mi
delta_x = .01;%Set the cell size to 1cm
1l|A[G
delta_t = delta_x/(2*3e8);%Calculate the time step
peTO-x^a-
max_time = 500; %time is not be limited
0q>NE<L
max_space = 200;
2) /k`Na
E = zeros(max_space,1); %Electric array
cxP9n8CuT
H = E; %Magnetic array
ox\B3U%`p}
D = E; %flux density array
fBWJ%W
I = E;
[;IDTo!<>
dielectric_begin = 100;
!8" $d_=h
dielectric_end = 200;
JX\T {\m#
dielectic_space_a = ones(max_space,1);
kTiPZZI
dielectic_space_b = ones(max_space,1);
[`zbf_RyO
eta = 0.5;
%M;_(jda
dielectric_constant = 4;
n2y/zP>TC
%Lossy Medium variables - for non-Lossy medium set sigma = 0;
wUIsi<Oj
sigma = 0.04;
ej"o?1l@
epszero = 8.85419e-12;
+Sd x8 Z5
etaeps = (delta_t*sigma) / epszero;
32bkouq
%Initalize ABC conditions
{Z?$Co^R
E_low_m2 = 0;
+.gf]|
E_low_m1 = 0;
:9x084ESR)
E_high_m2 = 0;
`3sy>GU?
E_high_m1 = 0;
;oY(I7
%Initialize Pulse Variables
.y;\puNq
frequency = 700*1e6;% Unit of Mhz
hV>4D&<
place_pulse = 5;
r_V2 J{B
%Dielectric Medium - wave velocity slows as it travels through the medium
UP~WP@0F
for i = 1:max_space
Fyh?4!/.
if ( i >= dielectric_begin & i <= dielectric_end )
WDoKbTv
dielectric_space_a(i) = 1/(dielectric_constant+etaeps);
u.pKK
dielectric_space_b(i) = etaeps;
p'%: M
else
RP|>&I
dielectric_space_a(i)=1;
=ve*g&
dielectric_space_b(i)=0;
'!yS72{$2
end
{sna)v$;
end
ENYF0wW
%Main Loop
]4 K1%ZV
for n = 1:max_time
O'!r]0Q
%Loop for D_x
,3J`ftCV
for k = 2:max_space
DQ n`@
D(k) = D(k)+0.5*(H(k-1)-H(k));
:uIi ?
end
\%-E"[!
%Soft Source- adds a value on the grid
IB#iJ#,
pulse = sin(2*pi*frequency*delta_t*n);
#E$Z[G]
D(place_pulse) = D(place_pulse)+pulse;
}W__ffH
%Loop for E_x
P+;CE|J`X
for k = 1:max_space-1
MKVfy:g%So
E(k) = dielectric_space_a(i)*(D(k)-I(k));
*b6I%MZn
I(k) = I(k)+dielectric_space_b(i)*E(k);
[ n0##/
end
M8#*zCp{5
%ABC E
dxkRk#mf:
E(1) = E_low_m2;
k binf
E_low_m2 = E_low_m1;
XYK1-m}2
E_low_m1 = E(2);
q2S!m6 !
E(max_space) = E_high_m2;
2 <6`TA*m
E_high_m2 = E_high_m1;
Hn#GS9d_?
E_high_m1 = E(max_space-1);
c+Q.?vJ
%Loop for H_y
Mf;|z0UX
for j = 1:max_space-1
m<FWv2)^
H(j) = H(j) +eta*(E(j)-E(j+1));
#4P3xa
end
j*eUF-J1
plot(E)
{XDY:`vZ}
title('Soft Source Simulation with Dielectric Constant = 4')
XoKO2<3
axis([0 max_space -1.2 1.2])
)DGz`->
drawnow
k"q!|+&Fs
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波形吗?
|xn#\epy@
我看源一个是加到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) 的帖子
去掉
^rL_C}YBj-
*FK`&(B+}
%Soft Source- adds a value on the grid
lwT9~Hyp
pulse = sin(2*pi*frequency*delta_t*n);
D'b#,a;V
D(place_pulse) = D(place_pulse)+pulse;
2C$R4:Ssw)
<xo-Fv
%ABC E 前面加上
-Fxmsi
%Soft Source- adds a value on the grid
.m;G$X|3U
pulse = sin(2*pi*frequency*delta_t*n);
DIaYo4
E(place_pulse) = E(place_pulse) + pulse;
\}5p0.=
im]g(#GnKh
试一下看看。
共
条评分
逆流而上
离线
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删掉没,没删的话,下班后回去看一下。
共
条评分
逆流而上
发帖
回复