3.1 优化一个吸波结构

我们使用JSOP对一个吸波结构进行优化,吸波结构如下图所示。

将吸波结构的文件absorber.cst放入文件夹JSOP/interface/中,打开usr.m,设置如下

%仿真设置
model_name='absorber.cst';      %CST模型名称
result_route='1D Results\S-Parameters';      %仿真结果在Navigation Tree中的路径
result_name='S1,1';      %仿真结果的名称(参见rtdata.txt)
plot_type='magnitudedb';    %仿真结果的模式,包括'magnitude','magnitudedb', 'phase', 'polar',  'real', 'imaginary', 'smith', 'smithy'
solver_type='Solver';    %频域求解器:FDSolver  时域求解器:Solver
start_cst=true;    %是否调用CST


%变量设置
var_name={'da1','da2','wa1','wa2','ra1','ra2'};    %变量名称
var_bound=[[10,29];[10,29];[0.5,1.5];[0.5,1.5];[100,1000];[100,1000]];    %变量变化范围 [ [变量1的下界,变量1的上界] ; [变量2的下界,变量2的上界] ; ...]
inserts=[  ];    %插入指定个体
var_constrain='da1-2*wa1>da2';    %变量的限制条件,若无限制请输入''


%种群设置
MAXGEN=100;    %最大代数
NIND=20;    %一代中个体的数量
PRECI=10;    %单个变量的二进制位数   
MTR=2;    %变异率(默认值的倍数)


%其它设置
plot_graph=2;    %0:不绘制进化曲线  1:每进化一代就更新进化曲线  2:完成最后一代后再绘制进化曲线
plot_ave=false;    %是否显示种群平均值

%----------------------------------------------------------------------------------------
main_function(  model_name, result_route,  plot_type,  solver_type,  ...  
                var_name,  var_bound',  inserts,  var_constrain,  ...
                MAXGEN,  NIND,  PRECI,  MTR, ...
                plot_graph, plot_ave, start_cst);
                     
%JSOP1.3

model_name是CST模型的名称。

result_route是仿真结果在CST导航树中的路径,result_name是仿真结果的名称,可以从CST的Navigation Tree中看到,如下图所示

plot_type是仿真结果的输出模式,CST提供了仿真结果的多个模式,如下图所示。此处采用幅值的对数形式。

solver_type可设置求解器为频域求解器或时域求解器。

var_name是CST模型中待优化的变量的名称。(本例中da1, da2, wa1, wa2, ra1, ra2分别指代图中的d1, d2, w1, w2, R01, R02)

var_bound是一个矩阵,每一行表示一个变量的变化范围,其中第一列为下界,第二列为上界,变量的顺序与var_name中的变量名的顺序一致。

遗传算法生成初代种群的方式基本是随机生成,在JSOP中,用户可以将一些参数确定的个体添加到初代当中,这些个体存放在矩阵inserts当中。inserts的每一行表示一个参数确定的个体,在本例中inserts是一个1行6列的矩阵,表示添加一个参数为da1=25, da2=20, wa1=1, wa2=1, ra1=500, ra2=500的个体到初代种群中。在初代中添加一些优良的个体将有助于种群的进化。

参数之间往往需要满足一些约束关系,这种约束关系可以写在变量var_constrain当中。在本例中,为了保证外方环的尺寸大于内方环,我们将设置约束条件'da1-2*wa1>da2',如果有其它约束条件,可以用逻辑运算符 && 或者 || 扩展。

posted @ 2020-06-11 21:01  Bill_H  阅读(280)  评论(0编辑  收藏  举报