北理工无人驾驶车辆模型预测控制第4、5章代码勘误

北理工无人驾驶车辆模型预测控制第4、5章代码勘误

以下内容为实际使用过程中发现的小问题,不代表原代码逻辑错误。

第4章

  1. 程序约束生成区域中
delta_umin=[0.05;-0.0082;]; 

应改为:

delta_umin=[-0.05;-0.0082;]; 
  1. matlab2014版本之后删除了有效集法,可改用内点法计算。Matlab 2020a版本可以计算有效集法。
    求解过程

options = optimset('Algorithm','interior-point-convex'); 
  1. 如果出现约束过紧的错误提示可以尝试修改约束生成部分中的数值。跟踪效果不佳可以修改Q R矩阵以及控制步长和预测步长。
  2. 2020.7.20更。 有朋友遇到第四章代码运行会出现输入维度不匹配的情况,原因是S函数的定义输入维度和simulink实际输入维度不同,把输入值由5改为3就可以。如果要对代码进行自定义修改的话也要注意输入输出的维度匹配问题。
    北理工无人驾驶车辆模型预测控制第4、5章代码勘误_第1张图片

第5章

1.同样是有效集法被删除的问题,和第四章处理方法相同。
2. 原约束
此处约束可能无法满足,将后半部分约束注释掉可以运行。
Matlab2020a版本可以运行,经测试,跟踪效果基本没有变化。修改方式如下:
修改后的约束条件
如果不注释掉后半部分约束,2020版本可能需要修改输出量约束的数值以达到较好效果。

你可能感兴趣的