自动控制:鲁棒控制的原理和设计
引言
在实际控制系统中,由于模型不确定性、外部扰动、参数变化等因素,传统的控制方法难以保证系统在各种情况下的性能。这时,鲁棒控制(Robust Control)应运而生。鲁棒控制的主要目标是设计一个控制器,使得系统在面对各种不确定性和扰动时,仍能保持稳定性并满足性能要求。本文将介绍鲁棒控制的基本原理、设计方法以及相关的理论和公式。
鲁棒控制的基本原理
鲁棒控制是针对系统的不确定性和扰动设计的控制方法。一个系统的鲁棒性指的是它在面对不确定性时,保持稳定性和性能的能力。鲁棒控制器的设计目标是在不确定性范围内,确保系统的稳定性,并尽可能优化系统的性能。
鲁棒控制通常关注以下几个方面:
- 模型不确定性:系统的数学模型可能不精确或有变化,鲁棒控制需要处理这些不确定性。
- 外部扰动:外界的干扰信号会影响系统的性能,鲁棒控制要尽量减小这些影响。
- 参数变化:系统的参数可能随时间或环境变化,鲁棒控制要确保在参数变化时系统仍然稳定。
H∞ 控制理论
H∞ 控制理论是鲁棒控制中最常用的方法之一,它通过优化控制系统的 H∞ 范数来设计控制器。H∞ 范数表示系统从输入到输出的最大增益,用于衡量系统对扰动的抑制能力。
系统描述
考虑线性时不变系统,状态空间表示为:
x ˙ ( t ) = A x ( t ) + B 1 w ( t ) + B 2 u ( t ) , z ( t ) = C 1 x ( t ) + D 11 w ( t ) + D 12 u ( t ) , y ( t ) = C 2 x ( t ) + D 21 w ( t ) + D 22 u ( t ) , \begin{aligned} \dot{x}(t) &= A x(t) + B_1 w(t) + B_2 u(t), \\ z(t) &= C_1 x(t) + D_{11} w(t) + D_{12} u(t), \\ y(t) &= C_2 x(t) + D_{21} w(t) + D_{22} u(t), \end{aligned} x˙(t)z(t)y(t)=Ax(t)+B1w(t)+B2u(t),=C1x(t)+D11w(t)+D12u(t),=C2x(t)+D21w(t)+D22u(t),
其中:
- x ( t ) x(t) x(t) 是系统状态向量,
- u ( t ) u(t) u(t) 是控制输入,
- w ( t ) w(t) w(t) 是外部扰动,
- z ( t ) z(t) z(t) 是控制目标(如性能输出),
- y ( t ) y(t) y(t) 是测量输出。
H∞ 控制问题
H∞ 控制问题的目标是设计一个控制器 K ( s ) K(s) K(s),使得闭环系统的 H∞ 范数小于某一给定值 γ \gamma γ,即:
∥ T z w ( s ) ∥ ∞ < γ , \|T_{zw}(s)\|_\infty < \gamma, ∥Tzw(s)∥∞<γ,
其中, T z w ( s ) T_{zw}(s) Tzw(s) 是从扰动 w ( t ) w(t) w(t) 到性能输出 z ( t ) z(t) z(t) 的传递函数矩阵。
H∞ 控制器的设计步骤
-
建立系统模型:确定系统的状态空间模型,包括系统矩阵 A , B 1 , B 2 , C 1 , D 11 , D 12 , C 2 , D 21 , D 22 A, B_1, B_2, C_1, D_{11}, D_{12}, C_2, D_{21}, D_{22} A,B1,B2,C1,D11,D12,C2,D21,D22。
-
选择权重函数:选择合适的权重函数来调整系统的性能指标。通常通过定义加权传递函数矩阵 W ( s ) W(s) W(s) 来实现。
-
求解 H∞ 问题:通过解线性矩阵不等式(LMI)或黎卡提方程来求解控制器增益矩阵。
-
仿真与验证:通过仿真验证控制器的鲁棒性和性能,并根据需要进行调试和优化。
线性矩阵不等式(LMI)方法
在 H∞ 控制中,线性矩阵不等式(LMI)是常用的求解方法。LMI 的形式为:
A ( x ) + B ( x ) y C ( x ) ≺ 0 , A(\mathbf{x}) + B(\mathbf{x}) \mathbf{y} C(\mathbf{x}) \prec 0, A(x)+B(x)yC(x)≺0,
其中,矩阵 A , B , C A, B, C A,B,C 是关于变量 x , y \mathbf{x}, \mathbf{y} x,y 的线性函数。
LMI 方法的优势在于它能够处理多种不确定性,并提供全局最优解。许多控制问题(如 H∞ 控制、鲁棒控制)都可以转化为 LMI 问题,并通过数值优化方法求解。
鲁棒控制器设计实例
考虑一个具有不确定性的单输入单输出(SISO)系统,系统模型为:
x ˙ ( t ) = [ 0 1 − 1 1 + Δ ] x ( t ) + [ 0 1 ] u ( t ) , y ( t ) = [ 1 0 ] x ( t ) , \begin{aligned} \dot{x}(t) &= \begin{bmatrix} 0 & 1 \\ -1 & 1+\Delta \end{bmatrix} x(t) + \begin{bmatrix} 0 \\ 1 \end{bmatrix} u(t), \\ y(t) &= \begin{bmatrix} 1 & 0 \end{bmatrix} x(t), \end{aligned} x˙(t)y(t)=[0−111+Δ]x(t)+[01]u(t),=[10]x(t),
其中, Δ \Delta Δ 表示系统的不确定性。
Python代码示例
import numpy as np
import scipy.linalg as la
import control as ctrl
# 系统矩阵定义
A = np.array([[0, 1], [-1, 1]])
B = np.array([[0], [1]])
C = np.array([[1, 0]])
D = np.array([[0]])
# 定义不确定性范围
Delta_max = 0.1
Delta_min = -0.1
# 状态反馈控制器设计
# 通过选择K矩阵使得闭环系统满足鲁棒性要求
K = np.array([[-2, -3]])
# 闭环系统矩阵
Acl = A + B @ K
# 检查闭环系统的稳定性
eig_vals = la.eigvals(Acl)
print("闭环系统的特征值:", eig_vals)
# 验证鲁棒性
stable = all(np.real(eig_vals) < 0)
if stable:
print("闭环系统在不确定性范围内稳定")
else:
print("闭环系统不稳定")
代码解释
- 系统矩阵:定义系统的状态空间矩阵 A A A 和输入矩阵 B B B。
- 不确定性范围:设定系统不确定性的上下限。
- 状态反馈控制器:选择反馈增益矩阵 K K K。
- 闭环系统矩阵:计算闭环系统矩阵 A c l A_{cl} Acl。
- 鲁棒性验证:通过计算闭环系统特征值判断系统在不确定性范围内的稳定性。
结论
鲁棒控制器设计的核心是确保系统在存在不确定性和扰动的情况下仍然稳定并且性能优良。通过 H∞ 控制理论和 LMI 方法,可以有效地设计出满足鲁棒性要求的控制器。鲁棒控制器广泛应用于航空航天、机械工程、电力系统等领域,是现代控制理论的重要分支。
本文介绍了鲁棒控制的基本原理、H∞ 控制理论、线性矩阵不等式方法以及鲁棒控制器的设计步骤。理解和应用这些理论,对于解决复杂系统中的不确定性问题至关重要。