问题
想象这样一个场景,你正在骑自行车,突然发现前面有个大坡,为了让自行车保持这个速度通过这个坡,你会怎么办。
两种应对方法
类似于MPC的控制方法
1.你应该会提前加速。
2.为了保持平衡,加速的过程中自行车的方向盘应该往用力踩脚踏板对立方向倾斜。
3.你有自己的加速策略,比如会以顺滑的方式提高速度,也可能先加速后匀速。
你为什么会有上面这些动作呢?逐一回答上面问题。
1.因为你预测到自行车遇到坡时会减速,因此现在提前加速,后面上坡时才不需要突然很用力加速(需要的加速度可能超过个人能力的限制,导致无法以当前的速度过坡)
2.更用力踩踏板会打破当前平衡,因此需要调整方向防止摔倒,也就是说踩踏板与打方向两个控制量互相影响(耦合),实际上骑车的控制是个多输入问题。
3.为了以最舒适的方式通过这个坡,你可能会考虑坡度的大小,自己距离坡的距离,当前自己的速度,风阻力,以及自己的状态等因素来选择最优加速策略。
基于PID的控制方法
1.由于PID基于实时误差来调整控制量,因此只有当你进入到坡里时才会加速
2.由于PID为单输入,单输出,因此加速和方向为需要两个PID控制器,但在骑车场景中这两个控制量互相影响,因此会导致控制不稳定。
3.无法选择最优的加速策略,只能根据实时反馈调整控制信号。
MPC相对于PID控制策略的优势
- 基于预测调整:还没进入到坡道就预测到当进入坡道时会减速。
- 约束处理:知道自己最大的加速度(踩踏板的最大力),并根据这个限制来调整加速策略。
- 多变量耦合:同时考虑用力踩踏板和自行车平衡等多个因素。
- 优化策略:会根据当前状态(距离,坡道大小,风速,自己状态等)来计算最舒适的控制策略。
什么是MPC
模型预测控制(MPC)是一种基于模型的控制方法,通过使用系统的数学模型来预测未来一段时间内系统的行为,并优化控制输入以达到预期的目标。
MPC的公式推导
1. 系统建模: MPC依赖于对控制系统的数学模型进行预测。这个模型通常是线性或者非线性的方程,描述了系统的动力学行为,即系统输入和输出之间的关系。例如,机械臂的模型可以描述关节位置、速度与施加的力矩之间的关系。
2. 预测未来状态: 在每个时间步,MPC利用当前状态 xk 和系统模型 f(xk,uk),预测未来多个时间步的状态和输出。这段预测的时间称为预测时域,长度为N,即预测未来N个时间步。
3. 代价函数: 为了实现控制目标,MPC定义了一个代价函数(目标函数)来评价控制策略的好坏。典型的代价函数通常是目标值和实际值之间的误差以及控制输入的成本之和。代价函数可以表示为:
4.优化控制输入: MPC通过最小化代价函数 J,寻找在预测时域 N 步内的最优控制输入序列 uk,uk+1,…,uk+N−1,使系统的未来状态尽量接近目标,并且控制输入满足系统的物理约束(如速度、力矩的限制)。
5.执行控制并滚动优化: MPC并不会一次性执行所有预测时域的控制输入,而是每次只执行第一个控制输入 uk,然后将时间推进一个时间步,再次根据新的系统状态重新进行预测和优化。因此,这种方式也被称为“滚动优化”或“再优化”。
具体流程是:
- 预测未来 N 个时刻的系统行为;
- 通过优化得到控制输入序列;
- 执行当前时刻的最优控制输入 uk;
- 在下一个时刻重新预测并优化。
MPC的特点
-
基于模型:使用系统的数学模型进行预测和优化,提高控制精度。
-
处理多变量系统:能够同时控制多个输入和输出,适用于复杂系统。
-
约束处理:自然地包含输入和输出的约束,确保系统运行在安全范围内。
-
滚动优化:实时调整控制策略,应对系统动态变化和外部扰动。
-
灵活性:适用于线性和非线性系统,易于集成不同类型的模型。
MPC优缺点
优点:
-
预测能力:利用系统模型预测未来行为,提前应对可能的问题。
-
约束处理:能够直接在优化问题中加入各种约束,确保系统安全运行。
-
多变量控制:适用于同时控制多个输入和输出,优化整体性能。
-
性能优化:可以根据预定义的性能指标进行优化,提高控制效果。
缺点:
-
计算复杂度:需要实时求解优化问题,对计算资源要求较高,尤其是对于大型系统或高采样率系统。
-
模型依赖性:控制性能依赖于系统模型的准确性,模型不准确可能导致控制效果不