购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 状态空间模型

本节介绍本书所使用的两种主要形式的模型:微分方程和差分方程。这两种模型都使用状态、输入、输出以及动态等概念来描述系统的行为。另外本节还将简单讨论一下有限状态系统的建模。

3.2.1 常微分方程

系统的状态是这样一些变量的一个集合,它们记录了系统的过去,目的是预测系统的未来。对于物理系统来讲,状态由质量、动量及能量等物理变量组成。建模中很重要的一点是,要确定这些信息的表示该精确到什么程度。状态变量被集中在称为 状态向量 (state vector)的向量 x ∈ℝ n 中,控制变量用另一个向量 u ∈ℝ p 表示,被测信号用 y ∈ℝ q 表示。这样一来,系统就可以表示成以下的微分方程:

式中, f :ℝ n ×ℝ p →ℝ n h :ℝ n ×ℝ p →ℝ q 是平滑的映射。这种形式的模型称作 状态空间模型 (state space model)。

状态向量的维数称作模型的 阶数 (order)。式(3.5)的模型称作时 不变的 (time-invariant),因为其中的函数 f h 没有显式地依赖于时间 t ,对于较为普遍的时变系统而言,其函数则是直接依赖于时间的。以上模型由两个函数组成:函数 f 给出状态向量的变化率关于状态 x 和控制变量 u 的函数;函数 h 则给出被测量 y 关于状态 x 和控制量 u 的函数。

如果函数 f h 关于 x u 是线性的,那么模型就称作 线性 (linear)状态空间模型(可能往往只是一个“线性系统”)。因此,线性状态空间模型可以表示为:

式中: A B C D 是常数矩阵。这样的模型称为是 线性时不变的 (linear and time--invariant),简称LTI(在本书中,常常省略“时不变”一词,就称模型是线性的)。矩阵 A 称为 动态矩阵 (dynamics matrix),矩阵 B 称为 控制矩阵 (control matrix),矩阵 C 称为 传感器矩阵 (sensor matrix),矩阵 D 称为 直接项 (direct term)。有些系统往往没有直接项,这意味着控制信号对输出没有直接的影响。

对力学中的二阶动态系统进行推广,可以得到线性微分方程组的另一种形式,即单输入单输出高阶系统的微分方程:

式中, t 是独立变量(时间), y t )是因变量(输出), u t )是输入。d k y /d t k 用于表示 y t k 阶导数,有时也写成 y k 。受控的微分方程式(3.7)称为 n 阶系统。采用以下定义可以将这个系统转换成状态空间的形式:

相应的状态空间方程为:

通过对 A B C D 进行恰当的定义,这个方程将是线性状态空间的形式。

令输出等于模型状态变量的线性组合,可以得到一个更一般的模型,即

y = b 1 x 1 + b 2 x 2 +…+ b n x n + du

这个模型在状态空间中可以表示为:

这种特殊形式的线性状态空间模型称为 可达标准型 (reachable canonical form),将在后面的章节里对其进行更为详细的研究。模型还有许多其他的表示方法,在第6章~第8章还会遇到几个。也可以将式(3.7)的形式进行展开,容许出现输入的导数,正如第2章所述。

例3.1 弹簧-质量系统

作为将线性微分方程转化为状态空间形式的一个简单例子,考虑外部驱动的弹簧质量系统,式(3.2)描述了其动态行为,重写如下:

令式(3.7)的输出 y 对应这里的位置 q ,则两式具有相同的形式。因此,系统的状态可以写成:

状态方程为:

上式中假定了 (对应黏性摩擦)。

例3.2 平衡系统

