控制理论是一门上个世纪诞生的很重要的理论,它基于信息的交互来实现目标的运动。一经诞生就备受人们重视,它启发和影响了诸如人工智能、认知科学、环境科学、现代经济理论等多个领域。经典控制理论已经广泛运用到工业自动化领域。用经典控制理论来实现控制器的设计思路十分成熟。不过在一些设计过程中只用根轨迹、伯德图设计系统控制器参数比较棘手,一开始对系统稳定性的判定就很繁琐,而且如果不适合又要完全从头开始作图,费时费力,很多时候系统阶数很高的时候又不便于直接求出极点。所幸现代控制理论找到了一种不错的方法,能够很快判断系统稳定性也很便于设计控制器。它就是基于状态空间描述的状态方程模型,由于状态方程模型基于矩阵,更便于现代的计算机求解。

那么就让我们来探讨一下关于状态空间方程的现代控制理论吧!我希望通过我的叙述,能够比较完整地整理一下所学内容,顺便与大家共同探讨和分享知识。

本系列内容均为我在Lehrstuhl für Regelungstechnik Technische Fakultät Friedrich-Alexander-Universität Erlangen-Nürnberg上课期间学习资料,由课程教授Prof. Dr.-Ing. Knut Graichen主编的关于Regelungstechnik B (Zustandsraummethoden) 的内容。

1.1动态系统的定义

在很多领域都有关于"系统"这个概念,系统往往描述了一个比较复杂的关系的总和,而我们要想很好控制这个系统,就需要先了解它。控制理论研究的是更加广义的系统,把一个系统先当作黑箱,那么这个黑箱和外界的交互关系,就对应了有不同时间的输入输出。

图1.1系统的输入输出

在t时刻,这m个会影响系统的输入量在控制理论里称为控制变量(Stellgrößen),而这p个系统输出的可以被传感器测量的量称为测量变量(Messgrößen)。现在我们做一些基本假设,限制一些条件,只研究连续时变的线性系统。而且系统的行为,即输出量,由描述系统的函数通过输入量,在时域上唯一确定。我们把系统的行为分为静态和动态两类。

用电路来举个例子, [公式] 现在是输出电压, [公式] 表示输入电流,那么电路系统有:

图1.2 含阻电路和含容电路

例a:带电阻的电路

(1.1) [公式]

例b:带电容的电路

(1.2) [公式]

显然和不随时间变化的例a相比,例b里的初始条件 [公式],以及 [公式] 在这个时间区间 [公式] 内的变化决定了输出电压。系统的状态受过去影响,随时间变化。这样的系统被称为动态系统

1.2状态方程的引入

我们定义状态方程中的状态变量为

定义1.1 状态变量
n个变量 [公式] 被称为动态系统的状态变量(Zustandsgrößen),当且仅当它们的p个输出变量 [公式] 完全由初始状态 [公式] 以及m个输入量 [公式]  [公式] 内的历史决定。

那么状态方程可以由有限个一阶常微分方程组描述:

(1.3) [公式]

同时输出方程为

(1.4) [公式]

当然我们可以向量形式来描述这些方程组

[公式] 为总共n维状态变量;

[公式] 为总共m维输入列向量;

[公式] 为总共p维输出行向量;

所以我们就可以用更加紧凑的方式来描述它

(1.5) [公式]

所以在t时刻,所有状态变量就可以用n维的向量空间描述,也即状态空间。在一个时间区间内,状态空间所有的状态量的点集就构成了一条轨迹。

图1.3 状态变量轨迹的可视化

1.3一些物理例子

接下来我们用一些实际物理过程的数学建模举例,来说明使用状态空间描述的优点。

例一:一个经典的电路

图1.4 含电容电感电阻的时变电路

运用基尔霍夫电压定律可得

(1.6) [公式]

其中 [公式]  [公式] , [公式] ,初始条件为 [公式][公式] 可以得出状态方程的表达方式

(1.7) [公式]

(1.8) [公式]

现在给出这个一阶方程的解,当输入 [公式] ,会有时间常数 [公式] ,以及对应的振荡频率 [公式] ,可能出现虚部,于是有三种情况

图1.5 u(t)=0时的解析解

如果令 [公式]  [公式] 并且初始条件 [公式] 有轨迹

图1.6 三种情况对应的暂态行为状态变量轨迹

可见在这样初始条件下,这个系统在没有输入控制变量时也是能够自己稳定,并不会发散而最终不稳定。

例二:一个机械动力系统

1.7 两自由度的旋转机械臂

让我们考察这样一个旋转的机械臂,其中转角 [公式] 和有效臂长 [公式] 各贡献了一个自由度。其中机座转动惯量 [公式] ,机械臂质量 [公式],转动惯量 [公式] 。实际转动时,机械臂会伸出去缩回来,所以转动惯量会发生变化,所以总的转动惯量 [公式] ,所以总的角动量为 [公式] 

