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

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代码问题可私信交流。

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

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值