NaSch模型与改进的NaSch模型.doc
- 文档编号:510005
- 上传时间:2023-04-29
- 格式:DOC
- 页数:12
- 大小:980.33KB
NaSch模型与改进的NaSch模型.doc
《NaSch模型与改进的NaSch模型.doc》由会员分享,可在线阅读,更多相关《NaSch模型与改进的NaSch模型.doc(12页珍藏版)》请在冰点文库上搜索。
NaSch模型与改进的NaSch模型
1NaSch模型
1.1NaSch模型的更新步骤:
Step1:
加速
Step2:
减速
Step3:
随机慢化所有车辆以概率更新速度
Step4:
位置更新
1.2NaSch模型代码及仿真结果
1.2.1NaSch模型仿真结果
该仿真结果的初始条件为:
车辆密度为0.2,车辆最大行驶速度为5,随机慢化概率为0.3,路长为500,时间步为500。
车辆的初始位置及速度随机产生。
%%%%%%%%%%%%%初始化%%%%%%%%%%%%
%L_road为路长,p为随机慢化概率,V_max为车辆行驶最大速度,den为路段车辆密度
L_road=500;p=0.3;V_max=5;den=0.2;
%随机产生车辆的位置x,速度v
a=randperm(L_road);
x=sort(a(1:
L_road*den));
v=zeros(1,L_road*den);
fori=1:
L_road*den
v(i)=randi([1V_max],1,1);
end
fork=1:
500%500个时间步
yy=k*ones(1,L_road*den);
plot(x,yy,'k.')%根据车辆在路段上的位置作图
holdon
%%%%%%%%%%%%%%NaSch模型四步%%%%%%%%%%%%%%%
fori=1:
L_road*den
ifi d(i)=x(i+1)-x(i)-1;%两车间距的计算 else d(i)=x (1)+L_road-x(i)-1;%头车间距的计算 end end fori=1: L_road*den v(i)=min(v(i)+1,V_max);%加速步 v(i)=min(v(i),d(i));%减速步 end a=randperm(L_road*den); y=sort(a(1: L_road*den*p));%随机慢化的车辆位置 fori=1: L_road*den*p j=y(i); v(j)=max(v(j)-1,0);%随机慢化 end v_sum=0; fori=1: L_road*den x(i)=x(i)+v(i);%位置更新 v_sum=v_sum+v(i); end v_ave=v_sum/(L_road*den);%车辆的平均速度 %%%%%%%%%%%%%%周期边界条件%%%%%%%%%%%%%% ifx(L_road*den)>L_road x_lead=x(L_road*den); fori=L_road*den: -1: 2 x(i)=x(i-1); end x (1)=x_lead-L_road; end end holdoff 1.2.2NaSch模型不同随机慢化概率对应的基本图 仿真的初值设定为: 随机慢化概率分别取0.2,0.4,0.6,0.8四种情况,车辆最大行驶速度为5,路长为1000,时间步为100000,对后50000个时间步进行统计分析,车流量的计算方法为在路段的终点位置设置计数器,用后50000个时间步通过的车辆总数除以统计时间50000,车辆的初始位置及初始速度随机产生。 cc=1;A=zeros(4,51); forp=0.2: 0.2: 0.8 %%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%5 %L_road为路长,p为随机慢化概率,V_max为车辆行驶最大速度,number为通过某位置的车辆数 L_road=1000;V_max=5;T_max=100000;number=0;k=1; %随机产生车辆的位置x,速度v a=randperm(L_road); forden=0.02: 0.02: 1 L_roadden=fix(L_road*den); x=sort(a(1: L_roadden)); v=zeros(1,L_roadden); fori=1: L_roadden v(i)=randi([15],1,1); end fort=1: T_max %%%%%%%%%%%NaSch模型四步%%%%%%%%% fori=1: L_roadden ifi d(i)=x(i+1)-x(i)-1;%两车间距的计算 else d(i)=x (1)+L_road-x(i)-1;%若头车超过路长间距的计算 end end fori=1: L_roadden v(i)=min(v(i)+1,V_max);%加速步 v(i)=min(v(i),d(i));%减速步 end aa=randperm(L_roadden); L_roaddenp=fix(L_roadden*p); y=sort(aa(1: L_roaddenp));%随机慢化的车辆位置 fori=1: L_roaddenp j=y(i); v(j)=max(v(j)-1,0);%随机慢化 end fori=1: L_roadden x(i)=x(i)+v(i);%位置更新 end %%%%%%%%%%%%%%%%%%%%%周期边界条件%%%%%%%%%%%%%%%% ifx(L_roadden)>L_road ift>T_max/2 number=number+1; end x_lead=x(L_roadden); fori=L_roadden: -1: 2 x(i)=x(i-1); end x (1)=x_lead-L_road; end end k=k+1; flow(k)=number/(T_max/2); number=0; end A(cc,: )=flow; cc=cc+1; end den=0: 0.02: 1; y1=A(1,: );y2=A(2,: );y3=A(3,: );y4=A(4,: ); plot(den,y1,'*-',den,y2,'o-',den,y3,'x-',den,y4,'+-') gridon %gtext('p=0.2','p=0.4','p=0.6','p=0.8'); legend('p=0.2','p=0.4','p=0.6','p=0.8'); 该图为不同的随机慢化概率所对应的基本图,通过该图可以看出,随着随机慢化概率增大,该路段由自由流状态进入拥挤流状态时的交通密度越小;在p=0.2和0.4时,拥挤流状态曲线比较平滑,说明当随机慢化概率较小时,车流量跟路段的车辆密度成线性关系。 在p=0.6和0.8时,拥挤流状态的曲线会往下凹,说明在随机慢化概率比较大时,车流量在拥挤初期受车辆密度的影响较大,之后随着车辆密度的增大,车流量的变化速度较慢。 1.2.3NaSch模型不同车辆最大行驶速度对应的基本图 仿真实验的初值设定为: 车辆最大行驶速度分别取2,3,4,5四种情况,随机慢化概率为0.2,路长为1000,时间步为100000,对后50000个时间步进行统计分析,车流量的计算方法为在路段的终点位置设置计数器,用后50000个时间步通过的车辆总数除以统计时间50000,车辆的初始位置及初始速度随机产生。 cc=1;A=zeros(4,51); forV_max=2: 5 %%%%%%%%%%%%初始化%%%%%%%%%%% %L_road为路长,p为随机慢化概率,V_max为车辆行驶最大速度,number为通过某位置的车辆数 L_road=1000;p=0.2;T_max=100000;number=0;k=1; %随机产生车辆的位置x,速度v a=randperm(L_road); forden=0.02: 0.02: 1 L_roadden=fix(L_road*den); x=sort(a(1: L_roadden)); v=zeros(1,L_roadden); fori=1: L_roadden v(i)=randi([1V_max],1,1); end fort=1: T_max %%%%%%%%%%%%%%%NaSch模型四步%%%%%%%%%%%%% fori=1: L_roadden ifi d(i)=x(i+1)-x(i)-1;%两车间距的计算 else d(i)=x (1)+L_road-x(i)-1;%若头车超过路长间距的计算 end end fori=1: L_roadden v(i)=min(v(i)+1,V_max);%加速步 v(i)=min(v(i),d(i));%减速步 end aa=randperm(L_roadden); L_roaddenp=fix(L_roadden*p); y=sort(aa(1: L_roaddenp));%随机慢化的车辆位置 fori=1: L_roaddenp j=y(i); v(j)=max(v(j)-1,0);%随机慢化 end v_sum=0; fori=1: L_roadden x(i)=x(i)+v(i);%位置更新 v_sum=v_sum+v(i); end v_ave=v_sum/(L_roadden);%车辆的平均速度 %%%%%%%%%%%周期边界条件%%%%%%%%%% ifx(L_roadden)>L_road ift>T_max/2 number=number+1; end x_lead=x(L_roadden); fori=L_roadden: -1: 2 x(i)=x(i-1); end x (1)=x_lead-L_road; end end k=k+1; flow(k)=number/(T_max/2); number=0; end A(cc,: )=flow; cc=cc+1; end den=0: 0.02: 1; y1=A(1,: );y2=A(2,: );y3=A(3,: );y4=A(4,: ); plot(den,y1,'*-',den,y2,'o-',den,y3,'x-',den,y4,'+-') gridon legend('Vmax=2','Vmax=3','Vmax=4','Vmax=5'); 该图为不同的最大速度所对应的基本图,通过该图可以看出,自由流阶段,在同一车辆密度条件下,车辆最大行驶速度越大,车流量越大;随着密度增加,车流量逐渐增大,车辆最大行驶速度越大,对应的进入拥挤流状态时的车辆密度较小。 拥挤流阶段,随着密度的增加,四条曲线会相互重合,说明路段车辆密度较大时(大于0.5),路段上车辆行驶速度较慢,此时车辆只受路段车辆密度影响。 2改进的NaSch模型 2.1改进NaSch模型的更新步骤 由于驾驶员在行驶过程中会受到前面车辆的影响,因此改进NaSch模型的思想为: 在减速步,如果前面车辆减速,则该车辆也会做相应的减速,否则,该车辆的减速步跟原NaSch模型相同。 Step1: 加速 Step2: 减速 如果,则 否则, Step3: 随机慢化所有车辆以概率更新速度 Step4: 位置更新 2.2改进NaSch模型仿真结果 该仿真结果的初始条件为: 车辆密度为0.2,车辆最大行驶速度为5,随机慢化概率为0.3,路长为500,时间步为500,车辆的初始位置及初始速度随机产生。 %%%%%%%%%%%%%初始化%%%%%%%%%%% %L_road为路长,p为随机慢化概率,V_max为车辆行驶最大速度,den为路段车辆密度 L_road=500;p=0.3;V_max=5;den=0.2;%由于matlab画图点的大小不能控制,所以取路长为500 %随机产生车辆的位置x,速度v a=randperm(L_road); x=sort(a(1: L_road*den)); v=zeros(1,L_road*den); fori=1: L_road*den v(i)=randi([15],1,1); end fork=1: 500%500个时间步 v_pre=v; yy=k*ones(1,L_road*den); plot(x,yy,'k.') holdon %%%%%%%%%%%%NaSch模型四步%%%%%%%%%%%%%%% fori=1: L_road*den ifi d(i)=x(i+1)-x(i)-1;%两车间距的计算 else d(i)=x (1)+L_road-x(i)-1;%若头车超过路长间距的计算 end end fori=1: L_road*den v(i)=min(v(i)+1,V_max);%加速步 ifk>1&i ifv_pre2(i+1)>v_pre(i+1) eplon=min(v(i),d(i)-1); v(i)=max(eplon,0); else v(i)=min(v(i),d(i));%NaSch模型的减速步 end else v(i)=min(v(i),d(i)); end end a=randperm(L_road*den); y=sort(a(1: L_road*den*p));%随机慢化的车辆位置 fori=1: L_road*den*p j=y(i); v(j)=max(v(j)-1,0);%随机慢化 end v_sum=0; fori=1: L_road*den x(i)=x(i)+v(i);%位置更新 v_sum=v_sum+v(i); end v_ave=v_sum/(L_road*den);%车辆的平均速度 %%%%%%%%%%%%%周期边界条件%%%%%%%%%%%% ifx(L_road*den)>L_road x_lead=x(L_road*den); fori=L_road*den: -1: 2 x(i)=x(i-1); end x (1)=x_lead-L_road; end v_pre2=v_pre; end holdoff 3两种模型的比较结果 文中两种NaSch模型的比较结果是在随机慢化概率为0.2,车辆行驶最大速度为5,路长为1000,对应每个车辆密度的值,车辆在路段上的初始位置及初始速度相同,算法共执行100000个时间步,取后50000个时间步的结果进行比较。 %%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%% %L_road为路长,p为随机慢化概率,V_max为车辆行驶最大速度,number为通过某位置的车辆数 L_road=1000;V_max=5;T_max=100000;number=0;k=1;p=0.2;number2=0;A=zeros(2,51); %随机产生车辆的位置x,速度v a=randperm(L_road); forden=0.02: 0.02: 1 L_roadden=fix(L_road*den); x=sort(a(1: L_roadden)); v=zeros(1,L_roadden); fori=1: L_roadden v(i)=randi([1V_max],1,1); end v2=v;x2=x; fort=1: T_max v_pre=v2; %%%%%%%%%%%%%%%%NaSch模型四步%%%%%%%%%%%%%%%% fori=1: L_roadden ifi d(i)=x(i+1)-x(i)-1;%两车间距的计算 d2(i)=x2(i+1)-x2(i)-1; else d(i)=x (1)+L_road-x(i)-1;%若头车超过路长间距的计算 d2(i)=x2 (1)+L_road-x2(i)-1; end end fori=1: L_roadden v(i)=min(v(i)+1,V_max);%加速步 v2(i)=min(v2(i)+1,V_max); v(i)=min(v(i),d(i));%减速步 ift>1&i ifv_pre2(i+1)>v_pre(i+1) eplon=min(v2(i),d2(i)-1); v2(i)=max(eplon,0); else v2(i)=min(v2(i),d2(i));%NaSch模型的减速步 end else v2(i)=min(v2(i),d2(i)); end end aa=randperm(L_roadden); L_roaddenp=fix(L_roadden*p); y=sort(aa(1: L_roaddenp));%随机慢化的车辆位置 fori=1: L_roaddenp j=y(i); v(j)=max(v(j)-1,0);%随机慢化 v2(j)=max(v2(j)-1,0); end fori=1: L_roadden x(i)=x(i)+v(i);%位置更新 x2(i)=x2(i)+v2(i); end %%%%%%%%%%%%%周期边界条件%%%%%%%%%%%%%%% ifx(L_roadden)>L_road ift>T_max/2 number=number+1; end x_lead=x(L_roadden); fori=L_roadden: -1: 2 x(i)=x(i-1); end x (1)=x_lead-L_road; end ifx2(L_roadden)>L_road ift>T_max/2 number2=number2+1; end x2_lead=x2(L_roadden); fori=L_roadden: -1: 2 x2(i)=x2(i-1); end x2 (1)=x2_lead-L_road; end v_pre2=v_pre; end k=k+1; flow(k)=number/(T_max/2); flow2(k)=number2/(T_max/2); number=0;number2=0; end A(1,: )=flow; A(2,: )=flow2; den=0: 0.02: 1; y1=A(1,: );y2=A(2,: ); plot(den,y1,'*-',den,y2,'o-'); gridon %gtext('p=0.2','p=0.4','p=0.6','p=0.8'); legend('NaSch','改进NaSch'); 通过该图可以看出,路段自由流阶段,两种模型的曲线相互重合,究其原因,由于车辆密度较小,不同车辆之间的距离较大,此时改进的NaSch模型退化为NaSch模型,随着密度的逐渐增大,路段车辆进入拥挤流阶段,此时改进NaSch模型的曲线在原NaSch曲线下方,这是因为在改进NaSch模型的加速步,由于此时路段车辆密度较大,不同车辆之间的间距较小,当前车辆会收到前面车辆减速的影响而做相应的减速,车辆的平均速度会减小,因此路段的流量会低于NaSch模型预测的路段车辆流量。 3NaSch模型展望 NaSch模型是元胞自动机模型中比较经典的模型,其更新规则简单,容易理解,并且能够再现实际交通中观测到的某些现象,因而被很多学者研究使用,并在原NaSch模型的基础上进行改进。 文章只给出一种改进方法,还有很多方面值得研究,在加速步,每个车辆的加速会受到很多限制条件的约束,当车辆速度为零且车辆停止时间较长,驾驶员加速的反应时间会比运动车辆驾驶员的长。 我们还可以在NaSch模型的基础上,研究多车道车辆行驶的运动特征,可以考虑超车这种在实际交通中常见的情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NaSch 模型 改进