4、状态空间表达式(二):微分方程与传递函数向状态空间的转换,能控标准型与能观标准型
好,我们接着往下聊。
上一章我们把状态空间表达式的基本概念捋了一遍。这一章,咱们要干点实际活儿——怎么把一个现成的微分方程或者传递函数,变成状态空间表达式。
说白了,就是“翻译”工作。把一种语言(微分方程/传递函数)翻译成另一种语言(状态空间)。翻译得好不好,直接决定了你后续能不能方便地做控制设计。
我个人习惯,拿到一个系统,先看能不能写成能控标准型或能观标准型。为什么?因为这两种形式,能让你一眼看出系统的能控性和能观性。这在工程上太重要了。
4.1 从微分方程到状态空间
先看最简单的场景:一个单输入单输出(SISO)系统,用微分方程描述。
假设我们有这样一个微分方程:
y''' + 3y'' + 2y' + y = u
嗯,三阶系统。怎么变成状态空间?
我教你一个最直接的方法——选状态变量。
选法很简单:
- 令 x₁ = y
- 令 x₂ = y'
- 令 x₃ = y''
那么,x₁' = x₂,x₂' = x₃,x₃' = y'''。
而根据原方程,y''' = -3y'' - 2y' - y + u = -3x₃ - 2x₂ - x₁ + u。
写成矩阵形式:
⎡x₁'⎤ ⎡ 0 1 0⎤ ⎡x₁⎤ ⎡0⎤
⎢x₂'⎥ = ⎢ 0 0 1⎥ ⎢x₂⎥ + ⎢0⎥ u
⎣x₃'⎦ ⎣-1 -2 -3⎦ ⎣x₃⎦ ⎣1⎦
y = [1 0 0] ⎡x₁⎤
⎢x₂⎥
⎣x₃⎦
你看,A矩阵的最后一行,就是微分方程系数的负值,顺序是反的。B矩阵最后一个是1,C矩阵第一个是1。
4.2 从传递函数到状态空间
实际工作中,我们更多时候拿到的是传递函数。比如:
G(s) = (s + 2) / (s³ + 3s² + 2s + 1)
怎么转?
这里有个关键点:传递函数分两种情况——分母阶次高于分子阶次(严格真有理函数),和分母阶次等于分子阶次(真有理函数)。
大多数物理系统都是前者。如果是后者,需要先做一步多项式除法,分离出直接传递项D。
对于严格真有理函数,我推荐两种标准型:
4.3 能控标准型
能控标准型,说白了就是让A矩阵和B矩阵呈现出一种特殊结构,让你一眼就能判断系统是否能控。
对于上面的传递函数:
G(s) = (s + 2) / (s³ + 3s² + 2s + 1)
能控标准型是这样的:
A = ⎡ 0 1 0⎤
⎢ 0 0 1⎥
⎣-1 -2 -3⎦
B = ⎡0⎤
⎢0⎥
⎣1⎦
C = [2 1 0]
D = 0
注意看:A矩阵是“友矩阵”形式,最后一行是分母系数的负值。B矩阵是[0 0 1]ᵀ。C矩阵是分子系数的顺序排列。
4.4 能观标准型
能观标准型,是能控标准型的“对偶”。
同一个传递函数,能观标准型长这样:
A = ⎡ 0 0 -1⎤
⎢ 1 0 -2⎥
⎣ 0 1 -3⎦
B = ⎡2⎤
⎢1⎥
⎣0⎦
C = [0 0 1]
D = 0
你看,A矩阵是能控标准型A矩阵的转置。B和C也互换了角色。
能观标准型的好处是:能观性矩阵的秩一定是满的。如果你需要设计状态观测器,用这种形式最方便。
4.5 两种标准型的对比
| 特性 | 能控标准型 | 能观标准型 |
|---|---|---|
| A矩阵结构 | 友矩阵(最后一行有系数) | 友矩阵的转置(最后一列有系数) |
| B矩阵 | [0 ... 0 1]ᵀ | 分子系数列向量 |
| C矩阵 | 分子系数行向量 | [0 ... 0 1] |
| 主要用途 | 极点配置、控制器设计 | 状态观测器设计 |
| 能控性 | 必然能控 | 不一定 |
| 能观性 | 不一定 | 必然能观 |
你想想看,有了这个表,你拿到一个系统后,就能根据你的设计目标,选择合适的形式。
4.6 实际工程中的选择
我在实际项目中,一般这样选:
- 要做控制器设计(极点配置) → 用能控标准型。因为B矩阵简单,设计反馈增益K很方便。
- 要做状态观测器 → 用能观标准型。因为C矩阵简单,设计观测器增益L很方便。
- 系统阶次高,需要降阶 → 两种都不合适,用平衡实现(以后会讲)。
嗯,这里要注意:能控标准型和能观标准型,并不是唯一的转换方式。你完全可以用相似变换,把一种形式变成另一种。但既然有现成的标准型,何必自己折腾呢?
4.7 小结
这一章我们干了三件事:
- 从微分方程直接写出状态空间表达式(相变量法)
- 从传递函数写出能控标准型
- 从传递函数写出能观标准型
说白了,就是学会了“翻译”。
下一章,我们会讲状态空间的解——也就是给定初始状态和输入,怎么算出系统的响应。这是状态空间法的核心计算,也是后续设计的基础。
准备好了吗?我们继续。