首页 > 其他分享 >Learning Model Predictive Control for Iterative Tasks. A Data-Driven Control Framework

Learning Model Predictive Control for Iterative Tasks. A Data-Driven Control Framework

时间:2024-05-28 22:32:48浏览次数:12  
标签:Control Predictive begin Tasks end infty equation align ldots

Learning Model Predictive Control for Iterative Tasks. A Data-Driven Control Framework

一句话 MPC:
在每个采用点处,根据被控对象的状态和预测模型,预测系统在未来一段时间内的状态,依据某一性能指标(成本函数)来求解最优的一组控制序列,并将这组控制序列的第一个控制作用作为输出给执行机构,在下一个采样点继续执行优化算法。

一句话 (学习终端成本函数的)LMPC:
在已知系统动态模型的前提下,通过学习既往成功的轨迹,设计一条有限区间的控制序列,使得控制序列保证可行性的同时,控制成本不会随着迭代次数的增加而增加

Tips:

  • nominal dynamic 理想模型

一、问题提出

Dynamic function 系统描述

我们有一个定常离散系统,初始状态为 $x_S$,平衡点为 $x_F$,其中 $f$ 连续:

$$
\begin{equation} x_{t+1}=f(x_t,u_t) \end{equation}
$$

$$
\begin{equation} x_t \in \mathcal {X},\ u_t\in \mathcal {U}\quad \ \forall t \geq 0. \end{equation}
$$

$$
\begin{equation} x_0^j = x_S\quad \ \forall j \geq 0. \end{equation}
$$

$$
\begin{equation} f(x_F,0)=x_F. \end{equation}
$$

我们提出一个这样的无限域的控制优化问题(在控制成本更低的前提下,使得控制效果更好):

$$
\begin{align} J_{0\rightarrow \infty }^*(x_S)&=\min _{u_0,u_1,\ldots } \sum \limits {k=0}^{\infty } h(x_k,u_k)\ \text{s.t. }, &x=f(x_k,u_k)\quad \ \forall k\geq 0\ &x_0=x_S\ &x_k \in \mathcal {X},\ u_k \in \mathcal {U}\quad \ \forall k\geq 0 \end{align}
$$

其中,h 正定

$$
\begin{align} h(x_F,0) = 0\ \text {and}\ h(x_tj,u_tj) \succ 0 \ \forall \ x_t^j \in & {\mathbb {R}}^n \setminus \lbrace x_F\rbrace,\nonumber u_t^j \in {\mathbb {R}}^m\setminus \lbrace 0\rbrace \end{align}
$$

我们将此问题的最优解定义为为如下形式:

$$
\begin{align} {{\mathbf x}}^{} \ &= \ [{{x}}{*}_0, {{x}}{}_1,\ \ldots,\ {{x}}^{}_t,\ \ldots ]\nonumber\ {{\mathbf u}}^{} \ &= \ [{{u}}{*}_0, {{u}}{}_1,\ \ldots,\ {{u}}^{}_t,\ \ldots ]. \end{align}
$$

但是,无限域的优化问题计算量太大,甚至算不出最优解,所以我们将通过一个有限域的最优化问题求解。但预测区间的缩短会带来诸多不良影响,所以,我们通过数据驱动的方式保证控制效果。
我们学习的数据为系统每一次迭代的控制输入序列及其对应的系统状态。我们将系统第 $j$ 次迭代的控制输入及状态轨迹定义如下,下标 $t$ 表示第 $j$ 次迭代的 $t$ 时刻

$$
\begin{align} {{\mathbf u}}^j &= [u_0j, u_1j,\ \ldots,\ u_t^j,\ \ldots ]\
{{\mathbf x}}^j &= [x_0j, x_1j,\ \ldots,\ x_t^j,\ \ldots ] \end{align}
$$

二、LMPC 构建

Sampled Safe Set 采样安全集的构建

我们将收敛到平衡点 $x_F$ 的状态轨迹 ${\mathbf x}^j$ 中的状态点收集起来,组成一个采样安全集 $\mathcal {SS}$,其数学定义如下:

$$
\begin{equation} \mathcal {SS}^j = \text {}\left\lbrace \bigcup _{i \in M^j} \bigcup _{t=0}^{\infty } x_t^i \right\rbrace \end{equation}
$$

$$
\begin{equation} M^j = \text {} \Big \lbrace k \in [0,j]: \lim _{t \rightarrow \infty } x_t^k = x_F \Big \rbrace. \end{equation}
$$

