基于不同路面附着系数的全速 ACC 控制算法研究

参考文献:

自适应巡航系统安全距离控制算法设计

[55] Zifei Nie, Hooman Farzaneh. Adaptive Cruise Control for Eco-Driving Based on Model  Predictive Control Algorithm[J].Applied Sciences, 2020,10(5271):5271. [56] Li  S,  Li  K, 

【56】Rajamani  R,  et  al.  Model  Predictive  Multi-Objective Vehicular Adaptive Cruise Control[J]. IEEE Transactions on Control Systems and Technology, 2011, 19(3): 556-566.

[61] 张 亮 修 , 吴 光 强 . 车 辆 自 适 应 巡 航 控 制 系 统 的 建 模 与 分 层 控 制 [J]. 汽 车 工程,2018,40(5):547-553.

[62] 李旗.基于多目标优化的车辆多模式自适应巡航控制研究[D].合肥工业大学,2019.

63] 屈紫君.基于 ESC 线控制动系统控制策略研究[D].燕山大学,2020. 

[65] 刘灿.城市交通拥堵辅助巡航控制系统策略研究[D].吉林大学,2020.

文首先基于合理假设搭建车辆动力学模型,计算车辆相关状态参数,提出了递推最小二乘法和路面相似度识别法。在车轮滑移率较大的工况下采用递推最小二乘法;在车轮滑移率较小的工况下选取路面相似度识别法

风乘用车自主辅助驾驶系统的研究和应用,目前采用的传感器为 Mobileye 单目摄像头第三代,该摄像头至多可同时采集传感探测范围内的六个车辆目标,并获取每个车辆目标的以下信息:前方车辆 ID;前方车辆与本车的相对纵向距离;前方车辆与本车的相对速度;前方车辆左后侧边角;前方车辆右后侧边角;前方车辆所处车道的左侧车道线多项式拟合参数;前方车辆所处车道的右侧车道线多项式拟合参数;前方车辆所处车道的相邻左侧车道的左侧车道线多项式拟合参数;前方车辆所处车道的相邻右侧车道的右侧车道线多项式拟合参数。

衰减指数函数

现考虑此种情况:主车跟随前车运动,但前车突然变道,此时主车由跟车模式切换为定速巡航模式,若跟车车速和定速巡航车速两者相差较大时,主车会出现剧烈的顿挫,这会严重影响乘员的舒适性,因此本文引入了衰减指数函数,目的是希望主车期吉林大学硕士学位论文 36 望加速度能够平滑过渡,且不影响响应速度车速差越小,响应速度越快

 

安全距离

 

 所谓安全时距即假定前车不动,主车以当前车速行驶并碰撞上前车所用的时间。

前馈加反馈

从上式(4.9)可以看到,上层控制算法决策得到的期望加速度结合车辆自身状态参数可以求得发动机力矩,发动机力矩驱动车辆达到期望加速度,但车辆实际行驶过程中,发动机力矩响应无法完美跟随车辆的期望加速度,一是因为车辆自身的状态参数,例如发动机转速、传动系传动效率等一直在变化,其次就是路面附着状态和空气阻力系数也会有些许变化。这些参数和状态的变化导致发动机期望力矩与实际输出力矩之间存在误差,为解决此问题,可以考虑对发动机力矩输出添加反馈校正环节。[62]比较常用的反馈校正方法为 PID 控制,PID 控制具有应用范围广、调节操作简单、控制效果好的优点。本文将车辆实际加速度和期望加速度的差值作为调节量,根据该差值设计 PI 控制器,通过调节 PI 参数值,将发动机力矩补偿值作为前馈量与发动机期望力矩值累加,从而解决发动机输出力矩无法使主车达到期望加速度的问题。具体控制原理如下图 4.4 所示。通过试验对加速执行器进行标定有𝐾𝑝= 2和𝐾𝑖= 0.1。

 本文研究基于实车考量,车辆在实际行驶过程中,减速控制是通过 ESC(Electronic Stability Control,电子稳定控制)来实现的,上层控制逻辑只需将期望减速度值输送给下层 ESC 执行器接口,ESC 通过内部逻辑输出制动轮缸压力进行减速控车。

 

 

 

 

 

 

ACC(Adaptive Cruise Control,自适应巡航控制系统)是一种汽车驾驶辅助系统,它通过车辆传感器实时调整车速以保持与前方车辆的安全距离。下面是一个简单的C++代码片段,展示了如何模拟这个功能的基本思想,使用预设的加速度和制动阈值: ```cpp #include <iostream> #include <thread> // 使用线程模拟延迟 class ACC { private: double speed; // 车辆当前速度 double target_speed; // 目标速度 double lead_car_distance; // 前方车辆距离 double safety_distance; // 安全距离 double acceleration; // 加速度 double deceleration; // 制动减速率 public: ACC(double initial_speed, double target_speed, double safety_distance) : speed(initial_speed), target_speed(target_speed), safety_distance(safety_distance), acceleration(0.5), deceleration(3.0) {} void update(const double& lead_car_distance) { if (lead_car_distance + safety_distance > speed) { // 如果安全距离足够,加速到目标速度 if (speed < target_speed) { double time_to_accel = (target_speed - speed) / acceleration; std::this_thread::sleep_for(std::chrono::seconds(time_to_accel)); speed += acceleration * time_to_accel; } } else { // 缓慢刹车直到达到安全距离 double time_to_decel = (speed - (lead_car_distance + safety_distance)) / deceleration; std::this_thread::sleep_for(std::chrono::seconds(time_to_decel)); speed -= deceleration * time_to_decel; } // 更新前方车辆距离时继续检查并调整速度 this->lead_car_distance = lead_car_distance; } }; int main() { ACC car(0, 60.0, 2.0); // 初始化一辆车,初始速度0,目标速度60km/h,安全距离2m for (double distance = 10.0; distance >= 2.0; distance -= 1.0) { // 模拟前方车辆减速 std::cout << "Current speed: " << car.speed << "m/s\n"; car.update(distance); } return 0; } ``` 注意这只是一个简化版的示例,实际应用中会涉及更复杂的传感器数据处理、加权算法以及线程同步等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值