新衡阳网站,30岁学编程太晚了,网站建设制作软件,韩国女足出线情况在之前的一篇文章中#xff0c;我简要介绍了车辆运动学模型的推导方法#xff0c;得到了车辆的运动学模型#xff0c;相关信息请移步
链接 #xff1a;《无人驾驶车辆模型预测控制》之车辆运动学模型
在介绍基于运动学的模型预测控制的控制器设计之前#xff0c;先来了解…在之前的一篇文章中我简要介绍了车辆运动学模型的推导方法得到了车辆的运动学模型相关信息请移步
链接 《无人驾驶车辆模型预测控制》之车辆运动学模型
在介绍基于运动学的模型预测控制的控制器设计之前先来了解一下什么是模型预测控制为什么要用模型预测控制最后再阐述线性时变模型预测控制的基本框架。
注文中部分理论知识参考陈虹老师的《模型预测控制》感兴趣的同学可以自行翻阅。 1、什么是模型预测控制 我们来看看下面这张图 r(.)是目标系统轨迹yp是预测的系统轨迹y(k)是当前系统的观测量u是控制m是控制时域p是预测时域。
对于这样一个离散系统1.1 模型预测控制就是在当前时刻ky(k)是预测系统状态的起点来预测未来一段时间内系统的输出yp我们控制的目的是将yp能够跟踪目标值r(.)也就是说我们希望寻找最佳的控制输入使得预测的系统输出与期望的系统输出越接近越好。也就是图1.1中阴影部分的面积最小、为此我们可以定义预测测与目标值之间的偏差同时考虑最佳的控制输入建立一个满足控制约束和输出约束的二次型的成本函数通过求解成本函数的解u并将解的第一个值作用于系统然后系统进入时刻k1同样根据k1时刻的测量值y(k1)作为初始条件重新预测系统未来输出计算优化问题再将优化解的第一个值作用于系统如此往复直到k -无穷。
简单的说模型预测控制可以分为三步 -1 根据当前系统的测量信息预测系统未来的动态//基于模型的预测 -2 求解优化问题//在线滚动优化 -3 将优化解的第一个元素作用于系统。//反馈校正
需要注意几点
1. 控制时域小于等于预测时域 2. 为什么只挑选控制时域的第一个作用于系统呢我的理解是第一个控制分量更加准确 3. 如果MPC是一个无约束的、线性的且目标函数是二次型的那么就可以求出解析解。实际上考虑约束等只能求数值解且是次优的。
4. 为什么说MPC是一种开环优化问题 这点我也没彻底明白我一再逼问chatgpt最后它的说法有点说服力它是这么忽悠我的 尽管MPC使用实时反馈信息进行优化但控制序列的生成是基于未来的预测而不是直接基于实时测量的反馈。这种先预测未来然后优化的方法被认为是一种“开环”控制因为控制输入的生成不依赖于实时反馈的调整。因此尽管MPC涉及对当前状态的实时测量和反馈但由于控制序列是基于未来预测进行优化的因此通常被归类为开环优化问题。 2、为什么要用模型预测控制
或者说它的优点 - 1 模型预测控制能有效解决线性控制系统或非线性控制系统中的约束问题包含控制约束、控制增量约束、控制输出约束等。 - 2 不同于离线的最优控制如LQRMPC不是采用一个不变的全局优化目标而是采用时间向前滚动式的有限时域优化策略。这以意味着优化的过程不是一次离线进行而是反复的在线进行的且对于这种有限优化目标的局限性使其在理想情况下得到的是次优解但是这种在线滚动优化能顾及模型失配或干扰等引起的不确定性及时进行弥补。
3、怎么设计模型预测控制
3.1 线性时变模型预测控制LTI MPC设计基本框架 在什么是模型预测控制中已经提到MPC包含三个部分基于模型的预测滚动优化反馈控制。
基于这三个部分简要介绍MPC设计的算法框架或步骤
1. 基于模型的预测 - 1 分析动态系统根据物理学理论建立系统微分方程连续的系统 - 2 由于大部分系统是非线性的因此我们对非线性系统进行线性化 - 3 MPC是求解离散系统的数值解因此还需对线性化的系统进行离散化离散化方法前向欧拉法关于前向欧拉法的介绍 请看此链接1和链接2 - 4 确定预测时域和控制时域推导预测模型
上面说的是机理模型不过当前也有一些令人激动的方法比如基于数据训练一个模型出来我不知道怎么弄等我弄懂了再更新这块内容吧如果有知道的大佬可以一起交流哈。
2. 滚动优化 - 1 根据输出与参考值之间的误差 和 控制输入建立成本函数cost function - 2 将成本函数转换成标准的二次型形式方便求解 - 3 建立约束
3. 反馈 - 将求得的优化解的第一个分量作用于系统。
至此完成线性时变模型预测控制的答题框架。后面基于以上理论将设计基于运动学模型的模型预测控制的轨迹跟踪控制。
4、 模型预测控制的关键技术23.12.18补充
1. 模型的建模如何建立合理的模型既能表征对象特性又能最大限度的简化。
2. 模型的离散化
3. 最优控制问题的求解核心中的核心模型预测控制是套着控制的外壳其内涵还是最优问题。 一般有两种方法基于解析法和基于数值法。解析法一般有变分法、极大值原理等求解函数的导数或欧拉-拉格朗日方程找到函数的驻点或极值点求得精确解。而数值法是根据数值计算的方法有梯度下降法、牛顿法、动态规划和二次规划等方法通过迭代逐步逼近函数的最小值。不一定最优可能次优。 最近又有一些新方法比如机器学习的方法。利用机器学习的方法通过训练数据学习函数的近似表达式然后用数值方法求解最小值。 这篇文章是当年疫情时写的感觉写的很笼统。最近项目上要用到MPC我又回头看MPC。关于第四节我后面再写一系列文章来具体介绍我所学习的这块技术。欢迎交流~