交通流模擬框架

這是我還在讀書時翻譯過的一篇文章,最近因為一些原因又從頭翻了翻。第一感覺是這篇文章與其說是一篇學術論文,倒更不如說是一篇思路清晰的設計報告。第二感覺是,這篇文章能為做交通流模擬的人提供很多基礎的概念,也能幫助大家繞一些彎路。因此,值得一讀。

另外我也發現,同樣的內容,不同的時間點來看,收穫是完全不同的。比如說現在的我,看到的就是類的功能介面設計,這是以前沒有的感受。

文章翻自

《Advanced Traffic Simulation Framework for Networked Driving Simulators》

,其對我們構建交通流模擬模型具有很強的指導作用。

本文提出了一種面向網路化駕駛模擬器環境的交通模擬框架的概念和結構。

研究工作

學術界相關工作

1。 Espie and Auberlet(2007)中提出了交通模擬的符號視覺模型。該模型允許每輛交通車輛

觀察其周圍環境的各種要素

,如其他交通車輛、路標、車道標誌等。因此,每個交通物件都可以根據交通狀況以及感知到的道路環境來調整自己的行為。

2。 Bonakdarian等人(1998)提出了一種使用

分層併發狀態機(HCSM)

的方法。該模型允許每輛交通車輛檢查情況,從而在不同的決策之間自動切換,如車道跟蹤或換道、目標跟蹤、交通避碰、靜態目標避碰等。

3。 (Wright et al。(2002))提出了一種利用模糊邏輯方法進行交通模擬的模型。透過引入一定程度的不確定性,模擬了

典型人類駕駛員的行為

4。 為了減少計算量,在(Olstam(2003))中引入了在

指定候選區域內

模擬交通車輛的概念。

5。 Olstam (2005a)對過往交通模擬方法進行了一個比較全面的綜述。

產業界相關工作

6。 來自

DLR的SUMO

是一個開放和靈活的套件,用於模擬包括道路車輛和行人在內的交通系統(Behrisch et al。(2011))。

7。 來自

dSPACE的ASM

是一個由Simulink模型組成的框架(Amelunxen(2015))。該模型模擬了一輛試驗車和多達15輛獨立交通車輛,可用於互動式駕駛模擬。

8。

IPG Automotive的IPGTraffic

為駕駛模擬器提供模型來表示交通車輛之間的互動作用(Miquet et al。(2010))。可以建立無限數量的交通物件,並可以為每個交通物件分別分配操作。

9。 一些商業解決方案在駕駛模擬器車輛周圍定義了一個模擬區域,在那裡生成交通物件。

VIRES Simulation Technology的v-TRAFFIC

是一個交通場景模擬引擎,可以與駕駛模擬器一起模擬周圍的交通物件(Neumann-Cosel et al。, 2009)。基本上,可以建立的交通物件的數量沒有限制。此外,v-TRAFFIC利用模擬區域/視窗概念來減少計算量。

10。 大多數商業解決方案的一個問題是,它們模擬整個地理區域。對於較寬的區域或較長的道路,許多交通車輛都必須進行模擬,尤其是在進行長時間駕駛模擬器實驗時。這對算力的要求太高了。

交通流模擬框架總覽

與傳統交通流模擬的區別在於,

該框架中車輛物件中其中一輛或多輛是由人控制的

,也就是說,交通車輛不僅要對彼此做出反應,還的對人工車輛做出反應。

交通流模擬框架

交通模擬框架接收每個駕駛模擬器的位置、方向和速度資訊,輸出模擬交通車輛的位置和方向。這些工作由模擬管理器處理,由它來管理交通參與者之間的資料轉發和同步。交通模擬框架的輸出也被轉發到相關的駕駛模擬器。

模擬框架功能單元和資料介面

整個模擬框架使用matlab/simulink開發,以下介紹了各個子模組輸出,以及它們的關係。

初始化模組

初始化功能表示使用者和交通模擬框架之間的介面。框架使用者可以在模擬會話開始和模擬執行時設定一些引數,如駕駛員的視線距離、交通密度等級等。下圖顯示了交通初始化功能及其輸出。

交通流模擬框架

