感度解析
理论与物理
什么是灵敏度分析
老师,什么是灵敏度分析?
量化设计变量的微小变化对目标函数的影响程度。用于决定优化“方向”的信息。
灵敏度的计算方法
| 方法 | 计算成本 | 精度 |
|---|---|---|
| 有限差分法 | 设计变量数量 × FEM次数 | 近似(取决于步长) |
| 解析灵敏度(直接法) | 1次FEM + 额外计算 | 精确 |
| 伴随法(Adjoint) | 1次FEM + 1次伴随分析 | 精确。设计变量多时效率最高 |
伴随法是最有效率的吗?
对于像拓扑优化这样设计变量有数万个的情况,伴随法可以通过一次额外计算获得所有变量的灵敏度。而有限差分法则需要数万次FEM计算。
总结
灵敏度分析的伴随法(Adjoint法)源于Fox & Kapoor(1968)
结构优化灵敏度计算中使用的“伴随法(Adjoint method)”最初由Fox & Kapoor(1968年,AIAA)作为振动问题特征值灵敏度提出并公式化。伴随法的革命性在于,无论设计变量数量N_d如何,灵敏度计算成本都是恒定的(O(1)),即使对于数千个设计变量的问题也能高效地求得灵敏度。这一特性支撑了现代拓扑优化(SIMP法)的实用化,在OptiStruct和ABAQUS Topology内部都使用了Adjoint灵敏度。
各项的物理意义
- 惯性项(质量项):$\rho \ddot{u}$,即“质量×加速度”。您是否有过急刹车时身体被向前甩出的经历?那种“被带走的感觉”正是惯性力。物体越重越难启动,一旦启动也越难停止。建筑物在地震中摇晃,也是因为地面突然移动,而建筑物的质量“被落下”。静力分析中此项设为零,这是基于“缓慢施力,加速度可忽略”的假设。对于冲击载荷或振动问题,此项绝对不能省略。
- 刚度项(弹性恢复力):$Ku$ 或 $\nabla \cdot \sigma$。拉弹簧时能感觉到“想要恢复原状的力”吧?那就是胡克定律 $F=kx$,也是刚度项的本质。那么提问——用相同的力拉铁棒和橡皮筋,哪个伸得更长?当然是橡皮筋。这种“不易伸长”的性质就是杨氏模量 $E$,它决定了刚度。常见的误解是:“刚度高=强度高”。不对。刚度是“不易变形的程度”,强度是“不易破坏的程度”,这是两个不同的概念。
- 外力项(载荷项):体积力 $f_b$(如重力)和表面力 $f_s$(如压力、接触力)。可以这样理解——桥上卡车的重量是“作用在整个内部上的力”(体积力),轮胎压路面的力是“只作用在表面上的力”(表面力)。风压、水压、螺栓紧固力…这些都是外力。这里容易犯的错误:弄错载荷方向。本想施加“拉伸”却变成了“压缩”——听起来像笑话,但在3D空间中坐标系发生旋转时,确实会发生。
- 阻尼项:瑞利阻尼 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。试着弹一下吉他的弦。声音会一直持续吗?不,会逐渐变小。这是因为振动能量通过空气阻力和弦的内部摩擦转化成了热能。汽车的减震器也是同样原理——故意吸收振动能量来改善乘坐舒适性。如果阻尼为零会怎样?建筑物在地震后会一直摇晃不停。现实中不会这样,所以设定适当的阻尼很重要。
假设条件与适用范围
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 位移 $u$ | m(米) | 输入mm时,载荷·弹性模量也需统一为MPa/N系 |
| 应力 $\sigma$ | Pa(帕斯卡)= N/m² | MPa = 10⁶ Pa。与屈服应力比较时注意单位制不一致 |
| 应变 $\varepsilon$ | 无量纲(m/m) | 注意工程应变与对数应变的区别(大变形时) |
| 弹性模量 $E$ | Pa | 钢:约210 GPa,铝:约70 GPa。注意温度依赖性 |
| 密度 $\rho$ | kg/m³ | mm系中为tonne/mm³(钢 = 10⁻⁹ tonne/mm³) |
| 力 $F$ | N(牛顿) | mm系用N,m系也用N统一 |
数值解法与实现
灵敏度分析的FEM
总结
自动微分(AD)大幅降低了灵敏度分析的实现成本
由于手动推导复杂CAE代码的灵敏度(梯度)需要巨大成本,“自动微分(Automatic Differentiation, AD)”从1990年代开始实用化。AD通过分析源代码的运算图,自动进行数值上的链式法则应用,前向模式适用于每个设计变量的灵敏度计算,后向模式(反向传播)适用于每个目标函数的所有变量灵敏度计算。TensorFlow或PyTorch的自动微分引擎与神经网络学习技术相同,在OPENMDAO(NASA)等CAE优化框架中也得到应用。
线性单元(1阶单元)
节点间线性插值。计算成本低,但应力精度低。注意剪切锁定(可通过减缩积分或B-bar法缓解)。
2阶单元(带中间节点)
可以表现曲线变形。应力精度大幅提高,但自由度约增加2~3倍。建议:应力评估很重要时使用。
完全积分 vs 减缩积分
完全积分:有过约束(锁定)风险。减缩积分:有沙漏模式(零能模式)风险。根据情况选择。
自适应网格
基于误差指标(如ZZ估计量)的自动细化。高效提高应力集中部位的精度。有h法(单元细分)和p法(阶次增加)。
牛顿-拉弗森法
非线性分析的标准方法。每次迭代更新切线刚度矩阵。在收敛半径内具有二阶收敛性,但计算成本高。
修正牛顿-拉弗森法
切线刚度矩阵使用初始值或每隔几次迭代更新。每次迭代成本低,但收敛速度是线性的。
收敛判定标准
力残差范数: $||R|| / ||F_{ext}|| < \epsilon$(通常 $\epsilon = 10^{-3}$〜$10^{-6}$)。位移增量范数: $||\Delta u|| / ||u|| < \epsilon$。能量范数: $\Delta u \cdot R < \epsilon$
载荷增量法
不一次性施加全部载荷,而是分小步增加。弧长法(Riks法)可以超越载荷-位移关系的极值点进行追踪。
直接法 vs 迭代法的比喻
直接法是“用笔算精确解联立方程”的方法——可靠但大规模问题耗时过长。迭代法是“反复猜测逼近正确答案”的方法——最初是粗略答案,但每次迭代精度都会提高。就像查字典时,从第一页开始按顺序找(直接法)不如先估计位置翻开,再前后调整(迭代法)更高效,原理相同。
网格阶次与精度的关系
1阶单元是“用直尺近似曲线”——用直线折线表现,精度有限。2阶单元是“柔性曲线”——可以表现曲线变化,即使网格密度相同,精度也显著提高。但是,每个单元的计算成本增加,需要根据总体的成本效益来判断。
实践指南
灵敏度分析的实务
作为优化的前期步骤确认灵敏度。识别哪些设计变量对目标函数影响最大。
实务检查清单
使用Sobol指标量化哪些设计变量重要
灵敏度分析实务中,识别“哪些设计变量对目标函数影响最大”很重要,基于方差的全局灵敏度指标“Sobol指标(Sobol' indices)”已成为标准工具。该方法是Ilya Sobol'(俄罗斯科学院)于1993年提出的,它将各设计变量的贡献率分解为一次、二次(交互作用)等。丰田在发动机燃油效率优化中,对压缩比、点火正时、喷油量等10个变量进行了Sobol分析,确认总变动的65%源于压缩比这一个变量,从而进行了高效的优化。
分析流程的比喻
分析流程其实和烹饪非常相似。首先采购食材(准备CAD模型),进行预处理(网格生成),开火烹饪(求解器执行),最后装盘(后处理可视化)。这里有个重要的问题——烹饪中最容易失败的工序是哪里?其实是“预处理”。如果网格质量差,无论使用多么优秀的求解器,结果都会一团糟。
初学者容易陷入的陷阱
您确认过网格收敛性吗?是否认为“计算能运行=结果正确”?这其实是CAE初学者最容易掉入的陷阱。求解器一定会根据给定的网格返回“一个像样的答案”。但如果网格太粗,这个答案就会与现实相差甚远。至少用3个级别的网格密度确认结果是否稳定——如果忽略这一点,就会陷入“因为是计算机给出的答案,所以肯定正确”的危险误区。
边界条件的思考方式
边界条件的设置,与考试的“出题”是一样的。如果题目出错了呢?无论计算多么精确,答案都是错的。“这个面真的是完全固定的吗?”“这个载荷真的是均匀分布的吗?”——正确建模现实的约束条件,其实是整个分析中最重要的步骤。
软件比较
工具
OpenMDAO由NASA于2010年代开源发布
OpenMDAO(Open Multidisciplinary Design, Analysis, and Optimization)是NASA艾姆斯研究中心在2010年代开发并开源发布的MDO(多学科设计优化)框架。它通过统一的API提供伴随法、自动微分、复数步长差分等功能,被MIT、Stanford、TUDelft等主要航空航天工程系广泛采用作为设计优化教育工具。波音公司在2017年AIAA SciTech论坛上披露,其在737 MAX的机翼形状优化中使用了OpenMDAO。
选定时最重要的3个问题
- “要解决什么问题”:所需的物理模型·单元类型是否支持灵敏度分析。例如,流体中是否支持LES,结构中接触·大变形的支持能力会成为差异点。
- “谁来使用”:如果是初学者团队,适合GUI完善的工具;如果是经验者,则适合脚本驱动的灵活工具。汽车行业的A
なった
詳しく
報告