登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
《计算电磁学的数值方法》一书中的程序错误
发帖
回复
2983
阅读
6
回复
[
讨论
]
《计算电磁学的数值方法》一书中的程序错误
离线
mingheroluo
UID :17376
注册:
2008-08-31
登录:
2015-03-22
发帖:
45
等级:
仿真新人
0楼
发表于: 2010-12-06 21:28:27
以下是吕华英老师 编写的《计算电磁学的数值方法》一书中的计算微带天线S11程序
2XX-
我输入matlab并运行,结果与给出结果相差甚远, 我找出其中部分错误,但是没有完全找到,
@AB}r1E2
请各位大侠帮忙看看 还有什么错误 使其调试成功。
_i3?;Fds
c-GS:'J{
clear
FTF`-}Hz
mu=4*pi*1e-7; e0=8.854*1e-12;
~U;M1>
v=3e8;dt=0.441e-12;dx=0.389e-3;dy=0.400e-3;dz=0.265e-3;r=2.2;m=(1+r)/2;
5T*Uq>x0
A=dt/dz/mu;
aru;yR
B=dt/dy/mu;
8+* 1s7{
C=dt/dx/mu;
?|i C-7{8L
D=dt/(r*dy)/e0;
}WowgY
E=dt/(r*dz)/e0;
1>c^-"#e^
F=dt/(r*dx)/e0;
WyA`V C
G=dt/(m*dy)/e0;
MG}rvzn@
H=dt/(m*dz)/e0;
X-,mNvz
I=dt/(m*dx)/e0;
Y)O88C
J=dt/dy/e0;
;\'d9C
K=dt/dz/e0;
|o@xWs@m
L=dt/dx/e0;
1"\^@qRv#
a=(v*dt/sqrt(r)-dx)/(v*dt/sqrt(r)+dx);
r,43 gg
b=(v*dt/sqrt(m)-dx)/(v*dt/sqrt(m)+dx);
lXT+OJF
c=(v*dt-dx)/(v*dt+dx);
ut*sx9l
d=(v*dt/sqrt(r)-dy)/(v*dt/sqrt(r)+dy);
MyZ5~jnr\
e=(v*dt/sqrt(m)-dy)/(v*dt/sqrt(m)+dy);
mm dQ\\
f=(v*dt-dy)/(v*dt+dy);
Exb?eHO
g=(v*dt-dz)/(v*dt+dz);
+$uQ_ve
%输入初始值
+6~y1s/B[
i=2:62;j=2:102;k=2:18;
5cUz^ >
Ex1(i,j,k)=0;Ey1(i,j,k)=0;Ez1(i,j,k)=0;
T1-.+&<
Ex2(i,j,k)=0;Ey2(i,j,k)=0;Ez2(i,j,k)=0;
gzMp&J
Hx1(i,j,k)=0;Hy1(i,j,k)=0;Hz1(i,j,k)=0;
;i'mma_!
Hx2(i,j,k)=0;Hy2(i,j,k)=0;Hz2(i,j,k)=0;
htuYctu`
%时间迭代(200,400,600,800)
ts:YJAu+F
for n=0:800
+=Y[RCXT
%计算磁场
+ L\Dh.Ir
i=2:62;j=2:101;k=2:17;
*'-[J 2
Hx2(i,j,k)=Hx1(i,j,k)+A*(Ey1(i,j,k+1)-Ey1(i,j,k))-B*(Ez1(i,j+1,k)-Ez1(i,j,k));
[g/ &%n0^
i=2:61;j=2:102;k=2:17;
5i0vli/L
Hy2(i,j,k)=Hy1(i,j,k)+C*(Ez1(i+1,j,k)-Ez1(i,j,k))-A*(Ex1(i,j,k+1)-Ex1(i,j,k));
7DZZdH$Fm
i=2:61;j=2:101;k=2:18;
+s j2C
Hz2(i,j,k)=Hz1(i,j,k)+B*(Ex1(i,j+1,k)-Ex1(i,j,k))-C*(Ey1(i+1,j,k)-Ey1(i,j,k));
$~ >/_<~
%计算电场
ykS-5E`
i=2:61;j=3:101;k=3:4;%介质层
(v,g=BS,
Ex2(i,j,k)=Ex1(i,j,k)+D*(Hz2(i,j,k)-Hz2(i,j-1,k))-E*(Hy2(i,j,k)-Hy2(i,j,k-1));
v:IpZ;^
i=3:61;j=2:101;k=3:4;
g`Kh&|GU
Ey2(i,j,k)=Ey1(i,j,k)+E*(Hx2(i,j,k)-Hx2(i,j,k-1))-F*(Hz2(i,j,k)-Hz2(i-1,j,k));
<eh<4_<qF
i=3:61;j=3:101;k=2:4;
;hV-*;>
Ez2(i,j,k)=Ez1(i,j,k)+F*(Hy2(i,j,k)-Hy2(i-1,j,k))-D*(Hx2(i,j,k)-Hx2(i,j-1,k));
F(;=^w
i=2:61;j=3:101;k=5;%交界面
.)g7s? K
Ex2(i,j,k)=Ex1(i,j,k)+G*(Hz2(i,j,k)-Hz2(i,j-1,k))-H*(Hy2(i,j,k)-Hy2(i,j,k-1));
I^GZ9@UE
i=3:61;j=2:101;k=5;
Fv} Uq\v[
Ey2(i,j,k)=Ey1(i,j,k)+H*(Hx2(i,j,k)-Hx2(i,j,k-1))-I*(Hz2(i,j,k)-Hz2(i-1,j,k));
_x` oab0@
Ez2(i,j,k)=Ez1(i,j,k)+F*(Hy2(i,j,k)-Hy2(i-1,j,k))-D*(Hx2(i,j,k)-Hx2(i,j-1,k));
z%q)}$O
Z1~`S!(}
i=2:61;j=3:101;k=6:17;%空气层
r}\m%(i
Ex2(i,j,k)=Ex1(i,j,k)+J*(Hz2(i,j,k)-Hz2(i,j-1,k))-K*(Hy2(i,j,k)-Hy2(i,j,k-1));
Ajm
i=3:61;j=2:101;k=6:17;
1CR)1H
Ey2(i,j,k)=Ey1(i,j,k)+K*(Hx2(i,j,k)-Hx2(i,j,k-1))-L*(Hz2(i,j,k)-Hz2(i-1,j,k));
&*Z"r*
i=3:61;j=3:101;k=5:17;
6/dP)"a('
Ez2(i,j,k)=Ez1(i,j,k)+L*(Hy2(i,j,k)-Hy2(i-1,j,k))-J*(Hx2(i,j,k)-Hx2(i,j-1,k));
>ufL RGL>
%边界1--接地板
O`^dy7>{U
i=2:61;j=2:102;
shZEE2Dr
Ex2(i,j,2)=0; Hz2(i,j,2)=0;
;u?L>(b
i=2:62;j=2:101;
#rI4\K
Ey2(i,j,2)=0; Hz2(i,j,2)=0;
9dO. ,U*`
%边界2—微带线贴片
D[ v2#2
i=21:27;j=2:52;
Yq-Vwh/
Ex2(i,j,5)=0;Ey2(i,j,5)=0; Hz2(i,j,2)=0;
jmBsPSGIC
%----矩形切片
,$+ P
i=16:48;j=52:92;
@hF$qevX
Ex2(i,j,5)=0;Ey2(i,j,5)=0; Hz2(i,j,2)=0;
6n?0MMtR
%边界3--左侧吸收边界
=c;.cW
j=2:101;k=3:4;
Jm`{MzqL
Ey2(2,j,k)=Ey1(3,j,k)+a*(Ey2(3,j,k)-Ey1(2,j,k));
xFScj0Y
j=3:101;k=2:4;
adn2&7H
Ez2(2,j,k)=Ez1(3,j,k)+a*(Ez2(3,j,k)-Ez1(2,j,k));
Krd0Gc~\|
j=2:101;
YXLZ2-%ohZ
Ey2(2,j,5)=Ey1(3,j,5)+b*(Ey2(3,j,5)-Ey1(2,j,5));
/tG[pg{[
j=2:101;k=6:17;
rqWD#FB=z
Ey2(2,j,k)=Ey1(3,j,k)+c*(Ey2(3,j,k)-Ey1(2,j,k));
"oT&KW
j=3:101;k=5:17;
Z [YSET
Ez2(2,j,k)=Ez1(3,j,k)+c*(Ez2(3,j,k)-Ez1(2,j,k));
zq'KX/o
%边界4--右侧吸收边界
ts/Ha*h
j=2:101;k=3:4;
%BwvA_T'Q
Ey2(62,j,k)=Ey1(61,j,k)+a*(Ey2(61,j,k)-Ey1(62,j,k));
S}3?
j=3:101;k=2:4;
ZK4d;oa",
Ez2(62,j,k)=Ez1(61,j,k)+a*(Ez2(61,j,k)-Ez1(62,j,k));
L2Fi/UWM
j=2:101;
TtWWq5X|
Ey2(62,j,5)=Ey1(61,j,5)+b*(Ey2(61,j,5)-Ey1(62,j,5));
4*&2D-8<K
j=2:101;k=6:17;
!BjJ5m
Ey2(62,j,k)=Ey1(61,j,k)+c*(Ey2(61,j,k)-Ey1(62,j,k));
7o7*g 7
j=3:101;k=5:17;
j a'_syn
Ez2(62,j,k)=Ez1(61,j,k)+c*(Ez2(61,j,k)-Ez1(62,j,k));
r'<!wp@
%边界5--后侧吸收边界
MMy\u) 4
i=2:61;k=3:4;
8dLK5"_3
Ex2(i,102,k)=Ex1(i,101,k)+d*(Ex2(i,101,k)-Ex1(i,102,k));
tiPZ.a~k
i=3:61;k=2:4;
_Wtwh0[r*
Ez2(i,102,k)=Ez1(i,101,k)+d*(Ez2(i,101,k)-Ez1(i,102,k));
q\G7T{t$.
i=2:61;
0TqIRUz "C
Ex2(i,102,5)=Ex1(i,101,5)+e*(Ex2(i,101,5)-Ex1(i,102,5));
{Rz(0oD\
i=2:61;k=6:17;
`sLD>@m
Ex2(i,102,k)=Ex1(i,101,k)+f*(Ex2(i,101,k)-Ex1(i,102,k));
FL[,?RU?2
i=3:61;k=5:17;
sZ>0*S
Ez2(i,102,k)=Ez1(i,101,k)+f*(Ez2(i,101,k)-Ez1(i,102,k));
2AXf'IOqE
%边界6--上侧吸收边界
pG^>y0
i=2:61;j=3:101;
?$6(@>`f&t
Ex2(i,j,18)=Ex1(i,j,17)+g*(Ex2(i,j,17)-Ex1(i,j,18));
|Sv}/P-
i=3:61;j=2:101;
f+%s.[;A
Ey2(i,j,18)=Ey1(i,j,17)+g*(Ey2(i,j,17)-Ey1(i,j,18));
WS.lDMYE7
%边界7--z方向的棱
Pyp#'du>
k=2:17;
/^9=2~b
Ez2(2,2,k)=Ez2(2,3,k)+Ez2(3,2,k)-Ez2(3,3,k);
ckkm}|&m
Ez2(62,2,k)=Ez2(62,3,k)+Ez2(61,2,k)-Ez2(61,3,k);
x"P@[T
Ez2(2,102,k)=Ez2(2,101,k)+Ez2(3,102,k)-Ez2(3,101,k);
gs(ZJO1 /L
Ez2(62,102,k)=Ez2(62,101,k)+Ez2(61,102,k)-Ez2(61,101,k);
6SF29[&
%边界8--x方向的棱
QT4&Ix,4T1
i=2:61;
gn:&akg
Ex2(i,2,18)=Ex2(i,3,18)+Ex2(i,2,17)-Ex2(i,3,17);
he|.Ow
Ex2(i,102,18)=Ex2(i,101,18)+Ex2(i,102,17)-Ex2(i,101,17);
T2_b5j3i
%边界9--y方向的棱
2f5YkmGc";
j=2:101;
";Q}Gs}
Ey2(2,j,18)=Ey2(3,j,18)+Ey2(2,j,17)-Ey2(3,j,17);
!8*7 {7
Ey2(62,j,18)=Ey2(61,j,18)+Ey2(62,j,17)-Ey2(61,j,17);
48)D%867.;
%边界9--源平面
Z_4|L+i<{
if (n>220),
629ogJo8
i=2:61;k=3:4;
0"l`M5-KP
Ex2(i,2,k)=Ex1(i,3,k)+d*(Ex2(i,3,k)-Ex1(i,2,k));
ig ^x%!;
i=3:61;k=2:4;
bl-D{)X
Ez2(i,2,k)=Ez1(i,3,k)+d*(Ez2(i,3,k)-Ez1(i,2,k));
J|u_45<
i=2:61;
O$7r)B6Cs
Ex2(i,2,5)=Ex1(i,3,5)+e*(Ex2(i,3,5)-Ex1(i,2,5));
M%bD7naBq
i=2:61;k=6:17;
hO2W!68
Ex2(i,2,k)=Ex1(i,3,k)+f*(Ex2(i,3,k)-Ex1(i,2,k));
98*C/=^TH{
i=3:61;k=5:17;
BUUc9&f3o
Ez2(i,2,k)=Ez1(i,3,k)+f*(Ez2(i,3,k)-Ez1(i,2,k));
l^2m7 7)
else
S|O#KE
i=2:61;k=3:4;
{Fvl7Sh
Ex2(i,2,k)=Ex1(i,2,k)+D*(2*Hz2(i,2,k))-E*(Hy2(i,2,k)-Hy2(i,2,k-1));
>W6?!ue_
i=2:61;
PU-L,]K
Ex2(i,2,5)=Ex1(i,2,5)+G*(2*Hz2(i,2,5))-H*(Hy2(i,2,5)-Hy2(i,2,4));
E/2_@&U:}
i=2:61;k=6:17;
1Q7]1fRu
Ex2(i,2,k)=Ex1(i,2,k)+J*(2*Hz2(i,2,k))-K*(Hy2(i,2,k)-Hy2(i,2,k-1));
LaYd7Oyf]
&nb ..
zym6b@+jN
GK[9Cm"v
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
1
条评分
cc81372365
rf币
+1
积极参与论坛交流,欢迎继续参与本贴交流!
2010-12-06
离线
cc81372365
UID :27752
注册:
2009-03-18
登录:
2023-11-09
发帖:
345
等级:
论坛版主
1楼
发表于: 2010-12-06 22:18:39
建议楼主把程序打包之后发上来,不然拷贝到MATLAB之后会出现乱码。这样别人检查你的错误会很麻烦。
共
1
条评分
hefang
rf币
+2
积极参与论坛交流,欢迎继续参与本贴交流!
2010-12-07
离线
mingheroluo
UID :17376
注册:
2008-08-31
登录:
2015-03-22
发帖:
45
等级:
仿真新人
2楼
发表于: 2010-12-07 10:26:40
好的 谢谢
共
条评分
离线
mingheroluo
UID :17376
注册:
2008-08-31
登录:
2015-03-22
发帖:
45
等级:
仿真新人
3楼
发表于: 2010-12-07 10:28:26
以上程序在以下文件中
描述:源程序
附件:
Untitled1.rar
(2 K) 下载次数:16
共
条评分
离线
mingheroluo
UID :17376
注册:
2008-08-31
登录:
2015-03-22
发帖:
45
等级:
仿真新人
4楼
发表于: 2010-12-08 09:36:41
有没有那位大侠 看出问题了? 讨论讨论一下
共
条评分
离线
wangliangui
真是不错的网站!
UID :68996
注册:
2010-11-09
登录:
2016-12-14
发帖:
110
等级:
仿真二级
5楼
发表于: 2010-12-08 18:21:10
回 4楼(mingheroluo) 的帖子
我仔细看过这个,书中有数个错误点。
WfkP
最重要的是计算S11的方法错了。但是也不知道如何在它上面改。
共
1
条评分
cc81372365
rf币
+10
积极参与论坛交流,欢迎继续参与本贴交流!
2010-12-08
离线
da376805618
资源共享呗
UID :71951
注册:
2011-01-22
登录:
2014-09-27
发帖:
389
等级:
仿真三级
6楼
发表于: 2011-12-15 19:50:19
哎···都是错的··难道就没有一个正确的程序让我这样的新手参考下么····郁闷···
共
条评分
资源共享
发帖
回复