前言:因为天天写代码实在是太枯燥了,所以读点其他东西来调剂一下,这样科研进度不至于停下。前面读了几篇关于时序逻辑学习的文章,今天来了解一下时序逻辑公式在控制中的应用。
Raman, V., Donze, A., Maasoumy, M., Murray, R. M., Sangiovanni-Vincentelli, A., & Seshia, S. A. (2014, December). Model predictive control with signal temporal logic specifications. 53rd IEEE Conference on Decision and Control. https://doi.org/10.1109/cdc.2014.7039363
文章目录
概览
对系统特性做出约束是时序逻辑的作用之一。在这篇文章中,STL可以用来描述系统的safety, response, bounded liveness等多种属性。而控制器的设计要把这些属性约束考虑在内,这篇文章探讨的就是如何将形式语言转化为模型语言,即数学公式,设计控制器使得系统满足时序逻辑约束。本文把混合整数线性规划问题与模型预测控制相结合,完成了对STL公式的编码。验证实验为大楼的能源和温度控制。
流水账笔记
1 Introduction
- 主要工作
- 将STL约束编码 转换为MILP约束
- 设计MPC控制器
- 大楼暖空的模型验证
2 Preliminary
A. Discrete-Time Continuous Systems
离散时间连续系统:采样时间是离散值,信号的状态可以取连续值。
x t + 1 = f ( x t , u t ) x_{t+1}=f(x_t,u_t) xt+1=f(xt,ut)
DTCS的三要素:
- 初始状态 x 0 x_0 x0
- 控制信号 u N = u 0 u 1 u 2 . . . u N − 1 \mathbf{u}^N = u_0 u_1 u_2 ... u_{N-1} uN=u0u1u2...uN−1
- 状态轨迹(run) x ( x 0 , u N ) = x 0 x 1 x 2 … x N \mathbf{x}\left(x_{0}, \mathbf{u}^{N}\right)=x_{0} x_{1} x_{2} \ldots x_{N} x(x0,uN)=x0x1x2…xN
这里我们把N称作信号的边界(horizon),代表装填轨迹的最大编号。
接下来还定义了代价函数: J ( x , u ) J(\mathbf{x}, \mathbf{u}) J(x,u),具体怎么用还没讲。
B. Signal Temporal Logic
参考前几篇文献对STL的定义。
另外补充bounded-time STL的时间上界(Horizon)的求取方法:
所有嵌套额时序操作子的上边界相加,表示为验证时序逻辑公式所需的最小轨迹长度。
C. Robust Satisfication of STL formulas
同这篇文献.
3 Problem Statement
基于STL的优化控制
在系统轨迹符合STL公式 φ \varphi φ的前提下,优化一个与系统轨迹有关的代价函数:
argmin u N J ( x ( x 0 , u N ) ) s.t. x ( x 0 , u N ) ⊨ φ \begin{array}{ll} \operatorname{argmin}_{\mathbf{u}^{N}} & J\left(\mathbf{x}\left(x_{0}, \mathbf{u}^{N}\right)\right) \\ & \text { s.t. } \mathbf{x}\left(x_{0}, \mathbf{u}^{N}\right) \models \varphi \end{array} argminuNJ(x(x0,uN)) s.t. x(x0,uN)⊨φ
基于STL的模型预测控制
最小化每一步的代价函数:
argmin u H , t J ( x ( x t , u H , t ) , u H , t ) ) s.t. x ( x 0 , u ) ⊨ φ \begin{aligned} \operatorname{argmin}_{\mathbf{u}^{H, t}} &\left.J\left(\mathbf{x}\left(x_{t}, \mathbf{u}^{H, t}\right), \mathbf{u}^{H, t}\right)\right) \\ & \text { s.t. } \mathbf{x}\left(x_{0}, \mathbf{u}\right) \models \varphi \end{aligned} argminuH,tJ(x(xt,uH,t),uH,t)) s.t. x(x0,u)⊨φ
这里解释一下优化控制的优化函数与MPC的优化函数的主要差别。观察前后两式,唯一不同的就在于输入信号轨迹的长度一个是 N N N而另一个是 H