zoukankan      html  css  js  c++  java
  • 3.1 优化一个吸波结构

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

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

    %仿真设置
    model_name='absorber.cst';      %CST模型名称
    result_route='1D ResultsS-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',如果有其它约束条件,可以用逻辑运算符 && 或者 || 扩展。

  • 相关阅读:
    常用正则表达式
    C语言的指针与二维数组
    【原创】datalist实现简单分页功能
    【原创】datalist的页脚访问和控制
    [原创]手动删除顽固病毒总结
    [zz]复杂指针解析
    极度郁闷的一次电脑维修经历
    武汉城市地铁规划图
    [转]objc_msgSend 的 ARM 汇编分析
    [转]Cydia and XCode Local App Testing
  • 原文地址:https://www.cnblogs.com/bill-h/p/13096063.html
Copyright © 2011-2022 走看看