在可以采用常微分方程来建模的系统中, 平衡系统 (balance system)是更复杂的例子。平衡系统是一个机械系统,其质量中心在一个支点的上方保持平衡。图3.6为一些常见的平衡系统实例,它们都靠系统底部的力量来保持平衡。图3.6a所示的赛格威(Segway)代步工具采用一个电动机驱动的平台来使其上站立的人保持稳定。当骑车人前倾时,它驱动自己在地面上前行并能维持垂直的姿态。图3.6b所示的土星火箭是另一个例子,其底部有一个万向喷嘴,用于稳定上方的箭体。还可以举出很多其他平衡系统的例子,包括人类及其他动物直立行走,一个人在手上保持棍子平衡等。

图3.6 常见的平衡系统实例

平衡系统是前面介绍的弹簧-质量系统的推广。机械系统的动态可以写成以下的一般形式:

式中, M q )是系统的惯性矩阵, 代表 科里奥利力 (Coriolis force)和阻尼, K q )代表势能引起的力, B q )则描述外力耦合到动态系统的方式。注意 q 不仅可以是标量,也可以是向量,是系统的 配置变量 (configuration variable)。该方程的具体形式可以用牛顿力学推得。方程的每一项都依赖于系统的配置 q ,且它们往往与配置变量间是非线性的关系。

图3.6c是一个平衡系统的简图,它由一个倒摆放置在推车上构成。为了对该系统进行建模,选定系统台基的位置 q 和速度 ,以及台基以上结构的角度 θ 与角速度 作为状态变量[注意,用 q 表示位置,用( q θ )表示所有配置变量是一种轻微滥用符号的做法]。令 F 为施加在系统台基上的力,并假定其沿水平方向(与 q 对齐),选择系统的位置和角度为输出。在这些定义下,应用牛顿力学即可推得系统的动态模型,其形式如下:

式中, M 是台基的质量, m J 是需要平衡的系统的质量和惯量, l 是从台基到平衡体质心的距离, c γ 是黏滞摩擦系数, g 是重力加速度。

通过定义状态 [2] 、输入 u = F ,以及输出 y =( q θ ),可以将系统的动态模型重写为状态空间的形式。如果定义总质量和总惯量为:

M t = M + m J t = J + ml 2

那么运动方程将变成:

这里使用了简记 c θ =cos θ s θ =sin θ

在许多情况下,角度 θ 十分接近于0,因此可以使用近似表达式sin θ θ 及cos θ ≈1。更进一步讲,如果 很小,就可以忽略 的二次项和高次项。将这些近似代入前面的公式,可以发现剩下的是一个 线性 (linear)状态空间方程:

这里 μ = M t J t -m 2 l 2

例3.3 倒摆

例3.2的一个变形是台基的位置 q 无须控制的情况,例如仅关心使火箭在竖直方向上保持稳定而不用担心火箭台基的情况。这个简化系统的动态方程为:

式中, γ 是旋转摩擦系数, J t = J + ml 2 u 是施加在台基上的力。这个系统称作 倒摆 (inverted pendulum)。

3.2.2 差分方程

在有些情况下,以离散的时间来描述系统的演化要比按连续的时间来描述更为自然。如果每个时刻用一个整数 k k =0,1,2,…)来表示,那么就可以了解每个系统的状态是如何随着 k 而变化的。跟微分方程的场合一样,也将状态定义为一组这样变量,它们集合系统过去的信息,意在预测系统的未来。以这种方式进行描述的系统称作 离散时间系统 (discrete-time systems)。

离散时间系统的演化可以描述成以下的形式:

式中, x [ k ]∈ℝ n 是时刻 k (整数)的系统状态, u [ k ]∈ℝ p 是输入, y [ k ]∈ℝ q 是输出。跟前面一样, f h 是恰当维数的光滑映射。式(3.11)被称作 差分方程 (difference equation),因为它给出了 x [ k +1]与 x [ k ]的差别。状态 x [ k ]既可以是标量,也可以是向量;在向量的情况下,我们将时刻 k 的第 j 个状态变量的值写成 x j [ k ]。

跟微分方程的情况一样,差分方程的状态与输入往往也是线性关系,在这种情况下,可以将系统描述为:

