二、系统状态与状态变量:状态的定义、状态变量的选择原则、状态向量的概念,自由系统与强迫系统
好,咱们今天聊点硬核的。状态空间法,说白了就是把一个系统里里外外看个透。你想想看,经典控制理论里我们盯着传递函数,那玩意儿像个黑盒子——输入输出看得见,里面啥样不知道。但状态空间法不一样,它把系统的「内脏」都给你翻出来。
2.1 状态的定义——到底什么是「状态」?
我刚开始学控制那会儿,也被「状态」这个词搞晕过。书上说「状态是系统过去、现在和未来行为的最小信息集合」。嗯,这话没毛病,但太绕了。
我个人习惯这么理解:状态就是系统在某一时刻的「快照」。你拍一张照片,里面记录了所有能决定系统未来走向的信息。
举个例子。一个弹簧-质量-阻尼系统,质量块的位置和速度就是它的状态。为什么?因为只要我知道此刻的位置和速度,再知道外力怎么加,我就能算出它未来任何时刻的运动轨迹。不需要知道它十分钟前在哪,也不需要知道它昨天被推了几下。
核心要点:状态必须包含足够的信息,让你能预测未来,但又不能有多余的冗余信息。
我在做电机控制项目时遇到过一个问题。一开始我把电机的电流、转速、转子位置都当作状态,结果模型复杂得要命。后来发现,对于某些控制目标,电流和转速就够了,转子位置可以通过积分得到。嗯,这就是状态选择的问题。
2.2 状态变量的选择原则——怎么挑?
状态变量不是随便选的。选错了,模型要么太复杂,要么根本没法用。我总结了三条原则,都是实战中摔出来的经验。
原则一:独立性
状态变量之间不能有线性关系。说白了,你不能用一个状态变量直接算出另一个。比如你选了位置和速度,这没问题。但如果你选了位置和两倍的位置,那就完蛋了——它们不是独立的。
原则二:最小性
状态变量的个数要尽可能少,但又要能完整描述系统。这个「最少个数」其实就是系统的阶数。一个n阶微分方程,就需要n个状态变量。
我的经验:选状态变量时,先看看系统的储能元件有多少。一个电容是一个储能元件,一个电感也是一个。储能元件的个数,往往就是状态变量的个数。我在做电力电子项目时,这个原则帮我省了不少事。
原则三:可测性
理想情况下,状态变量应该是能测量到的。虽然状态观测器可以估计不可测的状态,但能直接测总是更靠谱。我曾经在一个项目中选了某个难以测量的物理量作为状态,结果调试时吃尽了苦头——观测器收敛慢,控制效果差。后来换了可测的状态变量,问题迎刃而解。
| 原则 | 说明 | 反面例子 |
|---|---|---|
| 独立性 | 状态变量线性无关 | 位置和两倍位置 |
| 最小性 | 个数等于系统阶数 | 二阶系统选了三个状态 |
| 可测性 | 优先选能测量的量 | 选了个测不了的内部变量 |
2.3 状态向量的概念——把状态打包
有了状态变量,咱们把它们排成一列,就成了状态向量。数学上这么写:
x(t) = [x₁(t), x₂(t), ..., xₙ(t)]ᵀ
这个向量里的每一个元素,就是一个状态变量。n就是系统的阶数。
为什么要搞成向量?因为方便啊。你想想看,一个n阶系统,如果用微分方程描述,那是一个n阶方程,解起来麻烦。但用状态空间法,就变成了n个一阶微分方程组成的方程组。一阶方程好解,而且可以用矩阵运算统一处理。
状态空间的标准形式:
ẋ(t) = A·x(t) + B·u(t)
y(t) = C·x(t) + D·u(t)
其中x(t)就是状态向量,A是系统矩阵,B是输入矩阵,C是输出矩阵,D是直馈矩阵。
我个人觉得,状态向量这个概念最大的好处,就是让复杂系统变得「整齐」。不管你是机械系统、电气系统还是热力系统,最后都能写成上面那个形式。统一了,就好分析,好设计。
2.4 自由系统与强迫系统——有没有外力?
这个区分其实很简单:自由系统没有外部输入,强迫系统有外部输入。
自由系统
数学上,自由系统就是u(t)=0的情况:
ẋ(t) = A·x(t)
系统的行为完全由初始状态决定。你给它一个初始条件,它就自己演化,没人管它。
我记得有一次做振动分析,一个悬臂梁在受到初始位移后自由振动。那就是典型的自由系统。它的解是:
x(t) = e^(A·t)·x(0)
这里的e^(A·t)叫状态转移矩阵,它描述了系统从初始状态怎么变到任意时刻的状态。
注意:自由系统不等于没有能量。它只是没有外部输入,但系统内部的能量可以相互转换。比如弹簧振子,动能和势能来回转换,但总能量守恒(如果没有阻尼的话)。
强迫系统
强迫系统就是有外部输入u(t):
ẋ(t) = A·x(t) + B·u(t)
系统的行为由两部分决定:初始状态和外部输入。
它的解是:
x(t) = e^(A·t)·x(0) + ∫₀ᵗ e^(A·(t-τ))·B·u(τ)dτ
你看,第一项是自由响应(初始状态引起的),第二项是强迫响应(外部输入引起的)。这个分解在实际工程中特别有用——你可以分别分析系统的固有特性和对外部输入的响应。
我曾经设计过一个温度控制系统。加热器是输入,环境温度是扰动。自由系统分析告诉我,不加控制时系统要花多久才能稳定;强迫系统分析告诉我,加多大功率的加热器才能达到目标温度。两者结合,控制器的参数就定下来了。
2.5 小结
这一章的内容,说白了就是给状态空间法打地基。状态是系统的「快照」,状态变量要独立、最小、可测,状态向量把这些变量打包成标准形式。自由系统和强迫系统的区分,让我们能分别看清系统的「本性」和「对外界的反应」。
下一章我们会聊状态空间模型的建立方法。到时候你会发现,选对了状态变量,建模就成功了一半。嗯,咱们下回见。