路径跟踪算法之模型预测控制(MPC)跟踪

路径跟踪算法之模型预测控制(MPC)跟踪

1.MPC简介

模型预测控制(以下简称 MPC)是一种依赖于系统模型进行数学优化的复杂控制器。它利用优化算法计算有限时间范围内一系列的控制输入序列,并优化该序列,但控制器仅执行序列中的第一组控制输入,然后再次重复该循环。MPC 主要分为 3 个关键步骤:模型预测、滚动优化、反馈校正。

2.MPC在轨迹跟踪过程中的应用

在轨迹跟踪应用领域,通常 MPC 建模可根据机器人的控制方式选择基于运动学运动状态方程建模或者基于动力学运动状态方程建模。前者是根据车辆转向的几何学角度关系和速度位置关系来建立描述车辆的运动的预测模型,一般只适用于低速运动场景;后者是对被控对象进行综合受力分析,从受力平衡的角度建模,一般应用在高速运动场景,如汽车无人驾驶。本文基于双轮差速运动学模型,推导实现差速运动的MPC轨迹跟踪控制。 双轮差速运动学线性 MPC 轨迹跟踪实现的基本思路是状态方程–线性化–离散化–预测方程–约束线性化–非线性目标函数转为二次规划–求解最优问题。其中线性化可采用泰勒级数展开忽略高次项的方式,离散化可采用后向差分法,这两个部分都有一定的模型精度丢失。

3.推导过程

3.1双轮差速运动学建模
首先,以双轮中心点作为参考点建立双轮差速运动学状态方程:
在这里插入图片描述

其中状态量为[x,y,z]T,控制量为:[v,w]T。
式 3-1 为非线性方程,角度和位置存在耦合关系,为了便于逻辑计算与后续
结果解算,在期望位置点采用一级泰勒展开进行近似线性化处理:
在这里插入图片描述
其中:
在这里插入图片描述
式 3-2 减去式 3-3 后得到:
在这里插入图片描述
其中:
在这里插入图片描述
线性化完成之后,形成连续的线性运动学模型,为了在控制周期内编程实现,再采用欧拉前项差分法将模型离散化:
在这里插入图片描述
变换得:
在这里插入图片描述
整理得离散化的线性表达式:
在这里插入图片描述
在这里插入图片描述
其中 A ‾ \overline{\text{A}} A = (I + TA), B ‾ \overline{\text{B}} B = TB, A ‾ \overline{\text{A}} A B

轨迹跟踪模型预测控制(Model Predictive Control,MPC)是一种广泛应用于自动控制领域的控制策略,它通过在控制器内建立模型并预测系统未来状态来求解最优控制输入,从而实现对系统的稳定控制。 在撰写轨迹跟踪MPC C代码时,首先需要将系统的动力学模型以差分方程或状态空间的形式表达出来。然后,通过选择一组预测时域内的控制输入和状态变量,建立系统的优化模型。接下来,在每个控制周期内,通过对优化问题进行求解,获取最优控制输入,并将其应用于系统中。这样,就实现了对系统轨迹的跟踪。 在具体代码实现上,可以使用编程语言C来编写轨迹跟踪MPC控制器。首先,需要定义系统模型的数据结构,并初始化优化问题的参数和限制条件。然后,利用优化库(如qpOASES、OSQP等)在每个控制周期内求解优化问题,得到最优控制输入。 在轨迹跟踪MPC的代码中,可以包含控制算法的初始化过程、预测模型的建立、优化问题的构建和求解、最优控制输入的应用等关键步骤。此外,还需要考虑与硬件的接口,将最优控制输入通过适当的方式应用到系统中,实现对轨迹的跟踪控制。代码的结构和实现方式根据具体应用需求和系统特性有所不同,但上述步骤是构建轨迹跟踪MPC C代码的基本框架。 最后,需要进行系统仿真和实际测试,验证代码的正确性和性能。根据实际运行的结果,可以对代码进行调试和优化,进一步提高轨迹跟踪MPC的控制效果。 总而言之,撰写轨迹跟踪MPC C代码需要对系统的动力学模型进行建模,构建优化问题并进行求解,并根据求解结果实现最优控制输入的应用。这需要理解MPC算法的原理,并结合具体的控制系统进行代码实现和调试。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

>_<!

码字不易,如有帮助,欢迎鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值