x [ k +1]= Ax [ k ]+ Bu [ k ], y [ k ]= Cx [ k ]+ Du [ k ]

跟前面一样,也称矩阵 A B C D 分别为动态矩阵、控制矩阵、传感器矩阵和直接项。当初始条件为 x [0],输入为 u [0],…, u [ T ]时,线性差分方程的解可以通过反复代入的方法算得,结果为:

差分方程也常用作微分方程的近似,这个重要用途将在后面介绍。

例3.4 捕食者-猎物问题

捕食者-猎物问题是指这样一个生态系统,其中有两个物种,一个供另一个捕食。这类系统已经被研究了好几十年,具有十分有趣的动态。图3.7b所示的是一份历史记录,它记录了90年间山猫数量与雪兔数量的关系 [173] 。从图中可以看出,每个物种的年度数量记录是自然振荡的。

图3.7 捕食者-猎物问题(照片版权属于Tom and Pat Leeson公司)

针对以上情况,可以使用离散时间模型构建一个简单模型,以跟踪每个物种的出生率和死亡率。令 H 表示雪兔的数量, L 表示山猫的数量,可以用离散时间点的种群数量来描述状态。令 k 为离散时间指标(这里对应于每一天),可以写出:

式中, b h u )是单位时间内的雪兔出生率,它是食物供应量 u 的函数; d 1 是山猫的死亡率, a c 是相互作用系数。相互作用项 aL [ k ] H [ k ]用于对捕食率进行建模,假定其正比于捕食者与猎物相遇的频率,因此由种群数量的乘积给定。在描述山猫数量的动态方程中,相互作用项 cL [ k ] H [ k ]具有相似的形式,它表示山猫数量的增长率。尽管这个模型使用了很多假设(例如,假定雪兔的数量下降仅由山猫的捕食引起),不过这已足够回答有关该系统的一些基本问题。

为了说明如何使用这个系统模型,我们可以从某个初始种群数量出发,计算每个时间点的山猫和雪兔数量。具体操作是这样的:先令 x [0]=( H 0 L 0 ),然后利用式(3.13)计算下一时段的种群数量。重复这一过程,我们就可以算出整个时间上的种群数量。图3.8给出的是在特别选定的参数和初始条件下,该计算过程的输出结果。尽管仿真结果的细节跟实验数据不同(由于采用了简化假定),但可以定性地看到趋势上的相似性,因此可以使用这个模型来探索该系统的动态。

图3.8 式(3.13)的捕食者-猎物模型的离散时间仿真。在式(3.13)中,选取参数 a = c =0.014, b h u )=0.6, d 1 =0.7;山猫和雪兔的种群数量的循环周期、幅值与图3.7的数据基本一致

例3.5 E-mail服务器问题

IBM的Lotus(现在的Domino)服务器是一个协作软件系统,它管理用户的电子邮件、文档和笔记。客户端的机器则与终端用户打交道,使得他们能够访问相应的数据和应用。该服务器也处理一些其他的任务。在该系统研发的早期,人们观测到一个现象,就是当服务请求过多导致中央处理器(CPU)满载的时候,系统的性能很差,因此后来引入了负载控制机制。

客户与服务器的相互作用采用远程调用(RPC)的形式。服务器维持一份日志,记录所有请求的统计信息。另外,获得服务的请求总数,即服务器上的RPC(简称RIS),也是受到监测的。使用一个称为MaxUsers(最大用户数)的参数来控制服务器的负载,该参数限定了连接到服务器的客户总数。这个参数由系统管理员控制。服务器可以看成是以MaxUsers为输入、以RIS为输出的一个动态系统。其输入和输出的关系(线性关系)最初是通过稳态性能分析来研究的。

在文献[117]中,采用了一阶差分方程形式的动态模型来了解该系统的动态行为。利用系统辨识技术,该文献构建了以下形式的模型:

y [ k +1]= ay [ k ]+ bu [ k ]

