3、优化问题建模:MPC中的目标函数、约束条件、决策变量、时域与预测时域设定

模型预测控制(MPC)的本质是在每一个控制周期内,基于当前系统状态和预测模型,在线求解一个有限时域约束优化问题。因此,优化问题的数学建模质量直接决定了MPC控制器的性能上限、鲁棒性以及求解器的实时性表现。本章将深入剖析MPC优化问题的四大核心要素——目标函数、约束条件、决策变量、时域设定,并结合求解器选型与调优的实战视角,讲解如何将这些要素转化为求解器可高效处理的标准形式。

MPC优化问题建模要素与求解器映射关系 MPC在线优化问题 决策变量 Δu(k), u(k), x(k) 目标函数 J = Σ(x'Qx + u'Ru) 约束条件 umin≤u≤umax, Δumin≤Δu≤Δumax 时域设定 预测时域Np, 控制时域Nc 求解器标准形式映射 min 0.5·x'Hx + g'x s.t. lb ≤ Ax ≤ ub 内点法 (IPM) 适合大规模、高精度 一阶法 (ADMM) 适合嵌入式、快速迭代 积极集法 (ASM) 适合小规模、强约束 OSQP / qpOASES 开源、接口丰富 建模质量决定求解器收敛速度与控制性能上限

上图展示了MPC优化问题建模的核心要素及其与求解器之间的映射关系。在实际工程中,我们往往需要将物理系统的控制需求(如跟踪设定值、抑制扰动、满足执行器物理极限)转化为一个数学上可求解、数值上稳定的二次规划(QP)或非线性规划(NLP)问题。下面我们将逐一展开每个要素的建模方法、工程考量与调优技巧。

3.1 决策变量:从控制增量到状态轨迹

核心原理:MPC中的决策变量是求解器需要计算出的未知数。在标准线性MPC中,决策变量通常选择为控制增量序列 Δu(k), Δu(k+1), ..., Δu(k+Nc-1),其中 Nc 为控制时域。选择增量形式而非值形式,是因为增量形式天然包含积分作用,可以消除稳态误差,并且更容易施加执行器变化率约束。在更复杂的非线性MPC或鲁棒MPC中,决策变量可能扩展为包含状态变量 x(k+1)...x(k+Np) 的增广向量。

判断方法:决策变量的维度直接决定了求解器的计算复杂度。对于QP求解器,变量个数 n = Nc × m(m为输入维度);若采用状态增广形式,则 n = (Np+1)×n_x + Nc×m。在选型时,若 n < 50,可选用积极集法;若 50 < n < 500,内点法或ADMM均可;若 n > 500,则必须考虑利用稀疏结构的一阶法或专用QP求解器。

实战经验:在车辆动力学控制中,若采用四轮转向+驱动力的综合控制,决策变量维度可能达到20-30个。此时若使用MATLAB内置的 quadprog(默认内点法),单步求解时间可能超过5ms,而使用OSQP(ADMM)可降至0.5ms以内。因此,决策变量维度的预估是求解器选型的第一步。

案例拆解:某无人机姿态控制MPC,状态量为 [roll, pitch, yaw, p, q, r](6维),控制量为 [throttle, aileron, elevator, rudder](4维)。取 Np=20, Nc=5,则决策变量为 Δu 序列,维度 n = 5×4 = 20。若采用状态增广,则 n = 21×6 + 5×4 = 146。显然,增量形式更适合嵌入式实时求解。

3.2 目标函数:性能指标与权重矩阵设计

核心原理:目标函数量化了控制性能的优劣。标准线性二次型(LQ)目标函数形式为:

J = Σ_{i=1}^{Np} [ (x(k+i)-x_ref)'·Q·(x(k+i)-x_ref) ] + Σ_{i=0}^{Nc-1} [ Δu(k+i)'·R·Δu(k+i) ] + ρ·ε²

其中 Q 为状态权重矩阵(半正定),R 为控制增量权重矩阵(正定),ρ 为松弛变量惩罚系数,ε 为软约束松弛变量。权重矩阵的设计直接反映了控制目标的优先级:例如,在温度控制中,若希望快速升温且超调小,则增大温度偏差对应的Q值;若希望执行器动作平缓,则增大R值。

操作流程:权重矩阵的整定通常遵循以下步骤:

  1. 归一化处理:将不同量纲的状态量除以各自的最大允许偏差,使权重无量纲化。
  2. 初始权重设定:令 Q = diag(q1, q2, ...),R = diag(r1, r2, ...),初始取 qi = 1,ri = 0.1。
  3. 仿真调优:在仿真环境中调整权重,观察响应曲线,遵循“先调Q后调R”的原则。
  4. 鲁棒性验证:在模型失配或外部扰动下,检查权重是否导致控制量饱和或振荡。
