跳到主要内容

DoE参数生成算法(Latin Hypercube)

组件名称Json键值
工具集设计分析优化
组件作者雪浪云-卡尔
文档版本1.0
功能基于Latin Hypercube设计点集合生成算法自动生成设计点
镜像名称suanpan_mdo:latest
开发语言Python

组件原理

  1. 基于Latin Hypercube设计点集合生成算法自动生成设计点;
  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
}

数据接收方式

异步模式。

参数配置

待生成参数及取值范围 【参数】

  • 功能描述:待生成参数及取值范围【参数】,如果该参数不为空,则该参数可以替代输入桩子1(即“待生成参数及取值范围”)的作用,即此时无需输入桩子1也可以正常运行;
  • 必选参数:否;
  • 默认:空;
  • 示例
{
"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}
]
}

生成设计点个数

  • 功能描述:需要生成的设计点的个数;
  • 必选参数:否;
  • 默认:50;

并发数

  • 功能描述:首次发送的设计点数目,如其值为3,即首次启动时候连续发送3个design_id的参数点到仿真接口(仿真接口负责动态分配仿真实例运行3个设计点),仿真接口一次返回一个结果(A)设计点,本组件收到一个结果会再发送一个design_id的参数点给仿真接口;
  • 必选参数:否;
  • 默认:1;

image.png


运行调优

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

使用方法

未部署状态下的操作步骤

后面板链接


image.png


右面板配置

  • 配置待生成参数及取值范围 【参数】,可默认为空;
  • 配置生成设计点个数,可默认为16;
  • 配置并发数,可默认为1;

image.png


部署状态下的操作步骤

后面板操作

在输入框中输入“待生成参数及取值范围”,可以观察输出:


image.png


应用本DoE方法生成的设计点如下:
2022-01-26 04:04:52{"design_id": 1, "length": 0.8, "width": 2.0, "height": 0.26666666666666666}
2022-01-26 04:04:52{"design_id": 2, "length": 1.3333333333333333, "width": 1.2, "height": 2.0}
2022-01-26 04:04:52{"design_id": 3, "length": 0.5333333333333333, "width": 0.13333333333333333, "height": 1.8666666666666667}
2022-01-26 04:04:52{"design_id": 4, "length": 0.9333333333333333, "width": 1.7333333333333334, "height": 0.6666666666666666}
2022-01-26 04:04:52{"design_id": 5, "length": 0.6666666666666666, "width": 1.3333333333333333, "height": 1.3333333333333333}
2022-01-26 04:04:52{"design_id": 6, "length": 1.6, "width": 0.8, "height": 0.4}
2022-01-26 04:04:52{"design_id": 7, "length": 2.0, "width": 1.8666666666666667, "height": 1.4666666666666666}
2022-01-26 04:04:52{"design_id": 8, "length": 0.26666666666666666, "width": 1.6, "height": 1.7333333333333334}
2022-01-26 04:04:52{"design_id": 9, "length": 1.0666666666666667, "width": 0.26666666666666666, "height": 1.6}
2022-01-26 04:04:52{"design_id": 10, "length": 1.4666666666666666, "width": 0.5333333333333333, "height": 0.5333333333333333}
2022-01-26 04:04:52{"design_id": 11, "length": 0.4, "width": 0.0, "height": 0.8}
2022-01-26 04:04:52{"design_id": 12, "length": 1.8666666666666667, "width": 0.9333333333333333, "height": 0.9333333333333333}
2022-01-26 04:04:52{"design_id": 13, "length": 1.2, "width": 1.4666666666666666, "height": 0.13333333333333333}
2022-01-26 04:04:52{"design_id": 14, "length": 1.7333333333333334, "width": 0.4, "height": 0.0}
2022-01-26 04:04:52{"design_id": 15, "length": 0.13333333333333333, "width": 0.6666666666666666, "height": 1.0666666666666667}
2022-01-26 04:04:52{"design_id": 16, "length": 0.0, "width": 1.0666666666666667, "height": 1.2}
2022-01-26 04:04:52{}

弹窗操作

无。