登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
RCS计算程序
发帖
回复
1972
阅读
6
回复
[
求助
]
RCS计算程序
离线
deadman
UID :11863
注册:
2008-05-03
登录:
2021-10-24
发帖:
35
等级:
仿真新人
0楼
发表于: 2009-12-21 21:36:20
编了好久的RCS的程序,结果总是有问题,有没有高手看下程序有什么问题,编的程序是按照葛老书附录写的,如下:
T#-U\C~o
clear all;
B"2#}HM
Media=zeros(4,15);%各介质的电磁参数
qp55U*
cc=2.99792458e8;
XJZS}Z7h
muz=4.0*pi*1.0e-7;
t(=Z@9)]4F
mur=1;
ljJR7<
epsz=1.0/(cc*cc*muz);
}TwSSF|}3
freq=3.0e10;
*&~wl(+O=
WaveLength=cc/freq;
31~Rs?~f(
WL=40;%数值波长,每波长的网格数
Rge\8H/z
i=0;
4'`y5E
j=0;
D:Fi/JY~
Iflag=1;
jQ9i<-zc
IflagI=1;
2t`d.s=
dx=WaveLength/WL;
KN"<f:u
dt=WaveLength/(WL*2*3e8);
ZoroK.N4A%
ie=100;
)G@/E^ySM
je=100;
==Bxv:6
ib=ie+1;
&T\,kq>)
jb=je+1;
Kp%:\s,lO
%定义电磁场变量
7r wNjY#
Ez=zeros(ib,jb);%FDTD采样点Ez
d^^EfWU
Hx=zeros(ib,je);%FDTD采样点Hx
xaW9Sj0ZM
Hy=zeros(ie,jb);%FDTD采样点Hy
g\=e86
FmC [u
Ein=zeros(1600,1);%入射波E采样点
]TIBy "3
Hin=zeros(1600,1);%入射波H采样点
4?.L+wL
5FwVR3,
EBin=zeros(4);%入射波吸收边界条件临时变量
_A,mY6*
M 3c
ECB=zeros(ib,4);%连接边界处E入射波的分量
XcM.<Dn3
HCB=zeros(ib,4);%连接边界处H入射波的分量
+/DT#}JE
{Q AV
EAB=zeros(ib,4);%吸收边界条件临时变量
\wxLt}T-Q
EAC=zeros(4,2,2);%吸收边界条件角点临时变量
#wfb-`,5&9
)A:|8m
FE1=zeros(11,11);%FDTD迭代系数
Ygfv?
FE2=zeros(11,11);
#qg(DgH 7
FH1=zeros(11,11);
H:.l:PJ
FH2=zeros(11,11);
29r (Y
*#Hw6N0#
Eini=0;
b]Z>P{ j
?$ 0t @E
?qR11A};tG
TEMflag=1;%1代表TM,2代表TE
U$^ $7g 3
c<]~q1
Mx=0;
Gey j`t
My=0;
41NVF_R6J
Jz=0;
IHvrx:7
Step=0;
@t<KS&
Kld#C51X f
T1=0;%存储临时变量
<F<jx"/)
T2=0;
nbdjk1E`~
-VkPy<)
CT3=0;
L5A?9zum/!
CT4=0;
c,_??8
I=0;
*{s 3.=P.
J=0;
)_\q)t"=
N=0;
T9&bY>f?
II=0;
gkL{]*9&%
III=0;
Jj,fdP#\
MediaNumber=2;%目标所包含介质总数目
KIYs[0*k
rcs=zeros(181,1);
.Fm@OQr
%%%%%%%%%%%%%%%%%%初始化变量
{q|Om?@
TEMFlag=1;
iBaz1pDc
/'Q2TLy=
Isource=3;
OGn-~ #E
,'>O#kD
Imin=1;
AQIBg9y7
Imax=80;
J~k'b2(p3
Jmin=1;
"*Gp@
Jmax=80;
&AhkP=Yw
Itmin=10;%连接边界
,BE4z2a
Itmax=50;
.ly K ,p
Jtmin=10;
w ^8i!jCy
Jtmax=50;
q@Oe}
iomax=53;%输出边界,用于近远场的变换
$W0O
iomin=7;
T7~Vk2o%(
jomax=53;
b?nORWjC
jomin=7;
g<PglRr"
length=iomax-iomin+1;
J3,m{%EtNM
outdataez=zeros(4,length);
`F4gal^ ^
outdatahx=zeros(4,length);
o2W^!#]=
outdatahy=zeros(4,length);
)l[bu6bM
outdataezr=zeros(4,length);
40Hm+Ge
outdatahxr=zeros(4,length);
E>Lgf&R#W
outdatahyr=zeros(4,length);
g~]?6;uu
ob=ones(Imax,Jmax);%存放网格介质的编号
raCgctYVq
obeps=ones(Imax,Jmax);
[LDY;k~5+
Phi=0;
F7 IZ;4cp
Phi=Phi*pi/180;
wi@Qf6(mn
cp=cos(Phi);
RGy+W-
sp=sin(Phi);
se&Q\!&M
TimeStop=1200;
D2MWrX
IncidentStart=1;
t(:w):zE
IncidentEnd=1420;
7j8Ou3
>S'IrnH'!
Isbias=Isource;
`$i/f(t6`
%%%%%%%%%%%%%%常量初始化
?yy,3:
MU0=pi*0.0000004;
0=Mu|G|Z
EPS0=8.85e-12;
%2^wyVkq:
SMU0=sqrt(MU0);
YK%rTbB(
SEPS0=sqrt(EPS0);
Ucd~-D
Z=sqrt(MU0/EPS0);
,WQg.neOA
k=2*pi/WaveLength;
OS sYmF
$ uqB.f$
Media(1,1)=1;%背景为真空epsilon_r
}b=Cv?Zg$m
Media(2,1)=1;%mu_r
i:\|G^h
Media(3,1)=0;%导电率
pgEDh^[MW
Media(4,1)=0;%磁导率
<Xl/U^B
oxXCf%!
MediaNo=1;%只有一种介质
u?I 2|}#
Media(1,2)=1;%epsilon_r
8=,-r`oNy
Media(2,2)=1;%mu_r
-)Of\4kx
Media(3,2)=1e7;%导电率
`PS>"-AY2
% Media(3,2)=0;%导电率
a<CACWsN.T
Media(4,2)=0;%磁导率
OmLe+,7'
vXT>Dc2\!
for i=Imin:Imax
e]-%P(}Z
for j=Jmin:Jmax
V2LvE.Kj
if ((i-(Imin+Imax)/2)^2+(j-(Jmin+Jmax)/2)^2)<100
/a?qtRw
ob(i,j)=2;
xA SH-9
end
U*:E|'>
end
W$Sc@!M3{
end
Zgt(zh_l
Er@OmNT
for i=1:MediaNumber
(0u(<qA\
Media(3,i)=-Media(3,i)*Z/k;
-T{G8@V0I
Media(4,i)=-Media(4,i)/(Z*k);
jj6yf.r6c
end
*=(vIm[KL
7mtX/w9
3oBR
if TEMFlag==1 %计算FDTD迭代公式系数
RJ OW#e :
for i=1:MediaNumber
X}B]0z>
for j=1:MediaNumber
z#^;'nnw
FE1(i,j)=((Media(1,i)+Media(1,j))+pi*0.5*(Media(3,i)+Media(3,j))/WL)/((Media(1,i)+Media(1,j))-pi*0.5*(Media(3,i)+Media(3,j))/WL);
z4{:X Da
FE2(i,j)=1./((Media(1,i)+Media(1,j))-pi*0.5*(Media(3,i)+Media(3,j))/WL);
3 @%XR8ss
FH1(i,j)=((Media(2,i)+Media(2,j))+pi*0.5*(Media(4,i)+Media(4,j))/WL)/((Media(2,i)+Media(2,j))-pi*0.5*(Media(4,i)+Media(4,j))/WL);
Sjo7NR^#e
FH2(i,j)=1./((Media(2,i)+Media(2,j))-pi*0.5*(Media(4,i)+Media(4,j))/WL);
]_43U` [#
end
S<eB&qT$
end
j9~lf
else
P$5K[Y4f
for i=1:MediaNumber
AA<QI' 6
for j=1:MediaNumber
cUC!'+L
FH1(i,j)=((Media(1,i)+Media(1,j))+pi*0.5*(Media(3,i)+Media(3,j))/WL)/((Media(1,i)+Media(1,j))-pi*0.5*(Media(3,i)+Media(3,j))/WL);
t4Pi <m:7
FH2(i,j)=-1./((Media(1,i)+Media(1,j))-pi*0.5*(Media(3,i)+Media(3,j))/WL);
4Be\5Byr
FE1(i,j)=((Media(2,i)+Media(2,j))+pi*0.5*(Media(4,i)+Media(4,j))/WL)/((Media(2,i)+Media(2,j))-pi*0.5*(Media(4,i)+Media(4,j))/WL);
e-*-91D
FE2(i,j)=-1./((Media(2,i)+Media(2,j))-pi*0.5*(Media(4,i)+Media(4,j))/WL);
-rlCE-S
end
?}"39n
end
'wni.E&
end
-Pc6W9$
FH=FH2(1,1);
AL;4-(KH
FE=FE2(1,1);
%uDH_J|^
OMIGA=pi/WL;
^MO})C
}56WAP}Z 4
% subplot(3,1,1),pcolor(Hx');
>)+N$EN
% shading flat;
% Ou'+A
% caxis([-80.0 80.0]);
t ^~Qv
% axis([1 60 1 60]);
b)@rp
% colorbar;
<.hutU*1
% axis image;
tn}MKo
% axis off;
Dvm[W),(k
% title('Hx at time step = 0');
OXI>`$we
%
AK(x;4
% subplot(3,1,2),pcolor(Hy');
9J$-E4G.M
% shading flat;
.I.B,wH8
% caxis([-80.0 80.0]);
# p2`9o
% axis([1 60 1 60]);
Uj)Wbe[)p0
% colorbar;
(nAL;:$x2
% axis image;
`#"xgOSP>
% axis off;
{A'_5 X9
% title('Hy at time step = 0');
?OS0.
%
nt8&Mf
% subplot(3,1,3),pcolor(Ez');
^.PCQ~Ql
% shading flat;
_{/[&vJ
% caxis([-0.2 0.2]);
g cb6*@u!
% axis([1 60 1 60]);
v1z d[jqk
% colorbar;
5i+cjT2
% axis image;
!<?<f db
% axis off;
n j2=}6
% title('Ez at time step = 0');
yt<h!k$ _P
%
`T{'ufI4B
% rect=get(gcf,'Position');
xJ9aFpTC
% rect(1:2)=[0 0];
45rG\$%#
%
($-m}UF\/
%
E8BIb 'b;
%
"3/&<0k
% M=moviein(TimeStop/4,gcf,rect);
\P7<q,OGS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BhhFij4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 主程序
%`*On~
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>:HmIW0PLe
for N=1:TimeStop+WL/2
u9fJ:a
%%%%%%%%%%产生入射波
1>Q4&1Vn
for i=IncidentStart:IncidentEnd-1
@Gt.J*!s/
Hin(i)=Hin(i)-FH*(Ein(i+1)-Ein(i));
bvS6xU- J
end
QD%!a{I
for i=IncidentStart+1:IncidentEnd-1
< n/ 2
Ein(i)=Ein(i)-FE*(Hin(i)-Hin(i-1));
Kr;;aT0P
end
fZrh_^yH
%%%加入源
IKV!0-={!z
Ein(Isource)=sin(OMIGA*N);
" =6kH,
if N<WL
L~AU4Q0o
Ein(Isource)=Ein(Isource)*0.5*(1-cos(OMIGA*N));%开关函数,升余弦函数
3S" /l
end
d,toU I
Ein(IncidentStart)=EBin(4);
9BAvE\o0
EBin(4)=EBin(3);
")<5VtV
EBin(3)=Ein(IncidentStart+1);
N&