大白话之无人车的模型预测控制方法

最近在读一本关于模型预测控制的书(感兴趣的同志请参考文末参考文献),在最开始作者举了一个日常生活的例子,用生动的语言给读者科普了模型预测控制的基本思想。原力君今天也借用这个例子,用大白话说一下模型预测控制方法的基本思路。

我们每天上班之后,做到工位上,通常要做的第一件事情就是对今天的工作进行规划。假设上班时间是上午9:00到下午5:00,则有人喜欢早9:00的时候就提前规划好9:00-10:00,10:00-11:00,。。。。。。,16:00-17:00每个小时要做的事情。要求比较严格的公司,可能会将计划精细到半小时。这里,计划的精细程度,即一小时还是半小时为一个阶段,在控制领域称之为采样时间。

假设现在是9:00,我们任务小组要完成一个无人车系统的模型预测控制仿真。按照习惯,小组要在9:00制定出接下来8个小时的工作计划,精细到每个小时我们干什么。

但是,9:00开始的时候,我们只是按照第1个小时的计划进行工作。在接下来的时间里,小组每隔一个小时会根据前一个小时计划的完成情况,更新工作计划,每次都对后面8个小时的工作进行重新规划。

在9:00制定计划的时候,小组已经对整个任务有了基本的了解,任务的输入输出,任务的目标,用来完成任务的资源等。假设任务分为建模、设计、仿真、实现四块内容。

完成这些工作需要很多因素,比如我们要投入多少资源,团队组合是否合理,是否需要其他人的帮助等等,这些因素都是完成计划的控制量。通过调整这些控制量,我们可以更好地完成任务。

另外,任务小组也会受到一些条件的限制。比如小组成员对设计问题的理解程度有限,计算机软硬件工程水平不够好等。这些都是做计划是需要考虑的约束。

任务要求、任务的控制量、团队的约束等这些先验因素都会对任务规划产生重要的影响。

考虑以上各种因素后,我们根据设计任务要求对接下来8个小时的工作进行规划,给出每个小时要完成什么工作。在规划时,我们需要考虑自身能力约束,给出一个最好的方法来完成目标。最后,规划给出的结果是从9:00到17:00每个小时我们需要完成的工作。目前来看,如果每个小时都能很好的完成规划好的工作,任务就可以完成。

接下来,我们开始按照任务规划执行第1个小时的任务。到10:00的时候,小组会讨论目前任务的完成情况。可能由于某个成员有急事外出,或者我们对无人车模型认识不够等导致我们没有完成规划的任务。

不管怎样,在10:00的时候,我们会对9:00-10:00之间的工作情况进行评估,重新制定接下来8个小时的工作计划。规划的结果可能不变,也可能进行了调整,但是规划的最终目的是为了更好地完成任务。

接下来,我们按照最新的工作计划,执行第1个小时的计划任务。同样的,在11:00的时候,我们会对任务完成情况进行重新评估,然后制定接下来8个小时的计划。

如此反复,不停的制定计划,工作,评估,重新制定计划,直到整个任务圆满完成。

在制定工作计划的过程中,有三个关键因素:第一个是预测未来可以做什么(基于模型),第二个是评估已经完成了什么(输出测量),第三个是执行规划的任务(实现控制)。在上面的例子中,我么可以看到:

1)我们每次都是规划未来8个小时的工作,这里8个小时是一个固定的数字。做规划时,如果感觉对任务没有太多把握,可以改成2个小时,或者4个小时;如果对任务非常了解,那可以改成10个小时,或者24个小时。

2)我们需要知道目前任务的完成情况,只有了解了目前的状态,才能去规划未来需要做什么

3)我们综合考虑团队能力水平、任务完成情况、不可控因素等,给出未来8小时的最好的工作安排。随着任务的进行,我们每个1个小时,对计划进行滚动规划,保证规划的任务可完成,且实时更新。

上面讲的做任务规划时候用的思路,其实就包含了模型预测控制(model predictive control,MPC)的基本思想:

1)对控制系统进行建模,这个模型尽可能的利用所有已知信息,尽可能的精确,但是允许有建模误差的存在。

2)选定一个时间窗,比如规划未来10秒的控制序列,时间窗定位10秒

3)根据模型和期望的状态轨迹,综合考虑控制系统的控制约束、状态约束、性能约束等,利用优化的方法,得到一组最优的控制序列。这组控制序列,可以让根据模型算出的未来的轨迹偏离期望轨迹的程度最小,同时这组控制序列可以让系统的状态等符合约束。

4)选择控制序列的第1个元素,作为控制量输入给被控对象

5)测量被控对象的输出,然后与利用模型计算出来的这个时刻的输出比较,利用两者之间的误差,对模型推演出来的输出序列进行修正。

6)利用修正后的预测输出,以及当前的期望轨迹,重新进行优化,得到下一个10秒的最优控制序列。

7)如此反复,直到完成控制任务。

上面7条,包含了模型预测控制的几个关键功能模块:参考轨迹、滚动优化控制、模型预测、反馈校正。

大白话之无人车的模型预测控制方法

[1] Liuping Wang. Model Predictive Control System Design and Implementation Using MATLAB


分享到:


相關文章: