蟹老板往往会给海绵宝宝提出这样的要求:开发一种蟹黄堡,要求口感不变的情况下尽量减少成本,换句话说就是在同样的成本下尽量提高产品性能,或者在满足性能要求的前提下降低生产成本,这也是马克思那本书上所说的老板们的终极追求。作为一个好马仔,这时海绵宝宝大聪明就需要用到他那顶尖的脑瓜了,脑瓜不够用怎么办,试试优化设计技术啊。
在机械行业中优化设计的常见应用是在保证刚强度满足要求的情况下尽量轻量化,或在不增加重量的前提下尽量提高刚强度。
优化分析由三个参数组成:变量(设计变量),约束(状态变量)和目标。
1. 设计变量(DV):是自变量,比如定义模型可以改变的尺寸,优化结果的取得是通过改变设计变量来实现的,每个设计变量都有上下限。
2. 状态变量(SV):也称为约束条件,是设计变量的输出,定义应力,挠度等的合理变化范围。
3. 目标(Obj):也称为优化准则或优化目标,是目标函数要尽量优化的数值,它必须是设计变量的函数。
其中设计变量和目标必须有,状态变量可以没有。
现在通过一个简简单单的实例来学习下优化设计。
一根1m长的钢管,在一端固定,在另一端施加200Nm的扭矩,要求在保证总变形不大于0.15mm的前提下,使结构尽量轻。
在这个实例中:
设计变量DV1为圆管外径,DV1∈{50mm,60mm},设计变量DV2为管壁厚度,DV2∈{3mm,6mm}。
状态变量SV为总变形,约束要求为SV≤0.15mm。
目标Obj为钢管的质量,优化目标是越小越好。
建立静力学项目,使用DM或SC创建实体模型,建立钢管模型,其中钢管外径与厚度为参数控制。
双击模型栏进入Mechanical。
模型材料为默认的结构钢。
网格设置:
通过插入面网格(老版本的映射面网格)设置,将钢管壁厚方向设置为2层单元。
边界条件:
对钢管一端施加固定约束,另一端施加200Nm(2e5Nmm)的扭矩。
求解后将模型质量与总变形的最大变形量设置为参数输出。
回到WB主界面,将工具箱——设计探索——直接优化拖到动到项目参数集下方,程序会自动创建它们之间的连接。
双击直接优化——优化栏,进入优化设计界面。本例为2变量(外径与壁厚)+1约束(变形≤0.15)+1目标(质量最小),以下分别设置它们。
(1)设置自变量取值范围
点击域——静态结构,设置圆管外径和壁厚两个参数的取值范围,如下图,外径取值范围为50~60mm,壁厚取值范围为3~6mm。
(2)设置目标与约束
设置目标与约束主要是为了确定哪个参数为目标Obj,哪个参数为约束条件SV。本例中将质量(P3)设置为目标——最小化;将最大总变形(P4)设置为约束——P4<=0.15±0.001mm。
(3)设置优化方法
本例为单目标(P3最小)优化,程序自动推荐单目标自适应优化方法,爱折腾的海绵宝宝们可以通过手动修改,但是一般没必要,使用推荐的方法往往是较好的选择。
(4)计算
点击左上角“更新”,程序开始计算。
在我这台棒棒机上运行了1个小时后,程序计算完了,上文中默认的优化方法设置了33个设计点数,实际计算了29个点数。
收敛标准图表如下,由于模式的优化方法设置了3个候选点,所以这里给出了3个最优解,这里P3的三个候选点结果前都是显示了x,读者可以思考下为什么,将在下文揭晓。
点击结果——候选点,能更直观地对比三个候选点的优劣。以候选点1为例,外径P1=60mm,壁厚P2=3.6778mm,质量P3=5.1kg,最大总变形P4=0.1505mm,工程师可以对照机械设计手册选择相近规格的钢管。
以上计算最大问题是计算太慢,一个简单的问题能算上数小时,蟹老板可不乐意你这样摸鱼的,下面介绍一种快一点的算法——响应面优化设计。响应面优化设计只会计算少量几个设计点,其余的通过插值计算方法得到。
在WB主界面中,将工具箱——设计探索——响应面优化拖到动到项目参数集下方,程序会自动创建它们之间的连接。
响应面优化需要3步完成,即实验设计(抽样)——响应面——优化。
实验设计即抽样设置,双击响应面优化项目——使用设计进入界面。
同上文一样先设置输入参数P1和P2的取值范围,P1∈{50mm,60mm},P2∈{3mm,6mm}。
抽样方法选择默认的中间复合材料设计(CCD)。
点击左上角更新,程序开始抽样计算。计算时间取决于算例复杂程度+抽样数量+棒棒机配置。
本例一共计算了10个样本点,其中包括两个极限DP0和DP1。
退出实验设计,双击响应面进入界面。
使用默认的响应面类型:遗传聚合,此处的遗传含义是继承取样点的计算结果。然后点击更新,开始生成响应面。
在计算结果中可以查看响应曲线以及各变量的灵敏度(对目标影响的敏感程度)。
退出响应面,双击优化进入界面。
同实例1一样设置约束和目标,目标为P3最小,约束为P4<=0.15±0.001。
优化方法选择默认的MOGA(多目标遗传),即继承之前的响应面取样,初始样本按程序默认数量。因为这些计算都是基于响应面插值的,而不是去修改了钢管外径和壁厚再重新计算,所以有必要验证下计算得到的最优解,勾选优化设置属性中的验证候选点。
点击左上角更新后开始计算。这次计算比算例1快得多。
因为目标P3设置的最小化,并没有给具体数值,所以计算出的最优解的P3前面都显示的x。
通过以上操作,想必大家也明白了为什么优化设计是一种炫技的技术,不同人有不同人的理解,对于一些老工程师来说,操作太过繁琐,一些选项含义也不是很清楚——哗啦啦一顿操作猛如虎,最终电脑卡到吐,不如我来掐指算,甲方老板都点赞。但是对于一些年轻工程师来说,优化设计模块还是很有用的,至少减少了人为主观的经验出错的情况——轰隆隆天有风云地有难,掐指一算太扯淡,我劝老师重抖擞,技术还得向前看。
文中一些选项未作详细解读,第一是因为我也不是很懂,第二因为不懂也不影响使用,工程驱动的学习思维就是这样,需要用到什么我们就学什么,而不把WB的所有选项都系统地学明白,等着工程来找我们,那样是不现实的,而且现在WB的很多默认设置选项都是最好的选择,不需要我们去设置,大大降低了工程使用的学习成本。