非线性模型预测控制(NMPC)在移动机器人控制

1.MPC和NMPC的对比分析

        普通的MPC控制步骤包括:系统建模、模型线性化、模型离散化、模型预测、优化控制输入量、反馈校正等。从方法步骤角度分析,对模型进行线性化所产生的影响。首先是线性化后,系统就成了线性系统,系统简单,且若对损失函数用二范数进行损失评估,整个优化问题就成为了二次规划问题,问题求解简单。 但是线性化存在一个精度损失的问题,我们对线性化进行简单的分析,线性化其实是在某一个状态点对模型进行泰勒展开,截断到一次项,忽略二次以上项进行近似;这种近似在离展开点比较远的地方,与原系统会有一定的误差,误差大小取决于模型的复杂性。

       

图1.1 

         NMPC控制刚好与MPC控制互补,NMPC控制除了没有线性化,其他与MPC控制几乎一样。NMPC是用原模型进行预测从而优化输入,由于模型没有进行任何的简化,所以理论上预测精度会比MPC高,但是存在求解困难的问题,大多数NMPC控制的损失函数都是非凸函数。

        有朋友可能会觉得,用MPC控制,预测步长短一点,这就可以完美解决上述精度问题和求解难度问题了。其实不然,有相关理论证明,对于模型预测控制,其收敛的必要条件是预测步长足够长。 图1.2(a)、(b)分别展示了模型预测控制在单位阶跃响应的控制,其中(a)是预测未来1个时间步的响应过程,(b)是预测未来8个时间步的响应过程。

       

 图1.2(a)                                                               图1.2(b)

2.仿真案例

2.1 模型

        本文用的是车辆运动学模型进行仿真,模型如下:

2.2 模型预测控制损失函数

        损失函数的构造为预测步内位置误差的平方累积,具体如下:

其中,n为预测步长;W>0,是权重系数,越大表示越注重未来的误差,越小表示越注重短期误差;xd和yd为期望轨迹坐标。

2.3 仿真结果

绿色为遗传算法求解出来的轨迹,红色为matlab fmincon函数求解出来的轨迹,浅紫色为参考轨迹。

想要代码的uu可以私信。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值