式中, 。参数 a =0.43、 b =0.47是描述运行点附近系统动态的参数, 表示系统的标称运行点。请求数量选取60 s为一个采样周期内的平均值。

差分方程的另一个应用是在计算机上实现控制系统。早期的控制器是模拟的物理系统,可以用微分方程来建模。当采用计算机来实现由微分方程描述的控制器时,必须进行近似处理。一种简单的方法是用有限差分来近似代替导数,如下面的例子所示。

例3.6 PI控制器的差分近似

考虑以下的比例积分(PI)控制器:

控制器的状态由以下微分方程给出:

假设按固定的采样间隔 t = h ,2 h ,3 h ,…测量误差。用差分近似表示式(3.14)的导数,可得:

那么控制器由以下差分方程给出:

x [ j +1]= x [ j ]+ hk i e [ j ], u [ j ]= k p e [ j ]+ x [ j ]

式中, x [ j ]= x jh )、 e [ j ]= e jh )、 u [ j ]= u jh )分别表示在第 j 个采样周期内采样所得的离散时间状态、误差及输入(此处使用 j 作为离散时间指标,以免与增益 k p k i 混淆)。这个控制器很容易在计算机上实现,因为它只包含加法和乘法。

在这个例子中,如果采样间隔很短,使得变量 e t )在一个采样周期内变化很小,那么PI控制器的差分近似能很好地工作。

*3.2.3 有限状态机

除了可以用连续变量(如位置、速度、电压、温度等)建模的系统外,还经常遇到具有离散状态(如开、关、待机、故障等)的系统。有限状态机是这样一种模型,其中的系统状态是从有限的“模态”列表中选择的。有限状态机的动态由模态间的转换给出,这些转换有可能是对外部信号的响应。下面用一个简单的例子来说明这个概念。

例3.7 交通灯控制器

考虑图3.9b所示的交通灯控制系统的有限状态机模型。我们用一组点亮的交通灯(东西向或南北向)来表示系统的状态。此外,某个方向的灯一旦点亮,那么只有在垂直的方向上有车辆到达十字路口,然后等待某个最短的时间,灯才会切换到垂直的方向。这为每个方向的灯提供了两种状态:等待车辆到达;等待倒计时结束。因此,系统共有4种状态。

图3.9 红绿灯的简单模型

交通灯的动态模型描述了该系统如何从一种状态过渡到另一种状态。从图3.9b最左边的状态开始,假设开始时灯的设置是允许南北向的汽车通行。当一辆汽车由东西向到达街口时,转换到顶部的状态,启动定时器。一旦倒计时结束,就转换到右侧的状态,点亮东西向的灯。然后再等待一辆汽车由南北向到达街口,如此重复循环。

作为一个控制系统,该模型的状态空间由四种离散状态组成:南北向等待、南北向倒计时、东西向等待、东西向倒计时。控制器的输入由指示十字街口是否有汽车驶来的信号组成。控制器的输出是改变交通灯颜色的信号。可见,该控制器的动态模型就是控制着该系统的状态(或模态)如何及时变化的转换图。

更正式地讲,有限状态机可以表示为离散状态 α ∈ℚ sys 的一个有限集,这里ℚ sys 是一个离散集合。跟前述例子描述的有限状态机一样,系统的动态模型由离散状态间的转换描述。这些转换可以依赖于外部输入或测量,并且在转换进入或离开一个状态时,能够产生输出作用。如果令 β ∈ℚ in 表示(离散的)输入事件(如按钮按下、器件失效等),令 γ ∈ℚ out 表示(离散的)输出作用(例如设备的关闭),那么有限状态机的动态模型就可以写成如下的 卫士命令系统 (guarded command system,即卫士转换系统):