Iteration cost 迭代成本的构建

我们为 $\mathcal {SS}$ 集中每一个状态 $x_t^j$ 给定一个 cost-to-go 成本,定义为从当前状态 $x_t^j$ 出发,通过相应的控制输入序列 u,需要多少控制成本,使得最终的状态收敛至 $x_F$ ,公式表示如下

$$
\begin{equation} J_{t\rightarrow \infty }j(x_tj) = \ \sum \limits _{k=t}^{\infty } h(x_kj,u_kj) \end{equation}
$$

接着,我们定义终端成本函数 $Q^j(x)$ 为:从历史数据中得知,最少需要多少成本能使得状态 $x$ 收敛至 $x_F$,公式如下

$$
\begin{equation} Q^j(x) = \left\lbrace \begin{array}{ll}\min \limits { (i,t) \in F^j(x)} J^i(x), & \text{if } x \in \mathcal {SS}^j \ +\infty, & \text{if } x \notin \mathcal {SS}^j \end{array}\right. \end{equation}
$$

LMPC 公式的构建

$$
\begin{align} &J_{t\rightarrow t+N}{{\text{LMPC}},j}(x_tj)=\min\limits_{u_{t|t},\ldots,u_{t+N-1|t}} \bigg [ \sum {k=t}^{t+N-1} h(x,u_{k|t}) \nonumber + Q^{j-1}(x_{t+N|t}) \bigg]\ &\text{s.t. }\nonumber \ & x_{k+1|t}=f(x_{k|t},u_{k|t})\quad \ \forall k \in [t, \ldots, t+N-1]\ & x_{k|t} \in \mathcal {X}, \ u_{k|t} \in \mathcal {U}\quad \ \forall k \in [t, \ldots, t+N-1]\ &x_{t+N|t} \in \ \mathcal {SS}^{j-1}\ &x_{t|t}=x_t^j \end{align}
$$

我们在每一次预测时,将终端状态 $x_{t+N}^j$ 都限制在 $\mathcal {SS}$ 集中,因此终端成本 $Q^j(x_{t+N})$ 为历史数据中从终端状态 $x_{t+N}^j$ 收敛至 $x_{F}$ 所需的最低成本.
本 LMPC 算法正是通过这两个部件来保证迭代可行性、渐进稳定性、迭代成本的非增性,以及当系统收敛至一固定轨迹时,保证该轨迹的最优性,接下来证明这四个性质。

三、证明

迭代可行性

我们使用数学归纳法来证明 LMPC 算法在任何时候都是有解的
假设 1:$SS^0$ 非空。可以通过 Standard MPC 或者其他算法获取一条可行轨迹 ${{\mathbf x}}^{0}$ ,初始化 $\mathcal {SS}$ 集

  1. t = 0 时有解:
    因为 $SS^0$ 非空,所以对任意一次迭代 $j, t=0$ 时都至少有一个解:即初始化轨迹 $\mathbf u^0, \ \mathbf x^0$

  2. 假设 $t$ 时刻有解,其解为:

    $$
    \begin{equation} [u_{t|t}{*,j}, u_{t+1|t}{,j},\ u_{t+2|t}{*,j}, \ldots, u_{t+N-1|t}{,j},\ u_{t*}{i*}, u_{t+1}{i},\ \ldots] \end{equation}
    $$

    $$
    \begin{equation} [x_{t|t}{*,j}, x_{t+1|t}{,j},\ x_{t+2|t}{*,j}, \ldots, x_{t+N-1|t}{,j},\ x_{t+N|t}{*,j}=x_{t}{i},\ x_{t*+1},\ \ldots] \end{equation}
    $$

    其中,解的后半段 $[u_{t*}{i*}, u_{t+1}{i},\ \ldots]$ $[x_{t+N|t}{*,j}=x_{t}{i},\ x_{t*+1},\ \ldots]$ 为历史数据($\mathcal {SS^{j-1}}$)中使得终端成本最小的控制序列

    $$
    \begin{equation} Q{j-1}(x_{t+N|t}{,j}) = J{i}{t^*\rightarrow \infty }(x^{,j}) = \sum \limits _{k=t*} h(x_k{i},u_k{i*}). \end{equation}
    $$

  3. 证明时刻 $t+1$ 时有解:
    因为,我们考虑的是定常系统,可得 $x_{t+1}^{j} = x_{t+1|t}^{*,j}$,所以 $t+1$ 时刻,该问题最少有一个可行解

    $$
    \begin{equation} [u_{t+1|t}{*,j}, u_{t+2|t}{,j},\ \ldots,\ u_{t+N-1|t}{*,j}, u_{t}{i},\ u_{t+1*}{i^},\ \ldots] \end{equation}
    $$

    $$
    \begin{equation} [x_{t+1|t}{*,j}, x_{t+2|t}{,j},\ \ldots,\ x_{t+N-1|t}{*,j}, x_{t+N|t}{,j}=x_{t*}{i*}, x_{t+1}{i},\ \ldots] \end{equation}
    $$

