车辆换道决策的模糊控制算法实例

这篇具有很好参考价值的文章主要介绍了车辆换道决策的模糊控制算法实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、模糊控制在换道决策应用上的概念介绍

1.1 模糊化

1.2 建立模糊规则

1.3 解模糊

二、Matlab建立模糊逻辑系统

2.1 Matlab模糊逻辑工具箱

2.2 建立模糊系统的步骤

 2.3 建立换道决策的模糊逻辑系统


一、模糊控制在换道决策应用上的概念介绍

        实际驾车时,车辆在行驶过程中能否去执行换道的决策与道路信息存在很大的非线性关系,模糊逻辑算法可以较好地解决复杂信息下的非线性系统控制。

车辆换道决策的模糊控制算法实例

        由实际驾驶经验,我们知道,车辆的安全换道与车辆驾驶速度及车距有关,当车速较大、与前方车辆车距较小时,换道易引起碰撞等危险。在这里定义速度差值系数车距差值系数作为模糊系统判断的输入量。

    (1)速度差值系数:

        其中,为车辆当前速度,为前方车辆的速度。

    (2)车距差值系数:

        其中,为安全车距,为当前车辆距离前方车辆的距离。

1.1 模糊化

        将输入的速度差值系数及车距差值系数模糊化为5个等级:设的取值范围[0,1]为论域X,选取X的模糊子集为 {小,较小,中,较大,大};设的取值范围[0,1]为论域Y,同样地,选取Y的模糊子集为 {小,较小,中,较大,大}。

        输出变量为换道决策意愿值,模糊化为{弱,较弱,中,较强,强}5个子集,论域为Z,取值范围在[0,1]。

1.2 建立模糊规则

换道意愿

速度差值系数

较小

中等

较大

车距期望系数

较弱

中等

较强

较小

较弱

中等

较强

中等

较弱

中等

较强

较强

较大

较弱

中等

较强

较弱

中等

1.3 解模糊

        将模糊推理的输出变量转化为实际执行的变量,决策类型定义如下:

decision=1

继续轨迹跟踪

decision=2

等待避障

decision=3

执行避障动作

二、Matlab建立模糊逻辑系统

2.1 Matlab模糊逻辑工具箱

        在Matlab命令行窗口输入

>>fuzzy

可弹出模糊逻辑工具箱的界面:

车辆换道决策的模糊控制算法实例

        工具箱的使用可参考:matlab模糊控制工具箱使用和模糊控制pid实例参考_studyer_domi的博客-CSDN博客_matlab模糊控制

2.2 建立模糊系统的步骤

参考:Fuzzy Inference System Modeling- MATLAB & Simulink

 1.创建模糊逻辑系统:如,利用   fis = mamfis; %生成模糊逻辑对象(Mamdani模糊系统)

         常见的模糊类型有:mamfis、sugfis(Sugeno模糊推理系统)、genfis(从数据生成模糊推理系统对象)等,或类型间相互转换

2.指定输入和输出变量:如,fis = addInput(fis,[0 1],'Name','fai_d'); %(指定模糊系统,变量范围,‘Name’,变量名称)

3.指定隶属度函数:如,fis = addMF(fis,'fai_d','trimf',[-0.25,0,0.25],'Name','小'); %(指定模糊系统,变量名称,隶属度函数类型,‘Name’,隶属度名称)

        常见的隶属度类型有:

车辆换道决策的模糊控制算法实例

 4.指定模糊规则:这里有,fis = addRule(fis,rulelist);

        其中,rulelist为5列的向量,每一列依次表示等级,等级,等级,规则权重,AND/OR选项(1或0)

5.评估及可视化模糊系统

车辆换道决策的模糊控制算法实例

 6.导入及导出

        例.fis = readfis('LCD');  %从文件加载模糊推理系统

             writeFIS(fis,'LCD'); %将模糊系统保存到文件

 2.3 建立换道决策的模糊逻辑系统

clc
clear
close all

%构造输入、输出
%创建新的模糊推理系统
fis = mamfis;      %生成模糊逻辑对象

