最优控制问题数值方法-Legendre伪谱法/勒让德伪谱法(2)

Legendre伪谱法/勒让德伪谱法

本文主要介绍Legendre伪谱法的实现原理,介绍方式会尽可能采用数值演示,以便让读者能有一个更直观的感受。

第一部分 最优控制问题

本文继续来介绍Legendre伪谱法,给定如下最优控制问题

状态方程如下

约束条件如下

其中, [公式]  [公式] 分别为初始和终端约束条件。

路径约束

时间变换

在伪谱法中状态量是由其在LGL点处的值来近似的,而上面的原始定义中时间区间位于 [公式] 不符合后续伪谱法的使用,因此首先采用时间变换

逆变换为

因此我们将时间由 [公式] ,尽管如此,为了方便起见,我们仍然采用上述记号来描述最优控制问题,得到如下

第二部分 Legendre伪谱法

我们首先选择LGL离散点 [公式] ,其中 [公式]  [公式] 选择为 [公式] 阶Legendre多项式导数的根, [公式] 

则状态量可以近似如下

在离散点处的导数计算如下

则式(8)变为配点方程(约束)如下

则式(7)变为

式(9)变为

式(10)在LGL点满足如下

综上,我们通过伪谱法将最优控制问题转换为了代数约束问题

其中,待优化变量包括

第三部分 问题求解

下面例子实现的代码以及第一篇文章的代码可以在下面的地址找到

例子1

例子来源于

最优控制问题:

系统动力学为:

初始终端条件:

采用Legendre伪谱法来进行求解,由于我们已经知道该最优控制问题存在解析解

由于状态量仅为3阶多项式,因此采用伪谱法求解时选择 [公式] 即可,因此得到优化变量的个数为

计算结果如下

由上述计算结果可以看出,相比于之前实现过的直接打靶法来说,优化速度很快,且收敛精度很高。

状态曲线
控制曲线

除此以外,在文献[2]中给出了NLP问题拉格朗日乘子与最优控制问题中协态的映射关系,称为协态映射定理,具体的公式如下

因此,在采用伪谱法求解得到结果以后,还可以通过上述关系得到相应的协态值。实际上,伪谱法得到广泛应用的重要原因就是存在协态映射定理,这使得我们可以对必要条件进行验证,同时也可以给间接法提供初值。

协态计算的结果如下

协态变化曲线

与我们采用变分法必要条件求解得到的协态值是一致的。

例子2

例子来源于

最优控制问题:

边界条件满足:

采用Legendre伪谱法来进行求解,这次我们选择 [公式] 来进行求解,结果如下

得到的状态量曲线如下

状态曲线
控制曲线

参考文献

[1] Elnagar G, Kazemi M A . The pseudospectral Legendre method for discretizing optimal control problems[J]. IEEE Transactions on Automatic Control, 1995, 40(10):P.1793-1796.

[2] Fahrooa F , Ross I . Costate Estimation by a Legendre Pseudospectral Method[C]// Guidance, Navigation, & Control Conference & Exhibit. 2001.

[3] Benson D . A Gauss pseudospectral transcription for optimal control[J]. massachusetts institute of technology, 2005.

[4] Huntington G T . Advancement and Analysis of a Gauss Pseudospectral Transcription for Optimal Control. 2008.

[5] Garg D . Advances in global pseudospectral methods for optimal control. 2011.

[6] Hall A O . A MATLAB GUI for a Legendre Pseudospectral Algorithm for Optimal Control Problems[J]. Thesis Collection, 1999.

[7] Daniel R. Herber (2021). Basic Implementation of Multiple-Interval Pseudospectral Methods to Solve Optimal Control Problems (github.com/danielrherbe), GitHub. Retrieved September 25, 2021.

[8] Rao A V , Benson D A , Darby C L , et al. Algorithm 902: GPOPS, A MATLAB software for solving multiple-phase optimal control problems using the gauss pseudospectral method[J]. Acm Transactions on Mathematical Software, 2010, 37(2):22.