• 沒有找到結果。

建議

在文檔中 中 華 大 學 (頁 84-111)

第六章 結論與建議

第二節 建議

一、 本研究研究範圍限定在紅燈時段之停等部分,後續研究可加入綠燈時段疏

解部分,可較完整模擬號誌化路口之混合車流情況。

二、 在程式延伸應用部分,後續研究可加入較複雜之路段行為,使其模擬結果 更接近現實。

三、 本研究礙於人力、物力有限情況,未能涵蓋不同流量、不同路型等其他狀 況之研究,後續研究可探究各種不同狀況進行研究,以使此類研究更加完 善。

參考文獻

陳天賜(1982),公車站位長度對車流延滯影響之研究。國立台灣大學土木研究所 碩士論文。

黃國平(1983),混合車流二維座標模擬模式之建立及驗證。國立台灣大學土木工 程學研究所碩士論文。

李月仙(1989),微觀車流模擬模式與適應性交通控制策略之整合研究。國立成功 大學交通管理科學研究所碩士論文。

陳世泉(1993)。混合車流中機車駕駛行為之分析。國立台灣大學土木工程研究所 碩士論文。

陳柏榮(1994),高速公路微觀車流模擬模式雛形建立之研究。國立成功大學交通 管理科學研究所碩士論文。

黃泰林(1994),構建智慧型適應性網路號誌控制模式之研究。國立成功大學交通 管理科學研究所博士論文。

林大煜、林豐福、賴靜慧(1996)。機車問題探討及改善策略,中華民國第一屆機 車交通與安全研討會論文集。中壢。

許添本(1998)。交通智慧化發展策略,台灣地區智慧型運輸系統推動策略研討 會。

朱建全(1999)。機車駕駛者面臨交通衝突之行為反應研究。國立交通大學運輸科 技與管理研究所碩士論文。

交通部運輸研究所(2001)。2001 年台灣地區公路容量手冊。台北:交通部運輸 研究所。

何佳娟(2001)。微觀汽機車混合車流行為之研究。國立交通大學運輸科技與管理 研究所碩士論文。

董基良、鄭銘章、黃俊仁、馮君平、林志勇、林豐福等(2002)。機車停車設施立 體化與拖吊技術效率化之規劃設計研究。交通部運輸研究所中央大學合作 辦理。

黃月貞(2003)。模擬微觀混合車流下幹道連鎖策略之研究。國立交通大學運輸科 技與管理研究所碩士論文。

張家峯(2004)。號誌化路口機車車隊等候長度對混合車道容量影響之研究。國立 交通大學運輸科技與管理研究所碩士論文。

劉力銘(2004)。機車在號誌化路口混合車流中之疏解特性研究。國立交通大學運 輸科技與管理研究所碩士論文。

林俊良(2004)。號誌化交叉路口機車延滯公式之研究。國立台灣大學土木工程研 究所碩士論文。

王郁凱(2006)。機車專用道車流模式建立之研究。國立交通大學運輸科技與管理 研究所碩士論文。

張維翰(2006)。郊區路段微觀混合車流特性研析與模式建立。國立交通大學運輸

科技與管理研究所碩士論文。

許義宏(2007)。巨觀混合車流模型構建之研究。國立成功大學交通管理科學研究 所碩士論文。

Lewis. E. B. (1982). Control of body segment differentiation in Drosophila by the bithorax gene complex, Embryonic Development, Part A: Genetics Aspects , Edited by Burger, M. M. and R. Weber. Alan R. Liss, New York, 269-288.

Wilensky, U. (1999). NetLogo. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL, Retrieved May 31, 2009, from http://ccl.northwestern.edu/netlogo/

Powell (2000). A model to represent motorcycle behaviour at signalised intersections incorporating an amended first order macroscopic approach. Transportation Research Part A, 34, 497-514 .

Lan, L. W. & Chang, C.W. (2003). Motorbike’s moving behavior in mixed traffic:

paticle-hopping model with cellular automata. Journal of the Eastern Asia Society for Transportation Studies, Vol.5.

Chang, C. W. (2004). Motorcycles’ Moving Behaviors in Mixed Traffic: Fuzzy-based and Cellular Automata Approaches. Unpublished doctoral dissertation, National Chiao Tung University, Hsinchu, Taiwan, R.O.C..

Meng, J. P., Dai, S. Q., Dong, L. Y., & Zhang, J. F. (2007). Cellular automaton model for mixed traffic flow with motorcycles. Physica A, 380, 470–480.

附錄 A

程式原始碼

;;;;;;;;;;;;;;基本屬性;;;;;;;;;;;;;;

globals;全域變數 [

try-times;以模擬次數(用以對應停止) x;進入路段之汽車數

y;進入路段之機車數 i;進入路段之總汽車數 j;進入路段之總機車數 mix;混合比

VAG;系統產生之汽車到達間隔時間 VAG0;汽車累積到達間隔時間 SAG;系統產生之機車到達間隔時間 SAG0;機車累積到達間隔時間

VAG-MAX;汽車到達間隔時間最大值 VAG-MIN;汽車到達間隔時間最小值 SAG-MAX;機車到達間隔時間最大值 SAG-MIN;機車到達間隔時間最小值 v-stops;汽車總平均停等數

s-stops;機車總平均停等數 v-delay;汽車總平均延滯 s-delay;機車總平均延滯 ]

