Cài đặt hệ thống mô phỏng 34

Một phần của tài liệu LUẬN VĂN: XÂY DỰNG VÀ ĐÁNH GIÁ MỘT HỆ THỐNG MÔ PHỎNG GIAO THÔNG VIỆT NAM docx (Trang 43 - 59)

Từ những thiết kế về các thành phần của hệ thống và các giải thuật được sử dụng, chúng tôi đã cài đặt hệ thống bằng ngôn ngữ C++. Để tiện lợi trong việc phát triển và mở

35

rộng, chúng tôi đã chia phần cài đặt của hệ thống thành các gói có các chức năng riêng biệt bao gồm:

- Gói sim: Chứa các module cài đặt các lớp của hệ thống mô phỏng giao thông bao gồm cảđường xá lẫn xe cộ.

- Gói renderer: Chứa các module cài đặt chức năng hiển thị toàn bộ hệ thống mô phỏng.

- Gói util: Chứa các module hỗ trợ.

- Gói builtin: Chứa các module cài đặt các loại đường dựng sẵn. - Gói program: Chứa các module cài đặt chương trình chạy.

Gói sim

Gói này chứa các module cài đặt các lớp của hệ thống mô phỏng giao thông. Gói này gồm rất nhiều lớp phục vụ cho việc mô phỏng giao thông, trong đó có các lớp quan trọng sau:

• Lớp Gate: Gồm gate.h và gate.cpp, chứa phần mô tả và cài đặt các lối vào, lối ra trong các vùng đường.

• Lớp Road: Gồm road.h và road.cpp,mô tả và cài đặt của thành phần đoạn đường.

• Lớp Area: Gồm area.h và area.cpp, mô tả và cài đặt thành phần vùng đường.

• Lớp DriverAttributes: Gồm Driver.h và Driver.cpp, mô tả và cài đặt các thuộc tính và phương thức liên quan đến đặc tính của agent tham gia giao thông.

• Lớp Vehicle: Gồm vehicle.h và vehicle.cpp chứa phần mô tả và cài đặt của xe cộ, chính là agent đóng vai trò người tham gia giao thông.

• Lớp TrafficSimulator: Gồm trafficsimulator.h, trafficsimulator.cpp

và trafficsimulator_win32.cpp, chứa phần mô tả và cài đặt của toàn bộ hệ thống mô phỏng. Tệp trafficsimulator_win32.cpp chứa phần cài đặt của các phương thức phụ thuộc vào hệđiều hành Windows, chẳng hạn như thread.

Gói renderer

Gói này chứa các module cài đặt cho việc hiển thị toàn bộ hệ thống mô phỏng bao gồm hiển thị đường xá, hiển thị các xe đang đi lại và hiển thị một số thông tin khác. Chúng tôi đã sử dụng thư viện OpenGL để cài đặt các công việc hiển thị này. Lớp quan

36

trọng của gói này gồm có AreaRenderer và Renderer lần lượt thực hiện việc hiển thị một vùng đường nào đó và hiển thị toàn bộ hệ thống đường xá cùng các xe đi lại.

Gói util

Gói này chứa phần cài đặt các lớp hỗ trợ bao gồm:

• Point2D: Gồm point2d.h và point2d.cpp chứa phần mô tả một điểm trong không gian 2 chiều và phần cài đặt các phép toán với điểm như tịnh tiến, quay,…

• Vector2D: Gồm vector2d.h và vector2d.cpp chứa phần mô tả một vector 2 chiều và phần cài đặt các phép toán như tích vô hướng, tính góc giữa 2 vector, …

Gói builtin

Gói này chứa một số loại vùng đường dựng sẵn như các đoạn đường thẳng, các đoạn đường có lối rẽ, ngã tư, ngã tư có vòng xuyến,.... Ta có thể ghép các vùng đường này với nhau để tạo ra nhiều hệ thống giao thông đa dạng, phức tạp như trên thực tế.

Gói program

Chứa các module cài đặt chương trình mô phỏng, bao gồm các tệp tin VTSMain.h,

VTSMain.cpp và VTSMain_win32.cpp chứa các khai báo và thực thi các thành phần chính của chương trình. Tệp VTSMain_win32.cpp chứa các thủ tục thực thi chương trình chạy trên nền Windows.

3.5. Giới thiệu chương trình mô phỏng

Chương trình được chúng tôi lập trình để chạy trên hệđiều hành Windows. Chương trình rất dễ sử dụng do sử dụng Tiếng Việt và có thể chạy trực tiếp, không cần cài đặt. (adsbygoogle = window.adsbygoogle || []).push({});

