?
?
?
????????MPC 控制使用线性时间不变 (LTI) 动态模型预测未来行为。在实践中,这种预测永远不会精确,而一个关键的调整目标就是使 MPC 对预测误差不敏感。在许多应用中,这种方法足以实现稳健的控制器性能。
????????如果被控对象具有很强的非线性,或者其特性随时间变化很大,LTI 预测精度可能会大幅下降,以至于 MPC 性能变得不可接受。自适应 MPC 可通过调整预测模型以适应不断变化的运行条件来解决这一问题。正如模型预测控制工具箱(Model Predictive Control Toolbox?)软件所实现的那样,自适应 MPC 使用固定的模型结构,但允许模型参数随时间变化。理想情况下,只要控制器需要预测(在每个控制间隔开始时),它就会使用适合当前条件的模型。
????????在为控制系统的平均或最可能的运行条件设计出 MPC 控制器后,就可以在此基础上实施自适应 MPC 控制器。有关设计初始控制器的信息,请参阅控制器创建。
????????在每个控制间隔,自适应 MPC 控制器都会更新被控对象模型和额定条件。一旦更新,模型和条件将在预测范围内保持不变。如果可以预测被控对象和标称条件在未来的变化情况,则可以使用时变 MPC 来指定一个在预测范围内变化的模型。
????????控制非线性或时变设备的另一种方法是使用增益调度 MPC 控制。请参阅增益调度 MPC。
????????作为自适应 MPC 基础的被控对象模型必须是一个 LTI 离散时、状态空间模型。有关创建和修改此类系统的信息,请参阅数值线性时不变模型或线性化基础(Simulink 控制设计)。被控对象模型结构如下:
这里,矩阵 A、Bu、Bv、Bd、C、Dv 和 Dd 是可以随时间变化的参数。表达式中的其他变量为
自适应 MPC 控制中对被控对象模型的其他要求是
有关为 MPC 控制创建工厂模型的更多详情,请参阅线性工厂规范。
????????传统的 MPC 控制器包含一个标称工作点,在此点上适用于被控对象模型,例如将非线性模型线性化以获得 LTI 近似值的条件。控制器的 Model.Nominal 属性包含此信息。
????????在自适应 MPC 中,随着时间的推移,您应该更新标称运行点,使其与更新后的工厂模型保持一致。
您可以根据与标称条件的偏差来编写被控对象模型:
这里,矩阵 A、B、C 和 D 是要更新的参数矩阵。 ut 是综合的被控对象输入变量,由上文定义的 u、v 和 d 变量组成。需要更新的额定条件为
?- nx 名义状态
?- nx 名义状态增量
?- 名义输入
?- 名义输出
?
????????默认情况下,MPC 使用静态卡尔曼滤波器 (KF) 更新控制器状态,其中包括 nxp 被控对象模型状态、nd (≥ 0) 干扰模型状态和 nn (≥ 0) 测量噪声模型状态。默认情况下,MPC 控制器会在初始化过程中计算这两个增益矩阵。它们取决于被控对象、干扰和噪声模型参数,以及对驱动干扰和噪声模型的随机噪声信号的假设。有关传统 MPC 状态估计的更多详情,请参阅控制器状态估计。
????????自适应 MPC 使用卡尔曼滤波器,在每个控制间隔调整增益 L 和 M,以保持与更新的被控对象模型一致。这就是线性时变卡尔曼滤波器 (LTVKF):
????????这里,Q、R 和 N 是常数协方差矩阵,定义与 MPC 状态估计相同。Ak 和 Cm,k 是整个控制器状态的状态空间参数矩阵,其定义与传统 MPC 相同,但受被控对象模型影响的部分更新至时间 k。最后,Lk 和 Mk 是更新后的 KF 增益矩阵。有关传统 MPC 中使用的 KF 公式的详情,请参阅控制器状态估计。默认情况下,初始条件 P0|-1 是模型更新前的静态 KF 解决方案。
????????KF 增益和状态误差协方差矩阵取决于模型参数以及导致 Q、R 和 N 矩阵恒定的假设。如果被控对象模型恒定,则 Lk 和 Mk 的表达式会收敛到传统 MPC 中使用的等效静态 KF 解决方案。
????????控制器状态估计中描述的 k 时控制器状态演化方程与传统 MPC 的 KF 公式相同,但估计器增益和状态空间矩阵更新为 k 时。
????????您可以选择使用 MPC 控制器外部的程序更新控制器状态,然后在每个控制瞬时 k 将更新后的状态提供给 MPC。
?