敏感度分析
敏感度的理论基础
敏感度分析是什么
老师,敏感度分析是什么意思?
定量化设计变量的微小变化对目的函数的影响程度。优化的"方向"决定所需的信息。
敏感度的计算方法
| 方法 | 计算成本 | 精度 |
|---|---|---|
| 有限差分法 | 设计变量数×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敏感度。
敏感度的数值计算方法
敏感度分析的FEM
总结
自动微分(AD)大幅降低了敏感度分析的实现成本
复杂CAE代码的敏感度(梯度)手工推导成本巨大,因此从1990年代开始,"自动微分(Automatic Differentiation, AD)"得以实用化。AD通过解析源代码的运算图,自动应用数值连锁律。前向模式适用于单个设计变量的敏感度计算,反向模式(Backpropagation)适用于一个目的函数对所有变量的敏感度计算。TensorFlow和PyTorch的自动微分引擎与神经网络学习使用相同技术,OPENMDAO(NASA)等CAE优化框架也广泛应用这些技术。
敏感度的实务应用
敏感度分析的实务
作为优化的前置步骤,确认敏感度。确定哪个设计变量对目的函数影响最大。
实务检查清单
用Sobol指标定量确定哪个设计变量重要
敏感度分析的实务中,"确定哪个设计变量对目的函数影响最大"是关键,基于方差的全局敏感度指标"Sobol指标(Sobol' indices)"已成为标准工具。俄罗斯科学院的Ilya Sobol'在1993年提出的这一方法,将各设计变量的贡献率分解为一阶和二阶(交互作用)。丰田在发动机燃油效率优化中实施了10个变量(压缩比、点火正时、喷射量等)的Sobol分析,确认总变异的65%源于压缩比一个变量,从而开展了高效优化。
敏感度的软件比较
工具
OpenMDAO是NASA在2010年代开源发布的
OpenMDAO(Open Multidisciplinary Design, Analysis, and Optimization)是NASA埃姆斯研究中心在2010年代开发并以开源形式发布的MDO(多学科设计、分析与优化)框架。它提供伴随法、自动微分、复数步差分等方法,通过统一的API实现。MIT、Stanford、TUDelft等主要航空航天工程系普遍采用该工具作为设计优化教学工具。波音在2017年AIAA SciTech Forum发表会中披露,737 MAX机翼形状优化中使用了OpenMDAO。
敏感度的前沿研究
敏感度分析的前沿
复数步差分法的精度比有限差分法高1000倍
敏感度计算的数值方法中,有限差分法虽然通用,但随着步长h缩小,舍入误差增大,存在"步长困境"。复数步差分法(Complex Step method)由Joaquim Martins在2003年应用于航空航天设计敏感度计算,随后得以普及。该方法在虚部方向加入微小量ih来计算敏感度,即使在h→0的极限情况下也能消除舍入误差。目前已在SU2(斯坦福大学开发的航空CFD优化工具)中实现标准化,能得到有限差分法无法实现的机器精度敏感度。
敏感度的故障排除
敏感度分析的故障排除
敏感度符号错误导致最速下降法变成最速上升
梯度优化中出现"目的函数不是最小化反而最大化的方向移动"现象,主要原因是敏感度(梯度)符号反向。特别是FEA代码与有限差分接连时,位移和荷载的符号规则不匹配会导致敏感度实际上是反号。诊断方法是通过"梯度验证测试"用少数几个设计变量的敏感度与手算(扰动分析)进行对比,OpenMDAO在开发初期阶段将梯度检查作为标准工作流程要求。
价值
详细
错误