您现在的位置:首页 >> 图像处理 >> 内容

m十字路口多功能控制交通系统,包括基于遗传算法优化的红绿灯时长模糊控制器和基于BP神经网络的车牌识别

时间:2023/2/9 20:44:56 点击:

  核心提示:10_024_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJWTkpxx

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览










3.算法概述

      其中第一级控制为两个并行模块:绿灯交通强度控制模块与红灯交通强度控制模块。绿灯交通强度控制模块的输入为绿灯相位的排队长度与入口流量,输出绿灯相位的交通强度;红灯相位模块的输入为红灯相位的排队长度,输出为红灯相位的交通强度。

       第二级控制是在第一级控制基础上的一个总控制模块,做出是否转换当前相位的决定。其输入为第一级两个模块的输出即绿灯相位交通强度与红灯相位交通强度,输出为是否转换该改相位的决策,该决策的结果只有两个,要么终止当前相位转到下一相位,要么把该相位延长一个延长绿时间,继续显示该相位。

4.部分源码

...................................................................

Times          = 1:1:4000;

for i = 1:length(Times) 

    t = Times(i);

 

    % r%红灯时间,s

    r = 30;

    % g%——绿灯时间;

    g = 60;   

    

    % ld%——绿信比(绿灯时间与周期的比值);

    ld= g/C;

    % y%——流量比,y=q/s; 

    y = q/s;

    % s%——饱和流量(s=0.4辆/s)

    S = s/3600;

    %排队长度计算公式

    Q = v/3600 * (r-6) * (1 + 1/(s/v-1)) * L/n/Fu;

    %统计平均延误时间

    d(i) = C*(1-ld)^2/(2*(1-y)) + X^2/(2*q*(1-X)) - 0.65*(C/q/q)^(1/3)*X^(2+5*g/C);

end

...........................................................

%加入模糊控制器的对比

Tmin = 10;

Tmax = 20;

Gj   = 60;

 

RR   = readfis('Red_controller'); 

GG   = readfis('Green_controller'); 

RG   = readfis('GA_FNN.fis'); 

 

figure(2);

subplot(311);plotmf(RG,'input',1);  title('R隶属函数变化-GA优化前');

subplot(312);plotmf(RG,'input',2);  title('G隶属函数变化-GA优化前');

subplot(313);plotmf(RG,'output',1); title('RG隶属函数变化-GA优化前');

 

 

for i = 1:length(Times) 

    t = Times(i);

    %控制器初始状态

    if  i == 1

        % r%红灯时间,s

        r = 30;

        % g%——绿灯时间;

        g = Gj;   

 

        % s%饱和流率,辆/h

        s = 300;

        % v%到达率,辆/h

        v = 290;

        % L%车辆长度(包括车辆间的距离、)

        L = 4.8;

        % n%车道数

        n = 4;

        % Fu%车道利用系数

        Fu= 0.6; 

        % X%——饱和度;

        X = 0.9;

        % C%——周期时长;

        C = g + r;

        % q%——流量;

        if mod(i,5) == 1;

           q = 80 + 10*sin(2*pi*t) + 5*randn;  

        end

 

        % ld%——绿信比(绿灯时间与周期的比值);

        ld= g/C;

        % y%——流量比,y=q/s; 

        y = q/s;

        % s%——饱和流量(s=0.4辆/s)

        S = s/3600;

    else

        %调用控制器    

        %绿灯排队长度计算公式

        Qg           = v/3600 * (g-6) * (1 + 1/(s/v-1)) * L/n/Fu;    

        %路口流量

        traffic_flow = q;

...................................................................................

        %最终控制输出

        gout;

        %总的判决

        if g >= Tmin & g <= Tmax

           g = gout; 

        end

        if g <= Tmin

           g = Tmin;

        end

        if g >= Tmax

           g = Tmax;

        end

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        % r%红灯时间,s

        r = 30;

        % s%饱和流率,辆/h

        s = 300;

        % v%到达率,辆/h

        v = 290;

        % L%车辆长度(包括车辆间的距离、)

        L = 4.8;

        % n%车道数

        n = 4;

        % Fu%车道利用系数

        Fu= 0.6; 

        % X%——饱和度;

        X = 0.9;

        % C%——周期时长;

        C = g + r;

        % q%——流量;

        if mod(i,5) == 1;

           q = 80 + 10*sin(2*pi*t) + 5*randn;  

        end

 

        % ld%——绿信比(绿灯时间与周期的比值);

        ld= g/C;

        % y%——流量比,y=q/s; 

        y = q/s;

        % s%——饱和流量(s=0.4辆/s)

        S = s/3600;

    end

 

    %统计平均延误时间

    d(i) = C*(1-ld)^2/(2*(1-y)) + X^2/(2*q*(1-X)) - 0.65*(C/q/q)^(1/3)*X^(2+5*g/C);

    d(i) = d(i)/2;