渐近稳定性

证明:LMPC 算法会渐近收敛到平衡点 $x_F$

我们将 $J_{0\rightarrow N}{{\text{LMPC}},j}(x_tj)$ 定义为李雅普诺夫函数,其正定且仅在平衡点 $x_F$ 为 0,因此只需证明其函数值沿着闭环轨迹递减即可。

$$
\begin{align} J_{0\rightarrow N}{{\text{LMPC}},j}(x_tj)&=\min {u,\ldots,u_{t+N-1|t}} \bigg [ \sum {k=0}^{N-1} h(x,u_{k|t}) \nonumber + Q^{j-1}(x_{N|t}) \bigg ] \nonumber \ &= h(x_{t|t}{*,j},u_{t|t}{,j}) + \sum _{k=1}^{N-1} h(x{*,j}_{t+k|t},u{,j}{t+k|t}) + Q{j-1}(x) \nonumber \ &= h(x_{t|t}{*,j},u_{t|t}{,j}) + \sum _{k=1}^{N-1} h(x{*,j}_{t+k|t},u{,j}{t+k|t}) + \sum {k=t*} h(x{i*},u{i*}) \nonumber \ &= h(x_{t|t}{*,j},u_{t|t}{,j}) + \sum _{k=1}^{N-1} h(x{*,j}_{t+k|t},u{,j}{t+k|t}) + h(x{i*}{t*},u{i*}_{t}) \ \nonumber + Q{j-1}(x{i*}_{t+1}) \nonumber \ &\geq h(x_{t|t}{*,j},u_{t|t}{,j}) + J_{0\rightarrow N}{{\text{LMPC}},j}(x_{t+1|t}{,j}) \end{align}
$$

比较 $A = J_{0\rightarrow N}{{\text{LMPC}},j}(x_tj)$,$B = h(x_{t|t}{*,j},u_{t|t}{,j}) + J_{0\rightarrow N}{{\text{LMPC}},j}(x_{t+1|t}{,j})$ 两个优化函数, $B$ 比 $A$ 多了一个可优化的变量,因此当且仅当 $B$ 的控制变量全与 $A$ 相同时 $B$ 取其最大值。所以,我们有以下不等式:

$$
\begin{align} J_{0\rightarrow N}{{\text{LMPC}},j}(x_{t+1}j)- &J_{0\rightarrow N}{{\text{LMPC}},j}(x_{t}j) \leq - h(x_{t}{j},u_{t}) < 0, \nonumber \ &\forall \ x_t^j \in R^n \setminus \lbrace x_F\rbrace \ \forall \ u_t^j \in R^m \setminus \lbrace 0\rbrace. \end{align}
$$

得证。

成本非增性

  • 证明迭代成本不会随着迭代次数增加,即 $J_{0\rightarrow \infty }^{j-1}(x_S) \geq J_{0\rightarrow \infty }^{j}(x_S) \quad \forall k\geq 0$

$$
\begin{align} J_{0\rightarrow \infty }^{j-1}(x_S) &= \sum \limits _{t=0}^{\infty } h(x_t{j-1},u_t) \nonumber \ &=\sum \limits _{t=0}^{N-1} h(x_t{j-1},u_t) + \sum \limits _{t=N}^{\infty } h(x_t{j-1},u_t) \nonumber \ &\geq \sum \limits _{t=0}^{N-1} h(x_t{j-1},u_t) + Q{j-1}(x_N) \nonumber \ &\geq \min {u_0,\ldots,u{N-1}} \left[ \sum {k=0}^{N-1} h(x_k,u_k) + Q^{j-1}(x_N) \right] \nonumber \ &= J{{\text{LMPC}},j}(x_0). \end{align}
$$

最优性

