作者 | Ma Bin
经常有用户在问,如果模型中有三个参数A、B、C需要优化或者扫参,但是这三个参数有一些变化的约束条件,比如在优化或者扫参的时候要满足:
1)0<A<1;0<B<1;0<C<1
2)A+B+C=1
这种时候,应该怎么进行参数优化或者参数扫描设置?因为在CST中扫参器和优化器都不能理解A+B+C=1这种约束关系,只能设置参数的变化范围。我们怎么实现A、B、C三个参数在规定的范围内变化的时候还能满足A+B+C=1这样的约束条件?这篇文章我们来分别说一说可行的方式。
如果读者有更好的方法,欢迎在评论区留言交流。
一、参数扫描
对于参数扫描,枚举所有的有效组合,通常是最合适的。因为参数扫描的目的是看结果的走势变化,我们希望的是A、B、C遍历得比较平均即可。
一种离散样本的生成代码如下,可以修改m的值以控制样本的采样密度。把A、B、C的样本值画在三维坐标中,可以发现其实它们都在A+B+C=1这个平面上,并且是以1/m为间隔均匀分布。
有了A、B、C的样本值,下一步就是把它传入CST,并且计算每个组合下的仿真结果。这里列举出两个方法:
1)利用.txt文件导入Parameter Sweep
可以把样本值按照固定格式写进.txt文件中,这一步随便用个AI模型,很容易。然后在Parameter Sweep对话框中,通过Import导入写好的.txt文件,不同的参数组合会被当作一个Sequence写入。最后点击Start就可以正常扫参了,CST会依次计算这些明确的参数组合。注意:其中的每个参数组合都满足约束。
2)用Python或者VBA,修改Parameter list中的参数值
这个方法需要写一点代码,具体可以参考之前的文章。
思路就是把CST看作一个“计算器”,通过代码控制,每次传入一组参数,通过“计算器”计算,输出一些关心的结果,然后再传入下一组参数,循环往复。
二、参数优化
对于参数优化,可能枚举就不合适了,因为很难枚举到类似A=0.12345这样的值。但这个值或许就是目标的“最优解”。优化需要在连续的空间中搜索最优解,但是CST的参数优化器同样无法设置参数与参数之间的约束,我们还是要从数学上想办法。
一种简单的方式是做变量替换,引入两个连续变化的变量:p、q,并且满足0<p<1和0<q<1。替换如下:
这样A、B、C一定落在0到1之间,并且始终满足A+B+C=1。这种映射方式简单可靠,但缺点是p、q均匀变化并不代表A、B、C在三角形上均匀分布。
如果注重采样均匀性可以用u、v做面积均匀映射,如下,其中u、v满足0<u<1和0<v<1。
把这两种映射关系做个对比,就能理解均匀性的区别了。使用同一组均匀随机数和相同样本数(2600个),只改变从二维变量到A、B、C的映射方式。
左边是p、q仿射映射,样本点会明显向A=1附近聚集;
右边是u、v面积均匀映射,点在整个三角形内的密度更均匀。
好了,到这一步我们已经可以用p、q或者u、v的变化来映射A、B、C的变化了,而且变化是连续的,也就是说A、B、C可以“无死角”变化。
下面就是在CST中去实现这种映射关系,然后用优化算法进行优化。同样列举出两个方法:
1)不用CST自带的优化算法
CST软件自带了Trust Region Framework、Genetic Algorithm等7种优化算法,但如果用户想使用其他优化算法,就可以考虑这种方法。它同样需要写代码,也是把CST当作一个“计算器”使用,与上文“参数扫描”中的方法二类似。区别就是外部代码需要增加优化算法逻辑块,负责给出下一组需要传入CST的参数组合。
这种方法最灵活,能够处理任意约束、多目标和复杂后处理等情况。
2)使用CST自带的优化算法
如果需要使用CST软件自带的优化算法,就需要把上面的参数映射关系写到Parameter list中,通过控制p、q或者u、v来控制A、B、C。
我们以一个吸波材料的优化来做个示例。如下是一个三层介质的吸波材料,厚度分别是d1、d2、d3。通过u、v来控制A、B、C,然后乘以总厚度D_total得到三层介质材料的厚度。
我们的目标是在保证材料总厚度4.5mm不变的情况下,优化三层材料的厚度,使整个吸波材料在6.8-7.2GHz内的反射小于-20dB。
用F-solver配合Floquet端口来计算S11。
优化器设置如下,u、v的取值在0.01-0.99范围内。目标设置为S11在6.8-7.2GHz内小于-20dB。然后开始优化。
优化结果如下。
查看优化后的模型以及对应的Parameter List,可以看到整个优化过程中始终保持A+B+C=1,且满足其他约束条件:0<A<1;0<B<1;0<C<1。
[行业资讯] 智能工厂车间如何应对工业高温?达索SIMULIA冷却方案
2026-09-20
[行业资讯] 与达索系统SIMULIA冠军龙凯聊聊仿真那些事
2026-09-20
2026-09-20
[行业资讯] 达索系统 SIMULIA SPDM 2026新功能介绍
2026-09-20
[ABAQUS] Abaqus Tie 绑定后应力不传递原因?
2026-09-14
[ABAQUS] Abaqus 提示单元扭曲严重怎么优化网格?
2026-09-14
[ABAQUS] Abaqus 复杂曲面无法划分六面体网格怎么办?
2026-09-14
[CST] CST 时域瞬态求解器 Transient 适用场景
2026-09-10
2026-09-10
[ABAQUS] Abaqus 网格扭曲 Jacobian警告解决参考方法
2026-09-08
2023-08-29
2023-08-24
[ABAQUS] ABAQUS如何建模?ABAQUS有限元分析教程
2023-07-07
[ABAQUS] 有限元分析软件abaqus单位在哪设置?【操作教程】
2023-09-05
[ABAQUS] ABAQUS软件中Interaction功能模块中的绑定接
2023-07-19
[ABAQUS] Abaqus怎么撤回上一步操作?Abauqs教程
2024-05-01
[ABAQUS] abaqus里面s11、s12和u1、u2是什么意思?s和
2023-08-30
[ABAQUS] Abaqus单位对应关系及参数介绍-Abaqus软件
2023-11-20
[ABAQUS] Abaqus中的S、U、V、E、CF分别是什么意思?
2024-05-11
[ABAQUS] ABAQUS软件教程|场变量输出历史变量输出
2023-07-18
[行业资讯] 智能工厂车间如何应对工业高温?达索SIMULIA冷却方案
2026-09-20
[行业资讯] 与达索系统SIMULIA冠军龙凯聊聊仿真那些事
2026-09-20
[行业资讯] 达索系统 SIMULIA SPDM 2026新功能介绍
2026-09-20
[行业资讯] 对话达索系统SIMULIA冠军成员龙凯:裁去千钧,独留风骨
2026-09-07
2026-08-28
[行业资讯] 达索系统 GEOVIA 2026 新功能直通车|Surpa
2026-08-20
[行业资讯] 达索系统 SIMULIA 双场活动来袭:电磁仿真技术研讨会
2026-08-19
[行业资讯] 达索系统 SIMULIA 双场活动来袭:电磁仿真技术研讨会
2026-08-13
[有限元知识] 在GPU上使用PowerFLOW进行高性能CFD仿真
2026-08-05
[行业资讯] 达索系统ABAQUS产品从理论到实战研修班开课啦!
2026-07-27
地址: 广州市天河区天河北路663号广东省机械研究所8栋9层 电话:020-38921052 传真:020-38921345 邮箱:thinks@think-s.com