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

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

图1 汽车自适应巡航控制系统总体设计

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

图2 汽车逆纵向动力学模型

3.1 加速控制
经逻辑切换后,如果切换后为加速控制,则需按照期望加速度的要求,经过计算得到期望发动机转矩,再通过发动机逆向模型查得期望的节气门开度。

3.2 制动控制
经过逻辑切换之后,如切换为制动控制,需按照期望加速度a,求得期望制动力Fx,继而通过制动器逆向模型求得制动压力p,将p 通过执行器施加于汽车纵向动力学模型进行制动。

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

图3 汽车自适应巡航控制器设计原理图

4.2 模糊控制器的设计
模糊控制器首先将输入值从数字量转化为模糊量,即模糊化过程; 其次对模糊量由给定的规则进行模糊推理,即模糊推理过程; 最后把推理结果的模糊输出量转化为实际系统能够接受的精确数字量或模拟量,即反模糊化过程。为了使本车能够在安全车距下准确地跟随前车,本文选取安全车距s 与相对车距s0的差值Δs 与相对速度Δv 作为控制器的输入量,以本车的加速度a 作为输出量,设计一个“双输入单输出”模糊控制器。

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索数据湖中的巨兽:Apache Hive分布式SQL计算平台浅度剖析!

文章目录 ◆ Apache Hive 概述1.1 分布式SQL计算1.2 Hive的优势 ◆ 模拟实现Hive功能2.1 元数据管理2.2 解析器2.3 基础架构2.4 Hive架构 ◆ Hive基础架构3.1 Hive架构图3.2 Hive组件3.2.1 元数据存储3.2.2 Driver驱动程序3.2.3 用户接口 ◆ Hive部署4.1 VMware虚拟机部署步骤一…

【学习笔记】求解线性方程组的G-S迭代法

求解线性方程组的G-S迭代法 // 运行不成功啊function [x,k,index] Gau_Seid(A,b,ep,it_max) % 求解线性方程组的G-S迭代法,其中 % A为方程组的系数矩阵 % b为方程组的右端项 % ep为精度要求,省缺为1e-5 % it_max为最大迭代次数,省缺为100 % …

新KG视点 | Jeff Pan、陈矫彦等——大语言模型与知识图谱的机遇与挑战

OpenKG 大模型专辑 导读 知识图谱和大型语言模型都是用来表示和处理知识的手段。大模型补足了理解语言的能力,知识图谱则丰富了表示知识的方式,两者的深度结合必将为人工智能提供更为全面、可靠、可控的知识处理方法。在这一背景下,OpenKG组织…

eslint

什么是eslint ESLint 是一个根据方案识别并报告 ECMAScript/JavaScript 代码问题的工具,其目的是使代码风格更加一致并避免错误。 安装eslint npm init eslint/config执行后会有很多选项,按照自己的需求去选择就好,运行成功后会生成 .esli…

bpmnjs Properties-panel拓展(属性设置篇)

最近有思考工作流相关的事情,绘制bpmn图的工具认可度比较高的就是bpmn.js了,是一个基于node.js的流程图绘制框架。初始的框架只实现了基本的可视化,想在xml进行客制化操作的话需要拓展,简单记录下几个需求的实现过程。 修改基础 …

每天一道leetcode:542. 01 矩阵(图论中等广度优先遍历)

今日份题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例1 输入:mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff…

java八股文面试[多线程]——指令重排序

关于a的操作,由原来的6个指令,变成了4个指令。 1. 指令重排序的介绍 1)指令重排序的类型 在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序。 重排序分三种类型:编译器优化的重排序 编译器在不改变单线…

分布式一致性协议

在对一个分布式系统进行架构设计的过程中,往往会在系统的可用性和数据一致性之间进行反复的权衡,于是就产生了一系列的一致性协议。为了解决分布式一致性问题,在长期的探索研究过程中,涌现出了一大批经典的一致性协议和算法&#…

SpringMVC 第二天

第 1 章 ModelAttribute 和 SessionAttribute[ 应 用 ] 1.1ModelAttribute 1.1.1 使用说明 作用: 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上,表示当前方法会在控制器的方法执行之前,先执行…

Open3D 进阶(7)Kmeans++点云聚类

目录 一、算法原理1、原理概述2、实现流程3、参考文献二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述

【Android-Flutter】我的Flutter开发之旅

目录: 0、文档:1、在Windows上搭建Flutter开发环境(1)[使用中国镜像(❌详细看官方文档)](https://docs.flutter.dev/community/china)(2)[下载最新版Flutter SDK(已包含Dart)](https://docs.flu…

[SQLITE_ERROR] SQL error or missing database (near “=“: syntax error)【已解决】

这个报的错误是语法错误,但是我并没有看出来这行代码有什么错。 通过排除掉下边两个问题解决的 从增加记录方法复制的下来的代码,只删除了关闭自动提交事务,但是connection.commit忘记删除executeQuery和executeUpdate方法的用法忘记了&…

什么是网络取证(Network Forensics)

企业采用新技术来检查其网络安全是否存在零日漏洞,与立即指示问题的物理层不同,黑客攻击尝试可能会被忽视并变得严重,直到对网络流量有一个整体的可见性。通过实时监控来跟踪其源和目标的流量,以查明问题或潜在问题的根源。 什么…

Redis之集群模式

一、Redis集群 一个节点就是一个运行在集群模式下的Redis服务器,Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式。 Redis节点不会互相发现,连接各个节点的工作需要使用cluster meet命令来完成 CLUSTER MEE…

Postman API测试之道:不止于点击,更在于策略

引言:API测试的重要性 在当今的软件开发中,API已经成为了一个不可或缺的部分。它们是软件组件之间交互的桥梁,确保数据的流动和功能的实现。因此,对API的测试显得尤为重要,它不仅关乎功能的正确性,还涉及到…

Android屏幕适配(5) — 最小宽度smallWidth适配

概述 最小宽度smallWidth适配实现屏幕适配方案 详细 前言 在之前的文章中,我们讲到了Android屏幕适配的一些知识,大家感兴趣的话可参考Android屏幕适配(1) — 概念解释Android屏幕适配(2) — drawable与mipmapAndroid屏幕适配(3) — 资源文件夹命名与…

C++元编程——深度双向RNN实验

使用C的标准库实现了双向RNN的功能。最近对DRNN做了一些改进&#xff0c;同时进行了实验&#xff0c;首先DRNN的代码如下&#xff1a; #ifndef _RNN_HPP_ #define _RNN_HPP_ #include <stdio.h> #include <stdlib.h> #include <vector> #include "mat.…

爬虫逆向实战(二十五)--某矿采购公告

一、数据接口分析 主页地址&#xff1a;某矿 1、抓包 通过抓包可以发现数据接口是cgxj/by-lx-page 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个param的加密参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无c…

网关认证的技术方案

我们认证授权使用springsecurity 和oauth2技术尽心实现具体实现流程见第五章文档&#xff0c;这里就是记录一下我们的技术方案 这是最开始的技术方案&#xff0c;我们通过认证为服务获取令牌然后使用令牌访问微服务&#xff0c;微服务解析令牌即可。但是缺点就是每个微服务都要…

TIA博途_更新或修改程序时,如何避免数据块中的参数丢失?

TIA博途_更新或修改程序时,如何避免数据块中的参数丢失? DB 快照功能 可以通过捕获 DB 块变量实际值快照用于恢复值操作,捕获的实际快照值可以复制到 CPU 中的实际值中,也可以用于替换变量的起始值。 通过快照能解决以下场景的问题: • 在 HMI 中设置了很多工艺参数,担心…