breed[vehicles vehicle];定義汽車 breed[scooters scooter];定義機車 vehicles-own;汽車屬性

[

delay;計算延滯 speed;速率

speed2;紀錄初速率 site;到達位置

need-stop;必須停等之距離

move-type;判斷移動類型(1 車頭 2 副車頭 3 車身)

car-ahead;與前車之間距(開始時判斷無車空間)(執行時判斷動態間距)

car-occupy;與前車直觀間距(判斷前方有車距離) car-stop;與前車靜態間距(判斷停等車隊長度) already-stop?;是否已經停止的標籤

]

scooters-own;機車屬性 [

delay;計算延滯 speed;速率

speed2;紀錄初速率 site;到達位置

need-stop;必須停等之距離

move-type;判斷移動類型(1 車頭 2 副車頭 3 車身) car-ahead;與前車之間距(執行時判斷動態間距) car-left;與左車之間隙

car-right;與右車之間隙

already-stop?;是否已經停止的標籤 change?

]

;;;;;;;;;;;;;;主按鍵程式集;;;;;;;;;;;;;;

to setup ca

setup-patches;***場景設計***

v-start;***產生汽車到達間隔***

s-start;***產生機車到達間隔***

setup-vary;***變數初始化***

end to go

if ticks >= (1 * intervals * times) [

set try-times try-times + 1 count-stops

count-delay

set i i + count vehicles with [move-type = 1]

set j j + count scooters with [move-type = 1]

set mix mix + count scooters with [move-type = 1] / (count vehicles with [move-type

= 1] + count scooters with [move-type = 1]) if try-times = try[stop]

reset-ticks ct

set x 0 set y 0 ]

if ticks = 0 [

crs-lane1-queue crs-lane2-queue crs-lane3-queue crs-lane4-queue crs-lane5-queue crs-lane6-queue crs-lane7-queue crv-lane23-queue crv-lane567-queue;***產生子車 道之車隊***

]

produce-vehicle produce-scooter;***產生車輛***

cellular-automata;***更新位置***

set VAG0 (VAG0 + 1) set SAG0 (SAG0 + 1);***累積時間***

report-delay-time;***回報延滯時間***

tick;***系統計時器***

end

;;;;;;;;;;;;;;初始化程式;;;;;;;;;;;;;;

;***場景初始化***

to setup-patches

ask patches[set pcolor gray];所有瓦片都設成灰色

ask patches with[pxcor = 49 + road-length - 45][set pcolor white] ;停止線第 51 公尺 處-縱向

ask patches with[pxcor = 43 + road-length - 45 and pycor <= 3][set pcolor white] ;停 止區 第 44~51 公尺 共 7 公尺-縱向

ask patches with[pycor = 0 and pxcor >= 5 and pxcor <= 49 + road-length - 45][set pcolor red] ;最外側邊界(紅線)-橫向

ask patches with[pycor = 8 and pxcor >= 5 and pxcor <= 49 + road-length - 45][set pcolor yellow] ;最內側邊界(黃線)-橫向

ask patches with[pycor = 4 and pxcor >= 5 + road-length - 45 and pxcor <= 8 + road-length - 45][set pcolor white] ;line2 = 4.01-橫向

ask patches with[pycor = 4 and pxcor >= 15 + road-length - 45 and pxcor <= 18 + road-length - 45][set pcolor white] ;line4 = 3.96-橫向

ask patches with[pycor = 4 and pxcor >= 25 + road-length - 45 and pxcor <= 28 +

road-length - 45][set pcolor white] ;line6 = 3.98-橫向

ask patches with[pycor = 4 and pxcor >= 35 + road-length - 45 and pxcor <= 49 + road-length - 45][set pcolor white] ;line8+9 = 15.13-橫向

end

;***特定變數初始化***

to setup-vary set x 0 set y 0

set try-times 0 set v-stops 0 set s-stops 0 set v-delay 0 set s-delay 0 end

;;;;;;;;;;;;;;車隊產生子程式;;;;;;;;;;;;;;

;***產生車道 1 之車隊***

to crs-lane1-queue

create-scooters lane1-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 1

hatch 1 [

setxy 48 1

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters ]

end

;***產生車道 2 之車隊***

to crs-lane2-queue

create-scooters lane2-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 2

hatch 1 [

setxy 48 2

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters ]

end

;***產生車道 3 之車隊***

to crs-lane3-queue

create-scooters lane3-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 3

hatch 1 [

setxy 48 3

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters

] end

;***產生車道 4 之車隊***

to crs-lane4-queue

create-scooters lane4-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 4

hatch 1 [

setxy 48 4

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters ]

end

;***產生車道 5 之車隊***

to crs-lane5-queue

create-scooters lane5-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 5

hatch 1 [

setxy 48 5

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ]

]

separate-scooters ]

end

;***產生車道 6 之車隊***

to crs-lane6-queue

create-scooters lane6-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 6