施加的控制转矩为 [公式] ,则角动量变化量有

(1.9) [公式]

略去自变量 [公式] 的写法,此时科里奥利力带来的影响 [公式] 会出现。同时考虑在旋转机械臂上的作用力,有动量 [公式]

(1.10) [公式]

[公式] 为施加的控制力, [公式] 为旋转时产生的离心力。

考虑到 [公式] 以及 [公式] ,我们一阶微分方程一共有四个,有

(1.11) [公式]

其中状态变量为 [公式] ,输入控制变量为 [公式] ,显然这个微分方程组无法直接写成矩阵向量线性相乘的状态方程形式,于是合写作向量函数来表示。

(1.12) [公式]

1.4线性系统

上述两例子可知,系统的状态方程只用一阶的微分方程组就能很好描述系统,那么遇上更高阶的方程组怎么办呢?事实上考察一个动态系统有很多不同分类标准,我们在这里只探讨其中最主要的——线性、时不变性。

定义1.2 线性函数
函数 [公式] 被称为线性的,当他满足叠加定理和齐次定理。
[公式] ,其中 [公式]

所以当动态系统满足线性,其状态方程 [公式] 各自对应的部分可以分别分别相叠加,自然可以用向量空间表示它们之间的线性关系。

定义1.3 线性系统
动态系统满足线性时不变条件,当且仅当它可以有以下形式表示
(1.13) [公式]

包含时变的 [公式] (nxn)矩阵, [公式] (nxm)矩阵, [公式] (pxn)矩阵,(pxm)矩阵 [公式]

而当系统系统输入量不随时间变化时,有时不变特性

定义1.4 时不变系统
动态系统满足线性时不变条件,当它许用的输入轨迹 [公式] 自初始条件 [公式] 开始,从初始时间 [公式] 后一定时间[公式] 之内,系统输出 为[公式] ,总有可以有以下形式表示
[公式]

于是可以继续给出

定义1.5 线性时不变系统
动态系统满足线性时不变条件,当且仅当它可以有以下形式表示
(1.14)[公式]

值得一提的是,当系统非线性时不变时,自变量里面就没有t,是以下形式

(1.15) [公式]

当系统非线性且与输入量无关,则被称为自由非线性系统

(1.16) [公式]

当系统既自由而且时不变时,被称为自治的非线性系统

(1.17) [公式]

1.5平衡点的定义

系统在一个工作点上能够在接受外界输入(或干扰)后依然能够稳定平衡在这里,那么它就是一个系统的平衡点。显然平衡点在控制技术里十分重要,系统能够稳定就相当于找到了一个平衡点。

定义1.6 平衡点
[公式] 被定义为系统的平衡点,当 [公式] 它满足条件 [公式]

根据定义,状态变量处于平衡点时,所有n个状态变量都处于静止状态,即没有速度。一个非线性系统往往会含有多个平衡点。比如 [公式]  [公式] 等等。与非线性系统不同,一个线性时不变的自治系统仅有一个平衡点或者无穷个平衡点。

(1.18) [公式]

根据克拉默法则,显然这个齐次线性方程组的解的数量取决于(nxn)系统系数矩阵 [公式] 是否满秩

  • [公式] :矩阵满秩,有且仅有一个解。
  • [公式] :矩阵不满秩,有无穷多个解。

如果忘记了关于向量和系数矩阵的解的关系的同学,不要紧。我可以简单帮你们重温一遍。

一个系统用一阶齐次常微分方程组表示时,如果有n个独立未知量,想要获得唯一解,就必须要有n条线性无关的方程,也即对应了n条不变的约束关系。但是如果约束关系不够,并没有n条线性无关的方程,或者n条方程里,有几条方程线性相关,那么实际可用的约束关系就不足n个了。那么未知量就无法一一对应地被唯一约束,也即有无穷解

矩阵的秩描述了最大线性无关的矩阵行数\列数,即在这里线性无关的方程的行数,如果系数矩阵行列式为0,即不满秩,那就缺少约束,自然就有无穷解了。

而对于一个带输入的非线性系统,当它处于平衡点时,这个平衡点会与输入量 [公式] 有关,于是把它们合写做 [公式] 。表示这个工作点的状态变量与稳态输入有关。

而对于带输入的线性时不变系统的平衡点

(1.19) [公式]

  • [公式] :矩阵满秩,有且仅有一个解 [公式]
  • [公式] :矩阵不满秩,有无穷多个解。
  • [公式] :矩阵不满秩,且无解。

