Trong luận văn này, tác giả thực hiện mô phỏng thuật toán đèn giao thông ảo tại giao lộ Nguyễn Thi Minh Khai-Nam Kỳ Khởi nghĩa. Dữ liệu bản đồ số được import từ OpenStreetMap như trong hình 5.6 với định dạng tập tin là .osm
Hình 5.6: Bản đồ khu vực giao lộ Nguyễn Thị Minh Khai-Nam Kỳ Khởi Nghĩa Sau quá trình này, tập tin .osm từ OpenStreeMap được chuyển đổi dưới dạng XML thông qua module Netconvert, câu lệnh như sau:
Với thông tin dữ liệu đường, giao lộ, đèn giao thông từ tập tin .net.xml , module randomTrip.py sẽ tạo số lượt xe có điểm xuất phát và điểm kết thúc ngẫu nhiên với các đối số truyền vào
• -b : thời gian bắt đầu, mặc định là 0.
• -e: thời gian kết thúc, mặc định là 3600
$netconvert –osm map.osm –o map.net.xml
• -p: mật độ xuất hiện xem trong 1 giây (mặc định là 1) Cú pháp:
Ý nghĩa câu lệnh trên là cứ 0.5 giây sẽ tạo một xe ở một địa điểm bất kì trong bản đồ số, thời gian tạo xe từ lúc 0 giây đến 50 giây.
Với thông tin từ file .net.xml và file .trips.trips.xml module duarouter.py sẽ tạo lộ trình di chuyển từ điểm xuất phát đến điểm kết thúc, cú pháp như sau:
• Các thông số trong mô hình mô phỏng:
- Vị trí: giao lộ Nguyễn Thị Minh Khai – Nam Kỳ Khởi Nghĩa - Số làn đường mỗi tuyến: 2 làn đường một chiều
- Chiều dài mỗi tuyến : 300m - Vận tốc cao nhất: 40 km/h
- Thời gian đèn giao thông: 27 giây đèn xanh, 3 giây đèn vàng, 30 giây đèn đỏ.
- Thời gian chạy mô phỏng : 1 giờ
• Kịch bản mô phỏng
Các xe xuất phát từ mỗi tuyến đường một cách ngẫu nhiên hướng đến giao lộ hình 5.7.
Tại giao lộ được cài đặt thuật toán đèn giao thông ảo VTL. Thực hiện chạy mô phỏng trên OMNeT++ để xác định thời gian trung bình một xe vượt qua giao lộ và so sánh với trường hợp không cài thuật toán VTL.Sau đó tăng mật độ xe xuất hiện tại giao lộ và thực hiện so sánh thời gian trung bình một xe vượt qua giao lộ khi có cài đặt thuật toán VTL và khi không cài thuật toán VTL tại giao lộ.
• Giải thuật thực hiện trên OMNeT++
./randomTrips.py –n input_net.net.xml –e 50 –p 0.5 –o trips.trips.xml
./ duarouter -n net.net.xml –t trips.trips.xml -o routes.rou.xml --ignore-errors
Hình 5.7: mô hình thực hiện mô phỏng thuật toán VTL
Leader=””
𝑑𝑑1<𝑑𝑑2<𝑅𝑅2
Leader = leader1 TL=red-green 𝑇𝑇𝑡𝑡𝑡𝑡=currentime
𝑑𝑑2 > 𝑅𝑅2 𝑑𝑑1<𝑅𝑅2
Leader = leader2 TL=green-red 𝑇𝑇𝑡𝑡𝑡𝑡=currentime
TL=green-red TL=red-green
true
𝑇𝑇𝑛𝑛 − 𝑇𝑇𝑡𝑡𝑡𝑡>27s false
𝐿𝐿𝑡𝑡=lane1
Trafficlight=red-yellow Trafficlight=yellow-red
𝑑𝑑2<𝑅𝑅2
𝑑𝑑1là kc leader lane1 đến giao lộ 𝑑𝑑2là kc leader lane2 đến giao lộ 𝐿𝐿𝑡𝑡 là lane mà leader đang chạy
𝑇𝑇𝑡𝑡𝑡𝑡 thời điểm thay đổi chu kì đèn giao thông 𝑇𝑇𝑛𝑛 là thời điểm hiện tại
TL là đèn giao thong tương ứng lane1-lane2
Leader = “”
Leader = leader2 Trafficlight=green-red
𝑑𝑑1< 𝑅𝑅2 Leader = “”
Leader = leader1 Trafficlight=red-green
𝐿𝐿𝑡𝑡=lane2
𝐿𝐿𝑡𝑡=lane1
𝑇𝑇𝑛𝑛− 𝑇𝑇𝑡𝑡𝑡𝑡>30s
𝑑𝑑1≤ 𝑅𝑅1
𝑑𝑑2> 𝑅𝑅2 𝑑𝑑2≤ 𝑅𝑅1
𝑑𝑑1> 𝑅𝑅2 𝑑𝑑1≤ 𝑅𝑅2
𝑑𝑑1> 𝑅𝑅1 TL=yellow-red
TL=green-red TL= red-green TL=red-yellow
true
false
true
true true true
𝑑𝑑1<𝑑𝑑2<𝑅𝑅2
𝑑𝑑2> 𝑅𝑅2 𝑑𝑑1<𝑅𝑅2
false false
false
true false
true
𝑑𝑑2> 𝑅𝑅1
𝑑𝑑2≤ 𝑅𝑅2 𝑑𝑑2≤ 𝑅𝑅1 𝑑𝑑1≤ 𝑅𝑅1
TL=red-green true
TL=green-red true false
false true
false
true true true true
false false false
true
false false
true
true false
Start
Hình 5.8 Chương trình giải thuật thực hiện trên OMNeT++
• Kết quả mô phỏng
Hình 5.9 Kết quả mô phỏng giải thuật VTL và không có VTL Kết luận:
Khi lưu lượng xe thấp và trung bình, giải thuật VTL giúp cải thiện lưu lượng giao thông một cách rõ rệt. Nhưng khi lưu lượng xe cao thì thuật toán VTL hoạt động không khác gì đèn giao thông truyền thống, nguyên nhân là do luôn có xe trong vòng LOA (trong bán kính R2) của cả hai tuyến nên thuật toán VTL luân phiên thay đổi trạng thái xanh vàng đỏ như đèn giao thông truyền thống. Tuy nhiên, giải thuật thể hiện được sự linh động bằng việc tự tổ chức khi vượt qua giao lộ và không cần phải triển khai đèn giao thông truyền thống.
43.21 43.75 44.17 46.75
46.78
34.99 38.52
42.19
46.27 47.63
- 10.00 20.00 30.00 40.00 50.00 60.00
921 1362 1739 2241 2520
VTL no VTL
Thờigian trung bình một xe
Số lượng xe trong 1 giờ