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

article/2025/9/25 11:43:28

目录

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

1.1 模糊化

1.2 建立模糊规则

1.3 解模糊

二、Matlab建立模糊逻辑系统

2.1 Matlab模糊逻辑工具箱

2.2 建立模糊系统的步骤

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


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

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

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

    (1)速度差值系数:

\varphi _{v}=\left\{\begin{matrix} 1 &v_{e} \geq v_{f} \\ \frac{v_{e}-v_{f} }{v_{e}}& v_{e} \leq v_{f} \end{matrix}\right.

        其中,v_{e}为车辆当前速度,v_{f}为前方车辆的速度。

    (2)车距差值系数:

\varphi _{d}=\left\{\begin{matrix} 1 &D_{safe} \geq D_{f} \\ \frac{D_{safe} }{D_{f}}&D_{safe} \leq D_{f} \end{matrix}\right.

        其中,D_{safe}为安全车距,D_{f}为当前车辆距离前方车辆的距离。

1.1 模糊化

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

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

1.2 建立模糊规则

换道意愿\varphi _{h}

速度差值系数\varphi _{v}

较小

中等

较大

车距期望系数\varphi _{d}

较弱

中等

较强

较小

较弱

中等

较强

中等

较弱

中等

较强

较强

较大

较弱

中等

较强

较弱

中等

1.3 解模糊

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

0<\varphi _{h}\leqslant 0.5

decision=1

继续轨迹跟踪

0.5<\varphi _{h}\leqslant 0.6

decision=2

等待避障

\varphi _{h}>0.6

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列的向量,每一列依次表示\varphi _{d}等级,\varphi _{v}等级,\varphi _{h}等级,规则权重,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.5decision = 1;disp('车辆决策为:跟驰行驶')
elseif fai_h > 0.5 && fai_h <= 0.6decision = 2;disp('车辆决策为:等待换道')
elseif fai_h > 0.6 && fai_h <= 1decision = 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');

得到的结果如下:

\varphi _{d}的隶属度函数值

 \varphi _{v}的隶属度函数值

 

换道意愿 \varphi _{h}输出

换道意愿的曲面图

 

 


http://chatgpt.dhexx.cn/article/T9Fs7K82.shtml

相关文章

模糊控制算法实例matlab程序

参考文献《智能控制——刘金锟》 以水位的模糊控制为例。如图4一4所示&#xff0c;设有一个水箱&#xff0c;通过调节阀可向内注水和向外抽水。设计一个模糊控制器&#xff0c;通过调节阀门将水位稳定在固定点附近。按照日常的操作经验&#xff0c;可以得到基本的控制规则为&am…

模糊控制算法的C++实现

在现代智能控制算法中&#xff0c;模糊控制是在实际控制系统设计中使用比较成熟的一种方法。模糊控制可以使用在一些无法建立系统模型的场合&#xff0c;根据专家经验确定模糊规则&#xff0c;实现对系统的控制。本篇文章适合对模糊控制算法有一定了解的人阅读&#xff0c;给大…

模糊控制算法基础知识

模糊控制的工作原理&#xff1a; 从模糊控制器的构成我们知道&#xff0c;输入模糊化&#xff0c;模糊推理&#xff0c;去模糊化是实施模糊控制的三个主要环节。有时根据这三个环节的作用分别称为&#xff1a;模糊器&#xff0c;模糊推理机和解模糊器。 所以要学会使用模糊控制…

控制算法(二)—— 模糊控制算法

模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法&#xff0c;它是从行为上模仿人的模糊推理和决策过程的一种智能控制算法。模糊控制首先将操作人员或专家经验编成模糊规则&#xff0c;然后将来自传感器的实时信号模糊化&#xff0c;将模糊化后的…

模糊控制(FL)算法

模糊控制算法(理论知识) 模糊&#xff08;Fuzzy&#xff09;控制是用语言归纳操作人员的控制策略&#xff0c;运用语言变量和模糊集合理论形成控制算法的一种控制。模糊控制的最重要特征是不需要建立被控对象精确的数学模型&#xff0c;只要求把现场操作人员的经验和数据总结成…

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

本文目录 0. 前言1. 概述2. 模糊集合2.1 集合和论域2.2 模糊集合的概念2.3 模糊集合的表示方式2.4 模糊集合的运算 3. 模糊关系与模糊关系合成3.1 笛卡尔积3.2 关系与模糊关系3.3 模糊关系的运算3.4 模糊关系合成3.5 模糊变换 4. 模糊推理4.1 模糊推理规则【重要&#xff01;】…

图像处理——乘性噪声和加性噪声

加性噪声一般指热噪声、散弹噪声等&#xff0c;它们与信号的关系是相加&#xff0c;不管有没有信号&#xff0c;该类噪声是一直存在的。一般通信中把加性随机性看成是系统的背景噪声。 乘性噪声一般由信道不理想引起&#xff0c;它们与信号的关系是相乘&#xff0c;信号在它在…

给数据增加噪声

例如在POS-bp算法中增加噪声&#xff0c;优点&#xff1a;使输出更光滑从而提升网络的推理能力&#xff0c;提升泛化能力。添加样本噪声&#xff0c;使线条更光滑。 这个地方是添加了一个正太分布均值为0&#xff0c;方差为0.01的1xSamLnNum的随机数矩阵。

噪声模型

常见的噪声模型有(z是噪声值&#xff0c;m表示均值&#xff0c;s2表示方差)&#xff1a; 1、高斯噪声:ma , s2b^2 2、均匀分布噪声 3、伽马噪声 mb/a , s2b/a^2 4、指数分布噪声 m1/a , s21/a^2 5、瑞利噪声 : 6、椒盐噪声 其中盐表示亮点&#xff0c;椒表示暗点。 几…

噪声系数

噪声系数 噪声分类噪声系数的定义电阻(无源器件)的输出噪声功率半导体器件放大器噪声因子噪声系数NF无源器件的噪声系数 噪声系数的级联噪声系数对系统的影响 噪声分类 热噪声(Thermal Noise)&#xff1a;最基本的一种噪声&#xff0c;就像冬日里北方的霾一样&#xff0c;可以说…

图像随机加噪声

对于图像&#xff0c;一般做图像增强都是得要求算法/模型去噪效果好。那么对应图像&#xff0c;原始图像一般多多少少有噪声&#xff0c;通过我们自己的创新算法就可以去噪。也可以有很多客观指标来评价去噪后图像的效果的好坏。 下图为我自己的算法处理的图像&#xff0c;包…

向数据中添加高斯噪声

什么是高斯噪声 高斯噪声既是符合高斯正态分布的误差。一些情况下我们需要向标准数据中加入合适的高斯噪声会让数据变得有一定误差而具有实验价值。高斯噪声还有一些其他用途但是我不太了解&#xff0c;这里我是为了实现多项式拟合正弦曲线&#xff0c;生成数据时&#xff0c;…

Python 加性高斯白噪声 AWGN

高斯白噪声 概念 加性高斯白噪声&#xff08;Additive White Gaussian Noise&#xff0c;简写AWGN&#xff09; "白"是指功率谱恒定&#xff1b; 高斯指的是概率p (x)满足高斯函数。 在百度百科中的概念是&#xff0c;加性高斯白噪声在通信领域中指的是一种各频谱分…

常见的噪声分类

常见的噪声&#xff1a;高斯、泊松和椒盐噪声以及代码实现 转载的地址&#xff1a;浅析“高斯白噪声”&#xff0c;“泊松噪声”&#xff0c;“椒盐噪声”的区别 - 简书 转载的地址&#xff1a;散粒噪声 shot noise 泊松噪声 - sunny,lee - 博客园 转载的地址&#xff1a;图像…

噪 声

噪 声 一. 噪声定义 从物理学的角度来看&#xff1a;噪声是发声体做无规则振动时发出的声音。在图形学中&#xff0c;我们把各种妨碍人们对其信息接受的因素称为图像噪声 。噪声在理论上可以定义为“不可预测&#xff0c;只能用概率统计方法来认识的随机误差”。因此将图像噪声…

《通信原理》用matlab实现加性高斯白噪声信道实验

目录 一、实验名称 二、实验目的 三、实验原理 四、实验内容及结果 五、实验收获 一、实验名称 加性高斯白噪声信道 二、实验目的 1.掌握matlab语言的基本操作和基本的编程功能&#xff1b; 2.掌握awgn函数和randn函数的用法&#xff1b; 3.了解加性高斯白噪声信道的产生方法&…

加性高斯色噪声信道

1 加性高斯色噪声信道 对于高斯白噪声&#xff0c;不同时刻的样本值是不相关的。为方便&#xff0c;在实际应用中通常将在信号上叠加高斯白噪声&#xff0c;对一些算法性能进行评估。依据评估结果&#xff0c;指导工程设计实现。在实际工程中&#xff0c;高斯白噪声的不相关性并…

噪声是什么?

1.噪声的概念 日常我们说的噪声是——“除了我想听到的声音”以外的声音&#xff0c;就是噪声。比如我想听A君讲话&#xff0c;但是B君和C君在旁边喋喋不休&#xff0c;他们俩说的话是“我不想听到的声音”&#xff0c;那么他们两个的声音就是噪声。而在电路中&#xff0c;噪声…

噪声和信噪比的转换(如何在数据集中添加噪声)

之前参考别人的博客写了一篇&#xff0c;后来用的过程中发现有问题&#xff0c;但是相关理论部分还是可以用的。 之前我写的&#xff1a;https://blog.csdn.net/Kathleen_yuan/article/details/89817487 别人的推论&#xff08;推论1要加个条件才能用&#xff0c;就是信号强度…

乘性噪声理解

来自&#xff1a;乘性噪声图像处理方法研究 乘性噪声普遍存在于现实世界的图像应用当中&#xff0c;如合成孔径雷达、超声波、激光等相干图像系统当中&#xff0e;与标准加性高斯白噪声相区别&#xff0c;乘性噪声符合瑞利或伽玛分布函数&#xff0e;乘性噪声对图像的污染严重&…