式中,函数 g i 是逻辑函数(取真/假),其值取决于当前的系统模态 α 和外部输入 β 。如果 卫士 (guard) g i 为真,那么系统从当前状态 α 转换到新的状态 α′ ,新状态 α′ 由规则(或者说转换映射) r i 以及外部输入决定。类似地,输出作用 a i 也依赖于当前的状态和外部输入。卫士转换系统可有许多不同的规则,具体取决于系统的状态和外部输入。

在许多方面,转换系统的动态与式(3.11)的离散时间系统的动态类似。二者的主要区别在于,转换不一定要以固定的时间间隔发生。事实上,转换系统中并没有严格的时间概念:时间只是通过离散状态的变化来跟踪记录事件的顺序。

对有限转换系统的技术要求往往被写成要实现的逻辑功能,这些功能描述了系统应该满足的条件。例如,人们也许希望,如果某个特定的传感器不能工作,那么系统就不能转换到需要用到该传感器的模式。这可以写成以下的逻辑公式:

α ∈{传感器 k 不起作用的状态}⇒ α ′∉{需要传感器 k 的状态}

形如 p q 的公式(其中 p q 是布尔命题)可以写成逻辑函数 ,它确保如果命题 p 为真,那么命题 q 一定为真。在传感器的例子中, p q 用系统的模式 α 是否处于某一组状态中来表示。

有限状态机对于描述逻辑操作非常有用,并且经常与连续状态模型(微分或差分方程)相结合,以创建混合系统模型。混合系统的研究超出了本书的范围,但有许多出色的文献可供参考,例如文献[8,16]。

3.2.4 仿真与分析

状态空间模型可以用来回答许多的问题。其中有一个最常见的问题,我们已在前面的一些例子中看到过,它牵涉到从一个给定的条件出发,对系统的状态演化进行预测。对于简单的模型,这可以通过解析求解的方式来实现,但更常用的做法则是通过计算机仿真来实现。

让我们再来考虑3.1节中的有阻尼弹簧-质量系统,这次我们给它施加一个外力,如图3.10所示。我们希望预测该系统在给定初始条件和周期性力函数的作用下的运动,并确定运动的幅值、频率和衰减速度。

采用线性常微分方程来对该系统进行建模。用胡克定律来对弹簧建模,并假定阻尼力正比于系统的速度,因此得到:

图3.10 外力驱动的有阻尼弹簧-质量系统。这里我们采用线性阻尼元件,其黏滞摩擦系数为 c 。其中质量由幅值为 A 的正弦力驱动

式中, m 是质量, q 是质量的位移, c 是黏滞摩擦系数, k 是弹簧系数, u 是施加的外力。采用状态空间表示,选择 为状态,选择 y = q 为输出,因此有:

可以看出,这是一个具有单输入 u 和单输出 y 的二阶线性微分方程。

现在我们想要计算该系统对 u = A sin ωt 形式的输入的响应。尽管也可以通过解析求解该响应,但这里改用数值计算的方法,这种方法不依赖于系统的特定形式。考虑一般化的状态空间系统:

给定时刻 t 的状态 x 和一个很短的时长 h h >0),假定 f x u )在( t t + h )时间范围内的变化率为常数,那么可以近似得到 t + h 时刻的状态值,即

重复使用这个方程,就可以解得 x 关于时间的函数。这个近似方法就是大家熟知的欧拉积分法。如果令 h 表示时间增量,并使用 x [ k ]= x kh )的写法,那么它实际上就是差分方程法。尽管MATLAB和Mathematica等现代仿真工具使用了比欧拉积分法更精确的方法,但有些基本的近似处理技术却是相同的。

回到我们的具体例子,图3.11包含应用式(3.17)算得的结果以及解析计算的结果。可以看到,随着 h 的减小,计算结果收敛于精确解。解的形式也值得注意:在经过最初的瞬态之后,系统进入一种周期性运动。瞬态以后的那部分响应称作输入的 稳态响应 (steady-state response)。