对于非齐次的线性方程组而言,满秩的意义就更明显了,只有满秩了才有逆矩阵可以用来求解。而且,非齐次方程组里,如果增广矩阵的秩比原来的系数矩阵秩还多,意味着有一些行的方程,有不为0的输入却等于0,自然是无解了。

1.6在平衡点上的线性化

对线性时不变系统的控制显然比非线性的系统要容易得多。不过我们也可以用近似的方法,处理非线性系统,这样它就可以通过线性模型来表示,而只有有限的在平衡点附近或者跟踪轨迹上的偏差。

为了对非线性系统线性化,需要用到偏导数。对一个标量函数 [公式] 在平衡点 [公式] 上求梯度会得到偏导数组成的向量函数。

(1.20) [公式]

而对于向量函数 [公式] 的梯度,即得到矩阵,被称为雅可比矩阵(Jacobi-Matrix),在平衡点处的雅可比矩阵为

(1.21) [公式]

在一维的情况下我们对一个非线性函数的线性近似用的方法是一阶泰勒展开,类比这个思路,我们可以自然得到高维非线性函数的一阶线性近似公式。

定义1.7 高维函数的二阶泰勒展开公式
对于 [公式] 处于一个n维开子集 [公式] 的函数连续可微,有[公式]  [公式] ,那么有
[公式] ,其中 [公式] 为二阶以上的余项,有 [公式] , [公式]

对于一个时不变非线性系统,其在平衡点附近的小偏移 [公式]  [公式]  [公式]  [公式] ,于是有

(1.22) [公式]

运用泰勒展开,忽略余项,可得

(1.23) [公式]

定义1.8 平衡点附近的雅可比线性化
非线性系统,在平衡点 [公式] 对应的足够小的输入变动 [公式] 在小范围内的稳态偏移 [公式] , [公式] 可以通过一个线性时不变的系统近似描述:
(1.24) [公式]
其中 [公式] , [公式] , [公式] , [公式]

接下来举个例子

例三:倒立摆小车的平衡点线性化

图1.8 倒立摆小车

一个质量为M的小车上固定了一个质量为m,摆长为l的倒立摆,当输入力 [公式] 时,借助拉格朗日法可以求得这个系统的非线性模型,如下

(1.25) [公式]

设状态变量为 [公式] ,在平衡点 [公式] 上线性化,原式的状态方程为

(1.26) [公式]

所以其线性化以后的状态方程为

(1.27) [公式]

1.7沿轨迹运动的线性化

除了在平衡点上进行线性化,还可以沿着非线性运动轨迹进行实时的线性化,这意味着线性化后的状态方程不再是时不变,而是线性时变的状态方程了。

具体操作其实也很简单,当我们把工作点放在非线性方程解的轨迹上,根据时间变化连续移动,即可得到时变的状态方程。类比刚刚的平衡点线性化方法,只不过把静止的平衡点变成连续变化的点集,即认为是平衡点的连续移动,也可被称为工作点的连续切换。

定义1.9 沿轨迹运动的雅可比线性化
非线性系统的解的轨迹,即状态变量和输入变量的轨迹是 [公式] ,其对应的足够小的输入变动 [公式] 在解轨迹上小范围内的稳态偏移 [公式] , [公式] 可以通过一个线性时变的系统近似描述:
(1.28) [公式]
其中 [公式] , [公式] , [公式] , [公式]

例四:旋转机械臂沿目标轨迹线性化

我们继续考察例二里面的机械臂,现在有初始条件 [公式] ,我们希望通过合理的输入控制量使得机械臂移动到目标位置上,即各个状态变量变动到到目标平衡点 [公式] 。可以预给一条合理的移动轨迹的关于时间的函数

(1.29) [公式]

 [公式] 以及 [公式] 可以得到目标轨迹的状态变量 [公式] ,通过例三的微分方程也可以反解出目标输入控制量的函数,其中 [公式]

(1.30) [公式]

图1.9 机械臂的目标轨迹

给定历程时间 [公式] ,其余参数 [公式]  [公式]  [公式]

[公式]

当沿着目标轨迹 [公式] 运动时,就能得到系统的矩阵

(1.31) [公式]

(1.32) [公式]

(1.33) [公式]

上述沿轨迹运动的线性化模型特别适合二自由度的控制器设计,这会在之后的文章里提及。使用二自由度控制的设计方式,最大优点在于用于调控平衡的反馈控制与用于导引轨迹的前馈控制可以分离独立设计。

下一章我们开始正式讨论系统状态变量的特性。

下一章:

善道:线性系统控制入门(二)状态变量的解和渐近稳定性

参考文献:

Regelungstechnik B (Zustandsraummethoden) (WS 2019), Prof. Dr.-Ing. Knut Graichen

Lehrstuhl für Regelungstechnik, Friedrich-Alexander-Universität Erlangen-Nürnberg