0%

PGADP数据驱动的优化控制

本文是对《Policy Gradient Adaptive Dynamic Programming for Data-Based Optimal Control》文章的整理归纳

期刊:《IEEE TRANSACTIONS ON CYBERNETICS》2019影响因子:11.079

这篇文章考虑了离散时间非线性系统的无模型的最优控制问题,提出了一个基于数据的策略梯度自适应动态规划算法(PGADP),使用离线和在线的数据而不是数学模型,使用梯度下降方法来改进策略,这篇文章还证明了PGADP算法的收敛性。

简介

最优控制问题一般需要求解一个复杂的Hamilton-Jacobi-Bellman equation,对于非线性系统,很难求出解析解,用ADP求解该方程在近年来取得了较大的成果。

主要分为三大类:

  • model based:用ADP来近似求解HJBE
  • partially model based:既用模型也用数据
  • model free:模型未知,完全从数据中学习控制策略

问题描述

考虑如下非线性系统:

\[x_{k+1}=f\left(x_{k}, u_{k}\right)\]

这篇文章考虑了model-free的最优控制方法,也就是说,除了知道该系统是Lipschitz连续的,该系统\(f\left(x, u\right)\)是完全未知的。

最优控制器设计的目标是:找到一个反馈控制率\(u_{k}=u\left(x_{k}\right)\),使得该系统构成的闭环系统在平稳点是渐进稳定的,同时,使得以下无穷时域的cost function最小化:

\[V_{u}\left(x_{0}\right) \triangleq \sum_{l=0}^{\infty} \mathcal{R}\left(x_{l}, u_{l}\right)\]

其中,\(\mathcal{R}(x, u) \triangleq S(x)+W(u)\),和是正定矩阵。

优化问题可以描述成:

\[\min _{u} V_{u}\left(x_{0}\right)\]

最优控制策略是:

\[u^{*}(x) \triangleq \arg \min _{u} V_{u}\left(x_{0}\right)\]

策略梯度自适应动态规划算法

最优控制问题需要求解以下HJBE方程:

\[V^{*}\left(x_{k}\right)=\min _{u}\left(\mathcal{R}\left(x_{k}, u\right)+V^{*}\left(x_{k+1}\right)\right)\]

很显然,由于系统模型未知,解析解求不出来的。

给定一个容许控制策略:\(u(x) \in \mathfrak{U}(\mathcal{X})\),定义它的状态价值函数,例如,可以采用上述定义的cost function作为它的状态价值函数:

\[V_{u}\left(x_{k}\right) \triangleq \sum_{l=k}^{\infty} \mathcal{R}\left(x_{l}, u\left(x_{l}\right)\right)\]

从上式经过一步展开可以得到如下递推表达式:

\[\begin{aligned} V_{u}\left(x_{k}\right) &=\mathcal{R}\left(x_{k}, u\left(x_{k}\right)\right)+V_{u}\left(x_{k+1}\right) \\ &=\mathcal{R}\left(x_{k}, u\left(x_{k}\right)\right)+V_{u}\left(f\left(x_{k}, u_{k}\right)\right) \end{aligned}\]

最优的状态价值函数可以表示成:

\[V^{*}(x) \triangleq V_{u^{*}}(x)=\min _{u} V_{u}(x)\]

再定义一个动作状态价值函数,或称为Q函数:

\[Q_{u}\left(x_{k}, \mu\right) \triangleq \mathcal{R}\left(x_{k}, \mu\right)+\sum_{l=k+1}^{\infty} \mathcal{R}\left(x_{l}, u\left(x_{l}\right)\right)\]

进一步可以写成:

\[\begin{aligned} Q_{u}\left(x_{k}, \mu\right) &=\mathcal{R}\left(x_{k}, \mu\right)+Q_{u}\left(x_{k+1}, u\right) \\ &=\mathcal{R}\left(x_{k}, \mu\right)+V_{u}\left(x_{k+1}\right) \end{aligned}\]

Q函数\(Q_{u}(x, \mu)\)表示:在状态\(s\)下,执行动作\(\mu\)后,计算出来的控制策略\(u^{*}(x)\),所对应的性能指标值。

\[Q^{*}\left(x_{k}, \mu\right)=\mathcal{R}\left(x_{k}, \mu\right)+V^{*}\left(x_{k+1}\right)\]

求得的最优控制策略是:

\[u^{*}(x)=\arg \min _{u} V_{u}(x)=\arg \min _{\mu} Q^{*}(x, \mu)\]

数据分为两部分:离线数据和在线数据

离线数据\(\mathcal{S}_{M}\)

\[\mathcal{S}_{M} \triangleq \left\{\left(x_{[l]}, \mu_{[l]}, x_{[l]}^{\prime}\right) \mid\left(x_{[l]}, \mu_{[l]}\right) \in \mathcal{D}, x_{[l]}^{\prime} \in \mathcal{X}, l=1,2, \ldots, M\right\}\]

离线数据可以通过任意的控制约束集中的控制动作进行采样获得。

在线数据\(S_{k}\)

\[S_{k} \triangleq\left(x_{k-1}, u_{k-1}, x_{k}\right), k=1,2, \ldots\]

算法流程

给定一个初始容许控制策略:\(u^{(0)}\)

使用离线数据\(\mathcal{S}_{M}\)计算\(Q\)函数:\(Q^{(0)}(x, \mu)\)

\(k=0\)时刻,将\(u_{0}=u^{(0)}\left(x_{0}\right)\)应用到被控系统中,并获得在线数据\(s_1\)

通过Policy Improvement来求解\(u^{(1)}\)

同样的,利用离线数据\(\mathcal{S}_{M}\)计算\(Q\)函数:\(Q^{(1)}(x, \mu)\)

重复下去,直至收敛。

基于PGADP的actor-critic结构

仿真

\[x_{k+1}=\left[\begin{array}{c} \left(x_{k, 1}+x_{k, 2}^{2}+u_{k}\right) \cos \left(x_{k, 2}\right) \\ 0.5\left(x_{k, 1}^{2}+x_{k, 2}+u_{k}\right) \sin \left(x_{k, 2}\right) \end{array}\right]\]

If you like my blog, please donate for me.