很遗憾,我正在使用GPOPS-II(商业优化软件)来解决飞机的航迹优化问题。 GPOPS-II将问题转换为NLP问题,随后NIPO解决方案IPOPT解决了该问题。
[尝试解决我的问题时,我限制了飞机的高度。我为海拔设定了5500 m的上限。现在,我可以通过两种方式做到这一点。首先,我可以在状态变量5500 m的高度上设置直接上限。为此,IPOPT大约需要进行1000次迭代和438秒,才能找到最佳解决方案。其次,我可以对5500 m的状态变量高度施加路径限制。同时,我将状态可变高度的直接界限放宽到5750 m。现在,这些问题的表达在逻辑上是等效的,但似乎在数学上却不一样:这次IPOPT仅花费150次迭代和240秒即可收敛到最佳解决方案。 我已经发现a discussion,其中有人指出,由于内点方法的性质,放宽NLP程序的边界可促进更快的收敛。在我看来,这是合乎逻辑的:内部点求解器将问题转换为障碍问题,其中约束基本上在约束违反边界处转换为成倍增加的成本。结果,内部点求解器将(最初)避免问题的边界(由于约束违约边界处惩罚函数的增加)并以较慢的速率收敛。
我的问题如下:
P.s。最优解位于5500 m高度的约束边界附近。在最佳解决方案中,飞机应在最后时刻达到h = 5500 m,因此,它会在t_f之前的某个时间飞行到该高度附近。
很遗憾,我正在使用GPOPS-II(商业优化软件)来解决飞机的航迹优化问题。 GPOPS-II将问题转换为NLP问题,随后出现...