【发布时间】:2021-02-12 18:39:46
【问题描述】:
我经常遇到如下所示的初始化问题,上面写着some kind of non-linear solver will attempt to handle this problem。据我所知,Dymola 在得到原始 DAE 系统的 BLT 形式后使用牛顿法求解方程,那么这个非线性求解器究竟是什么?
【问题讨论】:
我经常遇到如下所示的初始化问题,上面写着some kind of non-linear solver will attempt to handle this problem。据我所知,Dymola 在得到原始 DAE 系统的 BLT 形式后使用牛顿法求解方程,那么这个非线性求解器究竟是什么?
【问题讨论】:
一般来说,Modelica 仿真环境需要做的不仅仅是依赖基于导数优化算法的已知求解器。它可以基于具有自适应能力的已知求解器,以在求解器(线搜索或信任区域方法)之间切换并尝试不同的求解器参数。此外,在初始化问题的高级实例中,需要全局优化策略来避免质量差或发散的局部最优。
推理:存在严重的障碍,可能会阻碍识别初始化问题的半最优但不一定是最优解:
需要良好的初始猜测才能收敛到正确的最优值,残差成本函数在数值上接近于零
为底层优化成本函数计算的 Jacobian(或 Hessian)通常是奇异的。这里比较使用伪反演(普通求解器不一定提供)
由于潜在问题的潜在大规模性质,不同变量和初始条件的值将位于较大的数值范围内。这将导致已知标准求解器的数值不稳定。在这里,遵循缩放技术(通过对数缩放技术将考虑中的所有优化变量转换为值 1 或更小的值范围)。此类技术通常不是普通求解器提供的,需要在外部应用到成本函数的制定中。
建模者提供的初始条件可能不完整且不一致,仿真环境需要实施严格的启发式算法来猜测求解器的良好起始值。
参考资料:
【讨论】: