如何使优化大带宽s11 = -10分贝以下吗

4视图(30天)
关闭所有
清晰的
clc
% %开关选项。
postprocessing_only = 0;
use_pml = 0;%使用pml边界,而不是墙
卡尔= 1;%如果卡尔= 0只描述结构。如果卡尔= 1计算。
积极= 1;%如果积极= 1港第一S-SRR是主动和被动。如果积极= 2港的第二个是活跃的和第一个被动
% %设置仿真
physical_constants;
单位= 1 e - 3;%在毫米长度
% % % %用户定义的变量
f0 = 8 e9;%高斯激励的中心频率
fc = 2 e9;% 20 dB转角频率。的带宽高斯激励
S-SRRs % % % %维度
L1 = 10.9;%外环的长度
L2 = 10.36;%外环的宽度
G1 = 1.05 * 0.8;%外间隙的宽度
width_outer = 1.05 * 0.8;%宽度外补丁
width_iner = 1.05 * 0.881888889;
G3 = 1.05 * 0.1110111111111111;%内心和外部之间的距离
G2 = G1;%的宽度内的差距
srr_thickness = 0.15;
% % % %基质的性质
衬底。epsR = 2.2;%电介电常数
罐内= 0.024;切损失%
substrate_srr。kappa =罐内* 2 *π* f0 * EPS0 * substrate.epsR;
饲料。R = 50;%进料阻力
衬底% % % %维度
dx = 1.85;
dz = 1.85 + L2-L1;
substrate_srr。宽度= L2 + dx;
substrate_srr。长度= L1 + dz;
substrate_srr。厚度= 4.8;
% % % % S-SRRs位置和距离
ssrr_x = 0;
ssrr_y = 5;
ssrr_z = 0;
ssrr2_x = 0;
ssrr2_y = 5;
ssrr2_z = 0;
% % % %的用户定义的变量
& % %设置FDTD参数激励功能
max_timesteps = 150000;
min_decrement = 1 e-5;%相当于-50分贝
FDTD = InitFDTD (nrt, max_timesteps EndCriteria, min_decrement);
FDTD = SetGaussExcite (FDTD), f0, fc);
公元前={‘墙’‘墙’‘墙’‘墙’‘墙’‘墙’};%边界条件
如果(use_pml > 0)
BC = {‘PML_8’‘PML_8’‘PML_8’‘PML_8’‘PML_8’‘PML_8};%使用pml,而不是墙
结束
FDTD) = SetBoundaryCond (FDTD)、BC);
% %设置CSXCAD几何和网格
%设置分辨率的精细结构,例如S-SRR的差距
max_res = c0 / (f0 + fc) /√(substrate.epsR) /单位/ 40;%细胞大小:λ/ 40
%设置分辨率的粗糙结构,如周围的空气
coarseResolution = c0 / (f0 + fc) /单位/ 20;%细胞大小:λ/ 20
substrate_srr。细胞= 4;
CSX = InitCSX ();
% %准备模拟文件夹
Sim_Path =“tmp”;
Sim_CSX =“unit_cell_definition.xml”;
如果(postprocessing_only = = 0)
[状态、消息、消息id] =删除文件夹(Sim_Path, ' s ');%清楚以前的目录
[状态、消息、消息id] = mkdir (Sim_Path);%建立空模拟文件夹
结束
% % % %的设计结构
% % S-SRR1 % %
% %创建衬底
CSX = AddMaterial (CSX substrate_srr);
CSX = SetMaterialProperty (CSX‘substrate_srr’,‘ε’,substrate.epsR,“卡巴”,substrate_srr.kappa);
= [-substrate_srr开始。长度/ 2 + ssrr_x ssrr_y -substrate_srr.width / 2 + ssrr_z];
停止= [substrate_srr。长度/ 2 + ssrr_x substrate_srr.thickness + ssrr_y substrate_srr.width / 2 + ssrr_z];
CSX = AddBox (CSX substrate_srr”1、启动、停止);
% %创建groundplane
CSX = AddMetal (CSX groundplane);%创建一个压电陶瓷
开始= [-substrate_srr.length / 2 + ssrr_x ssrr_y + substrate_srr.thickness -substrate_srr.width / 2 + ssrr_z];
停止= [substrate_srr。长度/ 2 + ssrr_x ssrr_y + substrate_srr。厚度、substrate_srr.width / 2 + ssrr_z];
CSX = AddBox (CSX的groundplane 10、启动、停止);
% %外环
CSX = AddMetal (CSX, SRR);
开始= [L2/2 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + ssrr_z + width_outer);
停止= [L2/2-width_outer + ssrr_x ssrr_y-srr_thickness / 2, L1/2 + ssrr_z-width_outer];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [L2/2 + G1/2-width_outer / 2 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + ssrr_z];
停止= [G1/2 + ssrr_x ssrr_y-srr_thickness / 2, -L1/2 + width_outer + ssrr_z);
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2-G1/2 + width_outer / 2 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + ssrr_z];
停止= [-G1/2 + ssrr_x ssrr_y-srr_thickness / 2, -L1/2 + width_outer + ssrr_z);
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + ssrr_x ssrr_y + srr_thickness / 2, L1/2 + ssrr_z];
停止= [L2/2 + ssrr_x ssrr_y-srr_thickness / 2, L1/2-width_outer + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + ssrr_z + width_outer);
停止= [-L2/2 + width_outer + ssrr_x, ssrr_y-srr_thickness / 2, L1/2 + ssrr_z-width_outer];
CSX = AddBox (CSX SRR的10、启动、停止);
% %内心的环
开始= [L2/2-width_iner-G3-width_iner + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + width_iner + G3 + ssrr_z);
停止= [-L2/2 + width_iner + G3 + width_iner + ssrr_x ssrr_y-srr_thickness / 2, -L1/2 + width_iner + G3 + width_iner + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-G2/2 + ssrr_x ssrr_y + srr_thickness / 2, L1/2-width_iner-G3 + ssrr_z];
停止= [-L2/2 + width_iner + width_iner + G3 + ssrr_x ssrr_y-srr_thickness / 2, L1/2-width_iner-G3-width_iner + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [G2/2 + ssrr_x ssrr_y + srr_thickness / 2, L1/2-width_iner-G3 + ssrr_z];
停止= [L2/2-width_iner-G3-width_iner + ssrr_x ssrr_y-srr_thickness / 2, L1/2-width_iner-G3-width_iner + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + width_iner + G3 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + width_iner + G3 + ssrr_z);
停止= [-L2/2 + width_iner + G3 + width_iner + ssrr_x ssrr_y-srr_thickness / 2, L1/2-width_iner-G3 + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [L2/2-width_iner-G3 + ssrr_x ssrr_y + srr_thickness / 2, -L1/2 + width_iner + G3 + ssrr_z);
停止= [L2/2-width_iner-G3-width_iner + ssrr_x ssrr_y-srr_thickness / 2, L1/2-width_iner-G3 + ssrr_z];
CSX = AddBox (CSX SRR的10、启动、停止);
% % S-SRR2 % %
% %创建衬底
CSX = SetMaterialProperty (CSX‘substrate_srr’,‘ε’,substrate.epsR,“卡巴”,substrate_srr.kappa);
= [-substrate_srr开始。长度/ 2 + ssrr2_x ssrr2_y -substrate_srr.width / 2 + ssrr2_z];
停止= [substrate_srr。长度/ 2 + ssrr2_x substrate_srr.thickness + ssrr2_y substrate_srr.width / 2 + ssrr2_z];
CSX = AddBox (CSX substrate_srr”1、启动、停止);
% %创建groundplane
CSX = AddMetal (CSX groundplane);%创建一个压电陶瓷
开始= [-substrate_srr.length / 2 + ssrr2_x ssrr2_y, -substrate_srr.width / 2 + ssrr2_z];
停止= [substrate_srr。长度/ 2 + ssrr2_x ssrr2_y substrate_srr.width / 2 + ssrr2_z];
CSX = AddBox (CSX的groundplane 10、启动、停止);
% %外环
CSX = AddMetal (CSX, SRR);
开始= [L2/2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness -L1/2 + ssrr2_z + width_outer);
停止= [L2/2-width_outer + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2 + ssrr2_z-width_outer];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [L2/2 + G1/2-width_outer / 2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr。厚度、-L1/2 + ssrr2_z];
停止= [G1/2 + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness -L1/2 + width_outer + ssrr2_z);
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2-G1/2 + width_outer / 2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr。厚度、-L1/2 + ssrr2_z];
停止= [-G1/2 + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness -L1/2 + width_outer + ssrr2_z);
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr。厚度、L1/2 + ssrr2_z];
停止= [L2/2 + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2-width_outer + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness -L1/2 + ssrr2_z + width_outer);
停止= [-L2/2 + width_outer + ssrr2_x, ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2 + ssrr2_z-width_outer];
CSX = AddBox (CSX SRR的10、启动、停止);
% %内心的环
开始= [L2/2-width_iner-G3-width_iner + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr。厚度、-L1/2 + width_iner + G3 + ssrr2_z];
停止= [-L2/2 + width_iner + G3 + width_iner + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness -L1/2 + width_iner + G3 + width_iner + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-G2/2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3 + ssrr2_z];
停止= [-L2/2 + width_iner + width_iner + G3 + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3-width_iner + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [G2/2 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3 + ssrr2_z];
停止= [L2/2-width_iner-G3-width_iner + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3-width_iner + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [-L2/2 + width_iner + G3 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness -L1/2 + width_iner + G3 + ssrr2_z);
停止= [-L2/2 + width_iner + G3 + width_iner + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3 + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
开始= [L2/2-width_iner-G3 + ssrr2_x ssrr2_y + srr_thickness / 2 + substrate_srr.thickness -L1/2 + width_iner + G3 + ssrr2_z);
停止= [L2/2-width_iner-G3-width_iner + ssrr2_x ssrr2_y-srr_thickness / 2 + substrate_srr.thickness L1/2-width_iner-G3 + ssrr2_z];
CSX = AddBox (CSX SRR的10、启动、停止);
S-SRRs % % % %港口
如果(active = = 1)
开始= [-G1/2 + ssrr_x、ssrr_y -L1/2 + ssrr_z];
停止= [G1/2 + ssrr_x substrate_srr。厚度+ ssrr_y -L1/2 + width_outer + ssrr_z];
(CSX公司、港口{1})= AddLumpedPort (CSX 5 1,饲料。R,启动、停止、[0 1 0],真实);
开始= [-G1/2 + ssrr2_x、ssrr2_y -L1/2 + ssrr2_z];
停止= [G1/2 + ssrr2_x substrate_srr。厚度+ ssrr2_y -L1/2 + width_outer + ssrr2_z];
[CSX,端口{2}]= AddLumpedPort (CSX 5 2,饲料。R,启动、停止、[0 1 0],假);
elseif (active = = 2)
开始= [-G1/2 + ssrr_x、ssrr_y -L1/2 + ssrr_z];
停止= [G1/2 + ssrr_x substrate_srr。厚度+ ssrr_y -L1/2 + width_outer + ssrr_z];
(CSX公司、港口{1})= AddLumpedPort (CSX 5 1,饲料。R,启动、停止、[0 1 0],假);
开始= [-G1/2 + ssrr2_x、ssrr2_y -L1/2 + ssrr2_z];
停止= [G1/2 + ssrr2_x substrate_srr。厚度+ ssrr2_y -L1/2 + width_outer + ssrr2_z];
[CSX,端口{2}]= AddLumpedPort (CSX 5 2,饲料。R,启动、停止、[0 1 0],真实);
结束
%设置一个网
网。x = [];
网。y = [];
%两条网格线的金属涂层衬底
网。z = linspace (-substrate_srr。厚度+ ssrr_y 0 substrate_srr。细胞+ 1);
%为补丁和地面找到最优网格线,不是是的微带线
网= DetectEdges (CSX网,‘SetProperty’,‘groundplane’,‘2 d_metal_edge_res’, max_res / 2);
%替代差距网格线由一个网格线太近
tooclose =找到(diff (mesh.y) < max_res / 4);
如果~ isempty (tooclose)
mesh.y (tooclose) = (mesh.y (tooclose) + mesh.y (tooclose + 1) / 2;
网。y (tooclose + 1) = [];
结束
tooclose =找到(diff (mesh.x) < max_res / 4);
如果~ isempty (tooclose)
mesh.x (tooclose) = (mesh.x (tooclose) + mesh.x (tooclose + 1) / 2;
网。x (tooclose + 1) = [];
结束
tooclose =找到(diff (mesh.z) < max_res / 4);
如果~ isempty (tooclose)
mesh.z (tooclose) = (mesh.z (tooclose) + mesh.z (tooclose + 1) / 2;
网。z (tooclose + 1) = [];
结束
%将微带边缘存储在一个临时变量
meshline = DetectEdges (CSX公司,[],‘SetProperty’,‘SRR’,‘2 d_metal_edge_res’, max_res / 2);
%以及底物的边缘(没有1/3 - 2/3规则)
meshsubstrate = DetectEdges (CSX公司,[],“SetProperty”,“substrate_srr”);
%添加只有x微带的网格线
网。x =[网。x meshline.x];
%,只有顶部的衬底,其他边缘覆盖的地平面
网。y =[网。y, meshsubstrate.y];%的衬底
%现在我们现在只有边缘,计算网格线中间帧
网= SmoothMesh(网格、max_res);
%添加外边界
网。x =[网。x -60、60);
网。y =[网。y、-60、65);
网。z =[网。-45年z, 45];
%为自由空间添加粗网格线
网= SmoothMesh(网格、coarseResolution);
%定义网格
CSX = DefineRectGrid (CSX公司、单位、网);
% %添加nf2ff calc盒子,大小3细胞远离电导率
如果(use_pml = = 0)
开始= [mesh.x (4) mesh.y (4) mesh.z (4)];
停止= [mesh.x (end-3) mesh.y (end-3) mesh.z (end-3)];
其他的
开始= [mesh.x (12) mesh.y (12) mesh.z (12)];
停止= [mesh.x (end-11) mesh.y (end-11) mesh.z (end-11)];
结束
(CSX nf2ff] = CreateNF2FFBox (CSX nf2ff,开始,停止);
% % Paraview
CSX = AddDump (CSX公司,“英孚”、“DumpType”10日“频率”,(5 e9));
CSX = AddBox (CSX公司,“英孚”10 [-substrate_srr。宽度-substrate_srr。长度-10 * substrate_srr.thickness]、[substrate_srr。宽度substrate_srr。长度10 * substrate_srr.thickness]);%分配箱
% %准备和模拟运行文件夹
Sim_Path =“tmp_unit_cell_definition”;
Sim_CSX =“unit_cell_definition.xml”;
[状态、消息、消息id] =删除文件夹(Sim_Path, ' s ');%清楚以前的目录
[状态、消息、消息id] = mkdir (Sim_Path);%建立空模拟文件夹
% %写openEMS兼容的xml文件
WriteOpenEMS ([Sim_Path ' / ' Sim_CSX], FDTD, CSX公司);
% %显示结构
CSXGeomPlot ([Sim_Path ' / ' Sim_CSX]);
如果(cal = = 1)
% % openEMS运行
RunOpenEMS (Sim_Path Sim_CSX);
% %后加工和阴谋
%后处理情节
频率= linspace (f0-fc f0 + fc 1001);
{1}= calcPort端口(端口{1}、Sim_Path频率);
端口{2}= calcPort(端口{2}、Sim_Path频率);
Pincoming_1 = {1} .P_inc港;
Preflected_1 = {1} .P_ref港;
Paccepted_1 = {1} .P_acc港;%传入-反映,可能是消极被动的港口
Pincoming_2 = {2} .P_inc港;
Preflected_2 = {2} .P_ref港;
Paccepted_2 = {2} .P_acc港;%传入-反映,可能是消极被动的港口
Zin1 = {1} .uf港。合计。/端口{1}.if.tot;
{2}.uf Zin2 =港口。合计。/端口{2}.if.tot;
如果(active = = 1)
s11 = {1} .uf港。ref。/端口{1}.uf.inc;
{2}.uf s21 =港口。ref。/端口{1}.uf.inc;
elseif (active = = 2)
s22 = {2} .uf港。ref。/端口{2}.uf.inc;
s12 = {1} .uf港。ref。/端口{2}.uf.inc;
结束
如果(active = = 1)
%情节馈点阻抗
情节(频率/ 1 e9真实(Zin1),“k -”,“线宽”,2);
抓住
网格
情节(频率/ 1 e9,图像放大(Zin1)、“r——”,“线宽”,2);
标题(“馈点阻抗”);
包含(f / GHz频率);
ylabel(“阻抗Z_{} /欧姆”);
传奇(“真正的”、“图像放大”);
%绘制反射系数S11,的参数S21
情节(频率/ 1 e9, 20 * log10 (abs (s11)),“k -”,“线宽”,2);
抓住
网格
情节(频率/ 1 e9, 20 * log10 (abs (s21)),“b -”,“线宽”,2);
标题(“模拟的参数”);
包含(f / GHz频率);
ylabel('的参数(dB) ');
传奇(“S11”、“S21”);
drawnow
结束
如果(active = = 2)
%情节馈点阻抗
情节(频率/ 1 e9真实(Zin2),“k -”,“线宽”,2);
抓住
网格
情节(频率/ 1 e9,图像放大(Zin2)、“r——”,“线宽”,2);
标题(“馈点阻抗”);
包含(频率f / MHz);
ylabel(“阻抗Z_{} /欧姆”);
传奇(“真正的”、“图像放大”);
%绘制反射系数S11,的参数S21、S31 S41
情节(频率/ 1 e9, 20 * log10 (abs (s22)),“k -”,“线宽”,2);
抓住
网格
情节(频率/ 1 e9, 20 * log10 (abs (s12)),“b -”,“线宽”,2);
标题(“模拟的参数”);
包含(f / GHz频率);
ylabel('的参数(dB) ');
传奇(“S22”、“S12”);
drawnow
结束
%绘制反射系数S11,的参数S21、S31 S41
情节(频率/ 1 e9 Pincoming_1,“k -”,“线宽”,2);
抓住
情节(频率/ 1 e9 Preflected_1, r -,“线宽”,2);
抓住
情节(频率/ 1 e9 Paccepted_1,“b -”,“线宽”,2);
网格
标题(“权力”);
包含(f / GHz频率);
ylabel(“权力”);
传奇(功率输入1,“权力反映1”,“权力接受1”);
drawnow
情节(频率/ 1 e9 Pincoming_2,“k -”,“线宽”,2);
抓住
情节(频率/ 1 e9 Preflected_2, r -,“线宽”,2);
抓住
情节(频率/ 1 e9 Paccepted_2,“b -”,“线宽”,2);
网格
标题(“权力”);
包含(f / GHz频率);
ylabel(“权力”);
传奇(《电力传入2》,《权力反映2》,《权力接受2》);
drawnow
% % NFFF轮廓图
%从s11 frequncy找到共鸣
如果(active = = 1)
f_res_ind =找到(s11 = = min (s11));
f_res =频率(f_res_ind);
elseif (active = = 2)
f_res_ind =找到(s22 = = min (s22));
f_res =频率(f_res_ind);
结束
%计算远场φ= 0度和φ= 90度
disp(“计算远场φ=[0 90]度……”);
nf2ff = CalcNF2FF (nf2ff Sim_Path、f_res(180:2:180) *π/ 180,90年[0]*π/ 180,“模式”,1);
%显示力量和方向性
disp([的辐射功率:马= num2str (nf2ff.Prad)“瓦特”);
disp([的方向性:距离= num2str (nf2ff.Dmax)“(”num2str (10 * log10 (nf2ff.Dmax))' dBi) ']);
如果(active = = 1)
disp([的效率(ant1) @30GHz = ' num2str (100 * nf2ff.Prad. /端口{1}.P_inc (f_res_ind))' % ']);
elseif (active = = 2)
disp([的效率(ant2) @30GHz = ' num2str (100 * nf2ff.Prad. /端口{2}.P_inc (f_res_ind))' % ']);
结束
%规范化方向性极坐标图
polarFF (nf2ff“xaxis”、“θ”,“参数”,[1 - 2],“正常化”,1)
%对数尺度指向性图
plotFFdB (nf2ff“xaxis”、“θ”,“参数”,[1 - 2])
%的传统情节的方法
% (nf2ff阴谋。θ* 180 /π,20 * log10 (nf2ff.E_norm {1} / max (nf2ff.E_norm {1} (:))) + 10 * log10 (nf2ff.Dmax));
drawnow
%显示3 d模式
disp (“3 d计算远场模式和倾销vtk可视化(使用Paraview)……”);
thetaRange = (0:2:180);
phiRange = (0:2:360) - 180;
nf2ff = CalcNF2FF (nf2ff Sim_Path、f_res thetaRange *π/ 180,phiRange *π/ 180,‘详细’,1,“输出文件”,“3 d_pattern.h5”);
plotFF3D (nf2ff对数刻度,-20);
E_far_normalized = nf2ff。马克斯(nf2ff.E_norm E_norm {1} / {1} (:)) * nf2ff.Dmax;
DumpFF2VTK ([Sim_Path ' / 3 d_pattern.vtk '], E_far_normalized, thetaRange, phiRange,“规模”,1 e - 3);
结束

答案(0)

标签

下载188bet金宝搏


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!