仿真模型的matlab實(shí)現(xiàn)_第1頁
仿真模型的matlab實(shí)現(xiàn)_第2頁
仿真模型的matlab實(shí)現(xiàn)_第3頁
仿真模型的matlab實(shí)現(xiàn)_第4頁
仿真模型的matlab實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7講仿真模型與Matlab實(shí)現(xiàn)王丹理學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)系2023年夏季例1:生命游戲生命游戲〔gameoflife〕是由劍橋大學(xué)的數(shù)學(xué)家JohnHortonConway在1970年提出來的。元胞分布在規(guī)那么劃分的二維網(wǎng)格上;元胞具有0,1兩種狀態(tài),0代表“死〞,1代表“生〞;元胞以相鄰的8個(gè)元胞為鄰居;一個(gè)元胞的生死由其在該時(shí)刻本身的生死狀態(tài)和周圍八個(gè)鄰居的狀態(tài)決定。生命游戲的規(guī)那么:生存:對一個(gè)活的元胞,如果它的鄰居中有兩個(gè)或三個(gè)元胞是活的,那么該元胞將繼續(xù)生存下去。死亡:對一個(gè)活的元胞(a)如果它的鄰居中有四個(gè)或四個(gè)以上的元胞是活的,那么該元胞將死去;(b)如果它的鄰居中只有一個(gè)或沒有活的元胞,那么該元胞也將死去。繁殖:對一個(gè)死的元胞,如果它的鄰居中有3個(gè)〔不能多也不能少〕活的,那么該元胞將成為一個(gè)活的元胞。生命游戲的規(guī)那么(數(shù)學(xué)形式):規(guī)那么的不斷演化所形成的規(guī)律性與初始狀態(tài)有關(guān),不同的初始狀態(tài)可能導(dǎo)致不同的演化結(jié)果。生命游戲的一些演化過程和形態(tài)演示〔1〕完全生成初始狀態(tài)〔2〕脈沖星〔Explore〕〔3〕滑翔機(jī)〔Glider〕〔4〕小脈沖星〔SmallExplore〕〔5〕10元胞行〔10Cellsrow〕〔6〕輕型飛船〔LightweightSpaceship〕〔7〕圖姆勒〔Tumler〕〔8〕滑翔機(jī)發(fā)射器〔GosperGliderGun〕完全生成初始狀態(tài)脈沖星〔Explore〕滑翔機(jī)〔Glider〕10元胞行〔10Cellsrow〕輕型飛船〔LightweightSpaceship〕圖姆勒〔Tumler〕滑翔機(jī)發(fā)射器〔GosperGliderGun〕滑翔機(jī)發(fā)射器〔GosperGliderGun〕程序?qū)崿F(xiàn)幾個(gè)核心問題:〔1〕棋盤狀態(tài)如何表示?〔2〕鄰域活細(xì)胞總數(shù)如何統(tǒng)計(jì)?〔3〕元胞自動機(jī)的狀態(tài)改變規(guī)那么在程序中如何表達(dá)?〔4〕動畫如何生成?〔5〕初始狀態(tài)如何給定?〔1〕棋盤狀態(tài)如何表示?用一個(gè)0-1矩陣表示元胞自動機(jī)的棋盤,即:〔2〕鄰域活細(xì)胞總數(shù)如何統(tǒng)計(jì)?〔3〕元胞自動機(jī)的狀態(tài)改變規(guī)那么在程序中如何表達(dá)?換一種寫法:程序效率差異顯著〔4〕動畫如何生成?初始化:每次更新:〔5〕初始狀態(tài)如何給定?直接賦值,如省略了賦初值語句例2:Langton'sant蘭頓螞蟻是元胞自動機(jī)另外一個(gè)經(jīng)典的案例。其通過簡單兩條規(guī)那么模擬螞蟻的行為規(guī)律。螞蟻在方形網(wǎng)格上運(yùn)動,網(wǎng)格分為黑色和白色兩種,螞蟻在網(wǎng)格上頭可朝向上、下、左、右四個(gè)方向,頭朝向哪個(gè)方向,下一步運(yùn)動就向該方向,并且不改變頭的方向,運(yùn)動遵循兩條規(guī)那么:〔1〕假設(shè)螞蟻位于黑色網(wǎng)格,那么頭向右轉(zhuǎn)90度,前進(jìn)一步,并將原網(wǎng)格變成白色;〔2〕假設(shè)螞蟻位于白色網(wǎng)格,那么頭向左轉(zhuǎn)90度,前進(jìn)一步,并將原網(wǎng)格變成黑色;

