1. 状态空间描述基础概念
1.1 状态空间的核心要素
在控制理论的发展历程中,状态空间方法标志着从经典控制理论到现代控制理论的重要跨越。与传统的传递函数方法不同,状态空间描述不仅关注系统的输入输出关系,更深入揭示了系统内部状态的动态变化规律。
状态变量是状态空间理论的核心概念,它是指能够完全表征系统运动状态的最小一组变量。这组变量需要满足三个关键条件:
- 独立性:各状态变量间不存在函数依赖关系
- 完备性:能完整描述系统的动态特性
- 最小性:没有冗余变量
实际工程中选择状态变量时,通常会优先考虑物理意义明确的量,如机械系统中的位置和速度,电路中的电容电压和电感电流等。这不仅便于物理实现,也有利于后续的状态观测和控制设计。
状态向量是由n个状态变量组成的列向量:
code复制x = [x₁, x₂, ..., xₙ]ᵀ
状态空间则是以这些状态变量为坐标轴构成的n维空间,系统在任何时刻的状态都对应这个空间中的一个点,其运动轨迹则形成状态轨迹。
1.2 状态方程的数学表达
状态空间描述包含两个基本方程:
-
状态方程(动态方程):
code复制ẋ(t) = Ax(t) + Bu(t)描述系统状态随时间变化的规律
-
输出方程(观测方程):
code复制y(t) = Cx(t) + Du(t)表征系统输出与状态的关系
对于线性时不变(LTI)系统,其状态空间表达式具有标准形式:
code复制⎧ ẋ = Ax + Bu
⎨
⎩ y = Cx + Du
其中:
- A:系统矩阵(n×n),决定系统固有特性
- B:控制矩阵(n×p),反映输入对状态的影响
- C:输出矩阵(q×n),决定状态对输出的贡献
- D:直接传递矩阵(q×p),表示输入到输出的直接耦合
在大多数物理系统中,D矩阵通常为零,这类系统称为惯性系统。因为实际系统的输出往往不会立即响应输入变化,而是通过状态的动态变化来传递。
2. 状态空间表达式的建立方法
2.1 从物理机理直接建模
机理法适用于具有明确物理规律的系统。以电路系统为例,建立状态方程的典型步骤:
- 选择独立储能元件(电容、电感)的变量作为状态变量
- 应用基尔霍夫定律列写微分方程
- 将高阶微分方程转化为一阶方程组
- 整理成矩阵形式
示例:RLC电路建模
考虑如图所示的串联RLC电路:
code复制[电路图]
选择电容电压v_C和电感电流i_L作为状态变量:
code复制x = [v_C; i_L]
应用KVL和元件特性方程:
code复制v_R + v_L + v_C = u
L(di_L/dt) + Ri_L + v_C = u
C(dv_C/dt) = i_L
整理得到状态方程:
code复制⎡dv_C/dt⎤ ⎡ 0 1/C ⎤⎡v_C⎤ ⎡0⎤
⎢ ⎥ = ⎢ ⎥⎢ ⎥ + ⎢ ⎥u
⎣di_L/dt⎦ ⎣-1/L -R/L ⎦⎣i_L⎦ ⎣1/L⎦
2.2 从微分方程转换
对于已知的高阶微分方程,可通过以下方法转换为状态空间描述:
情况1:输入无导数项(m=0)
对于n阶微分方程:
code复制y⁽ⁿ⁾ + a₁y⁽ⁿ⁻¹⁾ + ... + aₙy = bu
选择状态变量:
code复制x₁ = y
x₂ = ẏ
...
xₙ = y⁽ⁿ⁻¹⁾
得到能控标准型:
code复制ẋ = ⎡ 0 1 ⋯ 0 ⎤ ⎡0⎤
⎢ ⋮ ⋮ ⋱ ⋮ ⎥x + ⎢⋮⎥u
⎣-aₙ -aₙ₋₁ ⋯ -a₁⎦ ⎣1⎦
y = [b 0 ⋯ 0]x
情况2:输入含导数项(m≠0)
此时需要引入中间变量避免状态方程中出现输入导数。以三阶系统为例:
code复制y⃛ + a₁ÿ + a₂ẏ + a₃y = b₀ü + b₁u̇ + b₂u
通过转换得到:
code复制β₀ = b₀
β₁ = b₁ - a₁β₀
β₂ = b₂ - a₁β₁ - a₂β₀
状态方程为:
code复制ẋ = ⎡ 0 1 0 ⎤ ⎡β₁⎤
⎢ 0 0 1 ⎥x + ⎢β₂⎥u
⎣-a₃ -a₂ -a₁⎦ ⎣β₃⎦
y = [1 0 0]x + β₀u
2.3 从传递函数转换
直接分解法
将传递函数:
code复制G(s) = (b₁sⁿ⁻¹ + ... + bₙ)/(sⁿ + a₁sⁿ⁻¹ + ... + aₙ)
转换为能控标准型:
code复制A = ⎡ 0 1 ⋯ 0 ⎤ B = ⎡0⎤
⎢ ⋮ ⋮ ⋱ ⋮ ⎥ ⎢⋮⎥
⎣-aₙ -aₙ₋₁ ⋯ -a₁⎦ ⎣1⎦
C = [bₙ bₙ₋₁ ⋯ b₁]
并联分解法
适用于传递函数可分解为部分分式的情况。对单极点系统:
code复制G(s) = Σ cᵢ/(s-pᵢ)
得到对角标准型:
code复制A = diag(p₁,...,pₙ), B = [1 ... 1]ᵀ
C = [c₁ ... cₙ]
实际应用中,并联分解法在模型降阶和系统分析中特别有用,因为它使系统实现了状态解耦。
3. 系统组合与线性变换
3.1 子系统互联
并联连接
两个子系统G₁(s)和G₂(s)并联时:
code复制A = blkdiag(A₁,A₂)
B = [B₁; B₂]
C = [C₁ C₂]
D = D₁ + D₂
传递函数矩阵:
code复制G(s) = G₁(s) + G₂(s)
串联连接
子系统串联时(G₁在前):
code复制A = [A₁ 0 ] B = [ B₁ ]
[B₂C₁ A₂ ] [B₂D₁ ]
C = [D₂C₁ C₂]
D = D₂D₁
传递函数矩阵:
code复制G(s) = G₂(s)G₁(s)
注意矩阵乘法的不可交换性,串联顺序不同会导致不同的组合系统特性。
3.2 线性变换与标准形
对角标准形
当A有n个互异特征值λᵢ时,可通过模态矩阵P(由特征向量组成)实现对角化:
code复制Ā = P⁻¹AP = diag(λ₁,...,λₙ)
B̄ = P⁻¹B
C̄ = CP
对于友矩阵形式的A,P可取范德蒙矩阵。
约当标准形
当A有重特征值且几何重数小于代数重数时,需引入广义特征向量,得到约当形:
code复制J = diag(J₁,...,Jₖ)
其中每个约当块形式为:
code复制Jᵢ = ⎡λᵢ 1 ⋯ 0⎤
⎢ ⋮ ⋮ ⋱ ⋮⎥
⎣0 0 ⋯ λᵢ⎦
工程应用提示:
- 对角化可简化系统分析,但会丢失部分物理意义
- 数值计算时需注意病态矩阵问题
- 保持矩阵稀疏性可提高计算效率
4. 离散时间系统描述
离散系统的状态空间描述为:
code复制x(k+1) = Gx(k) + Hu(k)
y(k) = Cx(k) + Du(k)
其中G称为状态转移矩阵。离散系统的分析与连续系统类似,主要区别在于:
- 使用z变换代替拉氏变换
- 稳定性判据基于特征值模长
- 采样周期选择影响系统特性
从连续到离散的转换方法包括:
- 零阶保持法
- 一阶保持法
- 双线性变换(Tustin)法
在实际数字控制器设计中,采样周期的选择需要兼顾系统带宽、抗混叠要求和计算资源限制,通常取系统上升时间的1/10~1/30。