4. 线性MPC建模

线性模型预测控制(MPC)是工业过程控制与运动控制领域应用最广泛的一类先进控制算法。其核心思想是在每个采样时刻,基于系统的线性状态空间模型,对未来有限时域内的系统行为进行预测,并通过求解一个带约束的二次型优化问题,确定当前时刻的最优控制输入。本章将系统讲解线性MPC建模的三个核心环节:状态空间模型的建立与离散化、约束的分类与处理策略、以及二次型目标函数的工程化设计方法。这三者共同构成了线性MPC从理论到工程落地的完整闭环。

线性MPC建模三要素与信号流 ① 线性状态空间模型 x(k+1)=Ax(k)+Bu(k) y(k)=Cx(k)+Du(k) 离散化:ZOH / Tustin 增广:积分器 + 扰动模型 ② 约束处理 u_min ≤ u ≤ u_max Δu_min ≤ Δu ≤ Δu_max y_min ≤ y ≤ y_max 软约束 + 松弛变量 ③ 二次型目标函数 J = Σ‖y-y_ref‖²_Q + Σ‖Δu‖²_R Q: 输出权重矩阵 R: 控制增量权重矩阵 QP求解器 → 最优控制序列 u*(k|k) 滚动时域:仅执行第一个控制量 u*(k),下一时刻重新预测 y(k)反馈 模型预测 → 约束校验 → 目标优化 → 滚动实施 三者耦合关系:模型精度决定预测质量,约束决定可行域,目标函数决定控制品质

4.1 线性状态空间模型:从连续到离散的工程化构建

线性MPC的预测能力完全依赖于被控对象的数学模型。在工程实践中,我们通常从机理建模或系统辨识获得连续时间状态空间模型,再通过离散化处理适配数字控制器的采样周期。一个标准的连续线性时不变系统可表示为:

dx/dt = A_c·x(t) + B_c·u(t)
y(t) = C·x(t) + D·u(t)

其中,x∈Rⁿ为状态向量,u∈Rᵐ为控制输入,y∈Rᵖ为被控输出。A_c为系统矩阵,B_c为输入矩阵,C为输出矩阵,D为前馈矩阵(通常为零矩阵)。在MPC中,我们更关心离散时间模型,因为优化问题在每个采样周期k上求解。采用零阶保持器(ZOH)离散化方法,得到:

x(k+1) = A·x(k) + B·u(k)
y(k) = C·x(k) + D·u(k)

其中,A = e^(A_c·Ts),B = ∫₀^Ts e^(A_c·τ)·B_c dτ,Ts为采样周期。实际工程中,我们常使用MATLAB的c2d函数或Python的control库完成这一转换。值得注意的是,采样周期的选择直接影响离散模型的精度:Ts过大会丢失系统高频动态,Ts过小则增加计算负担并可能导致数值病态。

增广模型设计:为了消除稳态误差并增强抗扰能力,工程上常将原模型增广为包含积分器或扰动模型的形式。例如,将状态向量扩展为[x; x_i],其中x_i为积分状态,对应的增广矩阵为:
A_aug = [A, 0; C·A, I]
B_aug = [B; C·B]
这种增广方式使得MPC天然具备积分作用,能够消除模型失配和常值扰动带来的稳态偏差。

4.2 约束处理:从物理限制到优化可行域

约束是MPC区别于LQR等无约束控制方法的核心特征。工程中的约束主要来源于执行器物理极限、安全操作边界以及产品质量要求。按照约束对象的不同,可分为三类:

约束类型数学表达典型工程来源处理难度
控制量幅值约束u_min ≤ u(k+i) ≤ u_max阀门开度限位、电机电流限幅简单,直接作为硬约束
控制增量约束Δu_min ≤ Δu(k+i) ≤ Δu_max执行器速率限制、液压系统流量中等,需引入增量状态
输出约束y_min ≤ y(k+i) ≤ y_max温度上限、压力安全边界、产品规格复杂,需软约束处理

在优化求解时,硬约束直接纳入QP问题的线性不等式组中。然而,输出约束往往因模型不确定性或外部扰动而不可行,此时必须引入松弛变量ε,将硬约束转化为软约束:

y_min - ε ≤ y(k+i) ≤ y_max + ε,  ε ≥ 0

松弛变量ε在目标函数中以惩罚项形式出现(通常为ε²的加权),其权重系数需要仔细整定:权重过小会导致约束被随意违反,权重过大则可能引起可行域过窄、控制动作剧烈。工程经验表明,输出约束的松弛权重通常设为输出权重Q的10~100倍。

约束可行性陷阱:当预测时域内约束过紧且模型存在较大不确定性时,QP问题可能无解。此时MPC控制器会输出错误指令甚至崩溃。解决策略包括:① 采用软约束替代硬约束;② 在优化问题中增加约束可行性的优先级分层;③ 设计约束管理模块,在极端工况下自动放宽次要约束。

4.3 二次型目标函数设计:权重矩阵的工程整定

线性MPC的目标函数通常采用二次型形式,其标准表达式为:

