跳到主要内容

DoE集成

组件名称DoE集成
工具集设计分析优化
组件作者雪浪云-修能
文档版本1.0
功能将若干DoE算法集成为一个组件
镜像名称suanpan_mdo:latest
开发语言Python

组件原理

  1. 将若干中DoE算法集成为一个组件,根据选择的算法自动生成设计点;
  2. 加上design_id,批量发给仿真接口;
  3. 仿真接口每次返回一个design_id设计点结果,本节点再发送一个设计点给仿真接口,直到发送完毕。最后一次结束时再另外输出一个空的Json字符串:即{},通知其他组件发送完毕结束这个状态;

输入桩

输入端子1

  • 端口名称:待生成参数及取值范围;
  • 功能描述:接收优化问题定义,用于重新定义DoE参数生成算法组件的待生成(标定)参数及取值范围参数。即当右面板配置项“待生成(标定)参数及取值范围”为空时,需要至少收到一次本输入端子的输入给待生成(标定)参数及取值范围赋值。
  • 输入类型:对象;
  • 示例:
{
"inputs": [
{"param": "length", "min": 0, "max": 2, "default": 1},
{"param": "width", "min": 0, "max": 2, "default": 1},
{"param": "height", "min": 0, "max": 2, "default": 1}
]
}

输入端子2

  • 端口名称:仿真结果;
  • 功能描述:仿真的结果或任意非空数据,仅作为触发使用,用于输出下一个仿真参数(即设计点);
  • 输入类型:对象;
  • 示例:
{
"design_id": 3,
"Volume": 4.964462086375574,
"Surface": 17.542690545605996
}

输出桩

输出端子1

  • 端口名称:仿真参数;
  • 功能描述:仿真参数用于作为仿真接口组件的输入,其中包含design_id。每次输出后内部design_id累加1,最后一次结束时再另外输出一个空的Json字符串:即{},通知其他组件发送完毕结束这个状态;
  • 输出类型:对象;
  • 示例
{
"design_id": 3,
"length": 1.5918367346938775,
"width": 1.5918367346938775,
"height": 1.9591836734693877
}

数据接收方式

异步模式。

参数配置

本组件部署前不需要配置任何参数,部署后在弹窗页面中编辑参数取值范围,目标和约束,定义基于公式的变量。


image.png


参数标签列

  • Param:参数名称,与仿真接口组件中解析的仿真模型输入参数保持一致
  • Type:参数类型,连续取值(Continuous)离散取值(Discrete),离散取值需定义离散参数集,则该参数的doe输出数据从定义的离散参数集中选取
  • Set: 离散参数集,仅当参数类型(Type)选择(Discrete)时被激活,此处指定定义好的离散参数集
  • Min :下限值,该参数的取值下限
  • Default:默认值,该参数的默认取值
  • Max:上限值,该参数的取值上限
  • Level:与选择的doe算法有关,指定各参数水平

Doe算法选择

  • 2水平全因子:Level=2,即各参数取值为[min, max],根据参数个数n,生成设计点个数为2^n;
  • 3水平全因子:Level=3,即各参数取值为[min, (min+max)/2, max],根据参数个数n,生成设计点个数为3^n;
  • 广义全因子:参数设置栏显示level列,用户手动输入个参数的level值,根据每个输入参数的level,生成设计点个数为各个参数level值的乘积
  • Latin Hypercube:基于Latin Hypercube设计点集合生成算法自动生成设计点,用户需要在doe参数设置栏手动输入生成的设计点个数
  • 正交设计:基于正交设计表生成设计点,设计点数由算法计算得出,显示在doe参数设置栏,且不可更改
  • Box Behnken:基于Box Behnken设计点集合生成算法自动生成设计点,该算法要求参数个数大于两个;中心值:生成的DoE所需要的中心点的个数,默认为1,例如输入可选范围是[0, 10, 20],中心值为1,则表示被选中的中心点个数为1,即数值为10的输入,一般无需关注该值;设计点数由算法计算得出,显示在doe参数设置栏,且不可更改
  • custom:根据用户上传的文件(限定为csv/xlsx/xls),读取其中参数列表,下发doe设计点;设计点数由文件中数据行数减一(文件第一行为表头,需填写各个参数名)

Doe参数设置

  • 参数个数:参数设置栏中的参数个数,参数设置完后自动更新,不可更改
  • 设计点个数:由算法自动计算或用户手动填写(Latin Hypercube/custom),生成的将要下发的Doe设计点个数
  • 并发数:首次发送的设计点数目,如其值为3,即首次启动时候连续发送3个design_id的参数点到仿真接口(仿真接口负责动态分配仿真实例运行3个设计点),仿真接口一次返回一个结果(A)设计点,本组件收到一个结果会再发送一个design_id的参数点给仿真接口;

填写名称

指定本次运行的案例名称,方便此案例以及相应的设计点和结果文件写入数据库后,在数据库中搜索查找此案例。

表格支持复制黏贴

另外:弹窗支持用户将表格中的参数信息复制到本地Excel表格中,也可以将先在本地Excel表格中将数据整理好,黏贴到组件弹窗中。避免了用户在弹窗中手动逐一输入参数,容易出错。


image.png


运行调优

建议不进行特别配置,按照平台的默认分配运行。

使用方法

未部署状态下的操作

后面板连接



部署状态下的操作

该组件使用前需先在仿真接口组件中将仿真模型的参数进行解析,在仿真接口组件的弹窗中点击保存,将其解析参数下发给sim2mdo组件,由sim2mdo组件将仿真模型的输入参数转换为全局变量,供DOE集成组件读取。


image.png



image.png


需要将doe计算所需参数填写完整,如输入参数取值范围、doe算法及其相关设置参数;
点击输出设计点按钮,组件会将设置的输入参数名与仿真接口组件解析的参数名进行对比,如保持一致则正常输出doe设计点数据,如不一致,则提示用户进行修改。

image.png