長(zhǎng)安大學(xué) 信息工程學(xué)院 韓小龍
基于著色petri網(wǎng)的高速公路交通流建模與仿真
長(zhǎng)安大學(xué) 信息工程學(xué)院 韓小龍
作為一種高級(jí)petri網(wǎng),著色petri網(wǎng)是對(duì)經(jīng)典petri網(wǎng)的拓展和延伸,其仿真工具CPN Tools支持功能強(qiáng)大的元語(yǔ)言(ML),擴(kuò)展性比較強(qiáng)。
1.經(jīng)典petri網(wǎng)。經(jīng)典petri網(wǎng)是由庫(kù)所(place)、變遷(transition)和一組弧線(ares)組成的雙向圖。不同類型節(jié)點(diǎn)之間用弧線直接相連,同類型節(jié)點(diǎn)間則不能直接相連。本文,筆者用圓圈表示庫(kù)所,用矩形形式表示變遷。經(jīng)典petri網(wǎng)模型如圖1所示。
圖1 經(jīng)典petri網(wǎng)模型
2.著色petri網(wǎng)。著色petri網(wǎng)通過(guò)不同的顏色對(duì)托肯進(jìn)行分類,以實(shí)現(xiàn)系統(tǒng)的折疊和簡(jiǎn)化。著色petri網(wǎng)的顏色主要是針對(duì)托肯和庫(kù)所設(shè)置的。
(1)通常把染色托肯分為幾種類型,而把類型稱為顏色。因此,可以把顏色看成是數(shù)據(jù)類型,對(duì)不同的屬性的托肯賦以不同的顏色。在著色petri網(wǎng)中,一種顏色的托肯代表一類具有相同屬性的元素;在經(jīng)典petri網(wǎng)中,一個(gè)托肯只代表一個(gè)元素或資源。
(2)基本petri網(wǎng)的發(fā)射條件與著色petri網(wǎng)的托肯的發(fā)射條件是不相同的。在著色petri網(wǎng)中,在任意2個(gè)節(jié)點(diǎn)間的有向弧上,都表示一個(gè)相應(yīng)的權(quán)值函數(shù),每個(gè)權(quán)值函數(shù)明確地規(guī)定了相應(yīng)的發(fā)射條件,包括變遷節(jié)點(diǎn)在其輸人位置節(jié)點(diǎn)所應(yīng)有的色點(diǎn)的顏色、變遷節(jié)點(diǎn)在完成發(fā)射后應(yīng)清除的和應(yīng)產(chǎn)生的色點(diǎn)的顏色等內(nèi)容。
假設(shè)在某路段上設(shè)有出口和入口匝道。對(duì)該路段,以距離X為單位將該路段路段劃分為N段,選取其中的i-1,i,i+1段作為研究對(duì)象,而且i-1不是起始段,i-1也不是終點(diǎn)段。通常將q隨道路坐標(biāo)x連續(xù)變化的規(guī)律離散化,即把一條道路按照其實(shí)際和交通狀況劃分為若干段,使得在每一段內(nèi)交通狀態(tài)可近似成一的,每一段內(nèi)車道數(shù)不變,至多有1個(gè)入口和出口。高速公路路段模型如圖2所示。
圖2 高速公路路段模型
設(shè)第i路段內(nèi)交通流量為qi,入口、出口匝道流量分別為ri,si,則
式(1)即為穩(wěn)態(tài)流量模型,這是一個(gè)遞推模型。只要知道起始端主線流量q0及各入口、出口匝道的流量,即可用式(1)計(jì)算出各段的流量qi(i=1,2,…)。
1.CPN Tools建模。根據(jù)高速公路路段的模型,建立交通流的CPN模型,如圖3所示。
圖3 高速公路路段交通流的CPN模型
庫(kù)所a和變遷generate1為路段i的起始點(diǎn),具有初始車流量,準(zhǔn)備進(jìn)入此段路口,而變遷generate1模擬交通流通過(guò)路口并且產(chǎn)生新的交通量。庫(kù)所a的顏色集為UNIT(單元集)并且是時(shí)間集,在庫(kù)所a上的token用于確定新的車流量何時(shí)產(chǎn)生,其token的時(shí)間標(biāo)記將確定變遷generate1發(fā)生的時(shí)間,在庫(kù)所a上初始標(biāo)記是沒(méi)有token的。
2.變遷generate1。變遷generate1是用于產(chǎn)生1個(gè)token放置在庫(kù)所a中,對(duì)增加到庫(kù)所a中的token的時(shí)間標(biāo)簽是由從變遷generate1到庫(kù)所a上的時(shí)間標(biāo)記@+expTime(100)所創(chuàng)建的。expTime函數(shù)將從指數(shù)隨機(jī)分布函數(shù)中返回1個(gè)值,來(lái)確保產(chǎn)生的token不總是在0時(shí)刻到達(dá)的。同理,庫(kù)所b和generate2的作用與之相同,而庫(kù)所b和generate2代表路段i的入口匝口的模型。
庫(kù)所1–1為路段i的主干道和入口匝口的匯集點(diǎn),變遷f2為匯合后的車流進(jìn)入此路段的過(guò)程,并且進(jìn)行相應(yīng)的排隊(duì)。庫(kù)所queue1隊(duì)伍形成后車流的狀態(tài),至變遷pass1即將駛離此路段,車輛離開(kāi)隊(duì)伍。庫(kù)所select1則是出口匝口與進(jìn)入下一路段的分離點(diǎn),車輛再次選擇行進(jìn)方向。out1為通過(guò)主干道的車輛,out2通過(guò)出口匝口的車輛。CPN模型中元素的說(shuō)明見(jiàn)表1。
表1 CPN模型中元素的說(shuō)明
全局聲明如下:
colset UNIT = unit timed;
colset INT = int timed;
colset CarType= with A | B;
colset CAR_A= record cartype:CarType*CARNUM:INT*GT:INT;
var cvar:CAR_A;
colset QUEUE= list CAR_A;
var q:QUEUE;
fun Generate()=
let
val car= poisson(100.0)
in
car
end;
fun intTime() = IntInf.toInt (time());
fun nlength[]= 0|nlength(x::xs)= 1+nlength xs;
fun expTime (mean: int) =
let
val realMean = Real.fromInt mean
val rv = exponential((1.0/realMean))
in
fl oor (rv+0.5)
end;
fun newcar() = {cartype= CarType.ran(),
CARNUM = Generate(),
GT = intTime() }
通過(guò)全局聲明可編寫(xiě)相應(yīng)的計(jì)算機(jī)程序,有利于實(shí)現(xiàn)對(duì)CPN Tools模型的分析。
book=45,ebook=90