2.2 优化三要素
优化问题都要确定三个基本要素:优化目标、设计约束、设计变量,它们被称为优化三要素。
2.2.1 设计变量
拓扑优化的设计变量是设计区域的单元密度,通过密度和刚度的关联实现局部刚度的变化。拓扑优化的结果和优化空间(也就是拓扑优化的变量)的定义有很大关系,支持从1D/2D/3D单元的属性创建设计变量。
通常用户只需要选择属性就可以完成拓扑优化设计变量的定义,操作可以在Analysis>optimiza-tion>topology面板中的create子面板完成,如图2-48所示。OptiStruct支持创建多个拓扑优化设计变量,每个设计变量的设置相互独立。
图2-48 创建拓扑优化设计变量
面板中type的可选项有PSOLID、PSHELL、PCOMP(G)、PBAR、PROD、PWELD、PBUSH、PBEAM和PBEAML。定义拓扑优化设计变量相关的其他参数主要是制造约束的定义,详情请参考DTPL关键字。
拓扑优化设计空间的构造有时是比较复杂的,例如针对图2-49所示的原始设计,重新设计加强筋需要先创建一个设计空间,如图2-50所示。
图2-49 原始设计
图2-50 拓扑优化设计空间
操作视频
除了常规几何工具之外,2019版软件还提供了直接操作网格构建拓扑优化设计空间的工具,如图2-51所示。拓扑优化设计空间并不要求网格外表面光滑。
图2-51 voxel工具
对于复杂的情况,建议在Inspire Studio或其他CAD软件中完成几何建模。
2.2.2 响应
设计约束条件和优化目标函数都是从响应创建的。OptiStruct之所以被认为是最强大的优化软件之一,其中一个原因就是其丰富的内置响应。OptiStruct响应分为三大类。
第一类响应(DRESP1):OptiStruct可以直接计算得到这类结果,具体可以参考图2-52。实际应用中90%以上的案例都是使用第一类响应。第一类响应很容易使用,而且OptiSt-ruct会自动计算灵敏度,可以大幅度提高优化的计算速度。
图2-52 第一类响应
第二类响应(DRESP2):如果遇到第一类响应解决不了的问题,要优先考虑第二类响应。第二类响应是已有响应的算术运算,详细的创建方法将在第3章介绍。
第三类响应(DRESP3):如果遇到前面两类响应无法解决的响应问题,那么还有第三类响应,也就是借助外部程序来完成响应计算。DRESP3可以使用Compose、Excel、C、C++、FORTRAN创建,但实际上程序都是可以互相访问的,例如可以通过Compose去调用Python完成响应的创建,其间可能需要访问文件、数据库或者调用别的程序。
是否能提供灵敏度给OptiStruct优化引擎对优化速度有很大影响,DRESP1和DRESP2都是自动提供的,而DRESP3多数情况下提供不了,这也是DRESP3比DRESP1和DRESP2慢很多的原因。由于OptiStruct在优化时会在后台构建响应面,所以每次迭代时会多次调用外部程序进行第三类响应的计算。
选择响应的几个原则如下。
刚度优先,如柔度和加权柔度。
全局性响应优先,如模态频率、体积、体积百分比。
鲁棒性高的响应优先。应力、高阶模态频率等响应类型要慎重选用。
最常用的响应包括位移、应力、柔度、加权柔度、频率、加权频率、体积、体积百分比、质量、质量百分比等。位移有正负之分,如果位移为负,为了提高刚度应该最大化该位移。体积百分比和质量百分比的计算方法和差别如图2-53所示。对于频率响应分析的结果,很多情况下是先通过分析得到问题频率,然后针对对应的模态进行优化。对于螺栓、铆钉等连接件通常可以通过轴向力和剪切力进行优化。转子问题可以通过转动惯量或质心位置进行优化。模态优化要注意跳频的问题(比如原先的第五阶模态振型优化后跳到了第三阶),解决方法有模态追踪以及同时控制多阶模态。
图2-53 体积百分比和质量百分比的差别
如果载荷为力,则为了提高刚度,柔度越小越好,如果载荷为强制位移,则为了提高刚度,柔度越大越好。加权柔度为各个工况柔度的线性叠加,计算公式如下。
拓扑优化和自由尺寸优化都属于概念设计优化,但是拓扑优化倾向于产生桁架结构而自由尺寸优化倾向于得到膜状结构,如图2-54和图2-55所示。一般来说,两者的材料布局趋势是一致的,自由尺寸优化经常用于拓扑优化结果的快速验证,也常用于复合材料铺层厚度的优化,这部分内容将在复合材料章节单独介绍。
图2-54 拓扑优化结果和相应的CAD模型
图2-55 自由尺寸优化结果和相应的CAD模型
2.2.3 约束和目标
工程中遇到的优化问题基本上都是带约束的优化,约束可能是显式指定的,也可能是隐式存在的(常见于形状、尺寸优化等设计变量变化较小的优化类型)。指定合适的约束条件以及合适的目标是得到较好优化结果的基本要求。指定约束条件需要参考原始结构的对应分析结果,约束过于严格会导致优化无解,过于宽松则约束不起作用。设置的约束会被OptiStruct自动过滤,所以即使设定的约束极多(如应力约束),这些约束也不会都真正参与优化,OptiStruct在每一个迭代步都会重新进行约束筛选以免优化得到的结果无法满足约束条件。
接下来这个例子专门介绍应力约束。
优化三要素如下。
优化目标:最小化体积百分比。
设计约束:加载点位移小于0.07mm。
设计变量:所有单元。
这种体积+位移的优化设置是最容易得到结果的,具有广泛的应用。拓扑优化结果如图2-56所示。
图2-56 拓扑优化结果密度云图
最大位移:优化前0.032mm,优化后0.07mm。
最大应力:优化前35MPa,优化后69.8MPa。
优化前可以施加通用应力约束(见图2-57),也可以施加精确应力约束(见图2-58~图2-60)。应力约束比较复杂,有大量选项可用,详情请参考DRESP1关键字。
图2-57 拓扑优化应力约束
图2-58 用于创建应力响应的单元
图2-59 创建应力响应
图2-60 创建应力约束
添加不同应力约束的优化结果如图2-61所示(密度阈值都是0.3)。从中可以看出,应力要求高了,剩余材料自然就多了。
图2-61 不同应力约束对应的密度云图
通用应力约束自动过滤应力奇异的单元(不影响后续优化迭代),这是比较稳健的方法,建议读者在大部分情况下使用。但是这类应力约束不能用于1D单元,也不能用于施加强制位移载荷的工况。
精确应力约束的优点是应力约束被严格满足,但是这种用法下必须要小心地把应力奇异单元排除在外,否则将无法得到优化结果。本次精确应力约束下优化的应力结果如图2-62所示。
图2-62 应力结果
影响刚度的因素是全局的,而影响局部应力的因素往往是局部设计,所以设计初期主要考虑刚度,兼顾强度,刚度设计好了,相当于“身体强壮”了,后期的局部应力问题解决起来也就容易了。