凸优化基础知识
保凸运算

  • 证明假如 x 和 u 在第无穷次迭代的时候收敛为一确定轨迹,那么其为该轨迹为该问题的最优轨迹

前提:

  1. system(1)、控制器(23)(25)
  2. 假设 1:SS0 非空;假设 2:问题(5)严格凸
  3. 第无穷次的 x 和 u 都收敛 -> 第无穷次的 SS 集和 Q 也收敛
  4. 第无穷次 k 时刻的状态属于 k+1 时刻的承上集,k+1 时刻的状态属于 k 时刻的启下集

重新定义一个新的最优化问题(41),与原 LMPC 最优化问题相比,(41)的预测步长为 $T$,且(41)的终端集时原 LMPC 最优化问题的子集,如果 LMPC 最优化问题的解对于(41)也是可行的,那么该解也是 LMPC 最优化问题最优的解

$$
\begin{align} &\tilde{J}{t\rightarrow t+T}^*(x_t)=\min {u,\ldots,u{T-1}} \sum {k=0}^{T-1} h(x,u_{k})+Q^{\infty }(x_T)\tag{41a}\ &\text{s.t. }\nonumber \ &\quad x_{k+1}=f(x_{k},u_{k})\ \forall k \in [0, \ldots, T-1]\tag{41b}\ &\quad x_{k} \in \mathcal {X}, \ u_{k} \in \mathcal {U}\ \forall k \in [0, \ldots, T-1]\tag{41c}\ &\quad x_{0}=x_t,\ x_{T} = x_{t+T}^{\infty }\tag{41d} \end{align}
$$

先证明 $({\mathbf x}^{\infty }{t:t+N}, {\mathbf u}^{\infty })$ 是当 $T = N$ 时问题(41)的最优解:

$$
\begin{align} &{{\mathbf x}}^{\infty }{t:t+N} = [x^{\infty },\ x_{t+1}^{\infty },\ \ldots,\ x_{t+N}^{\infty }] \nonumber \ &{{\mathbf u}}^{\infty }{t:t+N} = [u^{\infty },\ u_{t+1}^{\infty },\ \ldots,\ u_{t+N-1}^{\infty }] \end{align}
$$

$$
\begin{align} J_{0\rightarrow N}^{{\text{LMPC}},\infty } & (x_{t}^{\infty }) \geq h(x_{t}^{\infty },u_{t}^{\infty }) + J_{0\rightarrow N}^{{\text{LMPC}},\infty }(x_{t+1}^{\infty }) \phantom{\Big ]} \nonumber \ \phantom{\Big ]} &\geq h(x_{t}^{\infty },u_{t}^{\infty }) + h(x_{t+1}^{\infty },u_{t+1}^{\infty }) + J_{0\rightarrow N}^{{\text{LMPC}},\infty }(x_{t+2}^{\infty }) \nonumber \ &\geq \left[ \sum {k=0}^{T-1} h(x^{\infty },u_{t+k}^{\infty }) + J_{0\rightarrow N}^{{\text{LMPC}},\infty }(x_{t+T}^{\infty }) \right]\ \forall \ T>0.\tag{42} \end{align}
$$

$$
\begin{equation} J_{0\rightarrow N}^{{\text{LMPC}},\infty }(x_{t+T}^{\infty })= Q^{\infty }(x_{t+T}^{\infty }).\tag{43} \end{equation}
$$

$$
\begin{equation} J_{0\rightarrow N}^{{\text{LMPC}},\infty }(x_{t}^{\infty }) \geq \sum {k=0}^{N-1} h(x^{\infty },u_{t+k}^{\infty }) + Q^{\infty }(x_{t+N}^{\infty }).\tag{44} \end{equation}
$$

再证明 $({\mathbf x}^{\infty }{t:t+N+1}, {\mathbf u}^{\infty })$ 是当 $T = N+1$ 时问题(41)的最优解:

所以,可以以此类推 $T = N+2,T = N+3 …$ 的情形,得证 $({\mathbf x}^{\infty }, {\mathbf u}^{\infty })$ 是问题(41)无限域时的最优解

四、实例

实例如下, CLQR 问题的控制目标为 $J^*$:

