• 沒有找到結果。

在混合車流之中,將車輛區分成人為操作車輛以及自動車輛。許多文 獻中有提到,跟車並非只是跟前面一輛車輛,而是必須考慮到更前方的一 部車;我們假如可以獲悉前方車陣資料,便可以預先由更前方的車流做預 測,會比單看前方一輛車來的精準,假設以一輛自動車輛作為跟車的基準 車輛,也就是

i

1,則跟車必須考慮到

i

2

i

3,甚至是更前方之車輛也可做 為考慮,而本模式基本上是以三輛車為討論的基準,因此跟車的形態會出 現下列四種(圖 3.3):

Automatic

i

1

Manual

i

2

Manual

i

3

D

23

D

12

V

1

V

2

V

3

1. ACÆMCÆMC:

i

2是人為操作車輛,

i

3也人為操作車輛。

2. ACÆMCÆAC:

i

2是人為操作車輛,

i

3是自動車輛。

3. ACÆACÆMC:

i

2是自動車輛,

i

3是人為操作車輛。

4. ACÆACÆAC:

i

2是自動車輛,

i

3也是自動車輛。

圖3.3 跟車情境 3.4 跟車最適當距離概念

以往的跟車文獻當中,對於跟車最適距離只設定一個最小值(critical distance),小於這個值的話,就必須減速,但是對於自動車而言,必須有 更嚴謹的方式判斷;一方面是因為為了整體車流的順暢,另一方面是為了 坐在裡面的乘客的舒適,分述如下:

1. 整體車流的順暢:當一輛車突然的煞車,立即影響的是後面的一部車,

但會導致在更後面的車輛,每一部車都必須加上反應時間再煞車,使 得整各車流產生車流的長鞭效應;可能最初減速的車輛已經加速在前 進,但在它後面的車輛卻有還在煞車減速,以discharge headway 舉例 來說,讓所有車輛在紅燈轉綠燈放行之後,為何不能立即達到saturated headway?而是在到達 saturated headway 之前,前幾部車的 headway 相 當長。是否有辦法控制讓所有車輛在紅燈轉綠燈放行之後立即達到 saturated headway?這就是自動車輛設計的精神所在:大家一起減速或

AC vehicle

AC vehicle

MC vehicle

AC vehicle AC vehicle MC

vehicle

MC vehicle

本車 前車 前前車

加速。如今在混合車流之中,後面的車輛可能是人為操作,並不一定

速度下自動車煞車的距離,D23i2i3 的動態距離。

0 2 4 6 8 10

除了用拋物線加速度或是減速度之外,考慮如果有後方車輛插入本車

圖3.6 相對距離示意圖 AC i2

X1

X2

四、模式架構

第三章已經將模式會用到的概念和模型ㄧ般式在各小節中表示出來,

在這邊將把這些概念完整的串聯,在配合模擬的過程求得驗證。

4.1 加減速度的大小

自動車行駛時,希望能夠控制在等速行駛,而非時常在加速或是減 速,設定等速的範圍在DminDmax之間,非這個情況下就要加速或是減速(見 3.4 節)。因此,要加減速有三個情況,1.本車和前車距離小於Dmin要減速 2.大於Dmax則要加速3.被超車。減速或是加速的多寡依照上述三種情況做判 斷如下:

1. D12小於Dmin

步驟一:利用vi

=

W1v2

+

W2vσ(3.8)計算求得自動車 i1的末速。

步驟二:將步驟一求得的末速v ,i 代入v(t)= α3t3 αβ2 t2 γt+v0(3.6) 使 2 0

2 3

3t t t v

vi=α αβ γ +

反求出t。

步驟三:將 t 代入a(t)=αt2αβtγ 求出減速度a(t)。

2. D12大於Dmax

步驟一:同上,利用vi

=

W1v2

+

W2vσ(3.8)計算求得自動車 i1的末速。

步驟二:將步驟一求得的末速vi代入v(t) =α3t3 +αβ2 t2 +γt+v0(3.5) 使vi =α3t3 +αβ2 t2 +γt+v0反求出t。

步驟三:將t 代入a(t)= αt2 +αβt+γ 求出加速度a(t)。

3. 被超車

步驟一:以偵測器偵測超車至前方的車輛車速,當做自動車i1的末速。

步驟二:以等加速度公式vi2 =v02+2as(初速、末速以及兩車距離為已 知),求出加速度a(t)

上述情況,除了第三點有利用到兩車距離之外,另外兩點是利用拋物 線加速度所二次積分出來的位移在煞車,煞車距離是否有可能會有考慮不 足,而導致兩車過近的情況,因此,在判斷DminDmax的時候,就應該考 慮以拋物線加(減)速時可能行走的距離。下節將有最適距離的判定。

4.2 最適距離的判斷與決定

其中mv1是自動車在判斷時間(m 秒),以 v1的速度會行走的距離。

