2026/4/7 1:57:56
网站建设
项目流程
西安论坛网站制作维护,怎么用linux做网站服务器吗,笑话网站代码,营销型企业网站项目策划表自动驾驶#xff0c;自适应巡航prescan联合仿真模型教程资料自动驾驶开发者手记#xff1a;用Prescan玩转自适应巡航最近在工作室折腾ACC#xff08;自适应巡航#xff09;的联合仿真#xff0c;发现用Prescan做场景模拟确实能省不少实车测试成本。今天咱们直接上干货自适应巡航prescan联合仿真模型教程资料自动驾驶开发者手记用Prescan玩转自适应巡航最近在工作室折腾ACC自适应巡航的联合仿真发现用Prescan做场景模拟确实能省不少实车测试成本。今天咱们直接上干货聊聊怎么在Prescan里搭个ACC仿真环境再配合Simulink整点控制逻辑。先丢个经典场景假设前方有辆慢车自车得自动调整速度保持安全距离。Prescan负责生成传感器数据雷达/摄像头Simulink负责控制算法中间靠TCP/IP通信传数据。第一步Prescan场景搭建打开Prescan拖个Straight Road场景放两辆车——前车用DemoCar自车用ACCVehicle自带雷达传感器。重点在雷达参数设置Radar: - Range: 150m - Horizontal FOV: 15deg - Update rate: 20Hz这里别开太高分辨率否则仿真速度感人。建议先用低精度跑通逻辑再逐步调参。第二步Simulink控制器Prescan导出的模型里会有一个VehicleDynamic模块咱们需要自己写控制逻辑。核心是PID速度控制安全距离计算。function [throttle, brake] ACC_Controller(v_ego, v_target, distance, gap) % PID参数随便调的实际得用Ziegler-Nichols法 Kp 0.8; Ki 0.01; Kd 0.05; % 安全距离模型时间间隔取2s safe_distance v_ego * 2 5; % 误差计算 if distance safe_distance error (safe_distance - distance) (v_target - v_ego); else error v_target - v_ego; end % PID输出 throttle Kp*error Ki*error*dt Kd*(error - prev_error)/dt; brake (throttle 0) ? abs(throttle) : 0; % 负油门视为刹车 end这段代码的坑点dt要用Simulink的时钟模块获取别手写固定值实际项目中得加抗积分饱和逻辑否则长下坡油门能给你积分到爆表安全距离模型可以换成TTCTime to Collision更靠谱。联合仿真翻车实录第一次跑的时候自车直接追尾——原因是Prescan的坐标系和Simulink的转向角符号相反Prescan用右手系Simulink默认左手。解决办法在数据接口层加个符号转换模块或者直接改控制算法的输出符号。调试技巧用Prescan的Experiment Manager实时修改变量比如前车速度Simulink里加个Scope模块盯住油门/刹车信号避免控制量突变如果通信丢包检查Prescan的IPGDriver版本是否匹配必要时重装C运行库。最后说两句联合仿真最大的乐趣在于“虚拟翻车”——代码写错顶多崩个进程比真车撞墙便宜多了。不过也别太依赖仿真雷达噪声、路面摩擦系数这些参数一旦不准仿真结果能把你骗得团团转。代码和模型已传Github评论区自取。下期讲讲怎么用CARLA玩强化学习控车有人想看吗注实际开发需根据Prescan 2022.4和Matlab 2023a版本调整接口