資源簡介
使用時域有限差分法FDTD分析二維圓柱散射場問題
代碼片段和文件信息
%?二維FDTD??TE波圓柱仿真?
clear?all;
close?all;
clc;
%?定義常數
%-------------------------
c?=?3.0E8;
mu?=?1.2566E-6;
eps?=?8.8542E-12;
f?=?1E9;??????????????????????????????????????????????????????????????????????%頻率
lambda?=?c/f;?????????????????????????????????????????????????????????????????%波長
w_max?=?2*pi*2*f;
cylinder_circ?=?lambda*8;????????????????????????????????????????????????????%圓柱的周長,改變圓柱的尺寸?
cylinder_rad?=?cylinder_circ/2/pi;????????????????????????????????????????????%圓柱的半徑
?????
%?定義FDTD網格
%----------------------
del_s?=?lambda/20;????????????????????????????????????????????????????????????%每最小波長20個采樣點??????????
del_t?=?0.5*del_s/c;??????????????????????????????????????????????????????????%迭代時間步長
dim_s?=?5;
s_range?=?dim_s?*?lambda;?????????????????????
s_range?=?ceil(s_range?/?del_s)?*?del_s;??????????????????????????????????????%計算區域的長度
s_cells?=?s_range?/?del_s;
cells?=?s_cells;??????????????????????????????????????????????????????????????%劃分的網格數
nodes?=?cells+1;??????????????????????????????????????????????????????????????%采樣點數
%?定義時間脈沖源
%----------------------------------------
dev_larger?=?2;
dev?=?1/w_max*dev_larger;
dead?=?4;
mean?=?dev*dead;
t?=?linspace(09*dev1000);
term?=?(t-mean);
pulse?=?(-1/sqrt(2*pi)/dev^3).*term;
pulse?=?pulse.*?exp((-1/2/dev^2).*term.^2);
pulsenorm?=?max(pulse);
p?=?s_range?/?2;
dead_s?=?1.5;
dev_s?=?s_range?/?4?/?dead_s;
spacial?=?linspace(0s_rangenodes);??????????????????????????????????????????%在空間劃分采樣點數
taper?=?1/sqrt(2*pi)/dev_s*exp(-1*(spacial?-?p).^2/2/dev_s^2);
taper?=?taper./max(taper);
figure(1);
plot(spacialtaper‘c‘);
title(‘脈沖源‘);
xlabel(‘x軸‘);
ylabel(‘Pluse‘);
%?TE波的分量初始化
%----------------------------------------
Ex?=?zeros(nodesnodes);
Ey?=?zeros(nodesnodes);
Hz?=?zeros(nodesnodes);
%?加入金屬圓柱
%--------------------------------
center_s?=?round(nodes/2);
cn?=?center_s*del_s;
PEC?=?ones(nodesnodes);???????????????????????????????????????????????????????%nodes*nodes的全1矩陣
for?k=1:nodes
??for?j=1:nodes
????rad?=?sqrt((k*del_s?-?cn)^2?+?(j*del_s?-?cn)^2);???????????????????????????%加入圓柱也可以改為方柱
????if?(rad?<=?cylinder_rad)??
????PEC(kj)?=?0;
????end;
??end;
end;
figure(2);
contour(PEC);?????????????????????????????????????????????????????????????????%等高繪圖
title(‘金屬圓柱‘);
%?計算參數設置
%--------------------------------
done?=?1;
n?=?0;
F?=?0;
c_mu?=?del_t/mu/del_s;
c_eps?=?del_t
- 上一篇:EEMD算法工具包
- 下一篇:基于MATLAB語言環境的二階慣性系統PID控制仿真
評論
共有 條評論