




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 元胞自動機 NaSch模型及其MATLAB代碼作業(yè)要求依據前面的介紹,對NaSch模型編程并進行數值模擬:l 模型參數取值:Lroad=1000,p=0.3,Vmax=5。l 邊界條件:周期性邊界。l 數據統計:扔掉前50000個時間步,對后50000個時間步進行統計,需給出的結果。l 基本圖(流量-密度關系):需整個密度范圍內的。l 時空圖(橫坐標為空間,縱坐標為時間,密度和文獻中時空圖保持全都, 畫500個時間步即可)。l 指出NaSch模型的創(chuàng)新之處,找出NaSch模型的不足,并給出自己的改進思路。l § 流量計算方法:密度車輛數/路長;流量flux=density×
2、;V_ave。在道路的某處設置虛擬探測計算統計時間T內通過的車輛數N;流量flux=N/T。l § 在計算過程中可都使用無量綱的變量。1、NaSch模型的介紹作為對184號規(guī)章的推廣,Nagel和Schreckberg在1992年提出了一個模擬車輛交通的元胞自動機模型,即NaSch模型(也有人稱它為NaSch模型)。l 時間、空間和車輛速度都被整數離散化。l 道路被劃分為等距離的離散的格子,即元胞。l 每個元胞或者是空的,或者被一輛車所占據。l 車輛的速度可以在(0Vmax)之間取值。2、NaSch模型運行規(guī)章在時刻t到時刻t+1的過程中依據下面的規(guī)章進行更新:(1)加速:規(guī)章(1)
3、反映了司機傾向于以盡可能大的速度行駛的特點。(2)減速:規(guī)章(2)確保車輛不會與前車發(fā)生碰撞。(3)隨機慢化: 以隨機概率p進行慢化,令:規(guī)章(3)引入隨機慢化來體現駕駛員的行為差異,這樣既可以反映隨機加速行為,又可以反映減速過程中的過度反應行為。這一規(guī)章也是堵塞自發(fā)產生的至關重要因素。(4)位置更新: ,車輛依據更新后的速度向前運動。其中,分別表示第n輛車位置和速度;l(l1)為車輛長度;表示n車和前車n+1之間空的元胞數;p表示隨機慢化概率;為最大速度。3、NaSch模型實例依據題目要求,模型參數取值:L=1000,p=0.3,Vmax=5,用matlab軟件進行編程,扔掉前11000個時
4、間步,統計了之后500個時間步數據,得到如下基本圖和時空圖。3.1程序簡介初始化:在路段上,隨機安排200個車輛,且隨機速度為1-5之間。圖3.1.1是程序的運行圖,圖3.1.2中,白色表示有車,黑色是元胞。圖3.1.1 NaSch模型運行圖圖3.1.2 NaSch模型3.2流量密度分析圖3.2描述了交通流量與密度的關系,從圖中可知,該模型中,當密度為00.185時,流量隨密度的增加而增加;當密度超過0.185時,流量開頭隨密度的增加而下降。圖3.2 基于NaSch模型的流量密度圖3.3 NaSch模型時空圖分析圖3.3.1和圖3.3.2描述了,時間步從11001開頭到11500結束,共500
5、個時間步的空間和時間的關系,從圖中可以模擬出自發(fā)產生的堵塞現象。圖3.3.1 基于NaSch模型的時空圖圖3.3.2 基于NaSch模型的時空圖4 模型評價優(yōu)點:該程序基本實現了NaSch模型的基本功能,并且最大速度、元胞數量、車輛數量以及運行間隔時間都可以修改,程序很機敏,并且可以清楚的看出每一次運行過程。缺點:當時間步超過20000步時,內存占用量大。附件% 主程序:NaSch_3.m程序代碼% 單車道 最大速度3個元胞 開口邊界條件 加速 減速 隨機慢化clfclear all%build the GUI%define the plot buttonplotbutton=uicontro
6、l('style','pushbutton',.'string','Run', .'fontsize',12, .'position',100,400,50,20, .'callback', 'run=1;');%define the stop buttonerasebutton=uicontrol('style','pushbutton',.'string','Stop', .'fontsize
7、',12, .'position',100,500,50,20, .'callback','freeze=1;');%define the Quit buttonquitbutton=uicontrol('style','pushbutton',.'string','Quit', .'fontsize',12, .'position',100,600,50,20, .'callback','stop=1;close;
8、39;);number = uicontrol('style','text', .'string','1', .'fontsize',12, .'position',20,400,50,20);%CA setupn=1000; %數據初始化z=zeros(1,n); %元胞個數z=roadstart(z,200); %道路狀態(tài)初始化,路段上隨機分布200輛cells=z;vmax=5; %最大速度v=speedstart(cells,vmax); %速度初始化x=1; %記錄速度和車輛位置memor
9、_cells=zeros(3600,n);memor_v=zeros(3600,n);imh=imshow(cells); %初始化圖像白色有車,黑色空元胞set(imh, 'erasemode', 'none')axis equalaxis tightstop=0; %wait for a quit button pushrun=0; %wait for a drawfreeze=0; %wait for a freeze(凍結)while (stop=0 & x<11502) if(run=1) %邊界條件處理,搜素首末車,把握進出,使用開口條
10、件 a=searchleadcar(cells); b=searchlastcar(cells); cells,v=border_control(cells,a,b,v,vmax); i=searchleadcar(cells); %搜尋首車位置 for j=1:i if i-j+1=n z,v=leadcarupdate(z,v); continue; else %=加速、減速、隨機慢化 if cells(i-j+1)=0; %推斷當前位置是否非空 continue; else v(i-j+1)=min(v(i-j+1)+1,vmax); %加速 %=減速 k=searchfrontcar(
11、i-j+1),cells); %搜素前方首個非空元胞位置 if k=0; %確定于前車之間的元胞數 d=n-(i-j+1); else d=k-(i-j+1)-1; end v(i-j+1)=min(v(i-j+1),d); %=%減速 %隨機慢化 v(i-j+1)=randslow(v(i-j+1); new_v=v(i-j+1); %=加速、減速、隨機慢化 %更新車輛位置 z(i-j+1)=0; z(i-j+1+new_v)=1; %更新速度 v(i-j+1)=0; v(i-j+1+new_v)=new_v; end end end cells=z; memor_cells(x,:)=ce
12、lls; %記錄速度和車輛位置 memor_v(x,:)=v; x=x+1; set(imh,'cdata',cells) %更新圖像 %update the step number diaplay pause(0.0001); stepnumber = 1+str2num(get(number,'string'); set(number,'string',num2str(stepnumber) end if (freeze=1) run = 0; freeze = 0; end drawnowendfigure(1)for l=11001:1:
13、11500 for k=1:1:1000 if memor_cells(l,k)>0 plot(k,l,'k.'); hold on; end endendxlabel('空間位置')ylabel('時間(s)')title('時空圖')for i=1:1:500 density(i)=sum(memor_cells(i,:)>0)/1000; flow(i)=sum(memor_v(i,:)/1000;endfigure(2) plot(density,flow,'k.');title('流量
14、密度圖')xlabel('density')ylabel('flow')% % /% % % 函數:searchlastcar.m程序代碼function location_lastcar=searchlastcar(matrix_cells)%搜尋尾車位置for i=1:length(matrix_cells) if matrix_cells(i)=0 location_lastcar=i; break; else %假如路上無車,則空元胞數設定為道路長度 location_lastcar=length(matrix_cells); endend% 函
15、數:searchfrontcar.m程序代碼function location_frontcar=searchfrontcar(current_location,matrix_cells)i=length(matrix_cells);if current_location=i location_frontcar=0;else for j=current_location+1:i if matrix_cells(j)=0 location_frontcar=j; break; else location_frontcar=0; end endend% 函數:roadstart.m程序代碼func
16、tion matrix_cells_start=roadstart(matrix_cells,n)%道路上的車輛初始化狀態(tài),元胞矩陣隨機為0或1,matrix_cells初始矩陣,n初始車輛數k=length(matrix_cells);z=round(k*rand(1,n);for i=1:n j=z(i); if j=0 matrix_cells(j)=0; else matrix_cells(j)=1; endendmatrix_cells_start=matrix_cells;% 函數:randslow.m程序代碼function new_v=randslow(v)p=0.3; %慢化
17、概率rand('state',sum(100*clock)*rand(1);%?¨?ú?×?p_rand=rand; %產生隨機概率if p_rand<=p v=max(v-1,0);endnew_v=v; % 函數:leadcarrupdate.m程序代碼function new_matrix_cells,new_=leadcarupdate(matrix_cells,v)%第一輛車更新規(guī)章n=length(matrix_cells);if v(n)=0 matrix_cells(n)=0; v(n)=0;endnew_matrix_cells=matrix_cells;new_v=v;% 函數:searchleadcar.m程序代碼function location_leadcar=searchleadcar(matrix_cells)i=length(matrix_cells);for j=1:i if matrix_cells(i-j+1)=0 location_l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三亞市吉陽區(qū)教育系統招聘編制教師筆試真題2024
- 歷史建筑群保護社區(qū)兒童游樂場規(guī)劃基礎知識點歸納
- 合同和信息管理措施方案
- 脈沖晶閘管型強流開關電熔蝕失效特性研究
- 教學設計10重金屬檢驗
- 工業(yè)互聯網安全能力評估指標體系-洞察闡釋
- 定積分的簡單應用教學設計講課時間
- 2025至2030年中國生物潔凈工作臺行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國清彈機行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國浴缸暗裝龍頭行業(yè)投資前景及策略咨詢報告
- 部編一年級《咕咚》課本劇
- 危大工程驗收記錄表(模板工程)
- 天津市新版就業(yè)、勞動合同登記名冊
- 甲酸鈣生產工藝
- 法律診所完整版教學ppt課件全套教程
- 《作物栽培學》課件-第八章甘蔗栽培
- 走進校園課堂體驗學校生活——2018幼兒園參觀小學簡報
- 手少陰心經腧穴
- 四年級奧數舉一反三用假設法解題PPT學習教案
- 新人教版九年級物理全冊習題
- 修改版鳥兒之最 PPT
評論
0/150
提交評論