專利名稱:基于元胞機(jī)的城市微觀交通流仿真系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于特定計(jì)算模型的計(jì)算機(jī)系統(tǒng),特別是一種基于元胞機(jī)的城市微觀交— 通流仿真系統(tǒng)。
背景技術(shù):
交通仿真是20世紀(jì)60年代以來(lái)隨著計(jì)算技術(shù)的進(jìn)步而發(fā)展起來(lái)的采用計(jì)算機(jī)數(shù)字模型 來(lái)反映復(fù)雜交通現(xiàn)象的交通分析方法。交通仿真是計(jì)算機(jī)仿真技術(shù)在交通工程領(lǐng)域的一個(gè)重 要應(yīng)用。交通仿真是復(fù)現(xiàn)交通流時(shí)間空間變化的技術(shù)。交通仿真模型的建立以及交通仿真實(shí) 驗(yàn)系統(tǒng)的開(kāi)發(fā)是交通仿真研究的兩個(gè)核心內(nèi)容。其中微觀交通仿真模型對(duì)交通系統(tǒng)的要素及 行為的細(xì)節(jié)描述程度最高。例如,微觀交通仿真模型對(duì)交通流的描述是以單個(gè)車(chē)輛為基本單 元的,.車(chē)輛在道路上的跟車(chē)、超車(chē)及車(chē)道變換行為等微觀行為都能得到較真實(shí)的反映。國(guó)外 的交通仿真研究較早,始于20世紀(jì)60年代,其中TRANSYT交通仿真軟件是當(dāng)時(shí)最具代表性 的成果。20世紀(jì)70年代至80年代,由于計(jì)算機(jī)的迅速發(fā)展,交通仿真模型的精度也迅速提 高,功能也更加多樣。這期間的典型代表當(dāng)屬NETSIMU模型。隨著20世紀(jì)80年代末和90年 代初國(guó)外ITS(智能交通系統(tǒng))研究的日益熱門(mén),世界各國(guó)都展開(kāi)了以ITS為應(yīng)用背景的交通 仿真軟件的研究,并達(dá)到了交通仿真研究前所未有的高潮,出現(xiàn)了一大批的評(píng)價(jià)和分析ITS 系統(tǒng)效益的仿真軟件系統(tǒng)。交通信息的充分利用是智能交通系統(tǒng)有別于常規(guī)交通系統(tǒng)的顯著 特征,各仿真軟件均各有其特點(diǎn)及優(yōu)勢(shì),但也因其研究定位和重點(diǎn)的不同,或多或少地存在 不同的缺陷。例如對(duì)于模型描述沒(méi)有描述超車(chē)現(xiàn)象、對(duì)車(chē)輛在近交叉口路段的描述較為粗略、 假設(shè)了駕駛員對(duì)誘導(dǎo)信息的完全接受等。國(guó)內(nèi)在交通仿真方面的研究長(zhǎng)期處于一種未受重視 的狀態(tài),仿真研究較為零散,且往往只局限于解決單一問(wèn)題,如對(duì)二車(chē)道公路通行能力的仿 真研究、高速道路入口匝道范圍交通仿真、優(yōu)先控制T型交叉口交通仿真等等。 -由于城市交通路口有著相當(dāng)高的復(fù)雜程度,因此路口仿真一直是交通流仿真中的難點(diǎn), 尤其在無(wú)控制或兩相位控制的四岔、五岔路口由于其間沖突點(diǎn)眾多,更是增加了仿真的難度。 現(xiàn)有的路口仿真解決方案主要有基于N-S模型的一維元胞模型和基于BML模型的二維元胞模 型。前者以N-S模型為基礎(chǔ)來(lái)解決路口仿真問(wèn)題,總體來(lái)說(shuō)都是從功能上將路口分為入口路 段以及出口路段。入口車(chē)道對(duì)應(yīng)著直行、左轉(zhuǎn)和右轉(zhuǎn)三條出口車(chē)道,Kai Nagel提出車(chē)輛在 入口和出口路段應(yīng)遵循多車(chē)道的N-S模型,同時(shí)該方法對(duì)交叉口的處理采用了一個(gè)十分簡(jiǎn)單 的方法,實(shí)測(cè)交叉口的車(chē)輛在各個(gè)方向的轉(zhuǎn)彎概率,以及路口的延誤時(shí)間,根據(jù)這個(gè)兩個(gè)參 數(shù),從入口車(chē)道取出車(chē)輛插入到出口車(chē)道、。但是這一簡(jiǎn)單規(guī)則,弁沒(méi)有考慮到交通信號(hào)燈、 停車(chē)線等交通設(shè)施的影響。,
而B(niǎo)ML模型致力于用二維元胞自動(dòng)機(jī)模型解決路口仿真問(wèn)題,該模型從宏觀角度對(duì)城市 路網(wǎng)進(jìn)行研究,將整個(gè)城市路網(wǎng)劃分成NXN個(gè)長(zhǎng)寬相等的單元格,每個(gè)單元格代表城市路網(wǎng) 中的一個(gè)路口。它將時(shí)間步分為奇數(shù)時(shí)間步和偶數(shù)時(shí)間步,在每一奇數(shù)時(shí)間步,南北向的車(chē)輛可以向前行駛一個(gè)單元格;在每一偶數(shù)時(shí)間步,東西向的車(chē)輛可以前進(jìn)一個(gè)格點(diǎn);如果車(chē) 輛前方的格點(diǎn)已有其他車(chē)輛占據(jù),那么這輛車(chē)只能在原地等待,不能前進(jìn)。這樣,每個(gè)格點(diǎn) 相當(dāng)于信號(hào)控制路口。近年來(lái)BML模型得到了不斷的改進(jìn)和發(fā)展,但是大多是建立在宏觀層 面上的,對(duì)于車(chē)輛在交叉口如何具體的運(yùn)動(dòng)以及路口沖突點(diǎn)的處理,均沒(méi)有涉及到。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提供一種基于元胞機(jī)的城市微觀交通流仿真系 統(tǒng),解決了以往智能交通仿真系統(tǒng)模型描述不完善、車(chē)輛在路口行駛狀態(tài)不真實(shí)等問(wèn)題。 本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的
基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),包括仿真內(nèi)核、初始化模型、人機(jī)交互模 型、數(shù)據(jù)庫(kù)管理系統(tǒng)和誘導(dǎo)與控制協(xié)調(diào)系統(tǒng),其中所述初始化模型由路網(wǎng)生成模型、車(chē)輛 生成模型以及控制與誘導(dǎo)設(shè)備生成模型組成,主要是根據(jù)人機(jī)交互模型提供的各種需求,對(duì) 交通仿真主體——道路網(wǎng)絡(luò)、車(chē)輛、以及控制誘導(dǎo)設(shè)備的物理參數(shù)、幾何參數(shù)、統(tǒng)計(jì)規(guī)律等 進(jìn)行定義,作為仿真內(nèi)核運(yùn)行所必須的外部參數(shù);所述仿真內(nèi)核則由車(chē)輛行駛模型與控制誘 導(dǎo)設(shè)備運(yùn)行模型組成,負(fù)責(zé)車(chē)輛在道路與路口的行駛,以及檢測(cè)器交通流檢測(cè)、信號(hào)燈色顯 示、誘導(dǎo)顯示屏信息發(fā)布等;所述人機(jī)交互模型包括仿真參數(shù)設(shè)定模型和動(dòng)態(tài)顯示模型,負(fù) '責(zé)用戶對(duì)仿真系統(tǒng)中各種參數(shù)的設(shè)定以及整個(gè)交通網(wǎng)絡(luò)的屏幕顯示工作的完成;所述數(shù)據(jù)庫(kù). 管理系統(tǒng)負(fù)責(zé)用戶輸入數(shù)據(jù)等的保存與管理。
所述車(chē)輛行駛模型包含誘導(dǎo)信息更新模型、檢測(cè)器、道路及路口車(chē)輛移動(dòng)模型;其中,
所述誘導(dǎo)信息更新模型負(fù)責(zé)根據(jù)誘導(dǎo)周期定時(shí)到通信緩沖區(qū)中取得誘導(dǎo)系統(tǒng)傳輸過(guò)來(lái)的最新 的誘導(dǎo)數(shù)據(jù);所述檢測(cè)器則根據(jù)元胞是否被占據(jù)檢測(cè)經(jīng)過(guò)檢測(cè)器的車(chē)輛,并存入指定數(shù)組, 實(shí)現(xiàn)數(shù)據(jù)的采集;所述道路及路口車(chē)輛移動(dòng)模型通過(guò)對(duì)道路以及路口元胞的遍歷,調(diào)用 CVehicIe::Vehicle—at—Road()和CVehicle::Vehicle—at—Cross()函數(shù)分別實(shí)現(xiàn)兩個(gè)部分中車(chē)輛的 移動(dòng)。
所述道路及路口車(chē)輛移動(dòng)模型中車(chē)輛在道路上行駛規(guī)則分為目標(biāo)車(chē)道上行駛規(guī)則和非目 標(biāo)車(chē)道上行駛規(guī)則,所述目標(biāo)車(chē)道為可以通往下一條道路的車(chē)道,按照車(chē)輛距離路口的長(zhǎng)度, 對(duì)目標(biāo)車(chē)道和非目標(biāo)車(chē)道進(jìn)行區(qū)域劃分,處在不同區(qū)域的車(chē)輛有著不同的行為規(guī)則。
所述道路及路口車(chē)輛移動(dòng)模型采用一維元胞機(jī)模型對(duì)路口進(jìn)行描述,并且在此基礎(chǔ)上,. 根據(jù)車(chē)輛在路口的一般行駛路線,繪制帶有一定彎曲的車(chē)輛路口行進(jìn)軌跡并按一定長(zhǎng)度對(duì)其 進(jìn)行劃分以形成元胞。
所述道路及路口車(chē)輛移動(dòng)模型解決車(chē)輛駛出路口時(shí)的匯入沖突時(shí),以匯入車(chē)道為單位, 將同時(shí)匯入該車(chē)道的路口車(chē)道歸為一組,并選取中間的車(chē)道為目標(biāo)車(chē)道,將該組車(chē)道后數(shù)某 個(gè)元胞人為規(guī)定為沖突點(diǎn),在沖突點(diǎn)之前未在目標(biāo)車(chē)道上的車(chē)輛要換到目標(biāo)車(chē)道上,而到達(dá) 沖突點(diǎn)且仍在非目標(biāo)車(chē)道車(chē)輛則停車(chē)等待,直到目標(biāo)車(chē)道相應(yīng)位置空閑,即換到目標(biāo)車(chē)道。
所述道路及路口車(chē)輛移動(dòng)模型解決車(chē)輛直行左轉(zhuǎn)沖突時(shí),確定沖突點(diǎn)的算法為
循環(huán)每一個(gè)直行車(chē)道從前往后
循環(huán)直行車(chē)道上的每一個(gè)元胞從前往后循環(huán)每一個(gè)左轉(zhuǎn)車(chē)道
循環(huán)左轉(zhuǎn)車(chē)道元胞從后往前' 計(jì)算元胞間距離 如果小于沖突距離 存入沖突點(diǎn)數(shù)組 如果大于沖突距離且本次距離大于上次距離時(shí) 退出該車(chē)道循環(huán)
所述車(chē)輛直行左轉(zhuǎn)沖突解決方法的算法為-準(zhǔn)備工作 路口元胞…-標(biāo)識(shí)屬于第幾個(gè)沖突點(diǎn)
沖突點(diǎn)…-標(biāo)識(shí)包括哪幾個(gè)元胞;該沖突點(diǎn)是否被以被處理過(guò)
(1) 、從后往前,移動(dòng)直行車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)
(2) 、從后往前,移動(dòng)左轉(zhuǎn)車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)
(3)、循環(huán)各個(gè)沖突點(diǎn) 一以沖突點(diǎn)為研究對(duì)象 如果沖突點(diǎn)有車(chē) 移動(dòng)該車(chē)
確定考察車(chē)道為該車(chē)所在車(chē)道 如果沖突點(diǎn)沒(méi)有車(chē)
確定考察車(chē)道為直行車(chē)道
考察該車(chē)所在車(chē)道的下一輛車(chē) if (這輛車(chē)可以到達(dá)該沖突點(diǎn)) 移動(dòng)該車(chē)到?jīng)_突點(diǎn)
該沖突點(diǎn)被占據(jù)標(biāo)志
循環(huán)與該沖突點(diǎn)連接的其他車(chē)道
if(該車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn)) 不處理
else if (該車(chē)能夠到達(dá)該沖突點(diǎn))
停在沖突點(diǎn)前的第一個(gè)元胞上 elseif(不能到達(dá)沖突點(diǎn))
以正常速度行駛 else (這輛車(chē)不會(huì)到達(dá)該沖突點(diǎn))
if(該車(chē)在其他沖突點(diǎn)或該車(chē)前面存在另一個(gè)沖突點(diǎn))
不處理按該車(chē)速度移動(dòng)該車(chē)
循環(huán)與i亥沖突點(diǎn)連接的其他車(chē)道
if(諄車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn)) 不處理
else if (該車(chē)不能夠到達(dá)沖突點(diǎn))
以目前速度行駛 dseif(該車(chē)能夠到達(dá)沖突點(diǎn)),
判斷沖突點(diǎn)是否被占據(jù),通過(guò)占據(jù)標(biāo)志一因?yàn)橛锌赡鼙恢把h(huán)的其他車(chē) 道上的車(chē)輛占據(jù) if('占據(jù))
. 停在沖突點(diǎn)之前一個(gè)元胞或不動(dòng)一己是之前 else (沒(méi)有被占據(jù))
進(jìn)入沖突點(diǎn)沖突點(diǎn)被占據(jù)標(biāo)志 所述車(chē)輛行駛模型中自由行駛和跟馳行駛的區(qū)分方法為直接將車(chē)頭時(shí)距轉(zhuǎn)化為車(chē)輛間 的元胞距離,或者將速度與時(shí)間通過(guò)計(jì)算轉(zhuǎn)化為距離,并設(shè)定最小安全距離,如果兩連續(xù)車(chē) 輛間距離小于最小安全距離,則為跟馳,否則為自由行駛。
所述車(chē)輛行駛模型的換道規(guī)則為由低車(chē)道向高車(chē)道換道,高位車(chē)道上的車(chē)輛尚未處理,
車(chē)輛首先考察高車(chē)道相同位置上的元胞是否有車(chē)輛占據(jù),如果元胞為空,則將該車(chē)移動(dòng)該元 胞位置,并推出對(duì)本車(chē)的處理,繼續(xù)低車(chē)道上其他元胞的處理,本車(chē)則根據(jù)高車(chē)道的車(chē)輛狀
況,隨著高車(chē)道中車(chē)輛一同處理;由高車(chē)道向低車(chē)道換道,低車(chē)道元胞已處理,本車(chē)首先按 照行駛規(guī)則在本車(chē)道上正常行駛,在行駛結(jié)束時(shí)考察低車(chē)道相同位置是否有車(chē)輛,沒(méi)有車(chē)輛 則換道,否則本車(chē)不換道,退出循環(huán)。
所述車(chē)輛行駛模型的超車(chē)規(guī)則為兩次換道的組合,將超車(chē)分解為超車(chē)前、超車(chē)中兩步,
超車(chē)前車(chē)輛判斷是否需要超車(chē)、如果超車(chē)是否可以換道,而超車(chē)中車(chē)輛則需要加速行駛,一 旦超越原車(chē)道前車(chē),則換回原車(chē)道。
所述動(dòng)態(tài)顯示模型畫(huà)圖技術(shù)為雙緩沖技術(shù)。
本發(fā)明的有益效果為先后研究了城市微觀交通流仿真系統(tǒng)的總體設(shè)計(jì)、車(chē)輛在不同路 網(wǎng)位置的各種行駛規(guī)則以及構(gòu)造仿真系統(tǒng)所必需的其他一些組成部分。主要從整個(gè)微觀交通 流仿真系統(tǒng)的實(shí)現(xiàn)入手,給出程序運(yùn)行的總體框架,并對(duì)一些較為復(fù)雜的獨(dú)立部分進(jìn)行了相 應(yīng)的簡(jiǎn)化,使得系統(tǒng)的實(shí)現(xiàn)更具有可行性。車(chē)輛在路口中行駛規(guī)則的設(shè)計(jì)較為真實(shí)的反應(yīng)了 車(chē)輛在路口的行駛狀態(tài),體現(xiàn)了車(chē)輛在出突點(diǎn)的行為,實(shí)現(xiàn)了各種控制策略;動(dòng)態(tài)顯示模型 使用雙緩沖技術(shù),在每次重畫(huà)前,先將路網(wǎng)與車(chē)輛畫(huà)在內(nèi)存中,然后將內(nèi)存中的圖片一次性 貼到設(shè)備上,從而避免了畫(huà)圖中畫(huà)與顯示交織的過(guò)程,邁此可以有效的避免屏幕的閃爍問(wèn)題。 采用一維元胞機(jī)模型對(duì)路口進(jìn)行描述,使用彎曲軌跡的元胞在一定程度上描述了車(chē)輛在路.口
8行駛中的軌跡規(guī)律,是介于微觀與宏觀的較理想的車(chē)輛行駛軌跡的抽象,車(chē)輛不但可以表現(xiàn) 出路口中行駛所具有的拐彎特性,而且對(duì)于繼承了一維元胞的優(yōu)點(diǎn),便于程序的編寫(xiě)。車(chē)輛 在匯入某一車(chē)道前,解決車(chē)輛駛出路口時(shí)的匯入沖突規(guī)則使車(chē)輛在路口中排成一隊(duì)進(jìn)入路口 , 這種行為更符合真正的路口交通情況,從而很好的解決了車(chē)輛在駛出路口時(shí)的匯入沖突問(wèn)題。 換道的處理方法,雖然經(jīng)過(guò)了一定的抽象,比如沒(méi)有考慮相鄰目標(biāo)車(chē)道中車(chē)輛速度及本車(chē)道 前車(chē)速度對(duì)換道的影響,但是獲得了較大程度的處理簡(jiǎn)便,可以說(shuō)是大仿真系統(tǒng)中的一個(gè)較 好抽象。從連續(xù)長(zhǎng)時(shí)間的仿真中發(fā)現(xiàn),仿真系統(tǒng)具有很好的運(yùn)行穩(wěn)定性,能夠長(zhǎng)時(shí)間的對(duì)多 路口的路網(wǎng)進(jìn)行有效的仿真模擬;路網(wǎng)中車(chē)輛可以根據(jù)設(shè)計(jì)(跟馳模型、車(chē)輛特征、駕駛員特 征)進(jìn)行加速、減速、超車(chē)換道等活動(dòng);可實(shí)現(xiàn)車(chē)輛在進(jìn)入路口前的減速慢行,路口中的沿一 定彎度行駛??偟膩?lái)說(shuō)該系統(tǒng)可以很好的滿足多路口城市交通網(wǎng)絡(luò)的仿真模擬的需要,并為 其他研究工作,如城市交通控制、誘導(dǎo)及個(gè)體出行行為等,搭建了可靠的實(shí)驗(yàn)平臺(tái)。
圖l仿真平臺(tái)層次結(jié)構(gòu)圖;其中l(wèi)為初始化模型、2為路網(wǎng)生成模型、3為車(chē)輛生成模型、4 為控制誘導(dǎo)設(shè)備模型、5為仿真內(nèi)核、6為車(chē)輛行駛模型、7為控制誘導(dǎo)設(shè)備運(yùn)行模型、 8為人機(jī)交互模型、9為仿真參數(shù)設(shè)定模型、IO為動(dòng)態(tài)顯示模型、ll為數(shù)據(jù)庫(kù)管理系統(tǒng)、 12為數(shù)據(jù)庫(kù)交互接口、 13為控制與誘導(dǎo)協(xié)調(diào)系統(tǒng)、14為控制與誘導(dǎo)交互接口。
圖2城市微觀交通流仿真系統(tǒng)運(yùn)行流程圖。
圖3目標(biāo)車(chē)道區(qū)域劃分;其中15為觀察信號(hào)燈區(qū)域、16為禁止超車(chē)區(qū)域、17為允許超車(chē)區(qū) 域、18為路口。
圖4非目標(biāo)車(chē)道區(qū)域劃分;其中19為減速換道區(qū)域、20為允許超車(chē)和換道區(qū)域、18為路口。 圖5非目標(biāo)車(chē)道上,停車(chē)等待位置示意圖;其中18為路口、 21為停車(chē)等待換道元胞、22為
當(dāng)前車(chē)道、23為目標(biāo)車(chē)道。 圖6路口中的車(chē)道示意圖;其中24為匯入沖突、25為直行左轉(zhuǎn)沖突。 圖7車(chē)輛在目標(biāo)車(chē)道中各區(qū)域流程圖。 圖8車(chē)輛在非目標(biāo)車(chē)道中各區(qū)域流程圖。 圖9直行左轉(zhuǎn)沖突仿真效果圖。
圖IO車(chē)道上元胞處理順序圖;其中18為路口、 26為處理順序、27為車(chē)道序號(hào)、28為高位
車(chē)道、29為低位車(chē)道、30為0號(hào)元胞、31為1號(hào)元胞。。 圖ll車(chē)輛超車(chē)過(guò)程X超車(chē)車(chē)輛;A2被超車(chē)輛;其他為影響超車(chē)車(chē)輛;32為超車(chē)前,判斷
是否超車(chē);33為超車(chē)中,加速行駛;34為超車(chē)中,換回原車(chē)道;35為原車(chē)道,36為超
車(chē)車(chē)道。
圖12路口生成圖;其中圖12a為用戶輸入信息,圖12b為計(jì)算各道路垂線,圖12c為根據(jù)垂 線生成車(chē)道擴(kuò)充,圖12d為根據(jù)最外部車(chē)道線確定路口結(jié)構(gòu)點(diǎn),圖12e為根據(jù)路口結(jié)構(gòu) 點(diǎn)生成路口停車(chē)線,圖12f為生成后的路口。
圖13仿真系統(tǒng)工具條。圖14仿真系統(tǒng)工具條路口放大圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
1. 仿真系統(tǒng)結(jié)構(gòu)
仿真系統(tǒng)主要由仿真內(nèi)核、初始化模型、人機(jī)交互模型、數(shù)據(jù)庫(kù)管理系統(tǒng)和誘導(dǎo)與控制 協(xié)調(diào)系統(tǒng)組成,如圖l。初始化模型由路網(wǎng)、車(chē)輛以及控制與誘導(dǎo)設(shè)備的生成模型組成,主 要是根據(jù)人機(jī)交互模型提供的各種需求,對(duì)交通仿真主體——道路網(wǎng)絡(luò)、車(chē)輛、以及控制誘 導(dǎo)設(shè)備'的物理參數(shù)、幾何參數(shù)、統(tǒng)計(jì)規(guī)律等進(jìn)行定義,作為仿真內(nèi)核運(yùn)行所必須的外部參數(shù)。 仿真內(nèi)核則由車(chē)輛行駛模型與控制誘導(dǎo)設(shè)備運(yùn)行模型組成,負(fù)責(zé)車(chē)輛在道路與路口的行駛, 以及檢測(cè)器交通流檢測(cè)、信號(hào)燈色顯示、誘導(dǎo)顯示屏信息發(fā)布等。人機(jī)交互模型則負(fù)責(zé)用戶 對(duì)仿真系統(tǒng)中各種參數(shù)的設(shè)定以及整個(gè)交通網(wǎng)絡(luò)的屏幕顯示工作的完成。數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù) 責(zé)用戶輸入數(shù)據(jù)等的保存與管理。
2. 交通流仿真設(shè)計(jì)
結(jié)合Visual C++ 2008程序開(kāi)發(fā)平臺(tái),圖2給出了該仿真系統(tǒng)的運(yùn)行流程-"開(kāi)始按鈕"觸發(fā)系統(tǒng)運(yùn)行,調(diào)用消息響應(yīng)函數(shù)CTrafficView: :OnRun(),在該函數(shù)中, 初始化模型中的各實(shí)體首先得到初始化,隨后開(kāi)啟車(chē)輛行駛與動(dòng)態(tài)顯示兩個(gè)線程,仿真系統(tǒng) 將在這兩個(gè)線程間進(jìn)行切換,從而實(shí)現(xiàn)車(chē)輛移動(dòng)與車(chē)輛顯示的功能。
線程l.,車(chē)輛行駛函數(shù)CSimuFun::Vehicle—Go—Ahead()包含負(fù)責(zé)誘導(dǎo)信息更新的函數(shù)、檢測(cè) 器工作函數(shù)、道路及路口車(chē)輛前進(jìn)的函數(shù)。其中,誘導(dǎo)信息更新函數(shù),負(fù)責(zé)根據(jù)誘導(dǎo)周期定 時(shí)到通信緩沖區(qū)中取得誘導(dǎo)系統(tǒng)傳輸過(guò)來(lái)的最新的誘導(dǎo)數(shù)據(jù);而檢測(cè)器則根據(jù)元胞是否被占 據(jù)檢測(cè)經(jīng)過(guò)檢測(cè)器的車(chē)輛,并存入指定數(shù)組,實(shí)現(xiàn)數(shù)據(jù)的采集;通過(guò)對(duì)道路以及路口元胞的 遍歷,調(diào)用CVehicle: :Vehicle—at—Road和CVehicle::Vehicle—at—Cross分別實(shí)現(xiàn)兩個(gè)部分 中車(chē)輛的移動(dòng)。
線程2,則使用雙緩沖技術(shù)對(duì)在屏幕上畫(huà)圖。為了產(chǎn)生動(dòng)畫(huà)效果,由于,需要對(duì)路網(wǎng)結(jié)構(gòu) 與每次都發(fā)生位置變化的車(chē)輛進(jìn)行不斷重畫(huà),如果采用直接的屏幕刷新方法,由于畫(huà)圖需要 一個(gè)畫(huà)與顯示的過(guò)程,不能瞬間完成,因此路網(wǎng)的閃爍是不可避免的,尤其在使用Sle印() 函數(shù),降低仿真速度時(shí)則愈加明顯。所以,使用雙緩沖技術(shù),在每次重畫(huà)前,先將路網(wǎng)與車(chē) 輛畫(huà)在內(nèi)存中,然后將內(nèi)存中的圖片一次性貼到設(shè)備上,從而避免了畫(huà)圖中畫(huà)與顯示交織的 過(guò)程,因此可以有效的避免屏幕的閃爍問(wèn)題。 3.車(chē)輛在道路上行駛規(guī)則設(shè)計(jì)
按車(chē)輛在道路上所處的車(chē)道將車(chē)輛行駛規(guī)則分為兩類在目標(biāo)車(chē)道上行駛規(guī)則與非目標(biāo) 車(chē)道上行駛規(guī)則。這里定義目標(biāo)車(chē)道為可以通往下一條道路的車(chē)道,如車(chē)輛行駛路徑上的 下一條道路為當(dāng)前道路的左轉(zhuǎn)道路,則當(dāng)前道路的左轉(zhuǎn)車(chē)道為目標(biāo)車(chē)道。下面分別對(duì)兩類行 駛規(guī)則作以介紹。 3.1車(chē)輛在目標(biāo)車(chē)道上行駛規(guī)則
1按照車(chē)輛距離路口的長(zhǎng)度,對(duì)非車(chē)輛目的地的車(chē)道進(jìn)行區(qū)域劃分,處在不同區(qū)域的車(chē)輛 有著不同的行為規(guī)則。將目標(biāo)車(chē)道上的區(qū)域劃分為允許超車(chē)區(qū)域、禁止超車(chē)區(qū)域、觀察信 號(hào)燈區(qū)域,如圖3(本系統(tǒng)假設(shè)己在目標(biāo)車(chē)道上的車(chē)輛不再產(chǎn)生換道意愿)。各部分流程如圖7。 3.2車(chē)輛在非目標(biāo)車(chē)道上行駛規(guī)則
同樣,按照車(chē)輛當(dāng)前距離路口長(zhǎng)度,對(duì)非車(chē)輛目的地的非目標(biāo)車(chē)道進(jìn)行劃分,如圖4。其 ,中禁止換道線為道路進(jìn)入路口前禁止車(chē)輛換道的區(qū)域,進(jìn)入該區(qū)域車(chē)輛均已在目標(biāo)車(chē)道上, 所以該部分算法在非目標(biāo)車(chē)道上并不存在,禁止換道線在實(shí)際的城市交通中一般用實(shí)線表示, 而虛線則表示可以換道區(qū)域。各部分流程如圖8。
需要注意的是各個(gè)非目標(biāo)車(chē)道的等待換道位置,由于以最小速度換道也需要一定向前的 行駛速度,因此,當(dāng)車(chē)輛在非目標(biāo)車(chē)道的禁止換道線前等待換道時(shí),其實(shí)際停止位置需要預(yù) 留出換道的空間,該空間與當(dāng)前車(chē)道和目標(biāo)車(chē)道間間隔的車(chē)道數(shù)量有關(guān),具體如圖5。 4車(chē)輛在路口中行駛規(guī)則設(shè)計(jì) 4.1路口路徑的確定
本文采用一維元胞機(jī)模型對(duì)路口進(jìn)行描述,并且在此基礎(chǔ)上,根據(jù)車(chē)輛在路口的一般行 駛路線,繪制帶有一定彎曲的車(chē)輛路口行進(jìn)軌跡并按一定長(zhǎng)度對(duì)其進(jìn)行劃分以形成元胞。 以標(biāo)準(zhǔn)四岔路口為例,生成路口車(chē)道如圖6。
通過(guò)循環(huán),找到進(jìn)入路口與走出路口的車(chē)道各一條,并按一定算法按照一定弧度計(jì)算出 車(chē)輛行駛軌跡函數(shù),并以一定長(zhǎng)度平分該曲線,平分后的各點(diǎn)坐標(biāo)即為該路口該路徑的元胞 中心點(diǎn)坐標(biāo),進(jìn)入該路徑的車(chē)輛將按照該元胞行駛。同理生成路口中其他出入路口車(chē)道間的 路徑。
使用彎曲軌跡的元胞在一定程度上描述了車(chē)輛在路口行駛中的軌跡規(guī)律,是介于微觀與 宏觀的較理想的車(chē)輛行駛軌跡的抽象,車(chē)輛不但可以表現(xiàn)出路口中行駛所具有的拐彎特性, 而且對(duì)于繼承了一維元胞的優(yōu)點(diǎn),便于程序的編寫(xiě)。
4.2路口沖突點(diǎn)的確定及車(chē)輛行駛 '
-四岔路口中存在兩類沖突點(diǎn) 一、駛出路口進(jìn)入道路車(chē)道時(shí)的車(chē)輛匯入沖突,只有當(dāng)路 口中存在兩個(gè)或兩個(gè)以上同道路同行駛方向的進(jìn)入路口車(chē)道時(shí),該種沖突才存在,如某進(jìn)入 路口道路有兩條左轉(zhuǎn)或直行車(chē)道時(shí),當(dāng)這兩條車(chē)道駛出的車(chē)輛同時(shí)要進(jìn)入同一條車(chē)道時(shí),此 類沖突發(fā)生;二、直行與左轉(zhuǎn)車(chē)輛的沖突,該類沖突點(diǎn)只存在于兩相位控制的四岔路口中, 四相位控制的路口并不存在此類沖突。針對(duì)不同的沖突點(diǎn)分別設(shè)計(jì)如下解決方案。 4.2.1駛出路口時(shí)的匯入沖突
參考目標(biāo)車(chē)道的設(shè)計(jì)原理,以匯入車(chē)道為單位,將同時(shí)匯入該車(chē)道的路口車(chē)道歸為一組, 并選取中間的車(chē)道為目標(biāo)車(chē)道,將該組車(chē)道后數(shù)某個(gè)元胞人為規(guī)定為沖突點(diǎn)(物理上接近車(chē)輛 沖突的位置),在沖突點(diǎn)之前未在目標(biāo)車(chē)道上的車(chē)輛要換到目標(biāo)車(chē)道上,而到達(dá)沖突點(diǎn)且仍在 非目標(biāo)車(chē)道車(chē)輛則停車(chē)等待,直到目標(biāo)車(chē)道相應(yīng)位置空閑,即換到目標(biāo)車(chē)道。這樣,車(chē)輛在 匯入某一車(chē)道前,在路口中排成一隊(duì)進(jìn)入路口,這種行為更符合真正的路口交通情況,從而 很好的解決了車(chē)輛在駛出路口時(shí)的匯入沖突問(wèn)題。4.2.2直行左轉(zhuǎn)沖突
直行左轉(zhuǎn)沖突相對(duì)復(fù)雜,首先需要確定沖突點(diǎn)的位置,由于路口形狀不一且直行左轉(zhuǎn)沖 突點(diǎn)較多,因此無(wú)法人為統(tǒng)一規(guī)定其位置,這里試給出尋找沖突點(diǎn)的算法如下
(以有沖突的直行車(chē)道上的元胞區(qū)分每一個(gè)沖突點(diǎn)) 循環(huán)每一個(gè)直行車(chē)道從前往后
循環(huán)直行車(chē)道上的每一個(gè)元胞從前往后 循環(huán)每一個(gè)左轉(zhuǎn)車(chē)道
循環(huán)左轉(zhuǎn)車(chē)道元胞從后往前 一 計(jì)算元胞間距離 如果小于沖突距離 存入沖突點(diǎn)數(shù)組 如果大于沖突距離且本次距離大于上次距離時(shí) , (距離遞減趨勢(shì)、漸行漸遠(yuǎn),因此后面的不可能沖突)
退出該車(chē)道循環(huán)
確定直行左轉(zhuǎn)沖突點(diǎn)后,車(chē)輛每一步的行駛都需要檢驗(yàn)沖突點(diǎn)內(nèi)是否有車(chē)。但還需要考 慮一些問(wèn)題,如統(tǒng)一路口車(chē)道上兩個(gè)沖突點(diǎn)相鄰車(chē)輛如何行駛,同時(shí)等待進(jìn)入沖突點(diǎn)時(shí),車(chē) 輛的優(yōu)先級(jí)問(wèn)題等等。綜合考慮這些問(wèn)題,設(shè)計(jì)算法如下-
準(zhǔn)備工作-
路口元胞-…標(biāo)識(shí)屬于第幾個(gè)沖突點(diǎn)
沖突點(diǎn)-----標(biāo)識(shí)包括哪幾個(gè)元胞;該沖突點(diǎn)是否被以被處理過(guò)
1、 從后往前,移動(dòng)直行車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)
2、 從后往前,移動(dòng)左轉(zhuǎn)車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)
3、循環(huán)各個(gè)沖突點(diǎn)一以沖突點(diǎn)為研究對(duì)象 如果沖突點(diǎn)有車(chē) 移動(dòng)該車(chē)
確定考察車(chē)道為該車(chē)所在車(chē)道 如果沖突點(diǎn)沒(méi)有車(chē)
確定考察車(chē)道為直行車(chē)道
考察該車(chē)所在車(chē)道的下一輛車(chē) if(這輛車(chē)可以到達(dá)該沖突點(diǎn))移動(dòng)該車(chē)到?jīng)_突點(diǎn) 該沖突點(diǎn)被占據(jù)標(biāo)志 ' 循環(huán)與該沖突點(diǎn)連接的其他車(chē)道
if(該車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn)) 不處理
else if (該車(chē)能夠到達(dá)該沖突點(diǎn))
停在沖突點(diǎn)前的第一個(gè)元胞上 else if(不能到達(dá)沖突點(diǎn)) '以正常速度行駛 else (這輛車(chē)不會(huì)到達(dá)該沖突點(diǎn))
if(該車(chē)在其他沖突點(diǎn)或該車(chē)前面存在另一個(gè)沖突點(diǎn)) 不處理
else
按該車(chē)速度移動(dòng)該車(chē)
循環(huán)與該沖突點(diǎn)連接的其他車(chē)道
if(該車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn))
不處理 -else if (該車(chē)不能夠到達(dá)沖突點(diǎn))
以目前速度行駛 else if (該車(chē)能夠到達(dá)沖突點(diǎn))
判斷沖突點(diǎn)是否被占據(jù),通過(guò)占據(jù)標(biāo)志一因?yàn)橛锌赡鼙恢把h(huán)的其他車(chē) 道上的車(chē)輛占據(jù) if(占據(jù))
停在沖突點(diǎn)之前一個(gè)元胞或不動(dòng)一己是之前 else (沒(méi)有被占據(jù))
進(jìn)入沖突點(diǎn)沖突點(diǎn)被占據(jù)標(biāo)志 '
注意1、如果車(chē)輛進(jìn)入沖突點(diǎn),將沖突點(diǎn)中的所有車(chē)道都表示為有車(chē)占據(jù) 2、行駛優(yōu)先級(jí)跟車(chē)>直行>左轉(zhuǎn)(算法中以保證了該優(yōu)先級(jí))
代碼實(shí)現(xiàn)后,仿真情況如圖9。圖中路口為兩相位控制四叉路口,來(lái)自道路R3的左轉(zhuǎn)車(chē) 輛在來(lái)自R0的直行車(chē)輛隊(duì)列前停車(chē)等待。 5車(chē)輛行駛動(dòng)作規(guī)則設(shè)計(jì)
車(chē)輛在城市交通中的行駛方式是復(fù)雜多變的,根據(jù)具體的路上情況以及駕駛者本身的意 愿,車(chē)輛加速、減速或者勻速,為了在路口轉(zhuǎn)彎需要換道,甚至當(dāng)前面車(chē)輛行駛過(guò)慢時(shí)車(chē)輛 需要超過(guò)前面的車(chē)輛。這一系列復(fù)雜行為組成了車(chē)輛在路網(wǎng)中多變的狀態(tài)。 —
135.1自由行駛與跟馳行駛
自由行駛與跟馳行駛是一對(duì)相對(duì)的概念,廣義的說(shuō),車(chē)輛無(wú)非在路網(wǎng)中只有兩種狀態(tài),. 即自由行駛與跟馳行駛。所謂自由行駛,顧名思義就是車(chē)輛的行駛不受其他車(chē)輛的干擾,駕 駛員可以根據(jù)自己意愿自由選擇行駛速度(符合法規(guī)的條件下);而跟馳行駛,則為駕駛員的 駕駛受到其他車(chē)輛(主要指前車(chē))的限制,無(wú)法完全根據(jù)自己意愿選擇速度,必須根據(jù)甜車(chē)的 行駛狀況選擇自己的行駛速度。如何區(qū)分自由行駛與跟馳行駛這兩種狀態(tài),以及處在這兩種 狀態(tài)中的車(chē)輛是如何行駛的,眾多學(xué)者已從各種角度展開(kāi)了廣泛的研究,本文不再贅述。在 此,著重介紹自由行駛與跟馳行駛在仿真中的實(shí)現(xiàn)。
首先對(duì)這兩種狀態(tài)進(jìn)行區(qū)分,即判斷車(chē)輛處于何種狀態(tài)。車(chē)頭時(shí)距與最小安全距離往往 被用于兩種狀態(tài)的區(qū)分。所謂車(chē)頭時(shí)距是指在同一車(chē)道上行駛的車(chē)輛隊(duì)列中,兩連續(xù)車(chē)輛車(chē) 頭端部通過(guò)某一斷面的時(shí)間間隔;而最小安全距離則是保證車(chē)輛安全行駛的最小距離。前者 是一個(gè)計(jì)算的量,而后者則是道路上的一種規(guī)定,不同的城市交通狀況以及環(huán)境有著不同的 最小安全距離。本文的仿真精度并不需要對(duì)車(chē)輛行為進(jìn)行十分細(xì)致的研究,因此經(jīng)過(guò)抽象后 的判斷方法為,直接將車(chē)頭時(shí)距轉(zhuǎn)化為車(chē)輛間的元胞距離(或者將速度與時(shí)間通過(guò)計(jì)算轉(zhuǎn)化為 距離,這樣更加形象),并設(shè)定最小安全距離,如果兩連續(xù)車(chē)輛間距離小于最小安全距離,則 為跟馳,否則自由行駛。
自由行駛中的車(chē)輛有三種選擇加速、減速、勻速。由于駕駛員類型以及車(chē)輛類型的限 制,車(chē)輛選擇加速、減速還是勻速,并且根據(jù)車(chē)輛及駕駛員類型選擇加減速度的大小,從而 體現(xiàn)車(chē)輛間的差異,增加了路上車(chē)輛行為的多樣性的同時(shí),也使得仿真更加真實(shí)。 跟馳行駛的車(chē)輛速度將受到同車(chē)道前車(chē)行駛狀況影響,首先計(jì)算當(dāng)前速度和與前車(chē)距離之間 的關(guān)系(前車(chē)以處理,即當(dāng)前時(shí)刻下前車(chē)已經(jīng)移動(dòng)),如果當(dāng)前速度小于其與前車(chē)距離,且車(chē)
輛速度增加1仍小于其與前車(chē)距離,則車(chē)輛以一定概率選擇當(dāng)前速度加1行駛,否則保持當(dāng)
前速度行駛。
5.2換道
換道是車(chē)輛選擇適合自己行進(jìn)路線車(chē)道所必需的行為,比如處在右轉(zhuǎn)車(chē)道上的車(chē)輛需要 進(jìn)入當(dāng)前道路下面的左轉(zhuǎn)車(chē)道,此時(shí),換道是達(dá)到該目的的唯一選擇。
按系統(tǒng)對(duì)道路上元胞的循環(huán)處理順序,可將換道分為兩類。系統(tǒng)對(duì)元胞的循環(huán)處理順序, 如圖10所示,首先從低到高循環(huán)各車(chē)道,然后在各車(chē)道內(nèi)從低到高循環(huán)個(gè)元胞。由于這種處 理順序,車(chē)輛換道的處理存在由低車(chē)道到高車(chē)道及由高車(chē)道到低車(chē)道兩種,兩種處理方法的 具體做法如下
由低車(chē)道向高車(chē)道換道,高位車(chē)道上的車(chē)輛尚未處理,本車(chē)首先考察高車(chē)道(相鄰目標(biāo)車(chē) 道)相同位置上的元胞是否有車(chē)輛占據(jù),如果元胞為空,則將該車(chē)移動(dòng)該元胞位置,并推出對(duì) 本車(chē)的處理,繼續(xù)低車(chē)道上其他元胞的處理,本車(chē)則根據(jù)高車(chē)道的車(chē)輛狀況,隨著高車(chē)道中 車(chē)輛一同處理。
由高車(chē)道向低車(chē)道換道,低車(chē)道元胞已處理(車(chē)輛已行駛),本車(chē)首先按照行駛規(guī)則在本車(chē) 道上正常行駛,在行駛結(jié)束時(shí)考察低車(chē)道(相鄰目標(biāo)車(chē)道)相同位置是否有車(chē)輛,沒(méi)有車(chē)輛則
14換道,否則本車(chē)不換道,退出循環(huán)。
為了保證車(chē)輛在禁止換道線前的換道,增加當(dāng)前速度為0的換道,即車(chē)輛是否可以換到 相鄰目標(biāo)車(chē)道的當(dāng)前相應(yīng)位置的前一個(gè)元胞處。
這種對(duì)換道的處理方法,雖然經(jīng)過(guò)了一定的抽象,比如沒(méi)有考慮相鄰目標(biāo)車(chē)道中車(chē)輛速( 度及本車(chē)道前車(chē)速度對(duì)換道的影響,但是獲得了較大程度的處理簡(jiǎn)便,不失為大仿真系統(tǒng)中 的一個(gè)較好抽象。 5.3超車(chē)
簡(jiǎn)單說(shuō),超車(chē)即為增加了可能性判斷的兩次換道的組合。據(jù)此按照換道要求自然可將超 車(chē)分解為超車(chē)前、超車(chē)中兩步。超車(chē)前車(chē)輛判斷是否需要超車(chē)、如果超車(chē)是否可以換道,而-超車(chē)中車(chē)輛則需要加速行駛, 一旦超越原車(chē)道前車(chē),則換回原車(chē)道。
首先需要在車(chē)輛的定義中增加三個(gè)屬性,即超車(chē)狀態(tài)、被超車(chē)輛以及原始車(chē)道。超車(chē)狀 態(tài),標(biāo)志著車(chē)輛是否在超車(chē)過(guò)程中,如處于超車(chē)過(guò)程中,車(chē)輛需要加速行駛,直到超過(guò)被超 車(chē)輛并換回原車(chē)道;被超車(chē)輛,是本車(chē)確定的準(zhǔn)備超過(guò)的車(chē)輛,是判斷是否可以換回原車(chē)道 的標(biāo)志;而原車(chē)道則記錄著車(chē)輛需要返回的起始車(chē)道。
圖11描繪了車(chē)輛超車(chē)的一系列動(dòng)作。超車(chē)前,車(chē)輛X首先判斷是否超車(chē)根據(jù)概率判 斷是否產(chǎn)生超車(chē)意愿;A2的速度是否足夠?。籄l、 Bl的速度是否夠大。所有條件均滿足則 換道超車(chē)。超車(chē)中,車(chē)輛需要加速行駛(不能與超車(chē)車(chē)道前車(chē)發(fā)生沖突),直到在超車(chē)車(chē)道上 的位置超過(guò)原車(chē)輛被超車(chē)輛的位置時(shí),車(chē)輛判斷是否可以換回原車(chē)道。換回原車(chē)道時(shí),超車(chē) 結(jié)束。 5.4其他
一個(gè)微觀的城市交通流仿真除了核心的車(chē)輛行為外,其他輔助模塊——如路網(wǎng)生成、車(chē) 輛生成等是保證系統(tǒng)正常運(yùn)行所不可缺少的重要組成部分,本節(jié)將介紹路網(wǎng)生成、車(chē)輛生成、 以及數(shù)據(jù)的存儲(chǔ)三個(gè)功能模塊。 . 5.4.1 路網(wǎng)生成
為了提高用戶友好性,減少用戶輸入工作量,在較少輸入信息的條件下生成帶有不同車(chē) 道數(shù)量的道路、不同道路匯集的各種形狀的路口,這些都需要一些列復(fù)雜算法。以一個(gè)較為 特殊形狀的路口為例,圖12給出了由用戶輸入的路網(wǎng)結(jié)構(gòu)信息到仿真中路網(wǎng)的生成過(guò)程。 5.4.2車(chē)輛生成
仿真系統(tǒng)中在出入網(wǎng)點(diǎn)以及吸納點(diǎn)處產(chǎn)生新的車(chē)輛,生成算法則由車(chē)輛生成模塊負(fù)責(zé), 生成車(chē)輛時(shí)具體需要考慮如下幾點(diǎn)
(1) 生成車(chē)輛的時(shí)間間隔。按照埃爾朗分布產(chǎn)生車(chē)輛,并用數(shù)組記錄各車(chē)輛生成點(diǎn)產(chǎn)生車(chē) 輛的剩余時(shí)間。
(2) 車(chē)輛終點(diǎn)及行駛路徑。按照用戶輸入各OD間產(chǎn)生車(chē)輛的時(shí)間間隔生成以該OD終點(diǎn) 為目的地的車(chē)輛。確定行駛路徑的算法主要有Dijkstm和Floyd兩種算法,本發(fā)明采用Dijkstra 計(jì)算最短路。由于駕駛員的非理性特征,次短路或次次短路均可被作為車(chē)輛的行駛路線。
(3) 駕駛員類型。可粗略將駕駛員分為激進(jìn)、中性及保守三種類型,不同類型駕駛員在路上行為的選擇中有著不同的概率。
(4) 車(chē)輛類型。不同車(chē)輛的行駛速度及加減速度特性是不僅相同的,因此,可按車(chē)輛大小 將其分為大型、中型和小型車(chē),不同車(chē)型在行駛中的行為取值是不同的。
(5) 登錄車(chē)道。車(chē)輛在產(chǎn)生車(chē)輛位置隨機(jī)選擇車(chē)道登錄。 5.4.3數(shù)據(jù)存儲(chǔ)
本系統(tǒng)選擇XML作為數(shù)據(jù)存儲(chǔ)介質(zhì)。XML具有開(kāi)放性、簡(jiǎn)單性、自我描述性、互操作 性、結(jié)構(gòu)和內(nèi)容分離、可擴(kuò)展性等優(yōu)點(diǎn)。在Visual C十+下對(duì)XML進(jìn)行操作需要安裝XML操 作工具包msxml.msi,具體的VC對(duì)XML的讀寫(xiě)操作均可在網(wǎng)絡(luò)與編程書(shū)籍中查到。
XML中存儲(chǔ)的數(shù)據(jù)對(duì)象包括出入網(wǎng)點(diǎn)、路口、道路、車(chē)道、OD、路口控制器等信息。 各對(duì)象下包含有初始化路網(wǎng)所必需的屬性及其取值。需要注意的是,XML中包括的僅為初 _始化信息,有些信息,如路口控制器中的路口控制策略,將在程序運(yùn)行中,從與誘導(dǎo)系統(tǒng)的 通信緩沖區(qū)中獲得,以實(shí)現(xiàn)實(shí)時(shí)誘導(dǎo)的目的。 6仿真平臺(tái)效果
依據(jù)上文分析,使用面向?qū)ο蟮摹?+語(yǔ)言,在Visual C++ 2008平臺(tái)上對(duì)城市微觀交通流 仿真系統(tǒng)進(jìn)行實(shí)際開(kāi)發(fā)。
仿真系統(tǒng)代碼實(shí)現(xiàn)后的工具條如圖13,仿真平臺(tái)運(yùn)行效果及路口放大圖如圖14。從連續(xù) 長(zhǎng)時(shí)間的仿真中發(fā)現(xiàn),仿真系統(tǒng)具有很好的運(yùn)行穩(wěn)定性,能夠長(zhǎng)時(shí)間的對(duì)多路口的路網(wǎng)進(jìn)行 有效的仿真模擬;路網(wǎng)中車(chē)輛可以根據(jù)設(shè)計(jì)(跟馳模型、車(chē)輛特征、駕駛員特征)進(jìn)行加速、 減速、超車(chē)換道等活動(dòng);可實(shí)現(xiàn)車(chē)輛在進(jìn)入路口前的減速慢行,路口中的沿一定彎度行駛。 總的來(lái)說(shuō)該系統(tǒng)可以很好的滿足多路口城市交通網(wǎng)絡(luò)的仿真模擬的需要,并為其他研究工作, 如城市交通控制、誘導(dǎo)及個(gè)體出行行為等,搭建了可靠的實(shí)驗(yàn)平臺(tái)。
(1) 加載路網(wǎng)
(2) 開(kāi)始\暫停仿真系統(tǒng)
(3) 拖動(dòng)仿真路網(wǎng)
(4) 縮小
(5) 放大
(6) 顯示仿真路網(wǎng)及車(chē)輛
(7) 開(kāi)啟\關(guān)閉檢測(cè)器
(8) 顯示\關(guān)閉誘導(dǎo)信息
(9) 開(kāi)啟\關(guān)閉誘導(dǎo)信息板
(10) 單點(diǎn)信號(hào)控制
(11) 區(qū)域信號(hào)控制。
1權(quán)利要求
1.一種基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,包括仿真內(nèi)核、初始化模型、人機(jī)交互模型、數(shù)據(jù)庫(kù)管理系統(tǒng)和誘導(dǎo)與控制協(xié)調(diào)系統(tǒng),其中所述初始化模型由路網(wǎng)生成模型、車(chē)輛生成模型以及控制與誘導(dǎo)設(shè)備生成模型組成,主要是根據(jù)人機(jī)交互模型提供的各種需求,對(duì)交通仿真主體——道路網(wǎng)絡(luò)、車(chē)輛、以及控制誘導(dǎo)設(shè)備的物理參數(shù)、幾何參數(shù)、統(tǒng)計(jì)規(guī)律等進(jìn)行定義,作為仿真內(nèi)核運(yùn)行所必須的外部參數(shù);所述仿真內(nèi)核則由車(chē)輛行駛模型與控制誘導(dǎo)設(shè)備運(yùn)行模型組成,負(fù)責(zé)車(chē)輛在道路與路口的行駛,以及檢測(cè)器交通流檢測(cè)、信號(hào)燈色顯示、誘導(dǎo)顯示屏信息發(fā)布等;所述人機(jī)交互模型包括仿真參數(shù)設(shè)定模型和動(dòng)態(tài)顯示模型,負(fù)責(zé)用戶對(duì)仿真系統(tǒng)中各種參數(shù)的設(shè)定以及整個(gè)交通網(wǎng)絡(luò)的屏幕顯示工作的完成;所述數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)用戶輸入數(shù)據(jù)等的保存與管理。
2. 根據(jù)權(quán)利要求l所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述車(chē) 輛行駛模型包含誘導(dǎo)信息更新模型、檢測(cè)器、道路及路口車(chē)輛移動(dòng)模型;其中,所述誘導(dǎo)信 息更新模型負(fù)責(zé)根據(jù)誘導(dǎo)周期定時(shí)到通信緩沖區(qū)中取得誘導(dǎo)系統(tǒng)傳輸過(guò)來(lái)的最新的誘導(dǎo)數(shù) 據(jù);所述檢測(cè)器則根據(jù)元胞是否被占據(jù)檢測(cè)經(jīng)過(guò)檢測(cè)器的車(chē)輛,并存入指定數(shù)組,實(shí)現(xiàn)數(shù)據(jù) 的采集;所述道路及路口車(chē)輛移動(dòng)模型通過(guò)對(duì)道路以及路口元胞的遍歷,分別實(shí)現(xiàn)兩個(gè)部分 中車(chē)輛的移動(dòng)?!?br>
3. 根據(jù)權(quán)利要求2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述道 路及路口車(chē)輛移動(dòng)模型中車(chē)輛在道路上行駛規(guī)則分為目標(biāo)車(chē)道上行駛規(guī)則和非目標(biāo)車(chē)道上行 駛規(guī)則,所述目標(biāo)車(chē)道為可以通往下一條道路的車(chē)道,按照車(chē)輛距離路口的長(zhǎng)度,對(duì)目標(biāo)車(chē) 道和非目標(biāo)車(chē)道進(jìn)行區(qū)域劃分,處在不同區(qū)域的車(chē)輛有著不同的行為規(guī)則。
4. 根據(jù)權(quán)利要求2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述道 路及路口車(chē)輛移動(dòng)模型采用一維元胞機(jī)模型對(duì)路口進(jìn)行描述,并且在此基礎(chǔ)上,根據(jù)車(chē)^5在 路口的一般行駛路線,繪制帶有一定彎曲的車(chē)輛路口行進(jìn)軌跡并按一定大小對(duì)其進(jìn)行劃分以 形成元胞。
5. 根據(jù)權(quán)利要求2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述道 路及路口車(chē)輛移動(dòng)模型解決車(chē)輛駛出路口時(shí)的匯入沖突時(shí),以匯入車(chē)道為單位,將同時(shí)匯入 該車(chē)道的路口車(chē)道歸為一組,并選取中間的車(chē)道為目標(biāo)車(chē)道,將該組車(chē)道后數(shù)某個(gè)元胞人為 規(guī)定為沖突點(diǎn),在沖突點(diǎn)之前未在目標(biāo)車(chē)道上的車(chē)輛要換到目標(biāo)車(chē)道上,而到達(dá)沖突點(diǎn)且仍 在非目標(biāo)車(chē)道車(chē)輛則停車(chē)等待,'直到目標(biāo)車(chē)道相應(yīng)位置空閑,即換到目標(biāo)車(chē)道。
6. 根據(jù)權(quán)利要求2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述道 路及路口車(chē)輛移動(dòng)模型解決車(chē)輛直行左轉(zhuǎn)沖突時(shí),確定沖突點(diǎn)的算法為循環(huán)每一個(gè)直行車(chē)道從前往后 循環(huán)直行車(chē)道上的每一個(gè)元胞從前往后 循環(huán)每一個(gè)左轉(zhuǎn)車(chē)道循環(huán)左轉(zhuǎn)車(chē)道元胞從后往前 計(jì)算元胞間距離 如果小于沖突距離存入沖突點(diǎn)數(shù)組 如果大于沖突距離且本次距離大于上次距離時(shí) 退出該車(chē)道循環(huán)。
7.根據(jù)權(quán)利要求6所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述車(chē) 輛直行左轉(zhuǎn)沖突解決方法的算法為準(zhǔn)備工作-路口元胞-----標(biāo)識(shí)屬于第幾個(gè)沖突點(diǎn)沖突點(diǎn)一--標(biāo)識(shí)包括哪幾個(gè)元胞;該沖突點(diǎn)是否被以被處理過(guò)(1) 、從后往前,移動(dòng)直行車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)(2) 、從后往前,移動(dòng)左轉(zhuǎn)車(chē)道上的車(chē)輛,直到?jīng)_突點(diǎn)(沖突點(diǎn)的車(chē)輛暫不處理)(3)、循環(huán)各個(gè)沖突點(diǎn)一以沖突點(diǎn)為研究對(duì)象 如果沖突點(diǎn)有車(chē) 移動(dòng)該車(chē)確定考察車(chē)道為該車(chē)所在車(chē)道 如果沖突點(diǎn)沒(méi)有車(chē)確定考察車(chē)道為直行車(chē)道考察該車(chē)所在車(chē)道的下一輛車(chē) if (這輛車(chē)可以到達(dá)該沖突點(diǎn))移動(dòng)該車(chē)到?jīng)_突點(diǎn)該沖突點(diǎn)被占據(jù)標(biāo)志循環(huán)與該沖突點(diǎn)連接的其他車(chē)道if(該車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn)) 不處理else if (該車(chē)能夠到達(dá)該沖突點(diǎn))停在沖突點(diǎn)前的第一個(gè)元胞上 elseif(不能到達(dá)沖突點(diǎn))以正常速度行駛 else C這輛車(chē)不會(huì)到達(dá)該沖突點(diǎn))if(該車(chē)在其他沖突點(diǎn)或該車(chē)前面存在另一個(gè)沖突點(diǎn))不處理else按該車(chē)速度移動(dòng)該車(chē)循環(huán)與該沖突點(diǎn)連接的其他車(chē)道if(該車(chē)道上最靠近沖突點(diǎn)的車(chē)輛在另一個(gè)沖突點(diǎn)或之前存在另一個(gè)沖突點(diǎn)) 不處理else if (該車(chē)不能夠到達(dá)沖突點(diǎn))以目前速度行駛 else if (該車(chē)能夠到達(dá)沖突點(diǎn))判斷沖突點(diǎn)是否被占據(jù),通過(guò)占據(jù)標(biāo)志一因?yàn)橛锌赡鼙恢把h(huán)的其他車(chē)道上的車(chē)輛占據(jù)if(占據(jù))停在沖突點(diǎn)之前一個(gè)元胞或不動(dòng)一己是之前 else (沒(méi)有被占據(jù)) 進(jìn)入沖突點(diǎn)沖突點(diǎn)被占據(jù)標(biāo)志。
8. 根據(jù)權(quán)利要求1或2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所 述車(chē)輛行駛模型中自由行駛和跟馳行駛的區(qū)分方法為直接將車(chē)頭時(shí)距轉(zhuǎn)化為車(chē)輛間的元胞 距離,或者將速度與時(shí)間通過(guò)計(jì)算轉(zhuǎn)化為距離,并設(shè)定最小安全距離,如果兩連續(xù)車(chē)輛間距 離小于最小安全距離,則為跟馳,否則為自由行駛。
9. 根據(jù)權(quán)利要求1或2所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所 述車(chē)輛行駛模型的換道規(guī)則為由低車(chē)道向高車(chē)道換道,高位車(chē)道上的車(chē)輛尚未處理,車(chē)輛 首先考察高車(chē)道相同位置上的元胞是否有車(chē)輛占據(jù),如果元胞為空,則將該車(chē)移動(dòng)該元胞位 置,并推出對(duì)本車(chē)的處理,繼續(xù)低車(chē)道上其他元胞的處理,本車(chē)則根據(jù)高車(chē)道的車(chē)輛狀況, 隨著高車(chē)道中車(chē)輛一同處理;由高車(chē)道向低車(chē)道換填,低車(chē)道元胞已處理,本車(chē)首先按照行' 駛規(guī)則在本車(chē)道上正常行駛,在行駛結(jié)束時(shí)考察低車(chē)道相同位置是否有車(chē)輛,沒(méi)有車(chē)輛則換 道,否則本車(chē)不換道,退出循環(huán)。
10. 根據(jù)權(quán)利要求9所述的基于元胞自動(dòng)機(jī)的城市微觀交通流仿真系統(tǒng),其特征在于,所述 車(chē)輛行駛模型的超車(chē)規(guī)則為兩次換道的組合,將超車(chē)分解為超車(chē)前、超車(chē)中兩步,超車(chē)前 車(chē)輛判斷是否需要超車(chē)、如果超車(chē)是否可以換道,而超車(chē)中車(chē)輛則需要加速行駛, 一旦超越 原車(chē)道前車(chē),則換回原車(chē)道。
全文摘要
本發(fā)明公開(kāi)了一種基于元胞機(jī)的城市微觀交通流仿真系統(tǒng),包括仿真內(nèi)核、初始化模型、人機(jī)交互模型、數(shù)據(jù)庫(kù)管理系統(tǒng)和誘導(dǎo)與控制協(xié)調(diào)系統(tǒng),其中初始化模型由路網(wǎng)生成模型、車(chē)輛生成模型以及控制與誘導(dǎo)設(shè)備生成模型組成;仿真內(nèi)核則由車(chē)輛行駛模型與控制誘導(dǎo)設(shè)備運(yùn)行模型組成;人機(jī)交互模型負(fù)責(zé)用戶對(duì)仿真系統(tǒng)中各種參數(shù)的設(shè)定以及整個(gè)交通網(wǎng)絡(luò)的屏幕顯示工作。本發(fā)明研究了城市微觀交通流仿真系統(tǒng)的總體設(shè)計(jì)、車(chē)輛在不同路網(wǎng)位置的各種行駛規(guī)則以及構(gòu)造仿真系統(tǒng)所必需的其他一些組成部分,主要從整個(gè)微觀交通流仿真系統(tǒng)的實(shí)現(xiàn)入手,給出程序運(yùn)行的總體框架,并對(duì)一些較為復(fù)雜的獨(dú)立部分進(jìn)行了相應(yīng)的簡(jiǎn)化,使得系統(tǒng)的實(shí)現(xiàn)更具有可行性。
文檔編號(hào)G08G1/00GK101561836SQ200910067608
公開(kāi)日2009年10月21日 申請(qǐng)日期2009年1月5日 優(yōu)先權(quán)日2009年1月5日
發(fā)明者劉建美, 賀正冰, 寧 賈, 馬壽峰 申請(qǐng)人:天津大學(xué)