Dymos特定状态变量设为0时导数异常问题咨询
问题成因分析
这个问题的核心是初始状态点处动力学方程对设计变量的雅可比导数为零,导致设计变量无法通过动力学系统影响约束或目标,触发OpenMDAO的灵敏度警告。具体拆解如下:
动力学项的结构特性:从你提到的论文公式(1-4)来看,涉及刚度
k1/k2、阻尼c1/c2的力矩项应该是形如k*θ + c*θ_dot的扭转振动模型典型结构。当θ=0且θ_dot=0时,该力矩项取值为0,同时对k和c的偏导数也为0(因为偏导数分别对应θ和θ_dot,此时两者都为0)。灵敏度传递的断裂:Dymos计算设计变量对约束/目标的总灵敏度时,需要通过动力学方程的雅可比将设计变量的变化传递到状态变量的轨迹中。初始点处雅可比导数为0,意味着设计变量的微小变化不会引起初始状态的变化,后续积分过程中也无法产生可观测的轨迹差异,最终导致约束/目标对设计变量的总灵敏度为0。
非零初始值的正常逻辑:当
θ或θ_dot初始值非零时,动力学项对k/c的偏导数不为0,设计变量的变化可以通过初始状态传递到整个轨迹,进而影响约束和目标,因此灵敏度计算正常。
需要注意:即使模型运行无异常,这种初始点的雅可比奇异性也会导致优化器无法通过设计变量调整轨迹,可能引发优化停滞或结果不符合预期。
内容的提问来源于stack exchange,提问作者HMCheong
相关产品推荐
相关产品推荐

