3. 系统建模

在MPC约束优化与滚动控制的工程实现中,模型是预测未来轨迹的唯一依据。模型是否准确、离散化是否合理、状态是否可测、非线性是否被恰当处理,直接决定滚动优化能否收敛到可行且稳定的控制量。本节围绕连续与离散状态空间模型、传递函数、状态观测器与模型线性化四条主线,建立从物理对象到可计算预测模型的完整链路。

一、连续状态空间与离散化:预测模型的起点

连续被控对象通常写成标准状态空间形式:

ẋ(t) = A x(t) + B u(t) + E d(t)
 y(t) = C x(t) + D u(t)

其中 x 为状态,u 为控制输入,d 为可测或不可测扰动,y 为量测输出。MPC在数字控制器中以固定采样周期 Ts 运行,因此必须把连续模型离散化为 x(k+1)=Ad x(k)+Bd u(k)。最常用的方法是零阶保持(ZOH)离散化:

Ad = exp(A·Ts)
Bd = ∫₀^{Ts} exp(A·τ) dτ · B

当 Ts 远小于系统最小时间常数时,也可用前向欧拉近似 Ad≈I+A·Ts、Bd≈B·Ts,计算量小但精度有限。离散化步长必须与MPC预测步长、控制步长一致,否则预测轨迹与实际响应会出现系统性偏差。对于刚性系统,建议采用矩阵指数或双线性变换,避免欧拉法在大步长下失稳。

二、传递函数与状态空间的相互转换

传递函数 G(s)=C(sI−A)⁻¹B+D 描述输入输出关系,适合频域分析与辨识;状态空间则便于处理多变量、初始条件与约束。两者可通过可控标准型、可观标准型互相转换。在MPC中,若对象以传递函数给出,可先转为状态空间再离散化,便于统一处理多输入多输出与状态约束。

模型形式适用场景MPC中的角色注意事项
连续状态空间物理建模、机理分析离散化前的原始模型需确认A、B、C、D量纲一致
离散状态空间数字控制器实现预测方程的直接载体Ts与预测步长必须匹配
传递函数频域辨识、单变量分析转状态空间后使用多变量时需注意耦合
状态观测器状态不可测或含噪声提供预测所需状态估计观测器极点应快于控制器
线性化模型非线性对象工作点附近局部线性MPC的预测模型工作点漂移需重新线性化

三、状态观测器:让不可测状态可预测

MPC的预测方程需要完整状态 x(k)。若部分状态无法直接测量,必须设计状态观测器。Luenberger观测器形式为:

x̂(k+1) = Ad x̂(k) + Bd u(k) + L(y(k) − C x̂(k))
ŷ(k)   = C x̂(k)

增益 L 通过极点配置或卡尔曼滤波确定。工程上常采用卡尔曼滤波,因为它在噪声统计已知时能给出最小方差估计,并且天然适合与MPC的滚动时域结合。观测器极点应比闭环控制器极点快2~5倍,保证估计误差在预测窗口内收敛。若观测器带宽过高,会放大测量噪声,导致控制量抖动;带宽过低,则状态估计滞后,预测轨迹偏离真实状态。

在MPC中,观测器与预测模型必须使用同一套离散矩阵 Ad、Bd、C,否则估计状态与预测状态不在同一坐标系,滚动优化会持续产生稳态误差。

四、模型线性化:非线性对象的局部近似

许多工业对象本质非线性,如机器人动力学、化工反应器、飞行器姿态。MPC若直接使用非线性模型,会带来非凸优化问题。常用做法是在工作点 (x₀,u₀) 处进行一阶泰勒展开:

ẋ ≈ f(x₀,u₀) + Aₗ(x−x₀) + Bₗ(u−u₀)
Aₗ = ∂f/∂x |(x₀,u₀)
Bₗ = ∂f/∂u |(x₀,u₀)

定义偏差变量 Δx=x−x₀、Δu=u−u₀,得到线性增量模型 Δẋ=AₗΔx+BₗΔu。该模型仅在平衡点附近有效,因此需要配合增益调度或滚动线性化:每个采样时刻用当前状态重新计算 Aₗ、Bₗ,再离散化并送入MPC。对于强非线性系统,还可采用反馈线性化或分段仿射模型,但会显著增加在线计算量。

从物理对象到MPC预测模型的建模链路 物理对象 非线性微分方程 ẋ = f(x,u,d) 工作点线性化 一阶泰勒展开 Δẋ = AₗΔx + BₗΔu 连续状态空间 ẋ = Ax + Bu y = Cx + Du ZOH离散化 Ad = exp(A·Ts) Bd = ∫exp(Aτ)dτ·B 传递函数 G(s)=C(sI−A)⁻¹B+D 状态观测器 x̂(k+1)=Ad x̂+Bd u+L(y−Cx̂) MPC预测模型 x(k+1)=Ad x(k)+Bd u(k) · y(k)=C x(k) 滚动时域内预测未来N步状态与输出 关键约束:离散步长与预测步长一致 · 观测器极点快于控制器 · 线性化工作点随状态滚动更新

五、案例:倒立摆MPC建模流程

以倒立摆为例,物理模型为非线性微分方程,状态包括小车位置、速度、摆角、角速度。首先在竖直平衡点 (x₀=0,u₀=0) 处线性化,得到 Aₗ、Bₗ;然后以 Ts=0.02 s 进行ZOH离散化,得到 Ad、Bd;由于摆角速度难以直接测量,设计卡尔曼观测器估计完整状态;最后将离散模型与观测器接入MPC,预测未来20步,控制步长5步。若工作点偏离较大,每50 ms重新线性化一次,保证预测精度。

常见误区:直接用连续模型代入MPC预测方程,忽略离散化误差;或观测器与预测模型使用不同采样周期,导致状态估计与预测状态错位。另一个高频问题是线性化后未更新工作点,系统在大范围运动时预测失效,控制量饱和。

六、建模检查清单

  • 连续模型是否与物理对象量纲、符号一致?
  • 离散化方法是否与Ts匹配,是否验证过离散模型与连续模型的阶跃响应一致性?
  • 传递函数转状态空间时是否检查可控性与可观性?
  • 观测器增益是否通过极点配置或卡尔曼滤波整定,带宽是否合适?
  • 线性化工作点是否随滚动时域更新,偏差变量是否在MPC中正确还原?
  • 预测模型、观测器、约束条件是否使用同一套状态定义与坐标?

系统建模是MPC约束优化与滚动控制的地基。只有把连续对象正确离散化、把不可测状态可靠估计、把非线性对象在工作点附近合理线性化,滚动优化才能在每一步获得可信的预测轨迹,进而输出满足约束的控制量。