Gointerface接口声明实现及作用详解
216
2022-09-04
【元胞自动机】元胞自动机收费站的交通问题matlab源码(元胞自动机交通流)
1 简介
2 部分代码
\```c% iterations = 迭代次数即计算次数 100% B = 收费站的个数 定义的了是12个% L = 车道数 6% Arrival = 平均车流量% plazalength = 收费区长度 101 但是这个是什么意思呢% Service = 服务率 0.8% dt = 时间步长 % plaza = 收费区矩阵 % 1 = 有车, 0 =为空, -1 = 禁止, -3 = 收费站% v = 速度矩阵 % vmax = 最大速度% time = 时间矩阵% t_h = 时间因素% departurescount = 在一次计算中流出的车数% departurestime = 流出的车经过收费区所花费的时间% influx = 进车矢量% outflux = 出车矢量% timecost = 所有车辆花费的时间% h = 句柄clear;clc;iterations = 100; % 迭代次数即计算次数B = 12; % 收费站的个数L = 6; % 车道数Arrival=4; % 平均车流量plazalength = 101; % 收费区长度 [plaza, v, time] = create_plaza(B, L, plazalength);%子函数1构建收费区矩阵 h = show_plaza(plaza, NaN, 0.01);%子函数2将收费区矩阵转换为图片(NaN任意值)Service = 0.8; % 服务率dt = 0.2; % 时间步长t_h = 1; % 时间因素vmax = 5; % 最大速度influx=[];%不同outflux=[];%不同% 1 = 有车, 0 = 为空, -1 = 禁止, -3 = 收费站% v = 速度矩阵% time = 时间矩阵% vmax = 最大速度Service = 0.8; % 服务率 exp(-Service*dt)dt = 0.2; %时长probac = 0.7;% 加速概率probdc = 1;% 减速的可能性probrd = 0.3;% 随机减速的可能性t_h = 1; % 时间因素[L,W] = size(plaza);% 构建(i,j)位置的距离矩阵gap = zeros(L,W);f = find(plaza==1);%找到收费区中有车的位置并记录for k=f' [i,j] = ind2sub([L,W], k);%将矩阵中k位置,用[i,j]表示 d = plaza(i+1:end, j);%距离 gap(k) = min( find([d~=0;1]) )-1;%找到k车前方最近(min)的不为零的元胞,测距;find([d~=0;1]查endgap(end,:) = 0;%最后一行距离为0 %% 速度更新规则% 1 加速:间隔大于速度k = find((gap(f) > v(f)*t_h) & (v(f) + 1 <= vmax) & (rand(size(f)) <= probac));%gap(f)到前面车的距离v(f(k)) = v(f(k)) + 1;% 2 排除碰撞k = find((v(f)*t_h > gap(f)) & (rand(size(f)) <= probdc));v(f(k)) = gap(f(k))/t_h;% 3 随机减速k = find(rand(size(f)) <= probrd);v(f(k)) = max(v(f(k)) - 1,0);% 进出收费站%% 收费亭function [plaza, v, time, departurescount, departurestime] = clear_boundary(plaza, v, time)% clear_boundary 最后一行车的移动% plaza = 收费区矩阵% 1 = 有车,0=为空,-1 = 禁止, -3 = 收费站% v = 速度矩阵% time = 时间矩阵departurescount = 0;%出口离去车辆数departurestime = [];%离去车辆时刻[a,b] = size(plaza);booth_row = ceil(L/2);%找到收费区的位置for i = 2:W-1 if (plaza(booth_row,i) ~= 1)%如果该收费站没车 if (plaza(booth_row-1,i) == 1)%如果收费站之前有车 v(booth_row - 1 ,i) = 1;%该车速度为1 end
```
3 运行结果
4 参考文献
[1]杜忠杰等. "基于排队论模型的收费站拥堵现状仿真研究." 科技创新导报 12(2017).
部分理论引用网络文献,若有侵权联系博主删除。
5 MATLAB代码与数据下载地址
见博客主页
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~