本节,我们将讨论模型预测控制器的工作原理。
在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号。模型预测控制器计算此输入的策略是预测未来。
这听起来像算命,但让我们看看它究竟是什么。MPC使用被控对象模型来预测未来的被控对象输出行为,它还使用优化器,确保预测的未来被控对象输出跟踪所需的参考信号。
以下示例介绍了这些步骤。比如说这是一辆由MPC控制器控制的自动驾驶汽车,让它保持在这条车道的中间位置。MPC可以处理MIMO系统,但为了简单起见,我们将假设加速度是固定的,纵向速度是恒定的,并且仅调整方向盘角度以控制汽车的横向位置。
我们将首先关注控制器如何使用汽车模型,稍后我们将讨论优化器。汽车的横向位置如下图右上方所示,垂直轴反映当前时间。它之前的代表过去,右边的值展示了未来。车道的中间是参考,我们用绿线在图上显示。当前,如果方向盘像这样的转动过程,MPC控制器使用汽车模型在接下来p时间步骤仿真汽车的路径, 就像在下图看到的那样。P是对MPC展望未来前景的衡量标准,被称为预测范围。它通常由未来的时间长度或未来时间步数表示。MPC控制器需要找到最接近参考输入的最佳预测路径。因此,它模拟了多个未来场景,但是,它不是以随机顺序进行这些仿真。相反,它以系统的方式做仿真,这时就是优化器介入的地方了。
通过解决优化问题,MPC控制器试图最小化汽车的参考轨迹和预测路径之间的误差。它还试图从一个时间步到下一个时间步时,方向盘角度的变化最小。因为如果转向方向盘急剧转动,可能乘客会对乘坐感到不舒服。该优化问题的目标函数J包括这两项并且表示为预测误差和方向盘角度增量的加权平方和。在最小化目标函数的同时,MPC还确保方向盘角度和汽车位置保持在规定的范围内,这些被称为约束。例如,方向盘转动的程度有限制。
另一个限制因素是汽车的位置。为了防止发生事故,汽车应该留在车道内而不是离开公路。在当前时间步,MPC控制器正在解决预测范围内的优化问题,同时满足约束。具有最小J的预测路径给出了最优解,由此确定最佳方向盘角度序列,使汽车尽可能接近参考信号。
在当前时间步,MPC仅将该最佳序列的第一步应用于汽车并忽略其余部分。基于采用的方向盘角度,汽车行驶一段距离。在下一个时间步,控制器获得新的汽车横向位置的测量值。它可能与MPC控制器之前预测的略有不同,这可能是由于一些无法测量的干扰作用于汽车。例如,它可能是风或路面湿滑。
现在预测范围向前移动一个时间步,控制器重复相同的计算周期,以计算下一个时间步的最佳方向盘角度。由于预测范围的前向移动性质,MPC也被称为滚动时域控制。
在这里,我们使用汽车示例讨论了MPC的工作原理,但在教科书中,您将找到用于MPC的通用术语。例如,由控制器计算并发送到被控对象的信号称为操纵变量,而被控对象输出则称为输出变量。您可能还会在反馈图中注意到状态估算器。在汽车的例子中,我们假设汽车的横向位置可以被测量。但是如果你不能直接测量系统的状态,可以通过状态估计器估计它们并反馈给MPC控制器。要了解有关状态估算器的更多信息,请查看有关卡尔曼滤波器的系列文章。
本节,我们使用汽车示例演示了MPC如何使用汽车模型和优化器来调整方向盘角度使汽车遵循期望的参考信号。在下一篇文章中,我们将讨论MPC设计参数。比如:控制器采样时间,预测和控制范围,约束和权重等参数。
视频地址如下:
【Model Predictive Control】了解模型预测控制,第二部分:什么是模型预测控制 - MATLAB&Simulink_哔哩哔哩_bilibili