登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
高手来看下这个一维的FDTD的MATLAB仿真
发帖
回复
2290
阅读
2
回复
[
讨论
]
高手来看下这个一维的FDTD的MATLAB仿真
离线
zhai0606
UID :12369
注册:
2008-05-13
登录:
2008-06-12
发帖:
4
等级:
旁观者
0楼
发表于: 2008-05-30 15:28:11
function FDTD_debug
]=9%fA
s .^9;%@$J
%constants
%xxe U
c_0 = 3E8; % Speed of light in free space
6`NsX
Nz = 100; % Number of cells in z-direction
v0X5`VV
Nt = 200; % Number of time steps
`@ qSDW!b
N = Nz; % Global number of cells
^]'p927
<| |Lj
E = zeros(Nz,1); % E component
+>z/54R
E2 = zeros(Nz,1);
!f)'+_d
E1 = zeros(Nz,1);
\yb^%$hZ0
Es = zeros(Nz,Nz); % Es is the output for surf function
9^0 'VRG
%H = zeros(Nz,1); % H component
OI %v>ns
pulse = 0; % Pulse
)U<4ul
v7O{8K+
%to be set
y$*?k0=ZX
mu_0 = 4.0*pi*1.0e-7; % Permeability of free space
St|sUtj<r
eps_0 = 1.0/(c_0*c_0*mu_0); % Permittivty of free space
'Twi @I
pSQ3SM
c_ref = c_0; % Reference velocity
M(Jf&h4b
eps_ref = eps_0;
Ul@ZCv+
mu_ref = mu_0;
tt|U,o
] 5P{*
f_0 = 10e9; % Excitation frequency
#`z!f0 P
f_ref = f_0; % Reference frequency
""Drf=]
4TG|
omega_0 = 2.0*pi*f_0; % Excitation circular frequency
i2)SSQ
omega_ref = omega_0;
Uvf-h4^J]:
Ze WHSU
lambda_ref = c_ref/f_ref; % Reference wavelength
BOL_kp"
3I:DL#f
Dx_ref = lambda_ref/20; % Reference cells width
G2a fHL<
Dz = Dx_ref;
Iay7Fkv
nDz = Dz/Dx_ref;
Aplqxvth
7 bsW7;C
Z = Nz*Dz;
-#<,i'
r = 1; % Normalized time step
=Z#tZ{"
Dt_ref = r*Dx_ref/c_ref; % Reference time step
W7(OrA!
Dt = Dt_ref;
NXeo&+F
Zu%_kpW
% Source position
qFUpvTe
Nz_Source = 0.5*Nz;
Y141Twjvd
N_Source = Nz_Source;
l[ @\!;|
=AgY8cF!sl
for n = 1:Nt-1
>z^T~@m7l
t = Dt_ref*r*(n-1); % Actual time
pe,c
EXa6"D
%Source function series
#l;Ekjfz
Source_type = 1;
"j$}'uK<
switch Source_type
pKEMp&geo
case 1 % modified source function
42z9N\ f
ncycles = 2;
U45/%?kE)
if t < ncycles*2.0*pi/(omega_0)
/unOZVr(
pulse = -0.5*( 1.0 - cos(omega_0*t/ncycles) ) * sin(omega_0*t);
JB%6G|Z
else
BC@"WlD
pulse = 0;
G#dpSNV3|
end
H:[z#f|t
case 2 % sigle cos source function
3M1(an\nW
if t < 2.0*pi/(omega_0)
/cI]Z^&
pulse = 8*c_0^2*Dt_ref^2*mu_ref*omega_0*cos(omega_0*t);
GrM~%ng
else
B|, 6m 3.
pulse = 0;
2vWkAC;
end
JAB]kNvI
case 3 % Gaussian pulse
2"__jp:(
if t < Dt_ref*r*50
[&{"1Z
pulse = -40*c_0*(t-t*25/(n-1))*exp(-(t-t*25/(n-1))^2/2/(50/2.3548)^2/(t/(n-1))^2);
+\:I3nKs%
else
n1sH`C[c
pulse = 0;
oAvJ"JH@i
end
\re.KB#R
end
;"Ot\:0
E2(N_Source) = E2(N_Source) - r*pulse;
>wMsZ+@m
E1 = E2;
zZiB`%
E2 = E;
saRB~[6I
Ccc6 ko_
m = 2:Nz-1;
Do_L
E(m) = r^2*(E2(m+1) - 2*E2(m) + E2(m-1)) + 2*E2(m) - E1(m);
Ce_Z &?
(Nik(Oyj"
%Boundary
-3 W4
E(1) = 0; E(Nz) = 0; % Dirichlet
3ZZJYf=
%E(1) = E(2);E(Nz) = E(Nz-1); % Neumann
x,7axx6
%E(Nz) = E2(Nz-1) + (r-1)/(r+1)*(E(Nz-1)-E2(Nz)); % Mur ABC @ right side z = Nz
v(: VUo]H
%E(1) = E2(2) + (r-1)/(r+1)*(E(2)-E2(1)); % Mur ABC @ left side z = 0
?: meix
c,D'Hl6(%
%display
TfZO0GL$
%choice***********************************************
RhQOl9
display = 3; % choice: '1' = line plot; '2' = imagesc; '3' = surf
B;K{Vo:C
switch display
;m`I}h<
case 1
![vc/wuf
i = 1:Nz;
>_F&oA#
plot(i, E(i));
G&uj}rj
axis([0 Nz -4 4]);
J25>t^
case 2
efbt\j6@%2
A = rot90(E);
UBU(@T(
imagesc(A);
uO^{+=;A=
case 3
)bK<t
i = 1:Nz;
yS3x))
for j = 1:Nz
RMi 2Ip
Es(i,j) = E(i);
?` `+OH
&nbs ..
?QuFRl,ZJ
U-lN_?
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
cem-uestc
UID :9061
注册:
2008-03-07
登录:
2019-01-05
发帖:
2575
等级:
荣誉管理员
1楼
发表于: 2008-06-01 21:18:24
一维FDTD的最多数据是一维的,还真不能绘制3D的图。
-j$l@2g
不过可以同时绘制电场、磁场分量的历史曲线,他们在垂直的两个平面,这样可以是3D的
共
条评分
离线
cem-uestc
UID :9061
注册:
2008-03-07
登录:
2019-01-05
发帖:
2575
等级:
荣誉管理员
2楼
发表于: 2008-06-01 21:20:04
不像1D的FDTD啊,像一维时域波动方程
共
条评分
发帖
回复