2. 数学基础回顾:状态空间表达式、能控性与能观性的直观理解
好,咱们正式开始之前,先把工具箱里的老伙计们擦亮一下。
极点配置设计法,说白了就是一套“你想让系统怎么动,我就把极点放哪儿”的技术。但要想玩转它,有三个基础概念必须得吃透:状态空间表达式、能控性和能观性。
我当年刚入行时,觉得这些就是纯数学推导,枯燥得很。直到有一次调一个电机伺服系统,死活调不出响应速度,后来才发现是系统本身某个状态根本“使唤不动”——这就是能控性出了问题。嗯,从那以后我再也不敢小看这些概念了。
2.1 状态空间表达式:系统的“内部画像”
传递函数描述的是系统的“输入→输出”关系,像个黑盒子。而状态空间表达式,是把黑盒子拆开,看看里面到底有几个储能元件、它们之间怎么互相影响。
标准形式长这样:
ẋ(t) = A x(t) + B u(t)
y(t) = C x(t) + D u(t)
我来拆解一下:
- x(t) —— 状态向量。代表系统内部所有“记忆”元件当前的数值。比如电容电压、电感电流、弹簧位移、飞轮转速。
- ẋ(t) —— 状态的变化率。也就是下一瞬间状态会怎么变。
- u(t) —— 输入向量。你给系统施加的控制量。
- y(t) —— 输出向量。你能测量到的信号。
- A 矩阵 —— 系统矩阵。描述状态之间如何互相耦合。这是系统的“内禀特性”。
- B 矩阵 —— 输入矩阵。描述输入信号能影响到哪些状态。
- C 矩阵 —— 输出矩阵。描述哪些状态能被你“看见”。
- D 矩阵 —— 直通矩阵。输入直接跳到输出,大多数物理系统里 D=0。
2.2 能控性:你能否“指哪打哪”?
能控性,问的是一个很实际的问题:通过调整输入 u(t),你能不能把系统的所有状态,从任意初始值,拽到任意你想要的目标值?
你想想看,如果某个状态变量根本不受输入影响,那你想控制它就是痴人说梦。比如一个双容水箱系统,如果进水阀只能控制第一个水箱,第二个水箱只能靠重力流下去,那你想让第二个水箱的水位瞬间跳变——做不到,因为输入不直接作用在它上面。
判断能控性的数学工具是能控性矩阵:
Qc = [B AB A²B ... Aⁿ⁻¹B]
如果这个矩阵满秩(秩等于 n,系统阶数),那系统就是完全能控的。
我在项目中遇到过这样一个坑:设计一个四轴飞行器的姿态控制器,按照简化模型算出来能控性矩阵满秩,信心满满地做了极点配置。结果试飞时发现偏航轴响应特别慢。查了半天,原来是实际执行器的饱和特性导致在某些工况下,偏航通道的有效控制量几乎为零——数学上能控,工程上“实际不能控”。所以,能控性分析不仅要看矩阵秩,还要考虑执行器的物理限制。
2.3 能观性:你能否“洞悉全局”?
能观性,问的是另一个问题:通过一段时间内测量输出 y(t) 和输入 u(t),你能不能反推出系统内部所有状态的初始值?
说白了,就是你的传感器够不够“聪明”。
举个例子,一个倒立摆系统,你只测量了小车的位移,但不知道摆杆的角度——那你就无法知道系统的完整状态。这种情况下,即使你能控制,你也无法实现状态反馈,因为你根本不知道状态值是多少。
判断能观性的工具是能观性矩阵:
Qo = [C CA CA² ... CAⁿ⁻¹]ᵀ
如果这个矩阵满秩,系统就是完全能观的。
2.4 三者关系:一张图说清楚
下面这张 SVG 图,是我自己梳理这三者关系时画的。它帮你把“状态空间→能控性→能观性→极点配置”这条线串起来。
2.5 一个简单的例子:RC电路
光说理论不过瘾,咱们看个具体例子。一个 RC 电路,输入是电压源 u,输出是电容两端电压 y,状态变量就是电容电压 x。
状态方程:
ẋ = (-1/RC) x + (1/RC) u
y = x
所以:
- A = -1/RC, B = 1/RC, C = 1, D = 0
- 能控性矩阵 Qc = [B] = [1/RC],秩为1,满秩 → 能控
- 能观性矩阵 Qo = [C] = [1],秩为1,满秩 → 能观
这个系统既可控又可观,所以我们可以通过状态反馈(其实就是比例反馈 u = -Kx)来改变系统的极点(即时间常数 τ = RC)。
2.6 小结:记住这三句话
- 状态空间表达式:系统的“解剖图”,告诉你内部结构。
- 能控性:你能否“指挥”所有状态?——决定了极点配置是否可行。
- 能观性:你能否“看到”所有状态?——决定了状态反馈是否需要观测器。
嗯,基础就这些。有了这些工具,下一节我们就可以正式进入极点配置的核心算法了。到时候你会发现,只要系统能控,配置极点就像在复平面上“挪棋子”一样——你放哪儿,系统就怎么动。
公众号:蓝海资料掘金营,微信deep3321