如何解释缩放报告以改进我的模型?

How do interpret the scaling report to improve my model?

很不错的功能。我试图弄清楚如何解释报告,看看我的模型中是否存在任何明显的问题,包括 Dymos 的轨迹。我的模型通常收敛得很好,尽管有时我必须将 NLP 缩放比例更改为基于梯度。我不知道它到底做了什么,但如果默认设置不起作用,通常它会使 IPOPT 收敛,反之亦然。

根据工具,这是 Jacobian 的样子

我猜想期望的是雅可比行列式中偏音的数量级跨越尽可能少的数量级。下面两个对角带的幅度从 0.1 到 10E5,似乎与相位连接有关。例如,我们有 'traj.linkages.phase_1:h_final|phase_2:h_initial wrt traj.phases.phase_1.indep_states.states:h',震级为 10E5。我应该为此做点什么吗?

在设计变量中,一切似乎都按比例缩放,驱动值的数量级为 1。 在约束报告中,OOM 跨度从 10E-5 到 10E2 更宽。我没有设置 defect_refs。也许我需要在这里做点什么?

我倾向于使用table,从驱动和模型的角度展示规范。

在这种情况下,驱动程序值都按 1 左右的顺序缩放。如果它们很大,那么 scalers/refs 可能需要调整。 (缩放到 1 左右的数量级并不能保证是一个好的策略,但它通常是一个很好的位置。

您可能希望在限制驱动程序迭代后执行此操作。对于 dymos 中的收敛情况,缺陷约束的值将接近于零,这可能无法让您很好地了解它们的初始值。

对于 defect_refs,例如,如果我注意到约束的值类似于 5.5E4,那么我可能会将该缺陷引用设置为 1.0E-4。同样,单位缩放并不总是正确的,但它经常起作用。