3.1 优化一个吸波结构

Posted Bill_H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\',如果有其它约束条件,可以用逻辑运算符 && 或者 || 扩展。

以上是关于3.1 优化一个吸波结构的主要内容,如果未能解决你的问题,请参考以下文章

3.3 进行优化,查看结果

优化 C# 代码片段、ObservableCollection 和 AddRange

系统管理之组织机构树形化结构优化篇

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

从JVM的角度看JAVA代码--代码优化