Chương trình có hai chế độ gồm chế độ thiết kế và chế độ mô phỏng. Chế độ thiết kế cho phép người sử dụng thiết kế các hệ thống đường xá và chếđộ mô phỏng cho phép người sử dụng quan sát sự di chuyển các xe trên hệ thống đường xá mà họ đã thiết kế, đồng thời cung cấp một số thông tin thống kê như số xe qua lại, thời gian di chuyển trung bình của các xe, ..vv.

3.5.1. Chếđộ thiết kế

Hình 3-16 mô tả giao diện chương trình trong chế độ thiết kế. Bảng bên trái chứa một số tùy chọn và công cụ hỗ trợ cho việc thiết kế. Vùng bên phải là vùng hiển thị hệ

37

thống các thành phần của hệ thống đường xá. Người sử dụng có thể di chuyển, phóng to và thu nhỏ khung nhìn. Khung nhìn được vẽ với ô lưới nhằm giúp người sử dụng dễ dàng hình dung các kích thước (thông tin về kích thước của ô lưới nằm phía dưới bên trái).

Khi người sử dụng ấn chuột vào một đường nào đó, đường đó sẽ được coi là được chọn. Người sử dụng có thể di chuyển đường được chọn bằng chuột. Để quay đường được chọn, người dùng sử dụng cần ấn nút .

Hình 3-16: Giao diện chương trình ở chếđộ thiết kế

Mỗi đường thực chất là một Vùng đường mà chúng tôi đã mô tả trong thiết kế của hệ thống. Các lối vào và các lối ra của đường sẽ được thể hiện bằng các đoạn thẳng màu xanh và màu đỏ tương ứng. Các đường có thể được sắp xếp và và ghép lại với nhau một

38

cách tùy ý. Một lối vào của một vùng đường sẽ ghép được với bất cứ lối ra nào của một vùng khác nếu chúng “khớp” nhau. Hình 3-17 minh họa việc ghép hai vùng đường với nhau, sự biến mất của các đoạn thẳng màu xanh và màu đỏ chỗ “mối ghép” thể hiện việc ghép nối đã thành công.

Hình 3-17: Ghép các vùng đường với nhau để tạo thành hệ thống đường xá tùy ý

Chương trình cung cấp một số thành phần đường cơ bản dựng sẵn nhằm giúp người sử dụng có thể thiết kế các hệ thống giao thông phức tạp một cách dễ dàng. Để có thể thêm các thành phần đường này vào cửa sổ hiển thị, người dùng cần ấn nút

để mở một hộp thoại lựa chọn các thành phần đường cần thêm.

39

Hình 3-18 mô tả hộp thoại chứa danh sách các thành phần đường dựng sẵn. Cửa sổ bên phải hiển thị hình dạng của đường và các kích thước của đường. Người sử dụng có thể ấn chuột vào các con số để điều chỉnh theo ý muốn. Từ các thành phần có sẵn này, người dùng có thể thiết kếđược nhiều hệ thống đường xá phong phú giống với thực tế.

Sau khi hoàn thành công việc thiết kế, người sử dụng có thể tùy chọn số người tham gia giao thông bằng cách ấn vào nút để mở một hộp thoại tùy chọn. Có ba lứa tuổi tham gia giao thông là thanh niên, người trung tuổi và người già. Còn với giới tính, chương trình được cài đặt mặc định là số nam và số nữ giới bằng nhau.

Hình 3-19: Hộp thoại tùy chọn số người tham gia giao thông

Ngoài tùy chọn về số người tham gia giao thông, người dùng còn có thể thiết đặt các thuộc tính của người tham gia giao thông bằng cách ấn vào nút . Đây có thể coi là chức năng làm tăng sự linh động của chương trình.

40

Sau khi hoàn tất tất cả các công việc thiết kế và tùy chọn, người sử dụng cần ấn vào nút để thực hiện quá trình mô phỏng.

3.5.2. Chếđộ mô phng

Khi chương trình chạy ở chếđộ mô phỏng, vùng cửa sổ bên phải sẽ hiển thị các hệ thống đường đã được thiết kế cùng các xe di chuyển trên hệ thống đường này. Các xe sẽ bắt đầu di chuyển tại một lối vào của hệ thống đường xá và sẽ kết thúc chuyến đi của mình ở một lối ra nào đó. Trong quá trình di chuyển đến đích, các xe cần phải tránh các xe khác và không được va vào lềđường.

Hình 3-21: Giao diện chương trình ở chếđộ mô phỏng

Bảng bên trái cung cấp một số chức năng điều khiển như điều chỉnh tốc độ, tạm dừng và hiển thị các thông tin thống kê. Bên cạnh việc quan sát sự di chuyển của các xe,