D

12max3=

S

+m

v

1n

D

23+ε (4.6)

N N

N

N Y Y Y

Y

a=0 a=0

Y

N N N N

N

Y N

Y

Y

計算 D2min

D2max

D12≧D

D12≧D

V1≧V2

計算 D4min

D4max

D2min≦D12D2max D4min≦D12D4max

D12<D2min D12>D2max D12<D4min D12>D4max

計算V 計算V 計算V 計算V

V1≧V V1≧V V1≧V V1≧V

V2≧V3

N Y

Y

a<0 a>0

a=0 a=0 a<0 a=0 a=0 a>0

29

五、情境模擬

本章將使用Turbo C 程式語言模擬第四章所表示的四個象限,也就是 在各種情況下,最適當距離的判斷,以及使用到的拋物線加速度減速和加 速,驗證模式的可行性,適時的修改模型,討論模式可行性,補足模型缺 漏和思慮不周的地方。

5.1 程式撰寫

考慮到模擬的逼真性,原本希望使用車流模擬器模擬,但由於車流模 擬器無法針對單一車輛控制,而且在函數被限定以及程式碼有限的狀況 下,採用最原始的程式語言C 語言做動態模擬,期望達到 ITS 需要的動態 化、即時化、隨機化的目標。

5.1.1 程式撰寫流程

程式希望藉由自動車之前的手動車輛隨機變動速度或是藉由給定的 加速度,讓在後面的自動車輛能夠經由程式,判斷跟車所要使用的模式,

以及用給定的拋物線加速度跟車,且要動態表現出車輛的行為,流程圖如 (圖 5.3),解說如下:

1. 建立高速公路及事故系統:撰寫副程式 road(void ),繪出高速公路三 車道的圖形,詳見5.1.2。

2. 設定車輛初始位置:藉由 int vehicle_location()函數,分別在不同情境,

以顏色區隔自動車和手動車的差別,並且讓車輛由不同位置出發,詳 見5.1.2。

3. 車輛相關資料輸入:已經有車輛的位置,輸入手動車輛的相關數據,

車速,加速度,和計算一秒鐘會行走的位移,由副程式Vehicle2()表示。

4. 模擬時間:藉由迴圈的設計,跑ㄧ次程式為間隔一秒鐘,一直到設定 的秒數n 秒才會終止迴圈。

5. 計算自動車輛的末速:計算末速之後,可以決定要加速度,或是減速 度,並求出如果執行拋物線加速度或是拋物線減速度的時間,也就是 模式加速度的係數 β。求出 β 後就可以間接求出 α。(為了滿足衝度要 求要小於等於2,α*β 必須等於 2),計算時間的副程式為 float beta( )。

6. 模式選擇:由於已經有前方車輛的資訊,判斷距離、相對車速,選擇 四種狀況之一種應該使用的模式,確定模式後,計算此模式的Dmin

是Dmax

7. 再判斷自動車和前車距離是否小於或是大於 Dmin或是Dmax:如果在範 圍內,則選擇等速度前進,如果大於或是小於,則使用拋物線加速度 加速或者是減速。

8. 資料蒐集:每一秒鐘執行的兩車速度、兩車距離、位移、Dmin 或是 Dmax ,可以回傳到記事本上,加以分析

9. 執行下一秒:跑下一圈迴圈。

圖5.3 程式流程圖 模擬開始

車輛相關資料輸入 Vehicle2()

建立高速公路及事故系統 void road(void )

建立車輛初始位置 int vehicle_location()

計算加減速度執行的時間 float beta()

v

vD Dhuman

2 1

23

<

< 模式判斷 for(i=0;i<n;i++)

n 為模擬時間

決定適用的Dmin()以及 Dmax()

d(兩車距離)<Dmin

d(兩車距離)>Dmax

是 否

決定速度v 以及位移 x 決定速度v 以及位移 x

當i=40 模擬結束

5.1.2 繪圖程式

模擬所需要用到的背景在高速公路,使用C 語言中的<graphics.h>函式 庫繪出三車道的高速公路,其中內側車道為自動控制車輛車道,並且此車 道上有事故發生,以條紋斜線表示事故,一個像素長度假設為一公尺,螢 幕可以放置最大圖形為 640*480,故按比例,整條公路路徑為 640 公尺,

事故位置位於左邊數來五百八十公尺至六百公尺處,如(圖 5.1):

圖5.1 車道

除此之外,自動車輛我們以黃色作為表示,人為操縱車輛以綠色作為 表示,初始以三輛車作為模擬對象,試驗模式在三輛車時的正確性,故三 輛車在混合車道上,設定在第二車道,車與車的距離暫時不設定,車長占 圖形五個點,為五公尺,寬占兩個點,如圖5.2 示:

圖5.2 車輛 5.1.3 距離判斷