$$
\begin{align} J_{0\rightarrow \infty }^*(x_S)&=\min _{u_0, u_1,\ldots } \sum \limits _{k=0}^{\infty } \Big [ ||x_k||_2^2 + ||u_k||2^2 \Big ]\ \text {s.t. } &x= \left[\begin{array}{ll}1 & 1 \ 0 & 1 \end{array}\right] x_k + \left[\begin{array}{ll}0 \ 1 \end{array}\right] u_k\quad \ \forall k\geq 0\ &x_0=[-3.95 \ -0.05]^T \end{align}
$$

$$
\begin{align} & \left[\begin{array}{ll}-4 \ -4 \end{array}\right] \leq x_k \leq \left[\begin{array}{ll}4 \ 4 \end{array}\right] \ \forall k\geq 0\ &-1 \leq u_k \leq 1 \forall k\geq 0. \end{align}
$$

标签:Control,Predictive,begin,Tasks,end,infty,equation,align,ldots
From: https://www.cnblogs.com/sunshine-blueboy/p/18219108

相关文章

  • Job for nginx.service failed because the control process exited with error code.
    使用systemctlstartnginx启动nginx的时候,报错:Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode.See“systemctlstat。我们可以通过命令查看nginx的配置文件是否修改正确[root@localhost/etc/nginx]$sudonginx-tnginx:[emerg]unexpec......
  • USB EHCI(Enhanced Host Controller Interface)与OHCI(Open Host Controller Interface)
    USBEHCI(EnhancedHostControllerInterface)与OHCI(OpenHostControllerInterface)在多个方面存在显著的差异,以下是对这些差异的分点表示和归纳:1.**接口标准与版本**:-EHCI:这是Intel主导的USB2.0的接口标准。它专门描述了一个通用串行总线(USB)2.0版的主机控制器的寄存器......
  • HandyControl发现bug
    HandyControl3.4以上的版本 ListView 这样写不显示数据,3.4可以<Grid><Grid.RowDefinitions><RowDefinitionHeight="40"/><RowDefinition/><RowDefinition/></Grid.RowDefinitions&g......
  • Android14音频进阶之AAOS之CarAudioService如何衔接AudioControl服务(七十四)
    简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】......
  • Controlnet作者放出新的大招 IC-Light,可以操控图像生成时的光照,对内容主体重新打光生
    IC-Light代表ImposeConstantLight,是一个控制图像照明的项目。可以操控图像生成时的光照,对内容主体重新打光生成符合新背景环境光照的图片。这下商品图合成这种需要最大程度保持原有主体ID需求的最大的问题解决了。目前,已经发布了两种类型的模型:文本条件重新光照模型。......
  • springcloud和dubbo分别调用controller层和service层是两种微服务架构的最大区别?
    许多讨论微服务架构中springcloud和dubbo区别的文章中,主要强调dubbo只是springcloud的子集,只是服务治理工具,不是完整解决方案。但是看了一下两者,感觉完全无法兼容,理念完全不同啊。springboot开发的典型应用目录如下:分Controller、service接口、Serviceimpl实现、dao等层次。1、s......
  • mapper,service,controller,entity之间的关系
    目录一、学到了二、错误与纠正一、学到了1.mapper(repository):数据访问层,负责与数据库进行交互,执行数据库的操作。定义了各种数据库操作方法的接口,并由ORM框架自动实现主要职能是执行数据库的增删改查,并将数据库操作结果返回给上层的service。2.service:业务逻辑层,处理逻......
  • Mixing 3800/2800 APs with 9120 APs on 9800 controllers?
    Don'tmixx800-seriesAPswithCatalystAPs.  x800-serieshaveaMARVALradiochipsetandCiscohasbeentryinghardto"tame"thebugsassociatewiththem. Ibelievetheyhavealready"givenup"tryingtofixthesebugsonAire......
  • springboot使controller异步调用
    调用controller方法,遇到操作时间很长的情况下,不希望前端一直等待操作,而希望前端立马接收到操作启动的反馈,而真正的操作在后端执行,需要用到异步调用的方法。实现步骤如下:一、配置异步支持:首先,在应用程序的主类上添加@EnableAsync注解,以启用异步支持importorg.springfram......
  • MFC创建树状导览 Tree Control
    CTreeCtrl*pTree=(CTreeCtrl*)GetDlgItem(IDC_TREE1);//设置图片列表//pTree->SetImageList(&m_imageList,TVSIL_NORMAL);//创建待插入的TV_INSERTSTRUCT结构TV_INSERTSTRUCTtvinsert;tvinsert.hParent=NULL; //无父结点tvinsert.hInsertAfter=TVI_LAST; //......