modeFRONTIER中非均匀离散变量的设定
在使用modeFRONTIER进行优化时,非均匀的离散变量设定是一种常见需求,比如某个部件的厚度允许取值也许只能是1.0,2.0,4.0三者之一,或者是材料的属性只能是几种可选材料之一,对应的比如弹性模量之类属性必然是非均匀离散变量。那么我们在modeFRONTIER中如何设定这种非均匀的离散变量呢?常规的Discrete变量只能设定Step(变化步长)或者Base(可取值数量),均对应于均匀的离散变量,因此我们需要使用一种间接的方法来设定这种非均匀的离散变量。下面介绍这种方法。在modeFRONTIER中首先设定一个输入变量(Input Variable),名字可以取Index之类,也就是序号,类型定义为Var-Discrete ordered,下限取为0(modeFRONTIER中数组编号从零开始),上限取为可选值数量减1,比如有5个可以取的值,那上限就设为4,Step取为1,参见下图。然后再设定一个输入参量(Input Parameter),名字可以取为Allowed_Values一类,也就是我们要设定的可以取的值,类型取为Vector,Vector Size取为Fixed Size,对应于可选值的个数,然后设定该矢量各分量的Default Value为所有可选值的具体值,参见下图。这样我们变化序号值,然后根据序号值在这个输入矢量参数中找到对应的实际输入值,就可以实现非均匀变化的离散变量了。具体实现可以用modeFRONTIER的计算器节点(Calculator)实现。设定一个输出变量,名字可以取为Real_Value之类,也就是实际值,把序号输入变量和可选值矢量输入参量以及这个实际值输出变量都连接到计算器上,类似下图。Real_Value=Allowed_Values[index]然后设定Parameters,注意Allowd_Values的类型要设定为Vector,如下图再进行Introspection,将参数进行绑定,如下图这样得到的输出变量就是我们需要的非均匀的离散变量了,我们可以把它在连接到下游的仿真计算之类节点(比如JMAG节点)作为输入,就可以进行后续计算了。 著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-09-08
最近编辑:1月前