基于多控制策略的车辆路径跟踪仿真研究
基于前轮转向转矩分配(AFSDYC)模型预测控制(MPC)路径跟踪(PTC)侧偏角软约束目前的范例是72km/h附着系数0.85双移线。 仿真使用的是MATLAB2020b版本和carsim2020。 MPC有两个第一个为增量式方法编写采用s-function实现输入为跟踪误差、横摆角误差、侧向速度和横摆角速度输出量为前轮转角和附加横摆力矩仅考虑横向控制。 考虑了前后轮的侧偏角软约束在侧偏角到约束边界时减小控制律保证侧偏角的稳定。 第二个采用Apollo中的模型基于MATLAB function编写不包括侧偏角软约束作为对比参考使用。 其中包含carsim的cpar文件、模型mdl文件、绘图m文件(运行后一键出图)、说明文档和中文文献。最近在研究车辆控制相关的内容基于前轮转向 转矩分配AFS DYC结合模型预测控制MPC以及路径跟踪PTC还加入了侧偏角软约束实现了一些有趣的成果今天就来和大家分享分享。基于前轮转向转矩分配(AFSDYC)模型预测控制(MPC)路径跟踪(PTC)侧偏角软约束目前的范例是72km/h附着系数0.85双移线。 仿真使用的是MATLAB2020b版本和carsim2020。 MPC有两个第一个为增量式方法编写采用s-function实现输入为跟踪误差、横摆角误差、侧向速度和横摆角速度输出量为前轮转角和附加横摆力矩仅考虑横向控制。 考虑了前后轮的侧偏角软约束在侧偏角到约束边界时减小控制律保证侧偏角的稳定。 第二个采用Apollo中的模型基于MATLAB function编写不包括侧偏角软约束作为对比参考使用。 其中包含carsim的cpar文件、模型mdl文件、绘图m文件(运行后一键出图)、说明文档和中文文献。本次仿真使用的是MATLAB 2020b版本搭配carsim 2020这俩工具在车辆动力学仿真这块还是非常给力的。范例场景设定为车速72km/h附着系数0.85的双移线工况这个工况能较好地检验车辆在复杂转向情况下的控制性能。MPC控制策略详解这里面MPC有两种实现方式挺有意思的和大家唠唠。增量式MPC含侧偏角软约束第一种MPC采用增量式方法编写通过s - function实现。它的输入参数包括跟踪误差、横摆角误差、侧向速度和横摆角速度输出则是前轮转角和附加横摆力矩主要专注于横向控制。% 假设这里是s - function的部分关键代码框架 function [sys,x0,str,ts] sfcn(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]mdlInitializeSizes; case 2, sysmdlUpdate(t,x,u); case 3, sysmdlOutputs(t,x,u); case {1,4,9} sys []; otherwise DAStudio.error(Simulink:blocks:unhandledFlag, num2str(flag)); end end function [sys,x0,str,ts]mdlInitializeSizes sizes simsizes; % 设置输入输出端口数量等参数 sizes.NumContStates 0; sizes.NumDiscStates 0; sizes.NumOutputs 2; % 前轮转角和附加横摆力矩 sizes.NumInputs 4; % 跟踪误差、横摆角误差、侧向速度和横摆角速度 % 其他参数设置... sys simsizes(sizes); x0 []; str []; ts [0 0]; end function sysmdlOutputs(t,x,u) % 这里面根据输入的u跟踪误差、横摆角误差、侧向速度和横摆角速度 % 通过MPC算法计算输出前轮转角和附加横摆力矩 tracking_error u(1); yaw_error u(2); lateral_velocity u(3); yaw_rate u(4); % 简单示意实际MPC计算很复杂 front_wheel_angle tracking_error * 0.1 yaw_error * 0.2; additional_yaw_moment lateral_velocity * 0.3 yaw_rate * 0.4; sys [front_wheel_angle; additional_yaw_moment]; end这里还考虑了前后轮的侧偏角软约束。为啥要加这个呢当侧偏角快到约束边界的时候如果不做处理车辆的稳定性就会受影响。加了软约束之后一旦侧偏角接近边界就减小控制律这样能保证侧偏角稳定车辆行驶也就更稳。Apollo模型MPC无侧偏角软约束第二种MPC采用Apollo中的模型基于MATLAB function编写这个就不包括侧偏角软约束啦主要是作为对比参考用的。function [front_wheel_angle, additional_yaw_moment] apollo_mpc(tracking_error, yaw_error, lateral_velocity, yaw_rate) % 同样简单示意计算过程 front_wheel_angle tracking_error * 0.15 yaw_error * 0.25; additional_yaw_moment lateral_velocity * 0.35 yaw_rate * 0.45; end通过对比这两个MPC就能很直观地看出侧偏角软约束在车辆控制中的作用。仿真资源说明仿真项目里还包含carsim的cpar文件、模型mdl文件、绘图m文件运行后一键出图超方便另外还有说明文档和中文文献。这些文件对于理解整个仿真流程和原理非常有帮助。比如说cpar文件里详细记录了车辆的各种参数mdl文件搭建了整个仿真模型的架构绘图m文件可以把仿真结果以直观的图形展示出来。总之通过这次研究对基于多种控制策略的车辆路径跟踪有了更深入的认识不同的MPC策略各有特点侧偏角软约束也确实对车辆稳定性控制起到了关键作用。希望我的这些分享能给同样在研究相关方向的小伙伴一些启发。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2437849.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!