end

 

 

 

figure(1);

hold on;

plot(Times,d,'k');

hold on;

 

 

 

 

 

 

%加入GA+模糊控制器的对比

%加入GA+模糊控制器的对比

%加入GA+模糊控制器的对比

%加入GA+模糊控制器的对比

Tmin = 10;

Tmax = 20;

Gj   = 60;

 

RR   = readfis('Red_controller'); 

GG   = readfis('Green_controller'); 

RG   = readfis('GA_FNN.fis'); 

 

figure(2);

subplot(311);plotmf(RG,'input',1);  title('R隶属函数变化-GA优化前');

subplot(312);plotmf(RG,'input',2);  title('G隶属函数变化-GA优化前');

subplot(313);plotmf(RG,'output',1); title('RG隶属函数变化-GA优化前');

 

%GA优化

RG_opt   = readfis('GA_FNN_OPT.fis'); 

figure(3);

subplot(311);plotmf(RG_opt,'input',1);  title('R隶属函数变化-GA优化后');

subplot(312);plotmf(RG_opt,'input',2);  title('G隶属函数变化-GA优化后');

subplot(313);plotmf(RG_opt,'output',1); title('RG隶属函数变化-GA优化后');

 

for i = 1:length(Times) 

    t = Times(i);

    %控制器初始状态

    if  i == 1

        % r%红灯时间,s

        r = 30;

        % g%——绿灯时间;

        g = Gj;   

 

        % s%饱和流率,辆/h

        s = 300;

        % v%到达率,辆/h

        v = 290;

        % L%车辆长度(包括车辆间的距离、)

        L = 4.8;

        % n%车道数

        n = 4;

        % Fu%车道利用系数

        Fu= 0.6; 

        % X%——饱和度;

        X = 0.9;

        % C%——周期时长;

        C = g + r;

        % q%——流量;

        if mod(i,5) == 1;

           q = 80 + 10*sin(2*pi*t) + 5*randn;  

        end

 

        % ld%——绿信比(绿灯时间与周期的比值);

        ld= g/C;

        % y%——流量比,y=q/s; 

        y = q/s;

        % s%——饱和流量(s=0.4辆/s)

        S = s/3600;

    else

        %调用控制器    

        %绿灯排队长度计算公式

        Qg           = v/3600 * (g-6) * (1 + 1/(s/v-1)) * L/n/Fu;    

        %路口流量

        traffic_flow = q;

 

        %红灯排队长度计算公式

        Qr = v/3600 * (r-6) * (1 + 1/(s/v-1)) * L/n/Fu;            

        

        %绿灯相位控制器

        G_Power = evalfis([Qg,traffic_flow],GG); 

        %红灯相位控制器,红灯排队长度越长,那么红灯强度减弱,红灯排队长度越短,那么红灯强度减强,

        R_Power = evalfis(Qr,RR); 

        

        

        %GA模糊控制器,输出gout

        gout   = evalfis([G_Power,R_Power],RG_opt); 

        

    

        %最终控制输出

        gout;

        %总的判决

        if g >= Tmin & g <= Tmax

           g = gout; 

        end

        if g <= Tmin

           g = Tmin;

        end

        if g >= Tmax

           g = Tmax;

        end

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        % r%红灯时间,s

        r = 30;

        % s%饱和流率,辆/h

        s = 300;

        % v%到达率,辆/h

        v = 290;

        % L%车辆长度(包括车辆间的距离、)

        L = 4.8;

        % n%车道数

        n = 4;

        % Fu%车道利用系数

        Fu= 0.6; 

        % X%——饱和度;

        X = 0.9;

        % C%——周期时长;

        C = g + r;

        % q%——流量;

        if mod(i,5) == 1;

           q = 80 + 10*sin(2*pi*t) + 5*randn;  

        end

 

        % ld%——绿信比(绿灯时间与周期的比值);

        ld= g/C;

        % y%——流量比,y=q/s; 

        y = q/s;

        % s%——饱和流量(s=0.4辆/s)

        S = s/3600;

    end

 

    %统计平均延误时间

    d(i) = C*(1-ld)^2/(2*(1-y)) + X^2/(2*q*(1-X)) - 0.65*(C/q/q)^(1/3)*X^(2+5*g/C);

    d(i) = d(i)/2;

end

figure(1);

hold on;

plot(Times,d,'r');

legend('不加控制器的平均延误时间','加控制器的平均延误时间','加控制器(GA优化)的平均延误时间');

 

xlabel('times');

ylabel('平均延误时间');

grid on;

hold on;

10_024_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168