note_for_线性系统和控制

简介

  本人作为自动化专业的本科生,在大四国外交流的过程中选了一门课”Linear system and contorl”。起初以为和国内自动化专业的的”控制理论II”相同,讲的都是状态空间的模型和性质。但由于是graduate的课程,在学习过程中,接触到了一些线性代数和泛函分析方面的内容,刷新我对线性状态空间的认识。正巧因为期末考试教授允许我们带2页的cheat sheet进考场,给了我一个整理的机会,所以想着着这份note,写一个对状态空间和系统的学习心得,做交流学习用。

  先简单说一下课程的具体概况,为我们上课的是学院里的杰出教授,生活的年代覆盖了整个控制理论从经典分析(傅立叶变换为基础的频谱分析)到俄罗斯人在80年代搞出近代状态空间,再进而延伸到现代各种各样的控制细分门类里,经常上课时给我们讲故事,说他研究生时期读到了维纳的论文刷新了自己的知识等等让人感觉好羡慕😂,后来有学姐告诉我他是Kalman的关门大弟子(没错,就是Kalman滤波的那个Kalman),敬畏之心油然而生。
  学校教材使用的是:Chi-Tsong Chen 写的*Linear System Theory and Design,上课的顺序和书本有一些出入,原话是他认为graduate级别的学生看书是常识,教授只是来答疑和解决问题的。幸亏我在国内已经上过一遍”控制理论II”,不然很多时候跟不上这么快速而跳跃的思维(没有贬低的意思,国内为我上课的老师是教材:科学出版社的自动控制原理*编者——田玉平老师的研究生,为教材提供了仿真和修订)。
  所以在上这门课程之前,自上而下的理解我是很全面的,也就是说在状态空间范围内的定理我大多都知道,关于他们之间的互相推导我也基本可以复现。但是在美国重上一遍后,对原来学习的过程中没有明白(公理的来由)的地方有了新的认识,比如gram矩阵的来源,为什么我们要理解空间的直和等等。总而言之,学习曲线的转变导致了在美帝的学习像重上了一门新课一样,知道当初人们面对的问题是什么,又是怎么解决的,虽然难,但是对问题观点的转变是我在这门课上学到的最有用的东西。

状态空间的描述

状态的定义

  国内教材对状态的定义为:描述系统的最小一组变量(状态变量),只要已知$t=t_{0}$时刻的该组变量值和$t \geq t_{0}$时刻的输入,便能完全确定在$t \geq t_{0}$任意时刻系统的行为。我们注意到,这个定义中有一个“最小一组变量”的概念。实际上自动控制原理*在定义状态的时候,是从动力学系统出发的,即给定一个存在物理定律(而这个物理定律一般被微分方程所描述)的系统,我们可以通过列写有关的物理学方程来对系统进行描述,而“最小一组变量”是指在已有的物理学方程中,通过将那些”知道其中一个可以求出另一个的变量“用”一个变量“代替(比如描述电阻的电压和电流,由$U=IR$,可以只使用电阻两端的电势差或者流过电阻的电流来唯一表示电阻的状态),最后得到的变量集合即为“最小一组变量”。但,这里所谓的知道一个求出另一个的例子,可以不单单是比例关系,重要的消去多余变量的思想。在一些时候(或者说大部分时候),确定”最小一组变量”的可能性都是很小的,原因在于当系统变得复杂且非线性时,往往区分哪些变量能完全表示系统状态是几乎不可能的。
  国外教授对于状态的定义为:define the state of a system if together with input function one can compute the future response.我认为外方版本的定义更加准确,原因在于,外方教材对状态的定义是从输入输出角度出发的,把上面这个定义转换一个角度,可以理解为:状态是系统过去行为的集合,从现在开始的的输入只对现在以及未来发生的响应起作用,而对过去的响应没有作用(隐含了casual的条件)。国内教材的定义,是只取了恰恰好够用的状态来概括系统的过去;国外的定义,则是能概括系统就行,数量的多少不重要。在之后的章节中我们能看到,最能代表系统的状态数量,只取决于那些既能控又能观的状态数量,在真正做能控能观性分解之前,我们其实也是不知道我们所选取的状态到底是不是最小的一组变量的。

状态的数学表达

  系统维数:状态变量的个数,用$n$表示。

  状态向量(其中$n$是系统维数):
$$
x(t)=\left[\begin{array}{c}{x_{1}(t)} \ {x_{2}(t)} \ {\vdots} \ {x_{n}(t)}\end{array}\right]\in \mathbb{R}^n.
$$
  状态空间:以状态变量为座标轴的空间,因此系统的状态可以表示为此空间中的一个向量。

方程描述

  有了状态(变量),根据以往我们学习物理的逻辑,我们就要寻找这些状态(物理量)之间的方程(物理关系)了。

  对一个有$m$个输入$u(t)$,$p$个输出$y(t)$,$n$个状态变量$x(t)$的系统:
$$
u(t) \in \mathbb{R}^m,y(t) \in \mathbb{R}^p,x(t)\in \mathbb{R}^n
$$
  有
$$
\dot{x}(t)=f(x(t),u(t))\
y(t)=g(x(t),u(t))
$$
  其中第一个方程称状态方程,第二个方程为输出方程。对于线性定常系统,有:
$$
\begin{array}{c}
\dot{x}(t)=Ax+Bu\
y(t)=Cx+Du
\end{array}
\tag{1}\label{systemModel}
$$

  注:微分算子”$\cdot$”就是一个基础的运算,它的作用域是函数,简单来说就是给我一个函数,我再还给你你一个函数$\cdot : f \to f$。它的最小的一个操作就是对一个函数求导:$\dot{x}=\frac{d}{dt}x$,如果要求二阶导,就重复这个操作两遍,就能得到二阶导。这里我们只需要感性地认识到微分是最基本的一个操作,无论多复杂的信号(函数),它对系统构成的影响是它的n阶导组成的(你从来没听说过有1.5阶导得吧),所以我们就用$\dot{x}(t)=f(x(t),u(t))$向量方程的形式来描述系统。

  \eqref{systemModel}时常写为:
$$
\begin{bmatrix}
A&B\
C&D
\end{bmatrix}
$$
  在鲁棒控制中这个形式更加广泛。