权重矩阵物理意义调大后的效果调小后的效果
Q(状态权重)对状态偏差的惩罚响应更快,超调增大响应变慢,稳态误差可能增大
R(控制权重)对控制动作的惩罚控制动作更平缓,能耗降低控制动作更激进,可能引起振荡
ρ(松弛权重)对约束违反的惩罚约束越难被违反,但可能引起抖动约束更容易被违反,但数值稳定性好
常见误区:初学者常将Q矩阵设为对角阵且所有对角元素相等,忽略了不同状态量之间的耦合关系。例如,在四轮转向车辆中,横摆角速度与侧向加速度存在强耦合,若Q矩阵不包含交叉项,则无法有效协调两者。此时应使用完整的半正定矩阵,或通过状态变换解耦。

3.3 约束条件:硬约束、软约束与可行域

核心原理:约束条件分为硬约束(必须满足)和软约束(允许在惩罚下违反)。硬约束包括执行器饱和(u_min ≤ u ≤ u_max)、执行器变化率限制(Δu_min ≤ Δu ≤ Δu_max)、状态安全边界(如温度上限、压力上限)。软约束通常用于状态约束,因为状态约束在扰动下可能不可行,引入松弛变量 ε 可以保证优化问题始终有解。

判断方法:在建模时,需要区分哪些约束是“安全关键”的(必须硬约束),哪些是“性能期望”的(可软约束)。例如,化学反应釜的温度上限是安全约束,必须硬约束;而温度设定值附近的偏差范围可以设为软约束。此外,约束的线性化处理也至关重要:对于非线性约束(如 u² ≤ 1),需要在线性化工作点处进行泰勒展开,或使用非线性求解器。

工程案例:某伺服电机位置控制MPC,电机最大电流为10A(硬约束),位置跟踪误差要求±0.1mm(软约束)。在建模时,将电流约束直接写入QP的 lb/ub 向量;位置误差约束则通过松弛变量 ε 引入目标函数。当电机遇到突加负载时,电流达到饱和,位置误差暂时超出软约束,但优化问题仍然有解,控制器不会崩溃。若将位置误差设为硬约束,则可能出现无解情况,导致控制器失效。

常见误区:约束过多或过紧会导致可行域过小,求解器迭代次数增加,甚至无解。建议在调试初期先放宽约束,确认控制器稳定后再逐步收紧。同时,注意约束的相容性:例如,u_max = 10 且 Δu_max = 0.1,若采样时间 Ts = 0.1s,则从0到10需要100步,若预测时域 Np = 20,则预测轨迹无法达到目标值,导致控制性能下降。

3.4 预测时域与控制时域:性能与计算量的平衡

核心原理:预测时域 Np 决定了控制器“看得多远”,控制时域 Nc 决定了控制器“有多少次调整机会”。Np 越大,控制器越有前瞻性,稳定性越好,但计算量线性增长;Nc 越大,控制自由度越高,但可能导致控制动作过于激进,且计算量增大。通常取 Nc = 1~5,Np = 10~30,且 Nc ≤ Np。

操作流程:时域设定的经验法则:

  1. 确定采样时间 Ts:根据系统带宽 ω_b,取 Ts = 1/(10~20)·ω_b。
  2. 设定预测时域 Np:使 Np·Ts 覆盖系统主导时间常数的3~5倍。例如,若系统时间常数为2s,Ts = 0.1s,则 Np = 60~100。
  3. 设定控制时域 Nc:从 Nc = 1 开始,逐步增加,观察性能改善程度。若 Nc 从1增加到3时性能提升明显,继续增加则改善甚微,则取 Nc = 3。
时域参数取值过小取值过大推荐范围
Np稳定性差,无法预见扰动计算量大,模型失配影响增大10~30(线性系统)
Nc控制自由度不足,性能受限控制动作激进,鲁棒性差1~5(或Np的10%~20%)
调优实战:在过程控制(如精馏塔温度控制)中,系统时间常数可达数十分钟,Ts = 30s,Np = 40(覆盖20分钟),Nc = 3。此时QP问题规模为 n = 3×1 = 3(单输入),求解极快。但在机电伺服系统中,Ts = 1ms,Np = 20,Nc = 5,n = 5×2 = 10,仍需在1ms内完成求解,对求解器实时性要求极高。

总结复盘:优化问题建模是MPC落地的“最后一公里”。决策变量的选择决定了问题规模,目标函数权重决定了控制品质,约束条件决定了可行域与安全性,时域设定决定了动态性能与计算负载。四者相互耦合,需要联合整定。在求解器选型时,建议先建立小规模仿真模型,测试不同求解器(如OSQP、qpOASES、GUROBI)的求解时间与精度,再根据实际硬件资源确定最终方案。记住:建模时多花一小时,求解器调优时少花一周。