41

nhờ các thông tin thống kê mà người sử dụng có thể có một cái nhìn trực quan hơn về quá trình mô phỏng. Các thông tin thống kê quan trọng bao gồm:

- Thời gian: Quãng thời gian đã trôi qua của quá trình mô phỏng

- Số xe vềđích: Là lượng xe đã kết thúc chuyến đi từ một lối vào đến lối ra hệ thống - Thời gian đi trung bình: Thời gian di chuyển trung bình của tất cả các xe đã về

đích

Trên đây, chúng tôi đã giới thiệu sơ lược về chương trình mô phỏng giao thông mà chúng tôi đã xây dựng. Ở phần tiếp theo, chúng tôi sẽ trình bầy một số thử nghiệm nhằm đưa ra một sốđánh giá về chương trình mô phỏng này. (adsbygoogle = window.adsbygoogle || []).push({});

3.6. Một số thử nghiệm và nhận xét

Để thử nghiệm, chúng tôi sẽ thực hiện một số quá trình mô phỏng và lấy một kết quả của quá trình này. Việc mô phỏng sẽđược thực hiện trên hệ thống là một ngã tư có bùng binh như trong hình 3-22.

42

Kích thước của vùng giữa ngã tư là 24m x 24m và của 8 đoạn đường thẳng xung quanh là 8m x 16m, tức là chiều rộng là 8m và chiều dài là 16m.

Các thử nghiệm mô phỏng sẽđược thực hiện với sự thay đổi về số người tham gia thông, trong đó có sự thay đổi về số thanh niên, số người già và số người trung tuổi. Để thực hiện các thử nghiệm này chúng tôi đã cài đặt sẵn một số thuộc tính đặc trưng của người lái phụ thuộc vào lứa tuổi và giới tính. Bảng 3-1 mô tả các thuộc tính của những người có tuổi tác và giới tính giới tính khác nhau. Tất nhiên, người sử dụng hoàn toàn có thể thay đổi các giá trị này nhưđã giới thiệu ở phần 3.5.1.

Thanh niên Người trung tuổi Người già

Nam Tốc độ tối đa: 50 km/h Tốc độ an toàn: 35 km/h Tăng tốc: 18 km/h/s Thời gian dự tính: 650 ms Tốc độ tối đa: 45 km/h Tốc độ an toàn: 31 km/h Tăng tốc: 16 km/h/s Thời gian dự tính: 800 ms Tốc độ tối đa: 40 km/h Tốc độ an toàn: 25 km/h Tăng tốc: 13 km/h/s Thời gian dự tính: 800 ms Nữ Tốc độ tối đa: 45 km/h Tốc độ an toàn: 32 km/h Tăng tốc: 15 km/h/s Thời gian dự tính: 650 ms Tốc độ tối đa: 43 km/h Tốc độ an toàn: 28 km/h Tăng tốc: 13 km/h/s Thời gian dự tính: 800 ms Tốc độ tối đa: 37 km/h Tốc độ an toàn: 22 km/h Tăng tốc: 10 km/h/s Thời gian dự tính: 800 ms

Bảng 3-1: Thuộc tính của các người lái

3.6.1. Mt s th nghim

Chúng tôi sẽ lần lượt trình bầy 4 thử nghiệm với các thay đổi về số người tham gia giao thông:

- Thử nghiệm với 80 người - Thử nghiệm với 120 người - Thử nghiệm với 160 người

43

3.6.1.1. Thử nghiệm mô phỏng với 80 người Số thanh niên Số người trung tuổi Số người già Thời gian kiểm tra Số người vềđích Thời gian di chuyển trung bình 80 0 0 120s 1104 8.3s 0 80 0 120s 982 9.5s 0 0 80 120s 844 10.5s 35 25 20 120s 987 9.3s

Bảng 3-2: Thử nghiệm mô phỏng với 80 người

44

3.6.1.2. Thử nghiệm mô phỏng với 120 người Số thanh niên Số người trung tuổi Số người già Thời gian kiểm tra Số người vềđích Thời gian di chuyển trung bình 120 0 0 120s 985 13.5s 0 120 0 120s 862 14.6s 0 0 120 120s 826 15.7s 55 40 25 120s 916 14.5s

Bảng 3-3: Thử nghiệm mô phỏng với 120 người

45

3.6.1.3. Thử nghiệm mô phỏng với 160 người Số thanh niên Số người trung tuổi Số người già Thời gian kiểm tra Số người vềđích Thời gian di chuyển trung bình 160 0 0 120s 800 20.2s 0 160 0 120s 670 24.0s 0 0 160 120s 675 24.2s 80 50 30 120s 742 22.3s

