登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
新手求助!如何将Susan.C的二维fdtd圆柱散射中 ..
发帖
回复
962
阅读
3
回复
[
求助
]
新手求助!如何将Susan.C的二维fdtd圆柱散射中的圆柱改写为带孔的小方格
离线
aplomb
UID :75847
注册:
2011-04-19
登录:
2011-06-06
发帖:
15
等级:
仿真新人
0楼
发表于: 2011-05-31 11:32:54
小菜鸟一个,刚刚开始学习
FDTD
的
matlab
仿真,主要在研究
Susan.C
的一维和二维程序,在
Susan.C
的二维程序里研究了圆柱的散射,想把那个圆柱体换成一个带小孔的方格,以观察电磁波的入射情况,也就是最简单的孔缝模型,但是不会写方格方程……来向各位大大求助
ay~c@RXW
Susan.C
的圆柱体的设定
Gy}WZ9{
% Add metal cylinder
diam=20;
%diameter of cylinder: 6 cm
rad=diam/2.0;
%radius of cylinder: 3 cm
icenter=4*ie/5;
%i-coordinate of cylinder's center
jcenter=je/2;
%j-coordinate of cylinder's center
for
i=1:ie
for
j=1:je
dist2=(i+0.5-icenter)^2 + (j-jcenter)^2;
if
dist2 <= rad^2
caex(i,j)=ca(2);
cbex(i,j)=cb(2);
end
dist2=(i-icenter)^2 + (j+0.5-jcenter)^2;
if
dist2 <= rad^2
caey(i,j)=ca(2);
cbey(i,j)=cb(2);
end
end
end
初步认定需要已知的孔缝方格的参数有
hr@c7/L
diam=20; %
金属板边长
: 6 cm
)[S~W 35
rad1=diam/2.0; %s
金属板半边长
: 3 cm
\j C[|LM&
rad2=rad1-2; %
窗格内边长(开孔处)
: 2.4 cm
$sF'Sr{)y
y04md A6<
icenter=4*ie/5; % i
元金属板中心
S-x'nu$u
jcenter=je/2; % j
元金属板中心
u|]{|Ya'%
ikmin=icenter-rad1; %
金属窗格位置
a)L\+$@*
ikmax=icenter-rad2;
B=dF\.&Z
jkmin=jcenter-1;
!O|d,)$q
jkmax=jcenter+1;
%L;z ~C
."`mh&+`
问题在于后一个,方程的编写!原程序里的圆柱体是以圆心方程实现的,但是不知道如何编写一个矩形方格的方程,
matlab
学的很烂,希望能有大大帮忙给出一个合适的方程。
Nr~9] S
Pw c)u&
VpmwN`
问题2:我的二维
FDTD
程序,在运行的时候会不断缩小,不管是
susan.C
的原程序,还是网上经过改编的其他程序,都会呈现这样一种情况,致使观察非常麻烦,求问这个是出错在哪里?
图片:1.jpg
图片:2.jpg
图片:3.jpg
r?cDyQE
部分被改写的程序运行后中途退出会报 ..
wJ.?u]f@
0,a/t jSr
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
1楼
发表于: 2011-06-01 06:58:57
1) 本来才是二维的网格而已,你想要加矩形方格也很简单啊,首先你随便找张纸把矩形方格外形画出来,然后映射上去就可以了。
i>*|k]
比如说纸上一共是100×100的网格,然后你去画你的矩形方格,看哪些网格是被覆盖的,最好重新写个function,类似于set_param_for_target(),在这个funciton里你指定那些网格的参数。
<bvbfS
function set_param_for_target() {
1')_^]
caex(10,10)=ca(2);
[ClDKswq
cbex(10,10)=cb(2);
~]w|ULNa3|
caex(10,11)=ca(2);
(u_?#PjX
cbex(10,11)=cb(2);
7O.?I# 76
caex(10,12)=ca(2);
7%MD0qm-
cbex(10,12)=cb(2);
hXAgT!ZD
....
"Y1]6 Zu
;nSOeAF)Q
2)你随便找个matlab书看一下画图的就可以了,人不能太懒,别人的程序总归是别人的,自己不写肯定不行,相信我没错的。
c6 f=r
我的观点始终是 别人的代码可以参考,但不能直接copy过来用,等你碰到很多乱七八糟的问题,走了很多弯路的时候总归会体会到的。除非写code人就在你旁边,预先给你讲一下每一步他的做法。
pqT+lai)#
G5l?c@o
你可以用最简单的plot之类的命令,画一个图,然后调用pause(0.01), 暂停一下,这样也可以看到连续变化的。
共
条评分
逆流而上
离线
aplomb
UID :75847
注册:
2011-04-19
登录:
2011-06-06
发帖:
15
等级:
仿真新人
2楼
发表于: 2011-06-01 08:25:36
thx管理员大大,第一个解答很有帮助,原来是我的思维一直被局限了,总想通过改变方程来改变……
lP;X=X>
HZl//Uq
第二个问题有点不明白,我的意思是说,Susan.C的这个程序运行起来应该不是这个样子吧,我有过一次仿真出现的结果是连续的,即图并不会被缩小,但是其余几次运行的时候这个图形界面都是在不断缩小,最后缩到上图3那个界面。这个程序本身运行起来我认为不是这个结果,但又暂时找不到错误所在。所以想和各位大大问一下是不是运行起来就是这样,这样的话图形界面真的一塌糊涂啊……
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
3楼
发表于: 2011-06-02 08:16:13
第一个问题,如果能把你的目标物体形状能用表达式表示出来那就最好了,不行也无所谓,特别对复杂形状,只能慢慢设置。
P>wTp)
第二个问题,我的意思是,一般而言肯定不是这样的,不然大家也没发用了,但是matlabe图形显示的command有很多,动态显示的方法也不止一个,所以稍微看一下,就去尝试其它显示方法,毕竟这个不是你要研究的重点,而且就算有bug,我们也没发去debug。
64 83v'
但是有可能是用法不对,如果有其它知道的人告诉你正确用法那是最好的。:)
共
条评分
逆流而上
发帖
回复