《无人驾驶车辆模型预测控制》书中第四章仿真轨迹为直线及索引超出数组范围

1.书中Carsim版本8.01,大部分人用的版本为2016及以上,轨迹出来的是一条直线。是因为输入的前轮转角没有加到Carsim中,2016版本好像不能直接通过前轮转角直接控制汽车转向。解决办法:添加opt_steer_ext(1) 4,(4前有空格)如图所示:

2.提示超出索引值,是因为约束超出了范围,代码有错误。解决办法:将代码0.05改为-0.05,即:delta_umin=[-0.05;-0.0082;];

3.提示有效集法已移除,换成内点法求解二次规划问题,解决办法将代码中有效集解法这一行注释掉,内点法前的注释去掉,即: %options = optimset('Algorithm','active-set');
    options = optimset('Algorithm','interior-point-convex');

4.至于还有Flag(3)什么的我刚开始也遇到过,应该把采样时间改成Ts=0.05就不会出现维度不一致的错误,一般放宽采样时间就可以解决。

尽量用低版本的matlab,例如16版本,有时候同一个程序在不同版本的matlab上运行,高版本的会报错,低版本的就不会报错。此外,预测时域,控制时域,权重系数和约束都可能会导致索引超出维度,通过不停的调参也会解决报错问题。

最后运行即可得到类似圆的轨迹。

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值