【路径规划】基于模糊逻辑系统实现车辆的自主导航附matlab代码

2023-11-02

1 内容介绍

在过去的30年,用于城市地面交通工具中自动驾驶技术的开发已经得到了飞速的发展.目前,现代自主驾驶车辆已具备一定感知车辆周围环境的能力,比如根椐分类所分析对象的类型并进行检测;观测周身环境的变化并评估对象的移动可能性;在遵循交通法规的基础之上对复杂的交通现状进行车辆路径规划并分析障碍物的移动方向等.在这些复杂的情况下,这种自主导航能力是建立在很多学科(例如:计算机学,电子工程学,机器人技术和控制学等)的基础之上跨越并结合之后研发的.​

2 仿真代码

%'LE' = 1, 'LV' = 2, 'VE'=3, 'RV'=4, 'RI'=5

function match=xpos(input,loc,delta)

if (loc==1) | (loc==5)

    

    switch loc

        

        case 1

            %UMF

            p=[0 20 70];  

            if (input<p(1))

                disp('not a valid input');

                match2=0;

            elseif (input>=p(1)) & (input<=p(2))

                match2=1;

            elseif (input>p(2)) & (input<=p(3))

                m=-1.0/(p(3)-p(2));

                c=-m*p(3);

                match2=m*input+c;

            else 

                match2=0;

            end

            %LMF

            m=-1.0/(p(3)-p(2));

            p(3)=p(3)-delta;

            c=-m*p(3);

            y_level=m*p(2)+c;

            

            if (input<p(1)) | (input>p(3))

                match1=0;

            elseif ((input>=p(1)) & (input<=p(2)))

                match1=y_level;    

            else

                match1=m*input+c;

            end

        case 5

            %UMF

            p=[130 180 200];

            if (input>p(3))

                disp('not a valid input');

                match2=0;

            elseif (input>=p(2)) & (input<=p(3))

                match2=1;

            elseif (input>p(1)) & (input<p(2))

                m=1.0/(p(2)-p(1));

                c=-m*p(1);

                match2=m*input+c;

            else 

                match2=0;

            end

            %LMF

            m=1.0/(p(2)-p(1));

            p(1)=p(1)+delta;

            c=-m*p(1);

            y_level=m*p(2)+c;

            if (input<p(1)) | (input>p(3))

                match1=0;

            elseif ((input>=p(1)) & (input<=p(2)))

                match1=m*input+c;

            else

                match1=y_level;

            end

    end

                

else

    

    switch loc  

    

        case 2 

        p=[60 80 100];

        

        case 3

        p=[90 100 110];

        

        case 4

        p=[100 120 140];

    end

    

        %LMF

        if (input<p(1)) | (input>p(3))

            match1=0;

        elseif (input>=p(1)) & (input<p(2))

            m=1.0/(p(2)-p(1));

            c=-m*p(1);

            match1=m*input+c;

        elseif (input>p(2)) & (input<=p(3))

            m=1.0/(p(2)-p(3));;

            c=-m*p(3);;

            match1=m*input+c;

        else

            match1=1;

        end

        %UMF

  

        p(4)=p(3)+delta;

        p(3)=p(2)+delta;

        p(2)=p(2)-delta;

        p(1)=p(1)-delta;

        if (input<=p(1)) | (input>=p(4))

            match2=0;

        elseif (input>p(1)) & (input<p(2))

            m=1.0/(p(2)-p(1));

            c=-m*p(1);

            match2=m*input+c;

        elseif (input>=p(2)) & (input<=p(3))

            match2=1;

        else

            m=1.0/(p(3)-p(4));;

            c=-m*p(4);;

            match2=m*input+c;

        end

end

match(1)=match1;

match(2)=match2;

3 运行结果

4 参考文献

[1]秦雅. 基于车辆模型辅助的旋转微惯性自主导航技术[D]. 南京航空航天大学, 2017.

[2]曲龙. 基于MATLAB的自动泊车系统仿真研究[D]. 沈阳理工大学, 2013.

[3]宫照新. 基于模糊逻辑的智能交通控制算法的研究[J]. 科学技术与工程, 2009(18):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【路径规划】基于模糊逻辑系统实现车辆的自主导航附matlab代码 的相关文章

  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • MATLAB parfor 和 C++ 类 mex 包装器(需要复制构造函数?)

    我正在尝试使用概述的方法将 C 类包装在 matlab mex 包装器中here http www mathworks com matlabcentral newsreader view thread 278243 基本上 我有一个初始化
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 绘制布朗运动 matlab

    首先 我只想说我不太习惯使用matlab 但我需要一个作业 我应该创建一个 布朗运动 我的代码目前如下所示 clf hold on prompt Ge ett input size input prompt numParticles inp
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • 拟合具有扭曲时基的正弦波

    我想知道在 Matlab 中拟合具有扭曲时基的正弦波的最佳方法 时间失真由 n 阶多项式 n 10 给出 其形式为t distort P t 例如 考虑失真t distort 8 12t 6t 2 t 3 这只是幂级数展开 t 2 3 这将
  • 基本矩阵错误?

    我试图通过扫描从相机拍摄的两个图像 检测图像中的特征 匹配它们 创建基本矩阵 使用相机内在函数计算基本矩阵 然后分解它以找到旋转和翻译 这是matlab代码 I1 rgb2gray imread 1 png I2 rgb2gray imre
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • MATLAB 问题中的 Parfor

    为什么我不能使用parfor在这段代码中 parfor i 1 r for j 1 N r xr j N r i 1 x i r j 1 end end 这是错误 错误 parfor 中的变量 xr 无法分类 请参阅 MATLAB 中的并行
  • 在 numpy/scipy 中查找 matlab 函数

    是否有一个等价的函数find A gt 9 1 来自 numpy scipy 的 matlab 我知道有nonzeronumpy 中的函数 但我需要的是第一个索引 以便我可以在另一个提取的列中使用第一个索引 Ex A 1 2 3 9 6 4
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope
  • matlab 中的 for 或 while 循环

    我刚刚开始在编程课的 matlab 中使用 for 循环 基本的东西对我来说很好 但是我被要求 使用循环创建一个 3 x 5 矩阵 其中每个元素的值是其行号其列号除以行号和列号之和的幂 例如元素 2 3 的值为 2 3 2 3 1 6 那么
  • 在 Matlab 中将绘图从高斯混合变换为均匀分布

    考虑以下抽签2x1Matlab 中的向量 其概率分布是两个高斯分量的混合 P 10 3 number draws v 1 First component mu a 0 0 5 sigma a v 0 0 v Second component
  • 如何使用神经网络保存 Sift 特征向量进行分类

    SIFT 特征的 Matlab 实现发现于http www cs ubc ca lowe keypoints http www cs ubc ca lowe keypoints 在 stackoverflow 的帮助下 我想将功能保存到 m
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio

随机推荐