汽车自适应巡航系统车距控制策略研究

2023-09-14 01:40:57

摘要: 由于汽车自适应巡航控制系统的非线性和不确定性等问题,传统的非线性系统等效线性化方法难以满足系统的精度、稳定度和快速性的要求,因此提出了一种基于模糊控制理论的自适应巡航控制器的设计方法。通过对汽车距离差和相对速度的计算和推理,实时调整本车加速度,保证本车能够在一定的安全车距下跟随前车。通过在Matlab /Simulink 中建立系统模型,在不同的工况下进行仿真。仿真结果表明,建立的汽车逆纵向动力学模型和自适应控制系统能够实现汽车的自适应
巡航功能,并且保证良好的跟踪性、安全性和适应性。
关键词: 自适应巡航系统; 模糊控制; 跟车巡航

1 引言
自适应巡航控制( Adaptive Cruise Control,ACC) 是汽车驾驶辅助系统的重要组成部分,其作用是根据车距传感器探测到本车( ACC 车辆) 与主目标车辆( 前车) 之间的相对位置和相对速度信息,自动调节ACC 车辆的节气门开度或部分制动力矩( 即ACC 车辆的加速度) ,实时控制本车与前车之间的相对车距和相对速度,从而有效减轻驾驶员在驾驶过程中的操作负担,增大道路的交通流量,提高车辆行驶的主动安全性[1]。
由于汽车自适应巡航控制系统所处的行驶工况复杂,且存在较强的非线性和不确定性因素,因此目前针对此类问题大多数采用非线性系统等效线性化方法[2-4],建立线性参考模型并进行参数辨识和控制策略设计。这种等效线性方法在汽车中低速行驶时可以取得较好的控制精度,但随着汽车
行驶速度提高,离线或在线辨识的参考模型往往变得非常不准确,参数模型由于阵风干扰或轮胎磨损等时变因素影响不断发生摄动,鲁棒性和自适应性较差,无法保证控制品质稳定可靠[5]。
针对非线性系统等效线性化方法的不足,本文首先建立了汽车逆纵向动力学模型; 然后基于模糊控制理论设计自适应巡航控制器,使本车能够以一个安全车距准确跟踪前车行驶; 最后,利用Matlab /Simulink 验证了汽车自适应巡航控制系统在加速跟随和前车插入等复杂行驶工况下的跟踪性、安全性和适应性。
2 ACC 系统总体设计
汽车自适应巡航控制系统的主要功能是辅助驾驶员控制车辆,减少驾驶员劳动强度,保证车辆安全行驶。汽车自适应巡航控制系统主要分为汽车自适应巡航控制器、汽车逆纵向动力学模型和汽车纵向动力学模型三部分。其中,控制器的主要作用是通过传感器采集到的本车和前车的信息确
定本车期望加速度的大小。汽车逆纵向动力学模型将期望加速度转化为节气门开度和制动压力,并将其施加于汽车纵向动力学模型,以实现控制器的期望加速度命令,达到自适应巡航的功能。汽车自适应巡航控制系统总体设计如图1所示。

3 车辆逆纵向动力学模型
汽车自适应巡航控制器得出的期望加速度a 需要通过汽车逆纵向动力学模型转化为期望的节气门开度α 和制动压力p,然后将它们输入到汽车纵向动力学模型中,以控制汽车的加速、减速和匀速运动,实现汽车的自适应巡航功能。汽车逆纵向动力学模型结构如图2 所示。

4 汽车自适应巡航控制器的设计
由于汽车自适应巡航系统的复杂性、非线性和不确定性等因素,本文将采用模糊控制算法设计汽车自适应巡航控制器。汽车自适应巡航控制器将传感器测得的两车的相对车距s0、前车车速vp和本车车速vc作为输入,经过模糊化、模糊推理和反模糊化得到汽车期望加速度a。汽车自适应巡航控制器设计原理图如图3 所示。
4.1 安全车距的计算
安全车距,作为ACC 系统的重要组成部分,决定了ACC系统车辆在行驶过程中的跟车间距,为ACC 系统的控制算法的设计提供了参考间距输入值。在ACC 系统中,安全车距控制策略根据行车环境决定期望的跟车间距,再利用控制算法通过控制相应的节气门开度和制动器的制动压力,实现车辆对期望车速和期望车间距的自适应调整。过小的安全车距容易引发交通事故,而过大的安全车距不仅损失了道路的交通通行能力,同时还容易导致邻近车道车辆的换道插入,从而影响ACC 系统车辆的跟车效率、降低ACC 系统的使用率。因此安全车距控制策略的好坏在于它是否能适应变的行驶环境,并且有效的平衡行驶过程中的安全性、跟车性以及道路的通行能力等。

