0


到底什么是模型预测控制MPC(一)

1. 为什么使用MPC控制

    在浏览文章的时候,很多文章都是基于MPC来做的。那么究竟什么是模型预测呢?

模型预测也可以说是一种我们熟悉的反馈控制算法,其目的就是预测出未来的输出。以一个生活中的例子引入:

     在我们驾驶汽车的时候,驾驶的目的就是让汽车行驶在安全的道路上。作为一个驾驶员,我们可以控制的是汽车的油门和方向盘,也就是对应控制的是汽车的速度和方向。在驾驶的过程中我们会不断的调节方向盘的角度,这是因为我们知道当前角度如果保持下去的话车就会拐弯,不再是直线行驶。(可以想象科目三考试时,教练为什么让我们不断的小范围角度的晃动方向盘)。  这也类似于模型预测的思想,当无人驾驶时,控制器必须预测知道当前方向盘的角度在运行一段时间之后的偏离方向。

使用MPC的原因分析:

  1. MPC可以处理多输入多输出系统

    ![](https://img-blog.csdnimg.cn/d748125761db497e82ce98bf0dd868f5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    

如在上面的控制系统中,y2的输入反馈回来也会影响y1的输入。而我们要设计出两个独立的控制回路,这对于PID参数调节有很大的要求,如果对于一个更大的系统,那么每一个PID控制回路的的参数调节将会是一个巨大的挑战性问题。

而MPC恰好是一个多变量的控制器,它考虑了所有的系统之间的相互作用关系,使得结构很是简单。

  1. MPC可以很好的处理约束条件

    ![](https://img-blog.csdnimg.cn/40f8d52af6ad4e2a9d923ad41335435e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    

当控制器控制汽车无人驾驶时,不可能让速度很大,例如在实际生活中我们要注意与前车的距离,如果前车速度慢,我们的速度当然也要慢。由于汽车物理构造的限制,其加速度不可能很快,可以达到100m破秒,不可能达到1000m破秒。所以这些都是在要求汽车在路上直线行驶目标时的约束条件。

  1. MPC还具有预测功能,类似于前馈控制

     ![](https://img-blog.csdnimg.cn/3d33f778c15946beb2df0ca4ded18d37.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    
      假如自动驾驶汽车没有预测功能,它只有在接近转弯时才能知道该转弯了。但此时并没有提前刹车,为了安全考虑,不得不急刹。如果车上有乘客,这将是一件危险的事情。
    
     而如果能够提前预测,像是我们自己开车时,遇到前面有需要减速的事情,我们都会提前轻踩刹车控制速度。
    
  2. MPC的不足之处

     MPC需要计算性能较为良好,以及内存较大的计算机,这是因为MPC在每一个时间采样点都将进行在线优化。
    

2. 什么是模型预测控制 MPC

    在自动化的控制策略中。我们必须知道输入量,被控对象的模型才能得到输出。

     在上述的控制模型中,MPC控制器里面有被控对象的模型,有一个优化器。那么控制器具体是怎么工作的,还以汽车驾驶为例。

   在一个由MPC控制的自动驾驶的汽车中,中间的绿线是汽车行驶的参考线,P是可以预测到的最远步长 。在控制时,我们假定汽车的加速度和速度都为恒值,控制的只是方向盘的角度。由图中的曲线可以看出,方向盘是图中的五个位置时,预测的汽车位置还不符合我们的参考值。那么该怎么办呢?

    解决办法就是调整方向盘的角度,继续预测汽车未来的路径,达到一个满意的结果。但是新的方向盘角度方案并不是随机生成的,而是有计划有目的的进行的,实现这以目标得益于优化器的功劳。

优化器的目的是让汽车的位置尽可能的在参考的路线上,所以成本函数之一就是当前预测的位置与参考值尽可能的小。

    另外一个成本函数是,方向盘的角度变化范围,像是我们开车,急转方向盘会造成驾驶员和乘客倾斜,严重的还会造成翻车事故。因此,在每个控制周期还要控制方向盘角度的变化量。

    在控制汽车行驶时,还要考虑一些约束条件,比如汽车的位置,不能让汽车行驶在道路的外面;方向盘的最大转动位置,不能无限制的旋转汽车的方向盘。 

     虽然我们预测了未来的好几步,但是我们仅仅选择我们最佳路线的第一步作为输入。如上图所示,汽车的方向盘仅考虑第一个旋转位置。当由k 到k+1时,可以看到汽车汽车的位置并没有与我们的预测曲线位置重合,而这可能是由于各种不可控的因素造成的,比如:风的推力,雨天路滑等等。

    至此我们就明白了,为什么预测好的一套控制步骤,仅仅采用了第一步,然后再次计算、预测、采取第一步.....反复循环,就是为了控制的准确性与高精度。

3. MPC的参数设计

    参数的选择会直接影响计算的复杂度,即影响计算的时间,同时也会影响计算的精度。本节将简要介绍参数的选取,包括:控制器的采样时间,预测的步长,以及控制器的范围,约束,权重。
  1. 采样时间

      采样时间过大。当出现扰动,即汽车位置已经远偏离于参考路线时,不能及时采样,而不能及时调节偏差。
    

采样时间太小。因为会对每一个采样点进行计算,会导致计算负担过重。

     为了在性能和计算复杂度之间寻求平衡,建议在开环响应的上升时间内采样点设置为10 - 20个。
  1. 预测步长

     ![](https://img-blog.csdnimg.cn/f2e96d3eda1e498a822eea2d74a8d98a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    
     步长选取的太近。加入我们以50m/s的速度驾驶汽车。刹车后需要5s种的时间,汽车才能够停下来。假如我们预测的整个步长只是2s时间内的距离,所以在我们看到红绿灯2秒前再刹车时,汽车已经超过了红绿灯的位置。
    

步长选取的太长。步长选取的很长我们就会拥有很宽的视野。但是如果在很远处有货车箱子掉落我们就开始提心吊胆的纠结该怎么做,是很没有必要的。我们只需要在合适的距离采取制动措施就好。过大的步长会影响计算时间。

    所以建议预测的整个步长为开环瞬态响应在2%误差时间内的20 - 30步。 
  1. 控制范围

     ![](https://img-blog.csdnimg.cn/c86fee629e36487ea09b6f413f0a88f4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    
      控制器控制的步长m就是控制器的范围。只是控制m个步长,而不管后面的操作。
    

     我们当然可以只控制一个步长,但是系统的输出结果没有达到理想的效果,存在很大的偏差。

    当然我们也可以控制预测范围内的整个步长,但是只有前几步会对控制效果有很大的影响。后面的控制对输出影响较小。而控制整个步长范围会造成计算的负担。 

    控制范围的经验是预测范围内的10%-20%。
  1. 约束处理

     ![](https://img-blog.csdnimg.cn/a4808afb52bb4d539c2244ad51c56543.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    
      我们可以对输入和输出进行约束。这些约束可以是软约束,也可以是硬约束。硬约束不能被违反,软约束也已被违反。以下面汽车爬坡的例子为例。
    
     ![](https://img-blog.csdnimg.cn/e722ce62395146dea324c12be131c228.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_20,color_FFFFFF,t_70,g_se,x_16)
    
     在开车爬坡时,我们知道,汽车的速度一定会降低。如果我们要求在爬坡过程中,汽车的速度保持不变,我们必须加油门。但是油门的踏板也有一个最大值约束的限制,即使我们把油门踩到底也没有达到速度要求。那么MPC控制器就会优化失败,找不到一个在满足油门踏板和速度的约束下的情况。
    
     而解决此办法通常是使输入的约束条件是硬约束,不能越限。输出的约束为软约束可以越限。即我们可以原谅爬坡过程中汽车的速度有所降低。 
    
  2. 权重处理

     ![](https://img-blog.csdnimg.cn/38e989380584407ca870ff955d21152b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3psX19senM=,size_18,color_FFFFFF,t_70,g_se,x_16)
    
     在实际生活中,我们无时无刻不都在进行权重的选择。我们需要睡眠,吃饭,挣钱,交往....我们不可能在同一个时间段处理多个事情,不得不进行权衡的选择。就像是身体重要还是钱重要问题。
    

    在工业控制中,同样如此。我们往往一个系统的输出是多个目标,不可能使得每一个目标值都达到最优效果。所以添加权重,表示对该目标值的重视程度。 

本文转载自: https://blog.csdn.net/szl__lzs/article/details/121666305
版权归原作者 szl__lzs 所有, 如有侵权,请联系我们删除。

“到底什么是模型预测控制MPC(一)”的评论:

还没有评论