1. 线性系统状态方程求解概述
在控制系统分析与设计中,状态空间方法是描述系统动态行为的核心工具。与传统的传递函数方法相比,状态空间表达式能够更全面地刻画系统的内部状态变化,尤其适用于多输入多输出系统。本章将系统性地介绍线性系统状态方程的求解方法,包括定常系统和时变系统两种情况。
状态方程的解反映了系统状态随时间演变的规律,是分析系统稳定性、能控性和能观性的基础。理解这些求解方法,对于从事控制工程、机器人、航空航天等领域的技术人员至关重要。我们将从最基本的齐次方程入手,逐步深入到非齐次方程和时变系统的求解。
2. 线性定常齐次状态方程的解
2.1 基本概念与定义
线性定常齐次状态方程的一般形式为: ẋ(t) = Ax(t)
其中,x(t)∈Rⁿ是状态向量,A∈Rⁿˣⁿ是常系数矩阵。这个方程描述了系统在没有外部输入作用下的自由运动。
解这个方程的关键在于理解矩阵指数函数eᴬᵗ的概念。与标量指数函数类似,矩阵指数函数定义为无穷级数: eᴬᵗ = I + At + (A²t²)/2! + (A³t³)/3! + ...
这个级数对于所有有限t和A都是收敛的。矩阵指数函数具有以下重要性质:
- eᴬ⁽ᵗ¹⁺ᵗ²⁾ = eᴬᵗ¹eᴬᵗ²
- (eᴬᵗ)⁻¹ = e⁻ᴬᵗ
- d/dt(eᴬᵗ) = Aeᴬᵗ = eᴬᵗA
2.2 零输入响应解析
齐次方程的解x(t) = eᴬᵗx(0)称为系统的零输入响应,它完全由初始状态x(0)和系统矩阵A决定。这个解的物理意义是:系统从初始状态x(0)出发,按照eᴬᵗ确定的规律自由演化。
在实际应用中,理解零输入响应的行为对分析系统稳定性至关重要。当t→∞时:
- 如果eᴬᵗ→0,系统是渐近稳定的
- 如果eᴬᵗ有界,系统是稳定的
- 如果eᴬᵗ无界,系统是不稳定的
2.3 矩阵指数函数的计算方法
计算eᴬᵗ是求解齐次方程的关键步骤,常用的方法包括:
直接级数求和法: 对于简单矩阵,可以直接计算前几项求和。例如对于A = [0 1; 0 0],有: eᴬᵗ = I + At = [1 t; 0 1]
对角化方法: 如果A有n个线性无关的特征向量,则A可对角化为A = PΛP⁻¹,此时: eᴬᵗ = PeᴬᵗP⁻¹ 其中eᴬᵗ是对角矩阵,对角线元素为e^{λᵢt}
拉普拉斯变换法: 利用公式eᴬᵗ = L⁻¹{(sI-A)⁻¹} 先计算(sI-A)的逆矩阵,再逐项进行拉普拉斯反变换
凯莱-哈密顿定理法: 对于n×n矩阵A,eᴬᵗ可以表示为: eᴬᵗ = α₀(t)I + α₁(t)A + ... + α_{n-1}(t)Aⁿ⁻¹ 其中系数αᵢ(t)通过解线性方程组确定
计算技巧:对于高阶系统,通常结合使用多种方法。在实际工程计算中,可以借助MATLAB等工具的expm函数进行验证。
3. 状态转移矩阵及其应用
3.1 状态转移矩阵的定义与性质
状态转移矩阵Φ(t,t₀)定义为: Φ(t,t₀) = eᴬ⁽ᵗ⁻ᵗ⁰⁾
它描述了系统状态从时刻t₀到t的转移规律。状态转移矩阵具有以下重要性质:
- 初始条件:Φ(t₀,t₀) = I
- 半群性质:Φ(t₂,t₀) = Φ(t₂,t₁)Φ(t₁,t₀)
- 可逆性:Φ⁻¹(t,t₀) = Φ(t₀,t)
- 微分性质:dΦ(t,t₀)/dt = AΦ(t,t₀)
3.2 状态转移矩阵的物理意义
状态转移矩阵Φ(t,t₀)的第i列表示在t₀时刻施加单位脉冲在第i个状态变量上时,系统在t时刻的响应。换句话说,它描述了系统状态如何随着时间的推移而演变。
在实际工程中,状态转移矩阵可以帮助我们:
- 预测系统在未来任意时刻的状态
- 分析系统的能控性和能观性
- 设计状态观测器和控制器
3.3 状态转移矩阵的计算实例
考虑系统矩阵A = [0 1; -2 -3],计算其状态转移矩阵:
首先求特征值: det(λI-A) = λ² + 3λ + 2 = 0 ⇒ λ₁ = -1, λ₂ = -2
使用对角化方法: 找到特征向量构成P = [1 1; -1 -2] 则A = PΛP⁻¹,其中Λ = diag(-1,-2)
计算eᴬᵗ: eᴬᵗ = PeᴬᵗP⁻¹ = [2e⁻ᵗ - e⁻²ᵗ e⁻ᵗ - e⁻²ᵗ; -2e⁻ᵗ + 2e⁻²ᵗ -e⁻ᵗ + 2e⁻²ᵗ]
这个结果清晰地展示了系统各状态变量随时间变化的规律。
4. 线性定常非齐次状态方程的解
4.1 基本解的形式
非齐次状态方程的一般形式为: ẋ(t) = Ax(t) + Bu(t)
其解由两部分组成: x(t) = eᴬᵗx(0) + ∫₀ᵗ eᴬ⁽ᵗ⁻ᵗ⁰⁾Bu(τ)dτ
第一项是零输入响应,第二项是零状态响应。这个结果可以通过拉普拉斯变换或常数变易法推导得到。
4.2 典型输入信号的响应分析
脉冲输入响应: 当u(t) = δ(t)时,零状态响应为: x(t) = eᴬᵗB 这实际上是系统的脉冲响应矩阵
阶跃输入响应: 当u(t) = 1(t)时,零状态响应为: x(t) = A⁻¹(eᴬᵗ - I)B (假设A非奇异)
斜坡输入响应: 当u(t) = t时,零状态响应为: x(t) = (A⁻²(eᴬᵗ - I) - A⁻¹t)B
实际应用提示:在工程实践中,通常通过数值积分方法计算非齐次方程的解,特别是当输入信号复杂时。MATLAB中的lsim函数就是基于这种原理实现的。
4.3 解的物理意义解释
非齐次方程的解表明,系统的总响应可以分解为:
- 由初始条件引起的自由响应(零输入响应)
- 由外部输入引起的强迫响应(零状态响应)
这种分解符合线性系统的叠加原理,为分析复杂输入下的系统行为提供了便利。在控制系统设计中,我们常常通过设计输入u(t)来使系统达到期望的状态轨迹。
5. 线性时变系统的求解
5.1 时变系统的特点
线性时变系统的状态方程为: ẋ(t) = A(t)x(t) + B(t)u(t)
与定常系统相比,时变系统的求解更为复杂,主要因为:
- 矩阵指数函数的概念不能直接应用
- 状态转移矩阵没有统一的解析表达式
- 解的稳定性分析更加困难
5.2 状态转移矩阵的性质
对于时变系统,状态转移矩阵Φ(t,t₀)满足:
- 微分方程:∂Φ(t,t₀)/∂t = A(t)Φ(t,t₀)
- 初始条件:Φ(t₀,t₀) = I
- 半群性质:Φ(t,t₀) = Φ(t,t₁)Φ(t₁,t₀)
然而,与定常系统不同,时变系统的状态转移矩阵一般不能表示为矩阵指数函数的形式。
5.3 求解方法与应用限制
时变系统状态转移矩阵的求解方法包括:
- 级数展开法(Peano-Baker级数)
- 数值积分方法
- 特殊情况下可以找到解析解
在实际工程中,时变系统的求解主要面临两个挑战:
- 计算复杂度高,特别是对于高阶系统
- 稳定性分析困难,不能简单地通过特征值判断
因此,时变系统的理论结果主要用于定性分析,而在实际计算中往往采用数值方法或近似处理。
6. 工程应用中的实际问题与解决策略
6.1 数值计算的稳定性问题
在计算矩阵指数函数时,直接使用定义式可能导致数值不稳定。推荐的做法是:
- 使用缩放-平方算法:eᴬ = (eᴬ/2^s)^(2^s)
- 采用Pade近似等数值稳定的算法
- 利用MATLAB等专业软件中的优化函数
6.2 高阶系统的简化处理
对于高阶系统,直接求解状态方程可能不现实。常用的简化方法包括:
- 模态截断:保留主导模态,忽略高频模态
- 奇异摄动:将系统分为快慢子系统分别处理
- 模型降阶:使用平衡截断等方法降低系统阶数
6.3 非线性系统的线性化处理
许多实际系统本质上是非线性的,可以在工作点附近进行线性化:
- 泰勒展开法:保留一阶项
- 反馈线性化:通过非线性变换将系统转化为线性形式
- 分段线性化:在不同区域采用不同的线性模型
在实际控制工程中,理解这些状态方程求解方法不仅有助于分析系统行为,还能指导控制器设计。例如,在最优控制中,需要频繁计算状态转移矩阵来求解Riccati方程;在状态估计中,状态转移矩阵是设计Kalman滤波器的基础。