4. 代价函数的基本结构

在预测控制中,代价函数是“把控制目标翻译成数学语言”的核心部件。它决定了优化器在预测时域内如何权衡跟踪精度、控制平滑性、执行器负担以及终端稳定性。理解代价函数的基本结构,是后续整定加权矩阵、调整预测时域与控制时域的前提。一个典型的代价函数可以写成如下形式:

J = Σ_{k=0}^{Np-1} [ (y(k)-r(k))^T Q (y(k)-r(k))
                 + Δu(k)^T R_Δ Δu(k)
                 + u(k)^T R_u u(k) ]
    + (y(Np)-r(Np))^T P (y(Np)-r(Np))

其中,y 为被控输出,r 为设定值或参考轨迹,u 为控制量,Δu 为控制增量,Np 为预测时域,Q、R_Δ、R_u、P 为加权矩阵。下面从四个代价项和加权矩阵的物理含义展开说明。

预测控制代价函数结构分解 J = 跟踪误差项 + 控制增量项 + 控制量项 + 终端代价项 代价函数 J 优化器最小化目标 跟踪误差项 (y − r)ᵀ Q (y − r) 衡量输出与设定值偏差 Q 越大,跟踪越快 控制增量项 Δuᵀ R_Δ Δu 抑制控制量突变 R_Δ 越大,动作越平滑 控制量项 uᵀ R_u u 惩罚控制量幅值 R_u 越大,能耗越低 终端代价项 (y(Np) − r)ᵀ P (y(Np) − r) 保证终端稳定性 P 常由 Riccati 方程求 加权矩阵的物理含义与整定方向 Q(跟踪权重) 输出偏差惩罚 ↑ 响应快,可能超调 ↓ 响应慢,更平稳 R_Δ(增量权重) 控制增量惩罚 ↑ 动作平滑,响应慢 ↓ 动作激进,易振荡 R_u(控制量权重) 控制幅值惩罚 ↑ 节能,稳态偏差大 ↓ 控制强,能耗高 P(终端权重) 终端状态惩罚 ↑ 稳定性强,保守 ↓ 可能不稳定

一、跟踪误差项:控制精度的直接体现

跟踪误差项 (y − r)ᵀ Q (y − r) 是代价函数中最直观的部分,它惩罚预测输出与设定值之间的偏差。在预测时域的每一步,控制器都会计算未来输出与参考轨迹的差距,并累加这些差距。Q 矩阵通常为对角阵,对角线元素 q_i 表示第 i 个输出分量的跟踪权重。若某个输出通道对精度要求高,就增大对应的 q_i;若某通道允许较大偏差,则减小该权重。

从物理意义上看,Q 越大,控制器越“在意”跟踪误差,会优先牺牲控制动作的平滑性来换取更快的响应。反之,Q 过小会导致系统响应迟缓,甚至出现稳态偏差。在多变量系统中,Q 的非对角元素还可以用来表达输出之间的耦合惩罚,但工程上通常先取对角阵,再根据耦合程度微调。

二、控制增量项与控制量项:执行器友好性的调节旋钮

控制增量项 Δuᵀ R_Δ Δu 惩罚相邻两个控制量之间的变化量,其物理含义是“限制执行器的动作速率”。在阀门、电机、加热器等执行机构中,频繁或剧烈的动作会加速磨损、增加能耗,甚至引发机械振荡。增大 R_Δ 会让控制量变化更平缓,但也会降低系统对设定值变化的响应速度。

控制量项 uᵀ R_u u 则惩罚控制量本身的幅值,其物理含义是“限制执行器的绝对出力”。例如,在节能控制中,希望阀门开度、电机转速等尽量保持在较低水平,此时可增大 R_u。但 R_u 过大会导致控制量被过度压制,系统无法达到设定值,产生稳态误差。因此,R_Δ 和 R_u 通常配合使用:R_Δ 管“动作快慢”,R_u 管“出力大小”。

整定提示:若系统出现高频振荡,优先增大 R_Δ;若系统稳态偏差过大,优先减小 R_u 或增大 Q;若执行器长期饱和,可适当增大 R_u 并检查约束设置。

三、终端代价项:稳定性的数学保障

终端代价项 (y(Np) − r)ᵀ P (y(Np) − r) 只作用于预测时域的末端时刻。它的作用不是提高跟踪精度,而是保证闭环系统的稳定性。在有限时域预测控制中,如果只优化前 Np 步而不对终端状态施加约束或惩罚,控制器可能“短视”,导致系统发散。终端代价项相当于给优化器一个“终点目标”,使其在时域末端仍关注输出偏差。

P 矩阵通常不是随意选取的,而是通过求解离散代数 Riccati 方程得到,或者取为 Lyapunov 方程的解。这样选取的 P 可以保证代价函数在终端处具有“值函数”的性质,从而满足稳定性证明的条件。工程中若不想引入终端代价,也可以改用终端等式约束或终端不等式约束,但终端代价项在实现上更简单、更易与 QP 求解器兼容。

四、加权矩阵的物理含义与整定流程

四个加权矩阵 Q、R_Δ、R_u、P 共同决定了控制器的“性格”。下表总结了它们的物理含义、整定方向及典型影响:

加权矩阵 作用对象 物理含义 增大后的典型影响 减小后的典型影响
Q 跟踪误差 输出精度权重 响应加快,可能超调 响应变慢,稳态偏差增大
R_Δ 控制增量 动作平滑权重 控制平缓,响应迟缓 动作激进,易振荡
R_u 控制量幅值 能耗/出力权重 节能,稳态偏差增大 控制强,能耗高
P 终端输出偏差 终端稳定性权重 稳定性增强,保守 可能失稳,需谨慎

整定流程建议按以下顺序进行:

  1. 先设 Q 和 R_Δ:将 Q 取为单位阵或按输出重要性分配,R_Δ 取较小值,观察闭环响应。
  2. 再调 R_u:若控制量长期偏大或能耗敏感,逐步增大 R_u,直到控制量幅值可接受。
  3. 最后设 P:若系统在长时域下仍不稳定,引入终端代价,P 由 Riccati 方程求得或取为 Q 的放大版本。
  4. 迭代微调:每次只调整一个矩阵,观察时域响应、控制量曲线和约束满足情况,避免多参数同时变化导致归因困难。
常见误区:把 Q 调得极大而忽略 R_Δ,会导致控制量剧烈抖动,执行器快速磨损;把 R_u 调得极大而忽略 Q,会导致系统“不敢动”,稳态误差长期存在;终端代价 P 若随意取一个很小的值,可能无法起到稳定作用,甚至让优化问题失去可行性。

五、案例:温度控制中的代价函数整定

考虑一个电加热炉温度控制场景,输出为炉温 T,控制量为加热功率 P_heat,控制增量为 ΔP_heat。初始整定:Q = 1,R_Δ = 0.01,R_u = 0,P = 0。仿真发现温度响应快但加热功率频繁大幅波动。此时将 R_Δ 增大到 0.1,功率曲线明显平滑,但温度上升时间变长。为进一步降低稳态功率,将 R_u 设为 0.001,稳态功率下降约 8%,温度偏差仍在允许范围内。最后引入终端代价 P = 5,系统在设定值突变时未出现发散,稳定性得到保障。

该案例说明,代价函数的整定不是“一次到位”,而是围绕跟踪精度、控制平滑性、能耗和稳定性四个目标反复权衡的过程。理解每一项和每个矩阵的物理含义,才能在面对不同工况时快速定位问题并给出合理的参数调整方向。