交通流
来源:互联网 发布:js保存cookie到本地 编辑:程序博客网 时间:2024/04/19 03:30
涵义:交通流理论是运用物理和数学的定律来描述交通特性的一门边缘学科.它的应用能更好地解析交通现象及其本质,使道路发挥最大功效。
作为交通工程学的基础理论,多年来交通流理论广泛应用于交通运输工程的许多研究领域:如交通规划、交通控制道路与交通工程设施设计等方面。
参数:定量描述交通流可用 3个参数:
①交通流量,又称交通量,表示交通流在单位时间内通过道路指定断面的车辆数量,单位是辆/小时或辆/日;
②交通流速度,简称流速,表示交通流流动的快慢,单位是米/秒或公里/小时;
③交通流密度,表示交通流的疏密程度,即道路单位长度上含有车辆的数量,单位是辆/公里。
3个参数之间的关系是:交通流量为交通流速度和交通流密度的乘积。道路上车辆很少时,驾驶员可选择较高速度,这时交通流速度较大,但因交通流密度小,所以交通流量也比较小。随着路上的车辆增多,交通流密度增大,车辆的行驶速度虽受到前后车辆的约束而有所下降,流速降低,但交通流量还是增加,直到某一种条件下,流速和密度的乘积达到最大值,即交通流量为最大时为止。这时的流速称为最佳速度,密度称为最佳密度。如果路上车辆再增加,密度继续增大,流速继续下降,尽管密度较大,但因流速较小,所以流量反而下降,直到密度为最大值(这时称之为拥堵密度),造成道路阻塞,车辆无法行驶,流速等于零,交通流量也等于零为止(如图所示[交通流量、交通流速度、交通流密度关系图])。
元胞自动机
元胞自动机(Cellular Automaton,复数为Cellular Automata,简称CA,也有人译为细胞自动机、点格自动机、分子自动机或单元自动机)。是一时间和空间都离散的动力系统。散布在规则格网 (Lattice Grid)中的每一元胞(Cell)取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新。大量元胞通过简单的相互作用而构成精态系统的演化。由冯诺依曼在20世纪50年代发明。
其分为
•NS模型
该模型用一个一维点阵代表一条单车道,即将所研究的单车道分成n个长度为L的小路段(元胞),点阵中每个位置代表一个元胞,每个位置或空闲或容纳一辆车。元胞长度L为道路阻塞时的平均车头间距;车辆速度的范围为0~Vmax;时间步长可以认为是驾驶员的反应时间,通常取1秒;每个位置有Vmax+1种状态。
•变化规则
1.加速规则:如果v(t)<=Vmax,则v(t+1)=min(Vmax,v+1)
2.减速规则:如果v(t)>gap,则v(t+1)=gap
3.随机减速:在概率p下,v(t+1)=max(v(t+1)-1,0)
4.车辆运动:x(t+1)=x(t)+v(t+1)
Gap是本车与前车之间的空格数;x表示车辆的位置
•多车道元胞自动机
除了单车道的变化规则,对于多车道还应该有车道变换规则
•车道变换规则(假设左车道为快车道,右车道为慢车道)
1.如果Vmax>gap且gap_left>=gap,则变换到左车道
2.如果Vmax<gap-v且Vmax<gap_right-v,则变换到右车道
3.如果v_back<=gap_back(保证后车不会与本车发生碰撞),在满足上述条件下车辆以概率p进行变道,并规定以下限制条件:
如果v_right>gap_left,则v_right=gap_left(禁止右车道的车辆超过左车道的车辆)
以下是来自https://wenku.baidu.com/view/992d27d1551810a6f524865a.html 的一段matlab代码
function [ v d p ] = multi_driveway( nl,nc,fp,dt,nt )% 在某一特定车流密度下的(车流密度由fp决定)单、双车道仿真模型% nc:车道数目(1或2),nl:车道长度——输入参数% v:平均速度,d:换道次数(1000次)p:车流密度——输出参数% dt:仿真步长时间,nt:仿真步长数目——输入参数% fp:车道入口处新进入车辆的概率——输入参数% test:% nl = 400;fp = 0.5;% nc = 2;dt=0.01;nt=500; %构造元胞矩阵 B=ones(2*nc+1,nl+2); %奇数行为不可行车道 B(1:2:(2*nc+1),:)=1.2; %初始化仿真元胞状态(1为无车,0为有车) bb=B(2:2:2*nc,:);bb(bb~=0)=1;B(2:2:2*nc,:)=bb;B(2:2:2*nc,end)=0; %显示初始交通流图 figure(1); H=imshow(B,[]); set(gcf,'position',[241 132 560 420]) ;%241 132 560 420 set(gcf,'doublebuffer','on'); %241 title('cellular-automation to traffic modeling','color','b'); %初始化化存储元胞上车辆状态的矩阵 S(1:nc,nl) = 0; Q(1:nc,1:2) = 0; Acc(1:nc,1:(nl+2))=0; %初始化换道频率、平均速度、车流密度相关变量 ad = 0; av(1:nt) = 0; ap(1:nt) = 0; c = 1; for n = 1:nt A=B(2:2:2*nc,:); %确定前n-2个车辆的状态 S(:,:) = 0; S(A(:,1:end-2)==0&A(:,2:end-1)==1&A(:,3:end)==1)=2;%加速的车 S(A(:,1:end-2)==0&A(:,2:end-1)==0)=3;%停车的车 S(A(:,1:end-2)==0&A(:,2:end-1)==1&A(:,3:end)==0)=1;%减速行驶的车 %确定最后2两个元胞的状态 Q(:,:) = 0; Q(A(:,end-1)==0&A(:,end)==0) = 1; Q(A(:,end-1)==0&A(:,end)==1) = 2; Q(A(:,end-1)==1&A(:,end)==0) = 2; Q(:,end) = 1; %获得所有元胞上车辆的状态 Acc = [ S Q ]; %换路规则 if(nc>1&&n>nl/2) %遍历每一个元胞 for g = 1:length(Acc(1,:)) %停车状态车辆如另一条路有2空位则换路 if( Acc(1,g)==3&&Acc(2,g)==0&&Acc(2,g+1)==0) A(1,g)=1; A(2,g)=0; ad=ad+1; elseif( Acc(2,g)==3&&Acc(1,g)==0&&Acc(1,g+1)==0 ) A(1,g)=0; A(2,g)=1; ad=ad+1; %均速行驶车辆如另一条路有3空位则换路 elseif( Acc(1,g)==1&&Acc(2,g)==0&&Acc(2,g+1)==0&&Acc(2,g+1)==0 ) A(1,g)=1; A(2,g)=0; ad =ad+1; elseif( Acc(2,g)==1&&Acc(1,g)==0&&Acc(1,g+1)==0&&Acc(1,g+1)==0 ) A(1,g)=0; A(2,g)=1; ad=ad+1; end end %换路后重新设置元胞上的车辆状态 S(:,1:end) = 0; S(A(:,1:end-2)==0&A(:,2:end-1)==1&A(:,3:end)==1)=2;%寻找加速的车 S(A(:,1:end-2)==0&A(:,2:end-1)==0)=3;%寻找停车的车 S(A(:,1:end-2)==0&A(:,2:end-1)==1&A(:,3:end)==0)=1;%寻找减速行驶的车 %确定最后2两个元胞的状态 Q(:,1:end) = 0; Q(A(:,end-1)==0&A(:,end)==0) = 1;% Q(A(:,end-1)==0&A(:,end)==1) = 2; Q(A(:,end-1)==1&A(:,end)==0) = 2; Q(:,end) = 1; %获得所有元胞状态 Acc = [ S Q ]; end %根据当前状态改变元胞位置 %匀速运行车辆向前走1格 A( Acc(:,1:end)==1 ) = 1; A( [ zeros(nc,1) Acc(:,1:end-1)]==1 ) = 0; %高速运行车辆向前走2格 A( Acc(:,1:end)==2) = 1; A( [ zeros(nc,2) Acc(:,1:end-2)]==2) = 0; %计算平均速度、换道频率、车流密度等参数 %获得运行中的车辆数目N matN = A<1; N = sum(sum(matN)); %获得运行中的车辆速度之和V E = S((S==1)|(S==2)); V = sum(E); %计算此时刻的车流密度并保存 ap(n) = N/( nc*(nl+2) ); %计算此时刻的平均速率并保存 if(N~=0&&n>nl/2) av(c) = V/N; c = c+1; end %在车道入口处随机引入新的车辆 A = [ round(fp*rand(nc,1))&A(1:nc,1) A(:,2:end)]; A(A~=0)=1; %将新的车辆加入元胞矩阵中 B(2:2:2*nc,:)=A; %显示交通流图 set(H,'CData',B); %仿真步长 pause(dt); end %仿真结束,计算结果 d = ad; p = mean(ap); v = sum(av)/c;end
1 0
- 交通流
- Matlab交通流建模
- 交通流理论1——发展阶段
- 交通流理论3——交通流三大参数
- 北京市道路交通流实时动态信息系统的研究
- 双车道元胞自动机交通流Matlab仿真
- matlab代码 交通流元胞自动机仿真 双车道
- 分享资源:双车道元胞自动机交通流Matlab仿真
- 靠右行驶规则的元胞自动机交通流建模(cellular automata,CA),2014美国数学建模竞赛(MCM)A题
- 高通流视频播放
- 防雷器标称通流容量,最大通流容量是什么意思
- [原创] 如何PCB通流能力计算
- 微信公众平台账号注册及调通流程
- PCB过孔的孔径大小对通流的影响
- 交作业
- 凸多边形交
- 交作业
- 区间交
- 排序模板:分数线划定
- Android Studio快速注释
- (带哨兵)直接插入排序
- Android studio (单元测试)
- json数据结构拼装的一个例子
- 交通流
- 为何要在GLSL中使用UBO
- NIO学习整理
- Codeforces Round #408 (Div. 2)-D. Police Stations
- Java泛型
- Django+Vue.js 初学入手的一些坑,已填坑
- oracle11g adg从库开启闪回
- ln: target ‘libcublas’ is not a directory
- Error:Jack is required to support java 8 language features.