5 结论
1) 本文建立的汽车逆纵向动力学模型与实际车型的结构特点相一致,能够较真实地反映出车辆纵向动力学的非线性时变特性,可满足汽车自适应巡航控制系统对动力学传动系统模型的要求。
2) 从仿真结果来看,本车能够快速地加减速,保证汽车的安全; 并且在跟随前车时,能够以一定的安全车距精确稳定的跟随行驶。因此,基于模糊控制理论的汽车自适应巡航控制系统能够有效应对汽车行驶过程中的各种情况,保证汽车的良好的跟踪性、安全性和适应性。

更多推荐

python爬虫——爬取豆瓣top250电影数据(适合初学者)

前言:爬取豆瓣top250其实是初学者用于练习和熟悉爬虫技能知识的简单实战项目,通过这个项目,可以让小白对爬虫有一个初步认识,因此,如果你已经接触过爬虫有些时间了,可以跳过该项目,选择更有挑战性的实战项目来提升技能。当然,如果你是小白,这个项目就再适合不过了。那么就让我们开始吧!目录一、实战1.对豆瓣网网站进行Ajax

数据库设计与建模

数据库设计与建模1数据库设计的三范式2数据库建模2.1建模工具2.2使用pd建模1数据库设计的三范式三范式:1.第一范式(1NF):确保每一列的原子性(做到每列不可拆分)2.第二范式(2NF):在第一范式的基础上,非主字段必须依赖于主字段(一个表只做一件事)3.第三范式(3NF):在第二范式的基础上,消除传递依赖反三范

IOS数据管理

在iOS中,没有直接与Android中的SharePreference相对应的概念。而是使用不同的机制来处理应用程序的持久化数据。在iOS中,你可以使用以下几种方法来保存和读取应用程序的数据:UserDefaults(用户默认设置):UserDefaults提供了一种简单的键值存储机制,用于存储应用程序的配置和用户偏好

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 页面跳转 action 添加跳转动画 )

文章目录一、为NavigationGraph添加跳转动画1、进入NavigationGraph配置的Design模式2、选中action跳转3、为action跳转设置enterAnim进入动画4、为action跳转设置exitAnim退出动画5、通过代码为action跳转设置进入/退出动画6、执行效果代码地址:CSDN

Qt/C++音视频开发54-视频监控控件的极致设计

一、前言跌跌撞撞摸爬滚打一步步迭代完善到今天,这个视频监控控件的设计,在现阶段水平上个人认为是做的最棒的(稍微自恋一下),理论上来说应该可以用5年不用推翻重写,推翻重写当然也是程序员爱干的事情,这个就要考验个人的功底,设计的好框架搭建的好,可以很多年不用变,只需要在现有框架小修小补即可,最多就是继承基类实现一些特殊性的

【机器学习】详解回归(Regression)

文章目录是什么的问题案例说明是什么的问题回归分析(RegressionAnalysis)是研究自变量与因变量之间数量变化关系的一种分析方法,它主要是通过因变量Y与影响它的自变量Xi(i1,2,3…)X_i(i1,2,3…)Xi​(i1,2,3…)之间的回归模型,衡量自变量XiX_iXi​对因变量Y的影响能力的,进而可以

【SpringCloud】微服务技术栈入门1 - 远程服务调用、Eureka以及Ribbon

目录远程服务调用RestTemplateEureka简要概念配置Eureka环境设置EurekaClientEureka服务发现Ribbon工作流程配置与使用Ribbon饥饿加载远程服务调用RestTemplateRestTemplate可以模拟客户端来向另外一个后端执行请求黑马给出的微服务项目中,有两个boot项目,

03使用Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件开发步骤第一步:创建Maven工程配置生成的pom.xml文件,添加springcontext基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17)当添加Spring的基础依赖springcontext之后,Maven会自动关联并引入其他依赖spri

M2 MacbookPro配置Spark源码运行环境

零、版本信息MacBook:MacBookProM2JDK:1.8.0_381Scala:2.12.15Maven:3.6.3Homebrew:4.1.12(可选,下载Git需要)Git:2.42.0(下载Spark源码需要)Spark:3.2.5整体配置流程参考@来自遥远的水星【Spark源码01【搭建Spark源码

用什么命令看Linux系统的体系架构

要查看Linux系统的体系架构,可以使用uname命令。在终端中运行以下命令:uname-m该命令将返回系统的体系架构,例如x86_64表示64位系统,i686表示32位系统。uname使用方法uname命令用于获取操作系统的相关信息。它可以用于显示操作系统的名称、内核版本、主机名、硬件架构等信息。以下是uname命令

uniapp cors错误

CORS(跨源资源共享)错误通常出现在前端应用程序尝试从不同源(域)请求数据时。这些错误是出于安全考虑而存在的,以防止潜在的恶意攻击。如果你在UniApp中遇到CORS错误,可以尝试以下解决方法:检查服务器端设置:首先,请确保服务器端允许跨域请求。服务器应该在响应头中包含适当的CORS标头,允许来自UniApp应用程序

热文推荐