通過模擬可以發(fā)現(xiàn),螞蟻表現(xiàn)出了相當(dāng)復(fù)雜的行為。初始狀態(tài)為一只小螞蟻位于網(wǎng)格中間,且頭朝上。隨著螞蟻的行走演變,系統(tǒng)行為表現(xiàn)為三個(gè)階段:程序?qū)崿F(xiàn)核心變量:〔1〕棋盤的狀態(tài)改變〔2〕螞蟻的當(dāng)前位置和頭的朝向用一個(gè)二維數(shù)組表示棋盤的狀態(tài),假設(shè)棋盤大小為200*200,螞蟻位于棋盤中心(100,100)位置,初始螞蟻頭朝上。棋盤:cells(1:200,1:200)=1;%白色棋盤posx=100;posy=100;%螞蟻當(dāng)前位置direct=1;%1,2,3,4代表從上開始順時(shí)針?biāo)膫€(gè)方向棋盤大小全為白色棋盤設(shè)定圖像顯示螞蟻初始位置和方向當(dāng)前位置為黑格頭朝上頭朝右頭朝下頭朝左當(dāng)前位置為白格頭朝上頭朝右頭朝下頭朝左例3:森林火災(zāi)模擬元胞空間采用2維正方形網(wǎng)格自動機(jī),元胞包括三種狀態(tài):正在生長的樹〔綠色〕,正在燃燒的樹〔紅色〕和空狀態(tài)〔黑色〕。初始狀態(tài)由這三種情況隨機(jī)填充,鄰域取Moore型。每一步按下述規(guī)那么更新狀態(tài):〔1〕正在燃燒的樹變?yōu)榭諣顟B(tài);〔2〕如果正在生長的樹格位最近的鄰居中有不少于一棵樹正在燃燒,那么它將變?yōu)槿紵隣顟B(tài);〔3〕如果是空狀態(tài)格位,那么其以概率p生長出樹;〔4〕考慮到閃電的作用,在最近鄰居中沒有正在燃燒的樹〔周圍全是樹且沒有燃燒〕的情況下,生長樹在每個(gè)時(shí)間步以概率f變成燃燒的樹。程序?qū)崿F(xiàn)核心變量:規(guī)那么〔1〕—規(guī)那么〔4〕的實(shí)現(xiàn)!用一個(gè)二維數(shù)組表示棋盤的狀態(tài),假設(shè)棋盤大小為100*100,初始根據(jù)概率隨機(jī)確定是否有樹。棋盤:S=rand(100);%隨機(jī)生成[0,1]間的棋盤矩陣S(S<=0.5)=0;S(S>0.5)=1;Sk=zeros(102);Sk(2:N+1,2:N+1)=S;例4:基于元胞自動機(jī)的交通流模擬將道路離散化為一維網(wǎng)格,車輛為元胞,勻速行駛,其在一維網(wǎng)格上的移動看成一維網(wǎng)格的狀態(tài)變化,鄰域取前后各一個(gè)位置,即鄰域半徑r=1,初始狀態(tài)為道路入口處有一輛車,隨著時(shí)間的進(jìn)行,道路入口處按均勻分布隨機(jī)產(chǎn)生一輛車作為道路的輸入〔產(chǎn)生概率決定了車流密度〕,車輛在道路上的移動可使用元胞自動機(jī)模擬。將某一個(gè)位置的車固定不移動,還可模擬紅綠燈和交通堵塞等情況,如將道路最后一個(gè)位置車輛不移動或固定時(shí)長移動,那么可模擬紅綠燈;將道路中某一個(gè)位置車輛不移動一定時(shí)長可模擬偶然交通事故。

