carsim,prescan,simulink三者联合仿真,软件版本为carsim2020.0...
2026/4/23 10:47:23 网站建设 项目流程

carsim,prescan,simulink三者联合仿真,软件版本为carsim2020.0,prescan8.5,matlab2020b,紧急避撞行人,自主换道,纵向制动压力控制加横向前轮转角控制,多项式加mpc,效果如下图所示,可出轨迹跟踪效果图,制动压力变化图

三件套联合搞自动驾驶验证这事,工程佬们应该都懂有多酸爽。Carsim管车辆物理,Prescan玩场景搭建,Matlab/Simulink当大脑,版本必须卡死——Carsim2020.0的轮胎模型和Prescan8.5的红绿灯接口可都是祖传巨坑。

先说这个鬼畜场景:80km/h怼到离行人15米时系统启动,纵向刹车和横向打方向得配合得像德芙巧克力。我的方案是五次多项式规划期望轨迹,MPC当方向盘手,制动压力控制模块直接给Carsim灌刹车油压。

Prescan里搭马路就像玩《都市天际线》,放几个幽灵行人再加移动障碍车。注意把Carsim的动力学参数和Prescan的传感器坐标系对齐,不然雷达检测到行人可能显示在车顶上(别问我是怎么知道的)。

核心代码其实就两块:

% 五次多项式参数生成 coeffs = poly5_trajectory(x0, v0, a0, xt, vt, at, T); function [c] = poly5_trajectory(x0,v0,a0,xt,vt,at,T) A = [T^5, T^4, T^3; 5*T^4, 4*T^3, 3*T^2; 20*T^3, 12*T^2, 6*T]; b = [xt - x0 - v0*T - 0.5*a0*T^2; vt - v0 - a0*T; at - a0]; c = A\b; % 解算高阶项系数 end

这玩意儿生成的轨迹要足够smooth,否则MPC控制器会原地爆炸。注意时间窗T别超过3秒,不然计算量会让Simulink卡成PPT。

carsim,prescan,simulink三者联合仿真,软件版本为carsim2020.0,prescan8.5,matlab2020b,紧急避撞行人,自主换道,纵向制动压力控制加横向前轮转角控制,多项式加mpc,效果如下图所示,可出轨迹跟踪效果图,制动压力变化图

MPC控制器配置重点看权重矩阵:

mpcobj.Weights.OutputVariables = [10, 1, 5]; % 横向误差权重最大 mpcobj.Weights.ManipulatedVariablesRate = [0.1 0.3]; % 方向盘转角变化率限制

这个参数调了老子三天三夜——转向太激进会甩尾,太保守又躲不开行人。建议先拿Prescan的离线模式狂刷100组参数,比在线调试高效十倍。

制动压力控制模块有个坑爹点:Carsim的制动力矩输入需要换算成液压值。分享个祖传公式:

BrakePressure = (Tau_desired * 1000)/(2*mu*R*N) + 0.2*rand(); % 后面加个随机噪声模拟液压波动

注意单位换算,Carsim默认是kN·m,而实际ESP控制单元用的是bar单位。有次漏了转换系数直接让仿真车刹出前空翻,场面十分朋克。

最后上效果图时,记得把Prescan的鸟瞰轨迹和Simulink的时域曲线叠在一起。制动压力曲线要标出最大压力值,别超过Carsim里设置的轮胎附着极限。轨迹跟踪误差建议用热力图展示,能清晰看出MPC在换道时的控制延迟。

搞联合仿真就像同时驯服三头野兽,版本兼容、数据同步、单位转换这三个坑总得掉进去几次。但看到仿真车丝滑绕过行人的瞬间,还是会觉得头发没白掉(反正也不剩几根了)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询