hatch 1 [

setxy 48 6

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters ]

end

;***產生車道 7 之車隊***

to crs-lane7-queue

create-scooters lane7-queue;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? true set change? 0

set move-type 1;設定為主車頭 setxy 49 7

hatch 1 [

setxy 48 7

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-scooters ]

end

;***產生車道 23 之汽車車隊***

to crv-lane23-queue

create-vehicles lane23-queue;產生一輛汽車 [

set heading 90;面向右邊 set color 95 + random 5 set already-stop? true

set move-type 1;設定為主車頭 setxy 49 2

hatch 1 [

setxy 49 3

set move-type 2;設定為副車頭

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 48 3

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 47 3

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 46 3

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 45 3

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 48 2

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 47 2

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 46 2

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 45 2

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

separate-vehicles ]

end

;***產生車道 67 之汽車車隊***

to crv-lane567-queue if lane567-queue != 0

[

create-vehicles 1;產生一輛汽車 [

set heading 90;面向右邊 set color 95 + random 5 set already-stop? true

set move-type 1;設定為主車頭 set site (5 + random 2)

setxy 49 (site) hatch 1 [

setxy 49 (site + 1)

set move-type 2;設定為副車頭

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 48 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 47 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 46 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 45 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ]

] hatch 1 [

setxy 48 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 47 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 46 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 45 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

]

create-vehicles (lane567-queue - 1);產生一輛汽車 [

set heading 90;面向右邊 set color 95 + random 5 set already-stop? true

set move-type 1;設定為主車頭 set site (5 + random 2)

setxy 44 (site) hatch 1 [

setxy 44 (site + 1)

set move-type 2;設定為副車頭

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 43 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 42 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 41 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 40 (site + 1)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 43 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 42 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 41 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

hatch 1 [

setxy 40 (site)

set move-type 3;設定為車體

create-link-with myself [ tie hide-link ] ]

] ] end

;***避免機車重疊***

to separate-scooters if any? other scooters-here [ back 2

separate-scooters ] end

;***避免汽車重疊***

to separate-vehicles if any? other vehicles-here [ back 5

separate-vehicles ] end

;;;;;;;;;;;;;;車輛產生&屬性設計區;;;;;;;;;;;;;;

;;;;;;產生汽車判斷式;;;;;V1 to produce-vehicle

if VAG = VAG0 [

crv;產生汽車並輸入屬性 set x x + 1;汽車數累計

v-start;產生汽車到達間隔時間

produce-vehicle;重複本程式(可能有同時間到達之汽車)

] end

;;;;;;產生機車判斷式;;;;;S1 to produce-scooter

if SAG = SAG0 [

crs;產生機車並輸入屬性 set y y + 1;機車數累計

s-start;產生機車到達間隔時間

produce-scooter;重複本程式(可能有同時間到達之機車) ]

end

;***輸入汽車屬性***V2 to crv

create-vehicles 1;產生一輛汽車 [

set heading 90;面向右邊 set color 95 + random 5 set already-stop? false

set move-type 1;設定為主車頭 set car-ahead 45;離停止線 45 公尺 set need-stop 45;離停止線 45 公尺 v-produce-position;產生汽車位置 v-produce-speed;產生汽車初速率 produce-v-body;;產生汽車車體 ]

end

;***輸入機車屬性***S2 to crs

create-scooters 1;產生一輛機車 [

set heading 90;面向右邊 set color one-of[red green blue]

set shape "arrow"

set already-stop? false

set change? 0

set move-type 1;設定為主車頭 set car-ahead 45;離停止線 45 公尺 set need-stop 45;離停止線 45 公尺 s-produce-position;產生機車位置 s-produce-speed;產生機車初速率 produce-s-body;產生機車車體 ]

end

;***產生汽車到達間隔***V2 to v-start

set VAG0 0;使汽車累積到達間隔時間歸零

set VAG (precision((random-exponential vehicle-mean) * times) 0) set VAG-MAX (precision (39.1 * times) 0) set VAG-MIN (precision (1.7 * times) 0);汽車到達間隔 時間分配

;if VAG < VAG-MIN [set VAG VAG-MIN] if VAG > VAG-MAX [set VAG VAG-MAX];最大最小到達間隔時間限制 10.1

end

;***產生機車到達間隔***S2 to s-start

set SAG0 0;使機車累積到達間隔時間歸零

set SAG (precision ((random-gamma scooter-alpha 0.33) * times) 0) set SAG-MAX (precision (21.4 * times) 0) set SAG-MIN 0 ;機車到達間隔時間分配

;if SAG < SAG-MIN [set SAG SAG-MIN] if SAG > SAG-MAX [set SAG SAG-MAX];最大最小到達間隔時間限制 0.96

end

;***產生汽車位置***V3 to v-produce-position let U1 random 100

ifelse U1 < 25 [set site 2];第 2~3 車道 4 [ifelse U1 < 40 [set site 3];第 3~4 車道 9 [ifelse U1 < 70 [set site 5];第 5~6 車道 49 [set site 6];第 6~7 車道

]

在文檔中 中 華 大 學 (頁 84-111)

相關文件