第一篇文章:Data-driven control for discrete-time piecewise affine systems第一部分
序言:
这篇文章讲的是离散分段仿射系统的数据驱动控制。这篇文章发表在Automatica上面,是我导师王孟的文章。感兴趣的朋友希望能来多多引用,等我导师出名了,我也沾沾光,嘻嘻!
前面已经介绍过了数据驱动控制是什么,如果要看这篇文章呢,还需要了解一下“离散分段仿射系统”是什么。所谓的仿射系统呢,是一种特殊的线性系统,它满足输入输出之间的仿射变换关系,即输出等于一个矩阵乘以输入,再加上一个常向量。这种变换不改变向量间的相对位置关系和线性组合的关系,因此能够保持原有的线性结构和几何形状,适用于线性控制问题的求解。
仿射系统可以用以下形式表示:
x˙(t)=Ax(t)+Bu(t)+f
其中,x(t) 是系统状态向量,u(t) 是系统输入向量,A 和 B 是系统矩阵,f 是常向量,也叫仿射项。如果 f=0,则系统退化为一个普通的线性系统。
仿射系统的一个重要性质是它具有可控性和可观测性,即可以通过合适的输入控制系统状态到任意位置,也可以通过输出观测到系统状态的任意信息。这些性质可以用一些代数条件来判断,例如可控性矩阵和可观测性矩阵的秩等。仿射系统在控制理论中应用广泛,例如,机械臂的位置控制、飞行器的姿态控制等问题都可以采用仿射系统进行描述和分析。一些常见的仿射系统控制方法有自适应控制、预测控制、滑模控制等。
好!了解了仿射系统之后,“离散”和“分段”,应该很好理解吧?我们在自动控制原理的书中就能学到连续和离散系统,至于为什么要分段?因为我们在实际应用的大部分控制系统都是很复杂,而且几乎不可能是连续且线性。所以我们为了方便研究这些复杂的非线性系统,我们将系统分成多个区域,在每个区域中,我们利用线性函数去无限逼近这些非线性函数,利用分段线性去代替整体非线性。这种方法在许多领域中都会用到。
文章的摘要:
看到这么多的英文字母,我相信很多同学应该很头痛,但是这就是学硕的宿命,英语必须得好,好在作者我英语还是可以的(想当年23年英语一,我可是考了81分呢!)。我来给大家大致概括一下这个摘要内容,
- 本文研究了离散时间分段仿射(PWA)系统的数据驱动控制问题。
- 基于满足秩条件的一系列采样控制输入和状态,PWA系统的闭环动力学可以用数据表示,因此不需要系统矩阵的显式信息。
- 通过S-过程,得到了系统稳定性分析结果,并提出了两种新颖的数据驱动控制器设计方法,它们都是线性矩阵不等式和方程的形式,可以保证闭环系统的渐近稳定性。
- 对于状态空间划分信息未知的PWA系统,进一步提出了一种在线数据驱动控制方法。
- 通过两个例子的仿真研究验证了所提出的数据驱动控制器设计方法的有效性。
基本就是这样。至于其中的一些细节问题,这里就先不解释了,我们慢慢看下去,遇到了就解决。
文章的Introduction:
文章的introduction部分也是一大片的英文,而且其中也提到了许多数据驱动控制方向和线性矩阵不等式(LMI)相关的参考文献,有兴趣的同学可以每一篇都去看一看,反正我是要去看的,呜呜呜。获益匪浅。我来大致概括一下这个部分的内容:
- 本文的主要目的是研究一种数据驱动控制的方法,用于离散时间分段仿射(PWA)系统,这是一类具有强大的非线性函数逼近能力的系统,可以描述许多具有非线性特征的实际物理系统,如死区、饱和、滞后等。
- 本文的主要贡献是基于满足秩条件的一系列采样控制输入和状态,利用数据表示PWA系统的闭环动力学,从而避免了系统矩阵的显式信息。这样,可以绕过传统的模型识别和基于模型的控制器设计的两步设计过程,直接从数据中得到控制器。
- 本文利用S-过程,得到了系统稳定性分析结果,并提出了两种新颖的数据驱动控制器设计方法,它们都是线性矩阵不等式和方程的形式,可以保证闭环系统的渐近稳定性。其中一种方法是利用椭球来外逼近多面体子空间,另一种方法是直接考虑多面体子空间。
- 本文还考虑了状态空间划分信息未知的PWA系统,进一步提出了一种在线数据驱动控制方法。该方法可以根据实时测量的状态和输入来判断当前所处的子空间,并根据相应的数据驱动控制器进行控制。
- 本文通过两个例子的仿真研究验证了所提出的数据驱动控制器设计方法的有效性。第一个例子是一个具有饱和特性的非线性系统,第二个例子是一个具有滞后特性的非线性系统。仿真结果表明,所提出的数据驱动控制器可以实现对PWA系统的稳定控制,并且具有较好的鲁棒性和抗干扰能力。
感觉和摘要内容没什么区别啊?是这样的,不信你自己去看看,其实这个部分内容很丰富,涉及到了很多的文献,等我看完这篇文章我再去看!
文章的基础公式推导:
这个部分相当痛苦,因为这个部分不仅考验你的控制原理的知识,还相当考验你的线性代数的知识。下面就让我们慢慢来推,有错的地方希望大家快点指出来。
首先,第一步就给出了PWA的系统状态方程(不知道什么是PWA的看看图片),因为是分段的系统,所以这里的A、B都是矩阵的形式。其中x(t)是一个Nx维的向量,代表的是系统的状态。u(t)是一个Nu维的向量,代表的是系统的输入。Si代表的是状态空间区域中的一个分区。根据以上信息,我们可以看得出来A是Nx * Nx维的矩阵,ai是Nx * 1 的矩阵,Bi是Nx * Nu的矩阵。清楚地了解方程中每个系数矩阵的维数很重要,要不然后面推更复杂的公式会懵逼的。
再看这个式子,因为我们将这个状态空间分成了许多子空间来研究,所以我们也得考虑到系统在运行时,会从一个空间跳到另一个空间,这里就用Ω集合来描述状态的转移。
第一行的式子代表的就是某个状态分区的表达形式,通过不等式的方式确定的空间的边界,例如我们在数轴上可以用X < 0 来表示负半平面。第二行式子为什么要比上面个式子少一个ei呢?因为第二行代表的是包含原点的子空间,所以不用偏置项ei。
这个式子中有一个Ri矩阵,它的作用是用来构造每个子空间的多面体形状的。这样就可以保证是凸多面体。这个不等式约束条件就是保证x(t)在对应的子空间内,大于0,我感觉可以理解为目前系统的状态点距离边界的距离是正的也就意味着是在内部(我是这么理解的,请指正)。
这三个式子就很好理解了,Xi,0和Xi,1对应的就是第i个子空间内的前一个时刻和后一个时刻系统的状态量,Ui,0就是当前状态下系统的输入。
这个式子的意义是根据采样数据定义一个矩阵X¯ i,0,它是在每个状态空间区域Si 中采样的状态矩阵Xi,0的扩展,增加了一行全为1的元素。这样做的目的是为了将仿射项ai和ki包含在数据表示中,从而避免了系统矩阵的显式信息。也就是说为了分析和设计控制器,不需要知道系统矩阵Ai,ai和Bi的具体数值,只需要利用采样数据Ui,0,Xi,0,Xi,1和X¯ i,0来表示系统的闭环动力学。这样可以绕过传统的模型识别和基于模型的控制器设计的两步设计过程,直接从数据中得到控制器。这就是数据驱动控制厉害的地方!
好了,打好基础,现在该来设计数据驱动的控制器了。公式6给出了驱动控制器的基本形式,公式(7)是表示PWA系统(1)在控制器(6)作用下的闭环动力学,即系统状态在下一个时刻的值是由当前时刻的状态和控制器输出决定的。其中,Ki和ki是控制器增益,它们取决于系统所处的状态空间区域Si,i ∈ I。本文的目标是根据采样数据设计合适的Ki和ki,使得闭环系统(7)是渐近稳定的。
assumption1是本文的一个假设条件,它是说在每个状态空间区域Si,i ∈ I,系统矩阵Ai和Bi是满秩的,即rank(Ai) = n,rank(Bi) = m。这个假设条件是为了保证采样数据满足秩条件(3),从而可以利用数据表示PWA系统的闭环动力学。如果不满足这个假设条件,那么可能存在无法从数据中恢复的系统矩阵或控制器增益。(大概是这个意思,反正我是这么理解的,请指正)
观点1的意义:
- 它证明了离散时间分段仿射(PWA)系统的闭环动力学可以用一系列满足秩条件的采样控制输入和状态来表示,而不需要系统矩阵的显式信息。
- 它提供了一个数据表示的形式,即公式(9)和(10),它们只涉及采样数据Ui,0,Xi,0,Xi,1和X¯ i,0,以及控制器增益Ki和ki。
- 它为基于数据的控制器设计提供了一个基础,即根据公式(11)和(12)求解控制器增益Ki和ki。
这里给出了证明过程,你可以先把公式(13)展开,写出Ki和ki的表达式,然后带入公式(7)。
这个remark1解释了为什么公式(15)可以成立,即为什么系统状态在下一个时刻的值可以由当前时刻的状态和控制器输出决定。它的意义是
- 它说明了如何从每个子空间收集数据来表示闭环动力学,即只需要选择合适的初始条件和控制输入,使得采样状态都属于同一个子空间,或者从不同的实验中选取属于同一个子空间的状态。
- 它为基于数据的控制器设计提供了一个便利,即不需要保证连续的状态序列都在同一个子空间内,也不需要进行多次实验来收集足够多的数据。
说实话,这个意义我没太看懂,但是我相信继续往下看,我应该能整明白。
好好!看完了前面的基础部分,我们接下来就要开始真正的核心部分,首先就是第一个理论,
- Theorem 1是本文的一个主要结果,它证明了离散时间分段仿射(PWA)系统的闭环动力学可以用一系列满足秩条件的采样控制输入和状态来表示,而不需要系统矩阵的显式信息。
- Theorem 1的意义是:
- 它为基于数据的控制器设计提供了一个基础,即根据公式(11)和(12)求解控制器增益Ki和ki,使得闭环系统(7)是渐近稳定的。
- 它利用S-过程,得到了系统稳定性分析结果,并提出了一种双线性矩阵不等式约束条件(17),它们可以通过一些技巧转化为线性矩阵不等式和方程的形式,从而方便求解。
我相信看到公式(17),大部分人应该已经搞不明白了,没见过这么复杂的矩阵,但是不要急,下面我们开始证明推导,我这里也花了不少时间才搞懂。
首先就是要了解李雅普诺夫函数,我相信大部分自动化专业的同学都知道这个。
函数形式就是这样的,然后我们为了判定当前状态空间中系统是否渐近稳定,我们就需要用到以下判定条件,
也就是说函数是递减的,也就是说系统的能量是不断减少的,这样系统才会趋向于稳定而不是发散。
然后我们把上式表达成如下形式:
再把公式(14)带入,公式(14)在上面呢,自己翻,我懒得截图了。以下是我的草稿,字有点乱
这个图片转不过来,很气!!各位老爷将就着看,这里的关键步骤是要把x(t)TPix(t)表达成矩阵的形式,这样方便计算,然后我就发现原文中这里的推导的结果是错的(嘻嘻,其实是论文发表的时候的笔误,不是老师的错误,但是老师没有表扬我,唉),如果你去看原文,记得对比右上角元素,原文中少了Xi。
就先写到这里吧,太长了也不好,剩下的看下一篇博客(主要是累了休息一下)。