〔1〕在當(dāng)前時(shí)間,某一個(gè)位置假設(shè)有車,那么下一個(gè)時(shí)間該位置有無車取決于前后位置是否有車;〔2〕假設(shè)當(dāng)前位置有車,下一個(gè)位置沒有車,那么當(dāng)前位置下一個(gè)時(shí)刻有無車取決于上一個(gè)位置是否有車,如上一個(gè)位置有車,那么下一個(gè)時(shí)刻當(dāng)前位置有車,否那么無車,假設(shè)下一個(gè)位置有車,那么還決定于下一個(gè)時(shí)刻此車是否會前進(jìn),假設(shè)前進(jìn),那么當(dāng)前位置下一個(gè)時(shí)刻有無車又由上一個(gè)位置有無車決定,否那么當(dāng)前位置有車;〔3〕假設(shè)當(dāng)前時(shí)刻無車,那么下一個(gè)時(shí)刻有無車取決于上一個(gè)位置是否有車,假設(shè)有車,那么當(dāng)前位置下一個(gè)時(shí)刻有車,否那么無車。移動規(guī)那么:移動規(guī)那么可表示成:上述這條規(guī)那么隱藏了一個(gè)潛在的前提〔假設(shè)〕:前進(jìn)中的車輛應(yīng)該有車距〔一個(gè)車位〕,即假設(shè)完全緊挨在一起的車輛在行進(jìn)中要隔開一個(gè)車位。在這個(gè)模型根底上還可以加上紅綠燈機(jī)制,如在路的最后設(shè)置紅綠燈,給定紅綠燈時(shí)間,只需在紅燈時(shí)間內(nèi)讓道路口位置恒為1,在綠燈時(shí)間內(nèi)讓道路口位置恒為0即可。紅燈60個(gè)單位時(shí)間,綠燈120個(gè)單位時(shí)間增加偶然交通事故。在每個(gè)時(shí)刻,產(chǎn)生服從均勻分布的隨機(jī)數(shù),假設(shè)隨機(jī)數(shù)大于0.5%那么發(fā)生一次交通事故,在有車的位置隨機(jī)產(chǎn)生一個(gè)交通事故點(diǎn),堵塞交通固定時(shí)間,如60個(gè)時(shí)間單位。具體實(shí)現(xiàn)上讓這個(gè)位置在堵塞時(shí)間內(nèi)恒為1即可。程序?qū)崿F(xiàn)系統(tǒng)參數(shù)設(shè)置:S=100;%道路長度First(1:s+1)=0;%一維數(shù)組表示道路Passtime=120;%綠燈時(shí)間Stoptime=60;%紅燈時(shí)間

Ispass=1,curpass=0,curstop=0;%記錄當(dāng)前車輛已通過或停止的時(shí)間Accident=0;%路面是否發(fā)生隨機(jī)事故Acpoint=-1;%發(fā)生隨機(jī)事故的位置Actime=60;curactime=-1;%隨機(jī)事故的阻塞時(shí)間記錄更新的道路狀態(tài)阻塞道路末端打開道路末端紅綠燈規(guī)那么實(shí)現(xiàn)隨機(jī)交通事故處理以0.5%的概率產(chǎn)生隨機(jī)事故車輛移動仿真從道路末端到起點(diǎn)車輛移動方程事故點(diǎn)附近處理道路口進(jìn)入車輛以0.4的概率按均勻分布在道路起點(diǎn)處產(chǎn)生1輛車,更符合實(shí)際的是應(yīng)該按照泊松分布或指數(shù)分布產(chǎn)生車輛,如:進(jìn)一步考慮車輛加減速,設(shè)每輛汽車〔元胞〕有一個(gè)行駛速度,速度最小值為0,最大值為vmax,在當(dāng)前時(shí)刻到下一時(shí)刻演化中,汽車遵循以下原那么:〔1〕加速:現(xiàn)實(shí)中司機(jī)總是期望以最大速度行駛,所以在每一步當(dāng)可以加速時(shí)(前后車輛距離大于當(dāng)前車速),司機(jī)進(jìn)行加速,新的速度為〔2〕減速:當(dāng)前后車距過近,用當(dāng)前速度前進(jìn)會碰撞時(shí)司機(jī)進(jìn)行減速,新的速度為

dn為前后車距?!?〕隨機(jī)慢化:由于各種不確定因素〔如路況,司機(jī)分心等〕造成車輛減速,以概率p進(jìn)行隨機(jī)慢化,新的速度為〔4〕移動:車輛按照調(diào)整后速度向前移動

這個(gè)模型稱為NaSch(Nagel和Schreckenberg提出)模型。仿真場景1:設(shè)在道路口處按均勻分布以40%的概率產(chǎn)生車輛,假設(shè)隨機(jī)慢化概率很低,不超過5%,最大速度為2,那么仿真結(jié)果顯示:仿真場景2:設(shè)在道路口處按均勻分布以40%的概率產(chǎn)生車輛,假設(shè)隨機(jī)慢化概率很低,不超過5%,最大速度為5,那么仿真結(jié)果顯示:仿真場景3:設(shè)在道路口處按均勻分布以80%的概率產(chǎn)生車輛,假設(shè)隨機(jī)慢化概率40%,最大速度為4,那么仿真結(jié)果顯示:仿真場景4:設(shè)在道路口處按均勻分布以60%的概率產(chǎn)生車輛,假設(shè)隨機(jī)慢化概率40%,最大速度為2,那么仿真結(jié)果顯示:程序?qū)崿F(xiàn)系統(tǒng)參數(shù)設(shè)置:S=2

溫馨提示

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

最新文檔

評論

0/150

提交評論