
在强度仿真的日常里我越来越觉得“算结果”只是基础半场真正有含金量的下半场是“提出能改的设计方案”。很多人拿着仿真报告去见设计师报告只说“这里应力超了那里位移偏大”剩下的事全让对方猜。而尺寸优化与形状优化恰恰就是解决“接下来怎么改”的标准工具。这个系列更新到主题042正好轮到尺寸优化与形状优化。这两个词经常被放在一起实际做起来却完全是两条路线一个改数不改形一个改形不改筋。这篇文章把我实际项目里的操作流程、参数设置和踩过的坑都摊开讲适合刚入门结构优化、或者已经在做强度校核想往上走一步的仿真工程师参考。1. 尺寸优化与形状优化两种完全不同的“改法”很多初学者会把尺寸优化和形状优化混为一谈觉得都是“把模型改一改再算一遍”。但实际上它们在优化对象、变量定义、求解逻辑和结果形态上都有本质区别。搞不清楚这一点后面做参数化建模时很容易走弯路。1.1 尺寸优化参数在变几何骨架不动尺寸优化是最容易理解的优化方式。它的前提是你已经有一个基本确定的几何模型——支架有几个孔、翻边翻到哪个位置、整体轮廓什么样这些都已经定了。你能改的是那些具体的尺寸数值板厚、圆角半径、孔径、筋高、截面宽度、孔位坐标等等。这里的核心特征是模型的拓扑关系和几何形状不发生变化只有尺寸参数在变化。比如一块矩形板宽度从100mm变到90mm长度还是200mm它依然是“矩形板”这个拓扑类型。因为不涉及网格重生的大动作尺寸优化的计算效率通常很高也是工业界最常用、最容易落地的优化手段。1.2 形状优化边界轮廓在动网格必须跟着动形状优化则往前走了一步。它优化的对象是结构的几何边界比如一个圆角弧线、一个过渡曲面、一条外轮廓的样条曲线。每迭代一次几何形状都会发生变化网格必须跟随边界重新生成或变形。最典型的例子是圆角半径的优化。一个支架的根部圆角从R2变成R5这不只是“一个数字变了”而是局部几何边界的曲率发生了改变目的是降低应力集中。形状优化可以在不改变材料用量和拓扑的前提下大幅改善局部应力分布这是尺寸优化很难做到的。1.3 一张表理清两者的边界对比维度尺寸优化形状优化优化对象几何尺寸参数厚度、长度、孔径等几何边界轮廓圆角、曲线、曲面形状几何拓扑保持不变保持不变网格处理通常不重新建模可参数映射需要网格变形或重新划分设计变量尺寸数值数量可多可少边界控制点、形状基向量、曲线控制参数主要目标减重、降应力、调刚度降低应力集中、优化传力路径实现难度较低容易自动化较高几何和网格联动麻烦工程落地性极高直接改图较高但制造约束要单独考虑从这张表能看出来尺寸优化更“工业化”、更皮实形状优化更“极限”、更讲究细节。两者的工程定位不是替代关系而是递进关系——先用尺寸优化把整体参数调到合理区间再用形状优化去打磨局部薄弱位置。1.4 它俩和拓扑优化到底是什么关系说到结构优化总会顺带提到拓扑优化。排列一下就是拓扑优化负责“哪里该有材料”在给定的设计空间里寻找材料分布尺寸优化负责“材料该用多厚多大”在拓扑确定后调参数形状优化负责“边界该怎么画”在材料分布和拓扑都确定后打磨轮廓。我在实际工作中喜欢用一句话记忆拓扑决定材料的“有无”尺寸决定材料的“多少”形状决定材料的“摆放角度和过渡方式”。三者可以串联使用但每个阶段解决的问题、变量定义和收敛判据都不同不能指望用一个工具统统搞定。2. 为什么仿真工程师要主动做优化而不只是做校核强度仿真做久了你会碰到一个很尴尬的局面报告做了一堆云图彩色的、表格漂亮的但设计师看完问一句“所以呢我该改哪儿”那一刻你会发现校核报告只是把问题摆出来了并没有给出解题方向。这正是优化功能存在的意义。2.1 从“是否合格”到“还有多少余量”传统强度校核解决的是判断题这个结构强度够不够应力小于许用值OK超了NG。但工程上真正值钱的问法是这个结构还有多少余量可以挤出来能不能在保证强度、刚度、寿命的前提下再轻10%再省一点材料费尺寸优化和形状优化就是回答这个“挤余量”问题的。它们做的事情本质上是把设计师的经验试错变成有数学依据的自动搜索。一次优化迭代可以同时评估几十组参数组合找到的改进方向往往比人工拍脑袋更靠谱。2.2 安全系数不是越高越好我见过不少结构件安全系数做得极高看起来“非常安全”实际上浪费惊人。一个厚度10mm的板应力只用了材料屈服强度的四分之一那多出来的厚度就是纯粹的重量和成本。当然安全系数高有时是出于振动、疲劳、冲击、制造偏差等未明确约束的考虑。但如果没有这些额外要求就应当用优化把这个余量找出来把材料放到真正受力的位置上去。这也是轻量化设计的底层逻辑。2.3 强度约束只是优化的起点做强度仿真的人一谈到优化脑子里往往是“应力不要超”。但实际工程问题的约束池远不止强度最大变形不能超过0.5mm一阶模态不低于某个频率疲劳寿命要过十万次循环温度场下的热应力要控制住铸造件的壁厚不能小于最小可浇注厚度……在优化模型里这些统统可以写成约束条件或目标函数。很多时候约束条件之间的博弈才是优化的真正看点。比如为了降应力加大圆角可能同时导致模态频率下降、重量上升。优化算法要做的就是在这些互相矛盾的约束之间找平衡解。2.4 优化带来的收益是可以量化汇报的我建议每个做优化的工程师都习惯把结果量化成成本语言。比如支架减重0.8kg、单车成本节省约十几元年产十万辆就是上百万元的规模。或者某个模具的疲劳寿命从十万次提升到五十万次直接减少了售后更换率。我做过的一个安装支架优化项目原始重量是2.3kg经过尺寸优化调到1.9kg形状优化又降了0.1kg总减重约17%。强度校核显示最大应力仍然在安全范围刚度还略微提升。这种数据摆在项目评审会上比任何漂亮云图都有说服力。3. 尺寸优化实操记录从参数化建模到稳健收敛尺寸优化虽然相对简单但真正做起来有很多细节决定成败。下面按我自己的标准流程来讲每一步都说清楚为什么这么设计。3.1 设计变量的选择策略不是所有尺寸都能当变量设计变量不是越多越好。变量太多组合空间爆炸迭代次数剧增变量太少优化空间不足找不到好的解。我一般从这三个角度筛选自变量对重量或成本影响大的尺寸优先设为变量。比如板厚、关键壁厚、长宽尺寸。对强度响应敏感的尺寸必须纳入变量。可以通过一次DOE敏感性分析筛出来。对制造和装配有硬性要求的尺寸直接固定不参与优化。比如装配孔直径、标准件安装尺寸。在参数化建模阶段我会把设计变量命名规范化比如T_1、T_2、R_3这种并在说明文档里记录上下限和初始值。上下限的设定非常有讲究下限要考虑冲压最小圆角、铸造最小壁厚、机加工极限上限要考虑装配空间和外观要求不能拍脑袋给一个离谱的范围。3.2 约束和目标函数的搭建先想清楚你要什么优化问题在三句话之内必须说清楚目标是什么约束是什么变量是什么。目标通常是单目标工业界最常用的是“最小化重量”或“最小化最大应力”约束常见的是“最大应力≤许用应力”“最大变形≤允许值”。我习惯把所有响应都先算一遍看看初始设计是在约束边界内还是边界外。如果初始设计已经超了约束那目标函数就不能一味追求减重得先把可行性恢复回来。这个判断很多人会忽略结果优化器一直在不可行域里打转白白浪费计算时间。3.3 试验设计与响应面什么时候值得做代理模型尺寸优化的迭代次数通常不小如果每次迭代都要做一次完整有限元求解几百次求解下来时间成本相当可观。这时候我们会用试验设计DOE加响应面代理模型来加速。先用抽样方法生成几十组参数组合计算得到对应的应力、变形、重量响应。然后用代理模型拟合出响应与变量之间的数学关系再用优化算法在这个代理模型上寻优。等到基本找到最优区域后用一次真实有限元验证收尾。我个人的经验是如果设计变量少于5个直接做优化问题求解反而更快变量超过10个时DOE响应面的优势就非常明显。代理模型的精度直接影响优化结果抽样方法建议用最优拉丁超立方比普通随机抽样更均匀。3.4 优化算法选择的工程依据尺寸优化问题的目标函数通常是非线性的我常用的算法组合是先用全局算法如多岛遗传算法、自适应模拟退火做全局搜索找到较优区域再切换到梯度类算法如序列二次规划做局部精细收敛。两步法的好处是既不容易陷入局部最优又能拿到高精度的收敛解。纯梯度法收敛快但初始点不好时会掉进局部最优出不来纯遗传算法全局性好但后期收敛慢算到后面每一步都像在磨洋工。把两者结合起来基本是工程尺寸优化的标准打法。当然如果你用的是自带优化器的商业平台这些算法都是内置的但理解逻辑能帮你判断为什么某些设置效果不好。3.5 一个典型支架的尺寸优化案例拆解我做过一个小型L型支架铝合金材质受三点装配载荷。初始设计壁厚6mm最大应力150MPa许用应力180MPa重量1.5kg明显有减重空间。设计变量选了底板厚度、立板厚度、加强筋高度、根部圆角半径四个参数。约束条件为最大应力≤180MPa、最大变形≤1.0mm。目标函数是最小化重量。优化过程经历了26次迭代收敛结果底板厚度从6降到4.5mm立板厚度从6降到5mm筋高从20提高到26mm圆角从R3增到R6。重量降到1.15kg减重约23%最大应力在174MPa变形0.92mm全部满足约束。这个案例里有个很有意思的细节如果只减厚不加筋应力很容易超标只有同时增加筋高来补刚度才能安全地削掉非必要厚度。这就是尺寸优化的协同效应参数之间互相制约人工试错很难一次调到位。3.6 尺寸优化过程中的三个常见坑第一个坑是变量单位相差悬殊。厚度变量是毫米级别的长度变量可能是几百毫米直接交给优化器会让数值稳定性变差。我习惯把所有设计变量做归一化处理在0到1之间搜索得到结果后再映射回真实尺寸。第二个坑是应力奇异点的干扰。如果模型里有尖角、点载荷、刚性约束这类产生应力集中的位置奇异点的应力值会随着网格加密无限增大根本不收敛。优化器会把奇异点附近当成“最危险区域”所有迭代都往那里回避得到的优化方向就是错的。解决办法是评估应力时避开节点奇异点或者用局部应力提取区域的平均值。第三个坑是约束条件的“边界溺水”。优化结果往往正好落在约束边界上——应力刚好等于许用值、变形刚好等于上限。如果设计余量和制造公差没有考虑进去实际生产出来就超了。我会在优化模型中预留一点安全余量比如把许用应力乘以0.9作为约束上限。4. 形状优化怎么落地边界演化与应力峰值博弈形状优化比尺寸优化要“娇贵”得多因为它动的是几何边界每一步都要处理几何和网格的联动关系。很多仿真工程师做尺寸优化很顺手一到形状优化就发怵主要是对技术路线和工程约束不熟悉。4.1 形状优化的两条技术路线形状优化在软件实现上大致有两条路线。第一条是CAD参数驱动法把几何边界用参数化的曲线或曲面表达比如一个圆角本身就是参数改变参数值就改变了边界形状。这条路线比较直观能和CAD模型无缝联动但参数化能力有限——不是所有形状用几个参数就能表达清楚。第二条是网格自由变形法不重新建模而是直接通过扰动网格节点位置来改变边界形状。具体做法是定义一组形状基向量每个基向量是一种边界变形模式优化算法求解的是这组基向量的组合系数。这实际上是一种“网格随形”策略。4.2 强度仿真里最常遇到的形状优化场景形状优化在强度领域最典型的应用场景就是“降峰值应力”。支架根部、轴肩过渡、开孔边缘、焊缝附近这些位置天然存在应力集中应力集中系数一旦偏高疲劳寿命就会急剧下降。另一个场景是均衡应力分布。有些结构整体应力水平不高但局部特别突出说明传力路径不顺畅。形状优化可以让应力分布变得更均匀等于让每一份材料都干活。我自己用得最多的场景是过渡区域的设计。比如一根变截面轴从直径50mm过渡到40mm如果直接台阶过渡应力集中系数可能到2.5以上如果形状优化把过渡区变成光滑曲线应力集中系数能降到1.5以下。这个下降幅度是尺寸优化很难达到的。4.3 应力集中本质形状优化到底在优化什么应力集中的本质是力流在几何突变处被迫“绕路”在尖角区域堆积变形能和应力。形状优化的目标通俗讲就是把转角磨得足够圆滑让力流过弯的时候不那么急。圆角从R2增加到R5峰值应力通常能明显下降但继续从R5增加到R10收益会递减。这是典型的边际效应。形状优化算法会自动探索这种收益曲线帮你找到“再增加圆角也不再有明显收益”的拐点从而在制造可行性和强度之间取得平衡。4.4 形状优化不能忽视的制造几何约束很多形状优化做完模型在软件里看着很漂亮一拿到加工厂就被打回来了。原因往往是优化后的边界不符合制造工艺要求。铸造件需要拔模斜度锻造件需要最小的过渡圆角冲压件要考虑回弹补偿和模具磨损焊接件要留给焊枪足够的操作空间。所以形状优化在定义变量和边界约束时必须把制造约束写进去。我会在优化启动前先和工艺工程师沟通整理一份制造约束清单比如最小圆角不小于R3、拔模角不小于1.5°、某个区域不允许出现负角度曲面。这些约束写进模型比事后手工修几何靠谱得多。4.5 形状优化结果的评判标准形状优化完成后不能只看峰值应力降了多少。我一般从三个层面去评判峰值应力的降幅和位置变化。最优情况是峰值应力从尖角处移除且出现位置的应力梯度变缓。应力分布的均匀程度。可以用更高阶的统计指标来衡量比如应力云图里高应力区的面积占比。与原始设计的工艺继承性。如果优化后的形状导致模具工装全部重做成本就太高了要权衡强度增益和工艺改动代价。5. 尺寸与形状协同优化的工作流设计一次真实项目的顺序两个优化手段单独用都有局限性真正高效的做法是设计一条协同工作流让它们各司其职。下面是我在项目中打磨过的一版流程供参考。5.1 先做什么后做什么整体走尺寸局部走形状我强烈建议不要一开始就在完整模型上同时做尺寸和形状优化。那种全耦合优化的变量空间太大收敛极慢而且工程上很难解释。我的习惯是分两步走第一步通过尺寸优化解决“整体参数”问题确定板厚、截面尺寸、主要轮廓尺寸这一步能吃掉大部分减重空间。第二步把尺寸优化得到的构型作为基模型对局部高应力区域、疲劳薄弱位置做形状优化专门解决应力集中。这个顺序背后的逻辑是尺寸优化影响的是全局刚度和重量分布形状优化影响的是局部应力梯度。全局问题不确定下来就去做局部打磨很可能整体一变局部优化就白做了。5.2 CAD联动与网格重生策略要提前规划协同优化的最大工程障碍是模型传递。尺寸优化阶段还好参数调完重新生成几何和网格即可形状优化阶段就麻烦每迭代一次几何边界都在变网格要么随形变形要么重新划分前者容易网格畸变后者几何清理工作量巨大。我建议在项目初期就约定好CAD参数化程度哪些尺寸做成参数哪些边界用可变形曲线哪些区域完全冻结。把模型按“优化区”和“非优化区”切分非优化区的网格可以冻结托底只让优化区的网格重生这样计算成本能降一半以上。5.3 多工况处理约束往往比工况还多实际结构件很少只受单一静载。一个车身上的安装支架可能同时要承受垂向载荷、横向载荷、急刹车惯性力、振动疲劳载荷。优化模型里每一个工况都要对应一组强度、刚度约束约束数量一下子涨上去。这时候最好用的策略是“包络法”分别计算各工况下的应力响应取每个单元的最大应力值生成包络应力云图把这个包络值作为优化过程中的应力约束响应。这样既不会遗漏危险工况又避免了在优化循环里同时挂太多响应计算效率高、模型也干净。5.4 迭代收敛后必须做的验证校核优化收敛得到的模型不能直接发图必须回到完整有限元模型做一次“终审校核”。原因有几点代理模型可能有误差网格变形后质量可能下降简化边界条件在优化过程中掩盖了真实响应。我的终审流程是用优化得到的最终参数重建CAD模型重新划分高质量网格施加载荷和边界条件做一个完整静力学、模态分析对比优化过程中的预测值。如果偏差在5%以内基本可以放心如果偏差超过10%说明代理模型或网格变形失真要回头修正模型。第一次做协同优化时我差点在这里翻车优化器预测最大应力是172MPa终审校核算出来185MPa超标了。原因就是网格变形阶段的局部单元质量退化导致应力计算值偏低。之后我在优化模型中加了一条网格质量监控约束一旦最差单元畸变度超限就自动中止迭代这才堵住这个漏洞。6. 仿真优化路上的踩坑清单与避坑手段做优化的时间越长越发现“算不出好结果”很多时候不是算法不行而是模型和策略有问题。这一节把我在尺寸优化与形状优化生涯里交过学费的坑集中列一遍。6.1 局部最优的诱惑多起点与扰动法尺寸优化最容易被局部最优坑。目标函数往往是非凸的算法从初始点出发一路“下山”很容易停在一个局部谷底。判断是否陷入局部最优的办法很简单换个初始点再算一次如果结果差异大基本就是有多个局部最优。我处理这个问题的标准动作有三个一是用全局算法做初步搜索二是用DOE采样覆盖设计空间三是做完一轮优化后对最优解附近的参数人工扰动10%重新计算看应力响应是否对扰动敏感。如果敏感度异常高说明最优解处在一个狭窄的“山谷”里这个解工程上不可靠需要重新优化或者用约束钝化处理。6.2 网格畸变引发的伪优化形状优化里最隐蔽的坑就是网格畸变。网格随形变形到一定程度后单元内角变小、扭曲度变大计算精度直线下降。这时候应力结果不是“结构真实应力”而是“网格质量问题产生的伪应力”。我的经验是每轮迭代后检查两样东西一是最大畸变单元的雅可比倒数二是目标区域应力云图是否出现异常的“锯齿状分布”。两者只要有一个异常就要停下来修网格不要继续迭代。优化器不会帮你识别这类错误只会忠实地把错的结果算到底。6.3 应力奇异点干扰目标函数的处理前面提到过应力奇异点这里再展开讲一个处理技巧。奇异点应力不收敛本质上是有限元方法在无穷应力理论解附近的数值表现。优化器如果以“节点最大应力”为目标函数就会被奇异点劫持。我更常用的做法是提取响应时排除奇异单元或者用“距奇异点特定距离处的路径平均应力”来替代峰值应力。比如在圆角根部我不要最表面那层单元的应力值而是取距表面0.5mm深度路径上的最大应力这个值更稳定、更接近真实材料行为。这个技巧在疲劳分析和优化里尤其管用。6.4 结果难加工优化需要考虑制造端的感受我吃过的最实在的一个亏是形状优化做了一个理论上很完美的曲线过渡结果工艺那边说做不了——因为那是一个非标曲面需要五轴机床加定制刀具才能加工成本增加了好几倍。之后我做形状优化都会在目标函数里“惩罚”过于复杂的边界形状。具体做法是给边界形状加“曲率限制”或者“控制点数量限制”让优化结果保持在常规工艺可接受的范围内。另外多和工艺团队沟通让他们的意见提前进入优化模型而不是优化完再来说“做不出来”那时候返工代价太大了。6.5 时间成本控制优化不是算得越多越好优化迭代很吃计算资源尤其是形状优化每次迭代都要重新更新几何网格。项目工期紧的时候优化算力分配必须精打细算。我会在优化前用一个粗网格快跑一轮摸清楚大致的参数走向再用细化网格做正式优化。另外响应面代理模型在这种场景很值钱——先建立高精度响应面在其上完成90%的寻优工作最后只用几次真实求解验证关键点。这比每一步都求解完整模型快一个量级。我做过一个48变量的大规模尺寸优化直接求解预计要跑两天用响应面代理后六个小时就出收敛结果最终误差在3%以内。做优化的这些年我最大的体会是尺寸优化和形状优化不是两个孤立的技术点而是一套“先整体后局部、先尺寸后形状、先代理后精算”的工程方法论。优化结果的价值不在于那张漂亮的收敛曲线而在于它能不能变成车间里能加工、装配上能用、服役中可靠的真实零件。最后分享一个小技巧每次优化迭代路径都值得保留下来。我习惯把每一轮的变量组合和响应结果记录成表格项目复盘时翻出来看能直观看到哪些参数是“敏感的”、哪些是“打酱油的”。下次再做类似结构的优化直接跳过那些不敏感变量起步速度能快上一截。