3、优化问题建模:MPC中的目标函数、约束条件、决策变量、时域与预测时域设定
模型预测控制(MPC)的本质是在每一个控制周期内,基于当前系统状态和预测模型,在线求解一个有限时域约束优化问题。因此,优化问题的数学建模质量直接决定了MPC控制器的性能上限、鲁棒性以及求解器的实时性表现。本章将深入剖析MPC优化问题的四大核心要素——目标函数、约束条件、决策变量、时域设定,并结合求解器选型与调优的实战视角,讲解如何将这些要素转化为求解器可高效处理的标准形式。
上图展示了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求解器。
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值。
操作流程:权重矩阵的整定通常遵循以下步骤:
- 归一化处理:将不同量纲的状态量除以各自的最大允许偏差,使权重无量纲化。
- 初始权重设定:令
Q = diag(q1, q2, ...),R = diag(r1, r2, ...),初始取qi = 1,ri = 0.1。 - 仿真调优:在仿真环境中调整权重,观察响应曲线,遵循“先调Q后调R”的原则。
- 鲁棒性验证:在模型失配或外部扰动下,检查权重是否导致控制量饱和或振荡。
| 权重矩阵 | 物理意义 | 调大后的效果 | 调小后的效果 |
|---|---|---|---|
| Q(状态权重) | 对状态偏差的惩罚 | 响应更快,超调增大 | 响应变慢,稳态误差可能增大 |
| R(控制权重) | 对控制动作的惩罚 | 控制动作更平缓,能耗降低 | 控制动作更激进,可能引起振荡 |
| ρ(松弛权重) | 对约束违反的惩罚 | 约束越难被违反,但可能引起抖动 | 约束更容易被违反,但数值稳定性好 |
3.3 约束条件:硬约束、软约束与可行域
核心原理:约束条件分为硬约束(必须满足)和软约束(允许在惩罚下违反)。硬约束包括执行器饱和(u_min ≤ u ≤ u_max)、执行器变化率限制(Δu_min ≤ Δu ≤ Δu_max)、状态安全边界(如温度上限、压力上限)。软约束通常用于状态约束,因为状态约束在扰动下可能不可行,引入松弛变量 ε 可以保证优化问题始终有解。
判断方法:在建模时,需要区分哪些约束是“安全关键”的(必须硬约束),哪些是“性能期望”的(可软约束)。例如,化学反应釜的温度上限是安全约束,必须硬约束;而温度设定值附近的偏差范围可以设为软约束。此外,约束的线性化处理也至关重要:对于非线性约束(如 u² ≤ 1),需要在线性化工作点处进行泰勒展开,或使用非线性求解器。
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。
操作流程:时域设定的经验法则:
- 确定采样时间
Ts:根据系统带宽ω_b,取Ts = 1/(10~20)·ω_b。 - 设定预测时域
Np:使Np·Ts覆盖系统主导时间常数的3~5倍。例如,若系统时间常数为2s,Ts = 0.1s,则Np = 60~100。 - 设定控制时域
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)的求解时间与精度,再根据实际硬件资源确定最终方案。记住:建模时多花一小时,求解器调优时少花一周。