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

Legendre伪谱法/勒让德伪谱法

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

  • 本文中提到的一些名词可能不太严谨,仅供参考。

第一部分 状态量近似

拉格朗日插值

在Legendre伪谱法中,状态量 [公式] 拉格朗日插值多项式来近似。若已知状态量在 [公式] 个点 [公式] 处的值 [公式] ,则状态量可以采用下式来近似

其中, [公式] 为状态量 [公式]  [公式] 近似多项式 [公式] 拉格朗日多项式,定义如下

拉格朗日多项式满足性质

插值点的选择

下面介绍上一小节提到的 [公式] 个点该如何选择?一个很容易想到的选择便是等间距分布,比如说对于区间 [公式] ,若 [公式] ,则我们得到离散点依次如下

假设已知状态量函数关系为 [公式] ,我们采用上述等间距分布离散点及拉格朗日插值来对该函数进行近似,离散点个数依次选择为 [公式] ,结果如下

由上图可以看出,随着离散点数目的增多,区间中点处的近似精度越来越高,但是端点处却变化越来越剧烈,近似误差急剧增大,这种现象被称为“Runge phenomenon”。因此,离散点等间距分布并不是一个很好的选择。

LGL插值点

由近似理论相关知识可知,选择离散点为Legendre多项式的根,可以消除龙格现象,并且使得近似精度可以随着离散点数目的增加而增加。

下面首先简短介绍一下Legendre多项式,Legendre多项式是一组 [公式] 区间上的完备正交多项式,它的前几项形式如下

https://en.wikipedia.org/wiki/Legendre_polynomials#Orthogonality_and_completeness

根据参考文献[1],LGL插值点按照如下的规则选取,根据给定的 [公式] ,选 [公式] ,然后其它的 [公式] 个离散点选择为 [公式] 阶Legendre多项式导数的根。

下面依次选择 [公式] (Matlab语法),给出相应的LGL插值点的分布图如下

(这些配点的计算不需要自己实现,已经有相应的代码)

由上图可以看出,LGL离散点的分布特点是,将尽可能多的点分布在两端,在中间处分布较少的点,通过这种分布形式,从而消除龙格现象。

仍然假设已知状态量函数关系为 [公式] ,这次我们采用LGL插值点来对该函数进行插值,为了便于与等间距分布情形对比,仍选择 [公式] ,结果如下

左边:等间距分布;右边:LGL离散点

由上图可以观察到采用LGL插值点以后,得到的近似函数两端没有出现较大波动,因此说明消除了龙格现象。

由上图可以看出,随着配点数目的增多,一方面,并没有出现龙格现象,另一方面,近似的精度也越来越高。因此,离散点应该选择为LGL点。

第二部分 状态量导数的近似

伪谱微分矩阵

在前面我们已经定义了

为了求得状态量在离散点 [公式] 处的导数,我们直接对上式进行微分,得到

则状态量在 [公式] 处的导数计算如下

每个拉格朗日多项式在LGL点处的导数可以定义为

则式(6)变为

因此,一旦我们得到了伪谱微分矩阵,便可以计算状态量在相应LGL点处的导数值。

在文献[1]中给出了如下的计算公式:

下面是取 [公式] 时的伪谱微分矩阵数值

N=5

第三部分 状态方程的满足(配点法)

假设最优控制问题的动力学方程由如下的式子描述

为了简单,上式中没有写明对时间的依赖关系,由前面式(8),我们可以计算状态量在LGL离散点处的导数值如下

此外,我们也可以计算右端函数在LGL离散点处的值如下

我们让式(10)等于式(11)便得到了配点方程

注意,以上解释过程中为了简单都直接假定原问题恰好定义在区间 [公式] 上,以便我们不需要进行时间转换便可以直接应用Legendre伪谱法。

前面所做的工作都是为了将微分方程转化为代数方程,下面来解决最优控制中优化指标中积分项的转换。

第四部分 数值积分

大部分函数的积分没有解析表达式,因此我们一般需要采用数值方法来计算这些函数的积分。数值积分的表达形式如下

因此,数值积分的关键就是如何选择 [公式]  [公式] 来使得积分精度更高。在Legendre伪谱法中, [公式] 即伪LGL离散点,而相应的 [公式] 可以通过相应的公式进行计算。在文献[1]中给出了相应的公式

选择 [公式] ,计算得到的权值

参考文献

[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.