要判斷 i1i2之間的距離(D12)是否少於 Dmin或是大於 Dmax,要判斷 Dmin或是 Dmax需要計算拋物線加速度位移S,S 要有加速的總時間(β)來計 算,所以要先求出β,求 β 需要知道自動車輛(i1)的末速,求出末速後, 利 用公式v(t) = α3 t3 αβ2 t2 γt+v0,知道v(t)v0解聯立方程式求出t,也就是 β;

如果求出的末速度和初速度相同時,這時求出的 β 會等於 0,此時求不出 位移 S,S 的使用時機主要是針對前車速度較慢,為了使用拋物線減速而 設定,減速度最大值是 2m/s2(一般緊急煞車減速度是 7m/s2),固計算出 S 其實是相當大的(加速度大小和位移多寡成反比)。所以如果前車速度較 快,Dmin或是Dmax則不放入S 變數。也就是(圖 4.1)中的第三和第四象限。

黃色 藍色 藍色

將四種象限的自動車輛判斷距離使用四個函數在程式中表示:

n 假設為 0.002,D23是(20+average-decrease),i2車輛車尾所在位置為圖形 (105+decrease)處,i3車頭所在位置為圖形(125+average)處,其中”decrease”

變數初始為零,隨時間而增加,代表i2每一走秒之後的位移,”average” 變

Dmin4=0.05*v11+pow(v1,2)-0.002*(20+average-decrease); (5.7) (5.6)是原先設定的公式,在程式中(5.7)的函數則不加入 S,因為前車 的速度較快。m 和 n 依然使用 0.05 和 0.002。此為(圖 4.1)的第四象限。

5.1.4 程式

程式撰寫如附表一

5.2 情境模擬與分析

針對(圖 4.1)的四個象限,針對每一種象限做個別的情境模擬,判斷每 個象限的Dmin或是Dmax是否合理,距離會不會過大,使得後車可以超越或 是鄰近車道車輛超車;如果距離過小,前車緊急煞車,Dmin是否足夠而不 至於撞車。將初始值設定為各象限所假定發生的情況,以下為各情境的模 擬過程及數據分析。

5.2.1 情境一

在第一象限中,由於前車(i2)和前前車(i3)的距離過近,又本車的速度 大於前車,也就是D23<Dhumanv1>v2。在模擬中,設定開始的位置,(i1)、

(i2)和(i3)的 x 座標分別為(i1)=10、(i2)=100、(i3)=125 作為起始,初始速度(v1) 為20m/s,(v2)=18m/s、(v3)=18m/s=65km/h,如(圖 5.4):

圖 5.4 情境模擬一

設定跑三十秒,如果程式在某一秒有使用到模式 1(Dmin1),則會隨著 數據回傳到文件,因此便可以判斷在使用模式1 時是否有錯誤。結果如表 5.1:

i1 i2 i3

表5.1 模擬情境一 6 18.29322 13 118 191 71 83.42539

7 18.29322 14 136 204 73 67.18501 8 18.29322 15 154 218 68 59.04187

9 18.29322 16 172 233 64 48.799500 here use model1 10 17.48567 14 189 250 61 67.16101

11 17.48567 16 206 263 61 33.747795 here use model1 12 16.67812 13 222 280 57 64.17597

13 17 17 233 291 58 20.58845

14 17 15 250 309 58 44.487267 here use model1 15 16.19245 13 265 325 59 61.25695

16 16 16 277 337 60 19.40587 22 17.19245 14 377 438 59 65.31249

23 17 17 390 451 61 21.814503 here use model1 24 16.17213 12 405 470 61 67.1994

25 17 17 415 480 65 19.323883 here use model1 26 16.17213 12 430 499 65 67.1854

27 16.17213 13 446 511 69 51.25685 28 16.17213 12 462 524 65 58.10788

29 16 16 472 534 62 19.28788

30 16 12 488 552 62 57.08142

在分析時先用前六秒鐘分析,因為在初始值就設定此種情境的狀況,

所以前面的秒數較容易顯示第一象限的狀況,前六秒鐘速度一直都是

v1>v2,分別在第三秒和第五秒的時候 d< Dmin,因此第三秒開始減速,使 用拋物線減速度減速,第二秒的速度是20m/s,第三秒速度變成 19.14m/s,

這秒鐘內自動車前進了 18 公尺(63m-45m),小於在等速時的 20 公尺,而 應該減速的時間β 計算方式為 3×(v1v2),第二秒v1=20,v2=14,所以 β 值為 4.24 秒鐘,但由於在第三秒時,兩車的距離又恢復在可接受的範圍 內,就沒有繼續執行減速;第二次模擬,將前車的車速逐漸的放慢等減速,

如下ㄧ個表(表 5.2)的 v2 ,可發現,從第四秒開始使用拋物線減速度開始

如下ㄧ個表(表 5.2)的 v2 ,可發現,從第四秒開始使用拋物線減速度開始