%输入1:fai_d(隶属度函数——距离差值系数)
fis = addInput(fis,[0 1],'Name','fai_d');
%设置三角隶属函数'trimf'
fis = addMF(fis,'fai_d','trimf',[-0.25,0,0.25],'Name','小');   %-0.25,0,0.25分别为三角的左底点,顶点,右底点
fis = addMF(fis,'fai_d','trimf',[0,0.25,0.5],'Name','较小');
fis = addMF(fis,'fai_d','trimf',[0.25,0.5,0.75],'Name','中');
fis = addMF(fis,'fai_d','trimf',[0.5,0.75,1],'Name','较大');
fis = addMF(fis,'fai_d','trimf',[0.75,1,1.25],'Name','大');

%输入2:fai_v   (隶属度函数——速度差值系数)
fis = addInput(fis,[0 1],'Name','fai_v');
fis = addMF(fis,'fai_v','trimf',[-0.25,0,0.25],'Name','小');
fis = addMF(fis,'fai_v','trimf',[0,0.25,0.5],'Name','较小');
fis = addMF(fis,'fai_v','trimf',[0.25,0.5,0.75],'Name','中');
fis = addMF(fis,'fai_v','trimf',[0.5,0.75,1],'Name','较大');
fis = addMF(fis,'fai_v','trimf',[0.75,1,1.25],'Name','大');

%输出
fis = addOutput(fis,[0 1],'Name','fai_h');
fis = addMF(fis,'fai_h','trimf',[-0.25,0,0.25],'Name','弱');
fis = addMF(fis,'fai_h','trimf',[0,0.25,0.5],'Name','较弱');
fis = addMF(fis,'fai_h','trimf',[0.25,0.5,0.75],'Name','中');
fis = addMF(fis,'fai_h','trimf',[0.5,0.75,1],'Name','较强');
fis = addMF(fis,'fai_h','trimf',[0.75,1,1.25],'Name','强');
%%规则库
%第1~5列分别是:fai_d,fai_v,fai_h,规则权重,AND/OR选项
rulelist=[1 1 2 1 1;
    1 2 3 1 1;       %当fai_d=1(小),fai_v=2(较小),此时的换道意愿为3(中)
    1 3 4 1 1;
    1 4 5 1 1;
    1 5 5 1 1;
    
    2 1 2 1 1;
    2 2 3 1 1;
    2 3 4 1 1;
    2 4 5 1 1;
    2 5 5 1 1;
    
    3 1 1 1 1;
    3 2 2 1 1;
    3 3 3 1 1;
    3 4 4 1 1;
    3 5 4 1 1;
    
    4 1 1 1 1;
    4 2 1 1 1;
    4 3 2 1 1;
    4 4 3 1 1;
    4 5 4 1 1;
    
    5 1 1 1 1;
    5 2 1 1 1;
    5 3 1 1 1;
    5 4 2 1 1;
    5 5 3 1 1;];

fis = addRule(fis,rulelist);   %添加模糊规则函数
showrule(fis)                  %显示模糊规则函数

%%根据输入,得到输出
%先设置解模糊方法
fis.DefuzzMethod = 'centroid';

%任意给一个fai_d,fai_v,输出换道意愿fai_h
fai_d = 0.4;
fai_v = 0.6;
fai_h = evalfis(fis,[fai_d,fai_v]);

%根据换道意愿fai_h的大小,给出车辆决策
if fai_h > 0 && fai_h <= 0.5
    decision = 1;
    disp('车辆决策为:跟驰行驶')
elseif fai_h > 0.5 && fai_h <= 0.6
    decision = 2;
    disp('车辆决策为:等待换道')
elseif fai_h > 0.6 && fai_h <= 1
    decision = 3;
    disp('车辆决策为:执行换道')
end

%%画出模糊系统
figure(1);plotfis(fis);             %模糊系统连接结构图
figure(2);plotmf(fis,'input',1);    %模糊系统第一个输入隶属函数图
figure(3);plotmf(fis,'input',2);    %模糊系统第二个输入隶属函数图
figure(4);plotmf(fis,'output',1);   %模糊系统输出隶属函数图
figure(5);gensurf(fis);title('换道意愿模糊规则曲面')             %模糊规则曲面

%%保存
writeFIS(fis,'LCD');

    

得到的结果如下:

车辆换道决策的模糊控制算法实例

的隶属度函数值