動態視窗生成模組

為了減少運算成本,該框架不是模擬整個地理區域,而是開發了模型和方法來

僅在模擬車輛的最近鄰近區域生成交通車

(Olstam(2005b))。在本工作中,我們考慮了一個多驅動模擬器的環境,交通車輛只會在選定的模擬車輛的鄰近範圍內進行模擬,即目標模擬器車輛。該

鄰域以目標模擬器車輛為中心,其運動速度相同。它被稱為模擬視窗。為了避免交通車輛的突然出現和消失,模擬視窗的設計要求至少與目標模擬車輛前後的視線距離一樣長。

一般來說,道路設計中的視線距離被定義為駕駛員可以看到的道路長度(Hang et al.(2008))。與現實生活中的情況一樣,三維環境中的道路幾何形狀是影響模擬駕駛員視程可用性的因素之一

。為了簡單起見,我們選擇了一條沒有十字路口和坡道的道路;這是一條在每個方向上都有兩條車道的直線。動態視窗生成功能接收所有參與模擬器車輛的位置,一個指示目標模擬器車輛的訊號,以及設定的視距。後兩個訊號從流量初始化函式接收。

該功能不僅為目標模擬器車輛定義了鄰域,而且還為每個參與模擬器車輛定義了鄰域。

在這種情況下,鄰近區域稱為移動視窗,下圖為動態視窗生成函式的主要輸入/輸出訊號。

交通流模擬框架

交通流模擬框架

交通車輛只在模擬車輛所在的模擬視窗生成。

考慮到不能使司機經歷不切實際的交通行為。將目標模擬車與其他參與模擬車之間的距離與設定的視距進行連續比較。當模擬車的移動視窗開始與目標模擬車的模擬視窗重疊時,將目標模擬車的模擬視窗調整為將兩輛模擬車包圍起來,從而將兩輛模擬車在所謂的整體模擬視窗內進行模擬。

交通流模擬框架

但是,如果模擬器車輛駛離目標模擬器車輛,則會重置整個模擬視窗

。在這種情況下,整個模擬視窗將與目標模擬器車輛的模擬視窗完全相同。也就是說,在只考慮目標模擬器車輛的情況下生成交通車輛。雖然只考慮了一個目標模擬器駕駛員進行交通模擬,但模擬視窗的動態調整使其他模擬器駕駛員都能體驗到真實流暢的交通行為。然而,透過動態調整模擬視窗可能會出現一些關鍵情況,這些可能導致不切實際的交通行為,例如,交通車輛突然消失在模擬車輛附近。因此,需要一個觀察者來檢測。

交通觀察者模組

交通觀察者檢測關鍵情況,以防止生成不真實的交通行為。

下圖為交通觀察者功能的主要輸入/輸出訊號。

交通流模擬框架

該函式接收目標模擬車的資訊,所有模擬車的運動視窗,交通車輛的位置,以及交通車輛的最大長度。該功能的主要任務是連續監測哪些交通車輛位於哪個移動視窗。針對不同的情況,將使用不同flag。

例如,考慮下圖所示的情況,其中目標模擬器車輛正在加速,整個模擬視窗正在重置。如果交通車輛偶然停留在非目標模擬器車輛的移動視窗內,這些車輛不得丟棄。

交通流模擬框架

如果目標模擬器車輛停止,則設定flag,表示前方不應生成任何交通車輛,除非迎面駛來的交通車輛。同樣,如果目標車輛的行駛速度超過了預先定義的最高速度,則會設定相應flag,表示不應該從後面生成任何交通車輛。

在所有情況下,交通觀測器的標誌都被轉發給車輛生成/丟棄功能(稍後討論),以便它採取適當的行動防止不切實際的交通行為。

交通密度、速度控制模組

該功能根據交通初始化功能那個提供的相應特徵來調整交通速度和/或密度(見圖9)。每個交通特徵定義了三個層次:低、中、高。

交通流模擬框架

根據所需的速度和密度水平,該功能調整交通車輛的偏移速度和/或目標模擬器車輛前後每視距的交通車輛數量。此資訊被轉發到下面小節討論的車輛生成/丟棄模組。

