2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有~_第1頁(yè)
2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有~_第2頁(yè)
2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有~_第3頁(yè)
2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有~_第4頁(yè)
2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有~_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2014美賽A題元胞自動(dòng)機(jī)完整代碼,做出來(lái)了有木有2014美賽相關(guān)MATLAB程序(基于NS模型)主程序:NaSch_3. m程序代碼%單車道最大速度3個(gè)元胞開口邊界條件加速減速隨機(jī)慢化elf clear all%build the GUI%define the plot button plotbutton=uicontrol ('style','pushbutton', 'string', Run',.'fontsize', 12,'position', 100, 400, 50, 20,.'ca

2、llback', 'run=l;');%define the stop buttonerasebutton=uicontrol(' style' ,' pushbutton','string' ,' Stop','fontsize' , 12,'position1, 200, 400, 50, 20,1 callback',' freeze=l;');%define the Quit button quitbutton=uicontrol('style

3、'pushbutton', 'string', Quit,.'fontsize' , 12,'position1, 300, 400, 50, 20,.'callback',' stop=l;close / );number = uicontrol (' style', text", . string'1','fontsize' ,12,.position , 20, 400, 50, 20);%CA setupn=100; %數(shù)據(jù)初始化z=zeros(l,

4、 n) ; %元胞個(gè)數(shù)z=roadstart (z, 5); %道路狀態(tài)初始化,路段上隨機(jī)分布5輛cells二z;vmax=3; %最大速度v=speedstart (cells, vmax) ; %速度初始化x=l; %記錄速度和車輛位置 memor_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 push run=0

5、; %wait for a drawfreeze=0; %wait for a freeze (凍結(jié))while (stop=0)if(run=l)%邊界條件處理,搜素首末車,控制進(jìn)出,使用開口條件a=searchleadcar (cells);b=searchlastcar (cells);cells, v=border_control (cells, a, b, v, vmax);i=searchleadcar (cells) ; %搜索首車位置for j=l:iif i-j+l=nz, v=leadcarupdate (z, v);1continue;else%=加速、減速、隨機(jī)慢化if

6、 cells(i-j+l)=0; %判斷當(dāng)前位置是否非空continue;else v(i-j+l)=min(v(i-j+l)+l, vmax); %加速%=減 速k二searchfrontcar(i-j+1), cells) ; %搜素前方首個(gè)非空元胞位置if k=0; %確定于前車之間的元胞數(shù)d=n-(i-j+1);else d=k-(i-j+1)-1;endv (i-j+1) =min(v (i-j+1), d);%=% 減速%隨機(jī)慢化v(i-j+1) =randslow(v(i-j+1);new_v=v (i-j+1);睨=加速、減速、隨機(jī)慢化%更新車輛位置z(i-j+l)=O;z (

7、i-j+l+new_v) =1;%更新速度v(i-j+D=o;v (i-j+l+new_v) =new_v;endendendcells=z;memor_cells(x, :)=cells; %記錄速度和車輛位置memor_v(x, :)=v;x=x+l;set (imh,J cdata*, cells) %更新圖像%update the step number displaypause (0. 2);stepnumber = 1 + str2num(get(number,J string);set(number, string, num2str(stepnumber)endif (freez

8、e=l)run = 0;freeze = 0;enddrawnowend/函數(shù):border_control.m程序代碼Functionnew_matrix_cells, new-v=border_control(matrix_cells, a, b, v, v max)%邊界條件,開口邊界,控制車輛出入%出口邊界,若頭車在道路邊界,則以一定該路0.9離去n=1ength(matr i x_c ells);if a=n2rand(, state*, sum(100*clock) *rand(l) ;%?0aE3e?uOOX6p_l=rand(l); %產(chǎn)生隨機(jī)概率if P_1<=1 %如

9、果隨機(jī)概率小于0.9,則車輛離開路段,否則不離口matrix_cells(n)=0;V(n)=0;endend先入口邊界,泊松分布到達(dá),Is內(nèi)平均到達(dá)車輛數(shù)為q, t為Is if b>vmax t=l;q=0. 25;X=l;p= (q*t) "x*exp(-q*t)/prod(x); %ls 內(nèi)有 1 輛車到達(dá)的概率rand(' state', sum(100*clock) *rand(1);p_2=rand(l);if P_2二pm=min(b-vmax, vmax);matrix_cells(m)=l;v (m)= m;endendnew matrix c

10、ells=matrix cells;new_v=v;/ /函數(shù):leadcarrupdate. m程序代碼function new_matrix_cells, new_v=1eadcarupdate(matrix_cells, v)%第一輛車更新規(guī)則n=1ength(matr i x_cells);if v(n)=0matrix_cells(n)=0;V(n)=0;endnew matrix cells=matrix cells;new_v=v;/ /函數(shù):rands low. m程序代碼function new_v=randslow(v)P=0.3; %慢化概率rand (' sta

11、te', sum(100*clock) *rand (1) ;%?daEse?uOOX 6 p_rand=rand; %產(chǎn) 生隨機(jī)概率if p_rand<=pv=max (v-1, 0);endnew_v=v;/III3函數(shù):roadstart, m程序代碼function Lmatrix_cells_startJ=roadstart (matrix_cells, n) %道路上的車輛初始化狀態(tài),元胞矩陣隨機(jī)為0或1, matrix_cells初始矩陣,n初始車輛數(shù)k=1ength(matr i x_c ells);z=round (k*rand(l, n);for i=l:nJ

12、=z(i);if j=0matrix_cells (j)=0;elsematrix_cells (j)=l;endendmatrix cells start=matrix cells;/ /函數(shù):searchfrontcar. m程序代碼functionlocation_frontcar=searchfrontcar(current_location, matrix_cells) i=length(matrix_cells);if current_location= ilocation_frontcar=0;elsefor j=current_location+l:iif matrix_cel

13、ls(j)=0location_frontcar=j;break;elselocation_frontcar=0;endendend/III函數(shù):searchlastcar. m程序代碼function Llocation_lastcar=searchlastcar(matrix_cells) %搜索尾車位置for i=l:length(matrix_celIs)if matrix_cells(i)=0location_lastcar=i;break;else %如果路上無(wú)車,則空元胞數(shù)設(shè)定為道路長(zhǎng)度location_lastcar=length(matrix_cells);endend/III4函數(shù):searchleadcar. m程序代碼function Llocation_leadcar=searchleadcar(matrix_cells) i=length(matrix_cells);for j=l:iif matrix_cells(i-j+1)=0location_leadcar=i-j+l;break;elselocation_leadcar=0;endend/ /函數(shù):spea

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論