DoE集成
组件名称 | DoE集成 | ||
---|---|---|---|
工具集 | 设计分析优化 | ||
组件作者 | 雪浪云-修能 | ||
文档版本 | 1.0 | ||
功能 | 将若干DoE算法集成为一个组件 | ||
镜像名称 | suanpan_mdo:latest | ||
开发语言 | Python |
组件原理
- 将若干中DoE算法集成为一个组件,根据选择的算法自动生成设计点;
- 加上
design_id
,批量发给仿真接口; - 仿真接口每次返回一个
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
}
数据接收方式
异步模式。
参数配置
本组件部署前不需要配置任何参数,部署后在弹窗页面中编辑参数取值范围,目标和约束,定义基于公式的变量。
参数标签列
- 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表格中将数据整理好,黏贴到组件弹窗中。避免了用户在弹窗中手动逐一输入参数,容易出错。
运行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
后面板连接
部署状态下的操作
该组件使用前需先在仿真接口组件中将仿真模型的参数进行解析,在仿真接口组件的弹窗中点击保存,将其解析参数下发给sim2mdo组件,由sim2mdo组件将仿真模型的输入参数转换为全局变量,供DOE集成组件读取。
需要将doe计算所需参数填写完整,如输入参数取值范围、doe算法及其相关设置参数;
点击输出设计点按钮,组件会将设置的输入参数名与仿真接口组件解析的参数名进行对比,如保持一致则正常输出doe设计点数据,如不一致,则提示用户进行修改。