图3.11 采用不同仿真时间参数时,受力的弹簧-质量系统的仿真结果。实线为解析解,虚线为不同时间步长下采用欧拉积分法获得的近似解

除了产生仿真结果外,模型还可以用来回答其他一些问题。其中有两个问题是本书介绍的方法的核心,一个牵涉平衡点的稳定性,另一个牵涉输入/输出频率响应。下面先用一些例子来说明这两者的计算,在以后的章节里再回归一般化的计算。

返回到有阻尼弹簧-质量系统的例子,无作用力输入时的运动方程是:

式中, x 1 是质量的位移(相对于静止位置), x 2 是速度。我们想证明:如果初始状态偏离静止位置,则系统最终将回到静止位置[在后面我们将定义这种情况下的静止位置为 渐近稳定的 (asymptotically stable)]。尽管我们可以通过模拟许许多多的初始条件来直观地说明这一点,但这里选择从理论上证明它对于任何初始条件都是成立的。

为此,我们构建一个函数 V :ℝ n →ℝ,它将系统的状态映射为一个正实数。对于机械系统,一个方便的方法是选择系统的能量函数:

考虑该能量函数的时间导数,可以发现:

总是负数或零。因此 V x t ))总是非增的,稍微做一点分析就会看出单个状态都必须是有界的(后面会正式给出这个分析)。

要想证明状态最终将返回原点,必须做更详细一点的分析。凭直觉,我们可以做以下的推理:假定在某段时间里, V x t ))停止减小。那么必然有 ,这进而意味着在同一时段里有 x 2 t )=0;这样的话,就有 ,然后我们将其代入式(3.18)的第二行,可得:

因此必须有 x 1 也等于0,所以 V x t ))能够停止减小的仅有时刻就是状态位于原点的时候(也即系统处于静止位置的时候)。由于我们知道 V x t ))从不增加(因为 ),因此可以得出原点是稳定的(对于任何初始条件)。

这种分析称为李雅普诺夫(Lyapunov)稳定性分析,将在第5章进行具体介绍。它在一定程度上显示了利用模型来分析系统性质的强大力量。

基于模型可以进行的另一类分析是计算系统对正弦输入的输出,即 频率响应 (frequency response)。再次考虑弹簧-质量系统,但这次要保留输入,并让系统保留其原有的形式:

我们希望了解系统是如何响应以下形式的正弦输入的:

u t )= A sin ωt

在第7章我们将介绍如何通过解析完成这个任务,但现在我们将用仿真来获得答案。

我们从这样一个观察入手:如果 q t )是式(2.18)在输入 u t )下的输出,那么施加2 u t )的输入将得到2 q t )的输出(这很容易由叠加法得到证明)。因此考虑一个具有单位幅值( A =1)的输入就足够了。另外一个观察(将在第6章予以证明)是,系统对正弦输入的长期响应本身也是一个同频率的正弦量,因此输出具有以下的形式:

q t )= g ω )sin( ωt + φ ω ))

式中, g ω )称为系统的 增益 (gain), φ ω )称作 相位 (phase)或 相位差 (phase offset)。

为了用数值方法计算频率响应,我们可以在一系列的频率点 ω 1 ,…, ω N 上对系统进行仿真,并画出每个频率的增益和相位。图3.12是这种计算的一个例子。对于线性系统,频率响应不依赖于输入信号的幅值。频率响应也可以用于非线性系统,但其增益及相位与 A 有关。

图3.12 通过测量各个正弦输入的响应所算得的频率响应曲线(仅给出增益)。图a是(不同频率下)单位幅值正弦输入的系统时域响应曲线。图b是同样数据的另一种显示方式,它把响应的幅值绘制为输入频率的函数,其中实心圆点与图a中相应频率的时域响应曲线相对应 d+aOFp2LUca+3TEVzuttx2+hWF4rFcKb+49NI4TQMhXY5qm/oLJBGiQYMBngY85P

点击中间区域
呼出菜单
上一章
目录
下一章
×