MPC控制器在小车倒立摆中的应用(1)
MPC介绍
1、什么是MPC
MPC全称为Model Predictive Control,其控制思想大致如上图所示。MPC本质上是采用优化方法来解决问题,利用过程的模型来预测未来可能的发展,并选择一个好的控制。其实在日常生活中,我们经常应用到这类算法。
- 例子:下棋。
无论象棋还是围棋,都有它自身的规则,比如”马“走日字,在过去、现在还是未来,都遵循一样的游戏规则,这就可以看作MPC中的过程模型。当我们需要走下一步时,我们一般是如何思考的?往往不是只看当下的这一步,而是会根据游戏规则,想到接着的几步,然后确定当前最好的一步棋这便是MPC的思想。
2、MPC与最优控制和PID控制的不同
- MPC与最优控制的不同:MPC虽然也采用了优化方法来求解问题,但是其不同之处在于,MPC仅考虑未来几个时间的步;而最优控制往往会考虑整个时间域。
- MPC与传统PID的不同:首先PID不需要模型,是基于误差的一种方法,控制作用在误差产生之后;在多输入多输出系统中,各个控制回路的耦合使得PID参数的整合困难;MPC需要模型来预测未来的行为,且可以处理约束问题。
3、MPC中一些相关概念
- 模型、预测、控制含义
- 凸集、凸函数、凸优化
这三个在MPC中比较重要的概念,为了保证MPC求解出来的局部最优为全局最优,需要保证其优化问题为凸优化问题。
凸集:如果集合内的连接任意两点的线段上的点都在集合内,则为凸集。如下图所示:
凸函数:如果集合S是一个凸集,且f满足以下关系,则f为凸函数。
凸优化:如果f是凸函数,且S为凸集,则该优化问题为凸优化。 - 控制时域和预测时域
刚开始了解MPC时,在控制时域和预测时域的理解上有些模棱两可。常用Nc表示控制时域,Np表示预测时域,Nc<=Np。其实两者很简单,如这篇文章的第一张图上所示,当我们预测未来Np个时间步的发展时,我们会确定Nc个时间步的控制量,而Nc到Np这段时间的控制量等于第Nc个时间步的控制量。为什么要这样做呢?当在实现一个具体的MPC控制时,会发现随着Nc的变大,方程的维数会增大,从而加大了计算的时间,所以选择较小时间步内的控制量。
有一个很好的例子来理解:便于理解的解释:在制定工作计划时,根据工作进度(系统状态)、工作目标(参考值)、工作能力和任务难度(系统模型),安排未来5天计划(控制时域),5天以后和第5天计划一样后,预测未来10天(预测时域)的工作,在觉得安排可以的前提下(代价函数),将在下一天执行该天的计划。并且在每一天进行相同的预测安排。 - 最重要的一点
介绍了MPC的一些相关理论知识和概念,有一点最后但是很重要的是,在每个控制节点,我们只采用第一个时间步的控制量;到了以后的控制节点,进行类似的操作。就好比下棋,虽然每次会考虑后面几步的发展,但是执行的只有未来的第一步;后来进行如此操作。