交通生成、丟棄模組

車輛生成/丟棄模組的目標是讓交通車輛只存在於模擬視窗內。該模組接收關於模擬視窗、所需的交通特性、當前交通車輛位置和最終關鍵情況的資訊。下圖為車輛產生/丟棄模組的輸入/輸出訊號。

交通流模擬框架

一般來說,後面生成的交通車輛要比目標模擬器車輛快,而前面生成的比較慢。

具體地說,生成的交通車輛的速度等於目標模擬器車輛的速度+/-設定偏移速度。為了避免不真實的交通佇列,該函式觀察模擬交通車輛的當前位置,使其能夠合理地分佈在道路車道之間。另一方面,在同一方向上行駛速度比模擬車慢或快的交通車輛最終會走出模擬視窗。同樣,當迎面而來的車輛透過模擬器車輛後面的可視距離時,在模擬視窗中就不存在迎面而來的車輛。在考慮前面討論的交通觀察者的最終緊急情況標誌時,交通車輛一離開模擬視窗就被丟棄。

交通流模擬框架

駕駛員模組

駕駛員模型根據感知到的交通狀況來控制交通車輛的行為。交通模擬有幾種行為模型,如:跟車、速度適應、變道、超車、從旁經過(passing)和迎面避讓(Yu et al。(2013))。在這項工作中,駕駛員模型是透過汽車跟車實現的。

跟車模型控制交通車輛相對於同一車道上前面車輛的行為(Wenga和Wu(2001))。文獻中有各種各樣的跟車模型,他們使用不同的邏輯,可能做出不同的假設。例如,Gazis-Herman-Rothery模型表明,後面車輛的加速度與前面車輛的速度、速度差和空間車頭時距成正比(Bevrani et al。(2012))。心理-物理的跟車模型使用閾值來表示跟隨車輛和前面車輛之間的最小感知速度差異(Schulze和Fliess(1997))。安全-距離模型基於如下假設:從動車輛與前面車輛保持安全距離(Luo et al。(2011))。為了簡便起見,本文考慮了安全距離法。下圖為採用汽車跟隨行為模型的駕駛員模型的主要輸入/輸出訊號。

交通流模擬框架

駕駛員模型接收所有模擬交通車輛的當前位置和速度,以及模擬車輛的當前位置和速度。將車輛之間的距離與所需的安全距離進行比較。根據距離比較,交通車輛將處於兩種狀態之一:自由駕駛或跟車。在自由駕駛狀態下的交通車輛是不受約束的。因此,驅動程式模型轉發設定的速度。對於處於下一狀態的交通車輛,駕駛員模型將車速調整為與前一輛車相等,以保持安全距離。

交通模組

交通車輛模型的研究主要有兩種方法:宏觀模型和微觀模型。宏觀模型從總體或平均的角度處理交通,它們需要相對簡單的計算,然而,交通車輛的特性不能單獨控制(Nakrachi和Popescu(2010))。相反,微觀模型考慮單個車輛的行為。然而,每個模擬車輛都需要一個單獨的模型(Jaworski et al。(2012))。這增加了計算工作量,特別是在需要大量車輛的情況下。

本文選擇了微觀模型。一方面,由於只在有限的區域內進行交通模擬,所以只需要少量的車輛就可以達到合理的交通密度。一方面,人類駕駛員也參與到了模擬中。因此,有必要根據模擬車的位置和速度對每輛交通車輛進行單獨的控制。

用一個簡單的一階滯後因子和PI、PID控制器對每輛交通車輛進行建模。

該模型基本上可以根據所需的車輛數量和可用的計算能力任意複製。

交通流模擬框架

如果駕駛員模型沒有檢測到前面的車輛,則交通車輛模型接收設定的速度,

並激活PIcontroller

來保持該速度。

如果前面的車輛被駕駛員模型檢測到,則交通車輛模型接收被檢測車輛的當前位置,並激活附加的pid控制器以保持安全距離。在這兩種情況下,交通車輛模型都類似於一個典型的延遲速度行為,該行為被整合在一起來推斷交通車輛的位置。透過適當的模型和控制器引數化,實現了流量控制。