J = Σ_{i=1}^{Np} ‖y(k+i|k) - y_ref(k+i)‖²_Q 
    + Σ_{i=0}^{Nc-1} ‖Δu(k+i|k)‖²_R 
    + ρ·ε²

其中,Np为预测时域,Nc为控制时域(通常Nc ≤ Np),Q为输出误差权重矩阵(半正定),R为控制增量权重矩阵(正定),ρ为松弛变量惩罚系数。目标函数的设计本质上是控制性能的权衡:Q越大,系统跟踪参考值越积极,但可能引起控制动作过大;R越大,控制动作越平缓,但响应变慢。

权重矩阵的整定方法可分为三类:

  1. 经验试凑法:先令R=I,逐步增大Q直到响应满足要求;再微调R改善控制动作的平滑性。适用于单输入单输出(SISO)系统。
  2. Bryson规则:根据各变量的最大允许偏差确定权重。例如,若输出y₁的最大允许偏差为0.5,则Q₁₁ = 1/(0.5)² = 4。该方法为多输入多输出(MIMO)系统提供了合理的初始值。
  3. 优化整定法:将权重作为优化变量,以闭环性能指标(如IAE、超调量、调节时间)为目标,使用遗传算法或贝叶斯优化自动搜索最优权重组合。适用于高维MIMO系统。
工程经验:对于温度、压力等慢过程,Q/R比值通常取10~100;对于伺服电机等快系统,Q/R比值可取1~10。此外,若系统存在明显的时间常数差异,建议对Q矩阵进行对角化缩放,使各通道的闭环带宽接近,避免出现“快通道振荡、慢通道迟钝”的现象。

4.4 案例拆解:双容液位系统的线性MPC设计

以典型双容液位系统为例,该系统由两个串联的水箱组成,控制目标是通过调节进水阀开度u,使第二个水箱的液位y跟踪设定值。系统状态方程为:

dx₁/dt = (u - k₁·√x₁)/A₁
dx₂/dt = (k₁·√x₁ - k₂·√x₂)/A₂
y = x₂

其中,A₁=A₂=0.5m²,k₁=k₂=0.1m²/s。在稳态工作点(u₀=0.2,x₁₀=x₂₀=0.4m)附近线性化,采样周期Ts=2s,得到离散状态空间模型:

A = [0.982, 0; 0.018, 0.982]
B = [0.036; 0.0003]
C = [0, 1]

设计MPC参数:Np=20,Nc=5,Q=10,R=0.5,控制量约束u∈[0, 0.5],控制增量约束|Δu|≤0.05,液位约束y∈[0.2, 0.6]m。在仿真中,设定值从0.4m阶跃至0.5m,并加入幅值为0.02的测量噪声。

实施步骤:

  1. 在MATLAB中建立离散状态空间模型,使用ss(A,B,C,D,Ts)定义系统对象。
  2. 调用mpcobj = mpc(sys, Ts)创建MPC控制器,设置预测时域和控制时域。
  3. 通过setconstraint函数设置输入、输出约束。
  4. 使用mpcobj.Weights.OutputVariables = 10和mpcobj.Weights.ManipulatedVariablesRate = 0.5设置权重。
  5. 运行闭环仿真,观察液位跟踪效果与控制阀动作。

结果对比:与无约束LQR控制器相比,MPC在液位阶跃响应中无超调,调节时间约15s,而LQR超调量达12%,调节时间22s。更重要的是,当设定值从0.5m阶跃至0.55m时,LQR因控制量饱和出现积分饱和现象,液位振荡;而MPC通过约束预测,提前减小控制增量,液位平稳过渡至新稳态。

案例复盘:该案例揭示了线性MPC的三个关键工程要点:① 模型线性化精度直接影响预测质量,当工作点大幅偏移时需考虑增益调度或自适应更新;② 约束的合理设置不仅保证安全,还能改善动态性能(如限制Δu可抑制振荡);③ 权重整定需结合闭环仿真反复迭代,本例中Q/R=20是经过20余次仿真确定的折中值。

4.5 常见误区与总结复盘

在工程实践中,线性MPC建模常出现以下误区:

  • 误区一:忽视模型失配的影响。线性模型在工况变化后精度下降,导致预测偏差。解决方法是引入扰动模型或在线辨识更新模型参数。
  • 误区二:约束设置过于理想化。实际执行器存在死区、滞环等非线性特性,简单幅值约束无法完全描述。建议在约束中预留5%~10%的安全裕量。
  • 误区三:权重矩阵盲目取对角阵。当输出变量之间存在耦合时,非对角权重可改善多变量协调性能,但整定难度显著增加。
  • 误区四:预测时域Np选择不当。Np过短无法捕捉系统动态,过长则计算量增大且对模型误差更敏感。一般建议Np覆盖系统上升时间的1.5~2倍。

总结而言,线性MPC建模是一个“模型-约束-目标”三位一体的系统工程。状态空间模型提供预测基础,约束处理保证解的可行性,二次型目标函数定义控制品质。三者相互制约:模型越精确,约束可越紧,目标函数可越激进;反之,模型不确定性大时,应放宽约束并增加R权重以换取鲁棒性。掌握这三者的平衡艺术,是线性MPC从仿真走向现场的关键能力。