车辆换道决策的模糊控制算法实例

 的隶属度函数值

 车辆换道决策的模糊控制算法实例

换道意愿 输出

车辆换道决策的模糊控制算法实例

换道意愿的曲面图

 文章来源地址https://www.toymoban.com/news/detail-499996.html

 

到了这里,关于车辆换道决策的模糊控制算法实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【学习笔记】模糊控制算法

      课程《智能控制基础》学习了模糊控制算法,写篇博客整理一下思路。    模糊性来源于事物的复杂性和发展变化性(不确定性)。 所谓模糊,即是对一些常用的概念无法量化,如生活中的冷和热,高个子,青年人等概念,对于这样的概念,传统的集合论无能为力,因

    2023年04月08日
    浏览(37)
  • Nginx实例:限制目录和URL以及IP访问控制

    如果我们深入研究Nginx的功能还是蛮有意思的,比如我们前面有聊到UA可以控制爬虫限制和放行访问。我们也可以利用Nginx进行控制和限制URL、目录,以及IP地址的访问。比如有一些运维的时候,需要用到屏蔽某些IP地址,或者是我们某个目录只能某个IP地址访问或者限制访问。

    2024年02月12日
    浏览(62)
  • 【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例)

    目录 【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例) 一、决策树模型 1、常用算法 2、属性划分策略 3、其他算法 三、决策树算法性能要求 四、 决策树模型

    2024年02月13日
    浏览(56)
  • 自动驾驶算法/规划决策控制算法面经汇总、学习路线、面经心得

    本人985硕,自动驾驶从业者,曾面试过大部分自动驾驶公司、一部分机器人公司以及一些主机厂,方向主要是规划算法、规控算法、规划决策算法等方向。算法的面试难度每年都在不断提高,网友调侃从诸神黄昏到黑夜,可见算法面试有一定难度。 首先要了解自动驾驶算法主

    2024年02月02日
    浏览(69)
  • 星巴克推出Web3平台;天啦噜,AI绘画能007了;『决策算法』电子书;合成人脸数据集;面向数据的版本控制;前沿论文 | ShowMeAI资讯日报

    👀 日报合辑 | 📆 电子月刊 | 🔔 公众号下载资料 | 🍩 @韩信子 https://stories.starbucks.com/press/2022/starbucks-brewing-revolutionary-web3-experience-for-its-starbucks-rewards-members/ 9 月 12 日星巴克宣布推出 Web3 平台 Starbucks Odyssey,将星巴克的忠诚度计划 Starbucks Rewards 与 NFT 平台相结合,允许客户

    2024年02月08日
    浏览(47)
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月15日
    浏览(51)
  • 三、车辆纵向控制

    1.1、整车纵向受力分析 车辆在坡路上前进时 整体纵向受力 情况如图所示。 根据牛顿第二定律有 m x ¨ = F x f + F x r − F a e r o − R x f − R x r − m g sin ⁡ θ mddot{x}=F_{xf}+F_{xr}-F_{aero}-R_{xf}-R_{xr}-mgsintheta m x ¨ = F x f ​ + F x r ​ − F a ero ​ − R x f ​ − R x r ​ − m g sin θ 其中

    2024年02月10日
    浏览(36)
  • Django ORM 模糊查询实例解析

            在 Django 中,对象关系映射 (ORM) 系统提供了一种强大而直观的数据库交互方式。本博文将深入探讨 Django ORM 中的高级单表查询方法和模糊查询选项,使开发人员能够高效地检索和操作数据。         模糊查询是一种非常有用的功能,允许我们根据特定条件来过

    2024年01月19日
    浏览(36)
  • 车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程

    目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 基本假设 4.2 运动学方程 5.完整工程文件 车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程. 版本:MATLAB2022a        车辆运动学模型从几何学的角度研究车辆的运动规律。包括车辆的空

    2024年01月20日
    浏览(64)
  • 六、基于MPC的车辆控制及轨迹规划

    MPC的基本思想为:在每一个采样时刻,根据获得的当前测量信息,在线求解一个有限时间开环优化问题,并将得到的控制序列的第一个元素作用于被控对象。在下一个采样时刻,重复上述过程,用新的测量值作为此时预测系统未来动态的初始条件,刷新优化问题并重新求解

    2024年02月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包