Bảng 3-4: Thử nghiệm mô phỏng với 160 người

46

3.6.2. Nhn xét các th nghim

Qua các thử nghiệm mô phỏng ta thấy, số lượng người tham gia giao thông khác nhau sẽ dẫn đến các kết quả khác nhau. Số lượng người di chuyển càng đông, việc di chuyển càng khó khăn và dẫn đến làm tăng thời gian di chuyển của các xe. Điều này thể hiện ở thông số thời gian di chuyển trung bình của các xe đã vềđích.

Với cùng một lượng người tham gia giao thông, nhưng tỉ lệ khác nhau về lứa tuổi của những người di chuyển khác nhau cũng dẫn đến những kết khác nhau. Do khả năng tăng tốc nhanh, những người thanh niên thường nhanh chóng tạo ra khoảng trống ở phía sau khi ra khỏi vùng đông người, nên làm sự lưu thông có phần nào tốt hơn.

47

CHƯƠNG 4. TNG KT

4.1. Kết luận

Từ sự tìm hiểu về các hệ thống mô phỏng giao thông đã được phát triển trước đây và phương pháp mô phỏng dựa trên agent, cũng như sự tìm hiểu về giao thông Việt Nam, chúng tôi đã nghiên cứu và xây dựng một hệ thống mô phỏng phù hợp với tình hình giao thông của nước ta. Đây là hệ thống mô phỏng mang tính vi mô, giúp mô phỏng một cách chi tiết sự di chuyển sự di chuyển của các phương tiện tham gia giao thông.

Chúng tôi đã thiết kế những thành phần cơ bản của hệ thống đường xá, giúp tạo ra nhiều hệ thống đa dạng, phong phú, phức tạp giống với thực tế. Hơn nữa, các agent đóng vai trò người tham giao thông đã được xây dựng chi tiết với các thuộc tính đặc trưng phụ thuộc vào từng lứa tuổi, giới tính. Các thuộc tính này sẽảnh hưởng tới cách di chuyển của các phương tiện qua đó sẽ làm cho việc mô phỏng được chận thực. Người sử dụng hoàn toàn có thể tùy biến các thuộc tính sao cho sự di chuyển của các xe phù hợp với thực tế.

Việc sử dụng thư viện đồ họa OpenGL cho phần hiển thị và cài đặt các giải thuật tính toán tỉ mỉ sự di chuyển các phương tiện đã giúp cho việc di chuyển của các phương tiện rất mượt mà, đồng thời cung cấp một số thông tin thống kê trong quá trình mô phỏng qua đó cung cấp một cái nhìn trực quan về các giải pháp phát triển giao thông. (adsbygoogle = window.adsbygoogle || []).push({});

Chúng tôi đã cố gắng mô tả hệ thống một cách rõ ràng từ thiết kế các thành phần, mối liên hệ giữa các thành phần đến các giải thuật được sử dụng, hơn nữa các module cài đặt được phân chia vào các gói một cách có hệ thống nên hệ thống mô phỏng giao thông này có thể dễ dàng được nâng cấp và phát triển.

4.2. Hướng phát triển và mở rộng

Hệ thống đã được nghiên cứu và xây dựng ở mức độ vi mô nhằm mô phỏng một cách chi tiết giao thông của Việt Nam. Tuy nhiên rất khó có thể áp dụng ngay vào thực tế do hệ thống còn thiếu một số chức năng quan trọng:

• Thứ nhất, đó là hệ thống mới chỉ mô phỏng sự di chuyển của phương tiện là xe máy. Hiện nay ở nước ta, có nhiều loại phương tiện giao thông khác nhau như xe đạp, xe máy, ô tô, xe buýt, … nên việc mô phỏng sự di chuyển của nhiều loại phương tiện

48

khác nhau là rất cần thiết. Do đó, một trong những hướng phát triển là hệ thống cần bổ sung các loại agent đóng vai trò nhiều loại phương tiện khác nhau.

• Thứ hai, một trong những thành phần quan trọng của hệ thống giao thông chính là đèn giao thông và các tín hiệu giao thông. Chính vì vậy, việc bổ sung các thành phần đèn giao thông, các tín hiệu giao thông cũng như việc mô phỏng sự chấp hành các tín hiệu này của các agent tham gia giao thông cũng là hướng phát triển của hệ thống.

Một phần của tài liệu LUẬN VĂN: XÂY DỰNG VÀ ĐÁNH GIÁ MỘT HỆ THỐNG MÔ PHỎNG GIAO THÔNG VIỆT NAM docx (Trang 43 - 59)