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',如果有其它约束条件,可以用逻辑运算符 && 或者 || 扩展。

  • 相关阅读:
    (Java) LeetCode 44. Wildcard Matching —— 通配符匹配
    (Java) LeetCode 30. Substring with Concatenation of All Words —— 与所有单词相关联的字串
    (Java) LeetCode 515. Find Largest Value in Each Tree Row —— 在每个树行中找最大值
    (Java) LeetCode 433. Minimum Genetic Mutation —— 最小基因变化
    (Java) LeetCode 413. Arithmetic Slices —— 等差数列划分
    (Java) LeetCode 289. Game of Life —— 生命游戏
    (Java) LeetCode 337. House Robber III —— 打家劫舍 III
    (Java) LeetCode 213. House Robber II —— 打家劫舍 II
    (Java) LeetCode 198. House Robber —— 打家劫舍
    (Java) LeetCode 152. Maximum Product Subarray —— 乘积最大子序列
  • 原文地址:https://www.cnblogs.com/bill-h/p/13096063.html
Copyright © 2011-2022 走看看