状态空间表示把一个动态系统改写成一组一阶方程。与其处理一个高阶微分方程,不如跟踪一个状态向量,其中包含预测系统下一步行为所需的信息。
如果你搜索过“如何把微分方程化为状态空间形式”,核心思路就是:选取状态变量,为每个变量的导数写出方程,并让整个模型保持为一阶形式。
用一句话理解状态空间表示
一般来说,状态空间模型可以写成
这里, 是状态向量;如果系统有输入, 就表示输入。当系统是线性时不变系统时,同样的思想可以写成矩阵形式
这种矩阵写法在控制理论和微分方程中很常见,但状态空间的概念并不局限于线性情形。
状态到底表示什么
状态是当前各个量的集合;一旦输入已知,这些量就足以确定系统未来的行为。对于一个运动物体来说,只有位置通常还不够,位置和速度一起往往才够。
这正是状态空间表示有用的原因。它把一个随时间演化的问题,转化为标准的一阶形式,更便于分析、仿真,以及与矩阵方法结合。
为什么要这样改写系统
很多模型一开始都是高阶微分方程。状态空间形式是在不改变系统本质动力学的前提下,对它们进行改写。
这很重要,因为一阶系统可以统一到同一种结构中。模型一旦写成这种结构,就更容易一致地讨论初始条件、输入、输出和稳定性。
例题:把二阶方程化为状态空间形式
从下面的方程开始:
这里 是输入。先选取能够刻画系统当前状态的状态变量:
现在为每个状态变量写出一个一阶方程。由于 ,
由于 ,所以也有 。把原方程整理后得到
再代入 和 :
因此,状态方程为
写成向量形式,令
则有
如果输出是原来的量 ,那么
关键步骤,就是把一个二阶方程转化为两个一阶方程。这正是状态空间表示的核心。
这个例子里要注意什么
状态变量的选择是有原因的。这样的选取方式使模型能够写成一阶系统。
还要注意,输出 并不等同于完整的状态向量。在这个例子中,,而完整状态是 。这两个概念有时会重合,但并不天然相同。
化为状态空间形式时的常见错误
把状态和输出混为一谈
状态包含系统演化所需的内部变量。输出则是你选择观测的量。有时两者会重合,但并不自动相同。
以为表示方式是唯一的
通常并不是。只要能包含足够的信息,不同的状态变量选择都可以描述同样的动力学。
忘记必须是一阶形式
状态空间模型必须写成关于状态变量的一阶方程组。如果你最后还保留着某个状态变量的二阶导数,那就说明改写还没有完成。
把所有模型都当成线性模型
只有当方程关于所选状态变量是线性的,才可以使用带有 、、、 的矩阵形式。非线性系统同样可以用状态空间表示,只不过它们写成函数形式,而不是常系数矩阵。
状态空间表示用在哪里
状态空间表示广泛出现在微分方程、控制理论、信号处理、机器人学和物理学中。尤其当你关心系统如何随时间变化,以及输入如何影响这种变化时,它特别有用。
如果模型是线性的,矩阵方法会尤其方便。例如,矩阵 的特征值可以帮助描述增长、衰减或振荡,但这仍然依赖于模型本身所作的假设。
自己试一试
考虑
并取 、。把它改写成一阶系统,然后写出矩阵 。如果你已经理解了,再试一个带输入项的类似题目,看看矩阵 是如何出现的。