2.4.1. Dòng sự kiện đầu vào
Trong thực tế chúng ta thường cần mô phỏng các hệ thống trong đó có dòng các sự kiện đầu vào. Ví dụ: Dòng khách hàng chở quầy tính tiền của siêu thị, dòng các sản phẩm đi đến gia công ở các máy công cụ, dòng tàu biển chở vào bến cảng, dòng ô tô đến trạm sửa chữa ... Những sự kiện đầu vào như vậy là những sự kiện gián đoạn, thời gian xuất hiện và khoảng cách giữa các sự kiện mang tính ngẫu nhiên. Trong nhiều trường hợp ta gọi các sự kiện đầu vào là các khách hàng.
2.4.2 Thời gian phục vụ
Khi có khách hàng đến, hệ thống sẽ phục vụ khách hàng, thời gian phục vụ cũng là một đại lượng ngẫu nhiên tuỳ thuộc vào đặc điểmcủa khách hàng. Ví dụ, tuỳ theo khách hàng mua nhiều hay ít hàng mà thời gian tính tiền dài hay ngắn, tuỳ theo ô tô hang nhiều hay ít mà thời gian sửa chữa taih trạm sửa chữa dài hày ngắn.
Trong trường hợp khách hàng đến mà hệ thống đang bận phục vụ khách hàng đến trước đó thìkhách hàng mới sẽ sắp hàng để chờ đến lượt mình. Như vậy sẽ xuất hiện hàng đợi trước điểm phục vụ. Hệ thống như vậy thường gọi là hệ thống hàng đợi.
2.4.3 Dòng sự kiện đầu vào Poatxông (Poisson Arrivals)
Trong trường hợp chung, dòng sự kiện đầu vào là dòng sự kiện ngẫu nhiên phức tạp. Tuy nhiên trong thực tế có nhiều dòng sự kiện có thể quy về dòng có các tính chất sau:
- Tính chất xảy ra các sự kiện trong suốt quãng thời gian khảo sát đều như nhau - đó là dòng dừng.
- Các sự kiện xảy ra độc lập với nhau - đó là tính chất không hiệu quả.
- Tại mỗi thời điểm chỉ có một sự kiện xảy ra - đó là tính chất sự kiện đơn. Một dòng sự kiện có ba tính chất nêu trên được định nghĩa là dòng tối giản hay còn gọi là dòng Poatxông. chú ý rằng nếu một dòng sự kiện là một
34
dòng tối giản, thì khoảng cách giữa các sự kiện sẽ tuân theo luật phân phối mũ. Gọi λ - cường độ xuất hiện có nghĩa là số sự kiện xảy ra trên cùng một đơn vị thời gian. Vậy hàm mật độ xác suất của quãng thời gian giữa các sự kiện sẽ là:
( )
Và hàm phân bố xác suất là: ( )
Như vậy, khoảng cách giữa các sự kiện của dòng đầu sẽ tuân theo luật phân phối mũ.
Có thể lựa chọn các luật phân phối mũ khác nhau như phân bố Gamma, phân bố Weibull. Tuy nhiên phân phối Poatxông và phân phối mũ là hai loại phân phối có công thức tương đối đơn giản mà trong thực tế phù hợp với dòng đầu vào của nhiều hệ thống sản xuất. Vì vậy hai loại phân phối mũ nêu trên thường được dùng trongmô phỏng các sự kiện gián đoạn trong các hệ thống sản xuất.
2.5. Thiết kế và phân tích thực nghiệm mô phỏng
Sau khi đã xây dựng mô hình mô phỏng và kiểm tra thấy mô hình làm việc tốt chúng ta chuyển sang bước thiết kế thực nghiệm mô phỏng. Thiết kế thực hiện mô phỏng là xác định những điều kiện để thực hiện mô phỏng như điều kiện khởi động và ngừng mô phỏng, thời gian chạy mô phỏng ... , chúng ta cũng phải thiết kế các kịch bản mô phỏng và xác định số lần chạy mô phỏng cho mỗi kịch bản. Thiết kế thực nghiệm mô phỏng có vai trò quan trọng vì nó ảnh hưởng trực tiếp đến kết quả mô phỏng. Nếu thực nghiệm mô hình không hợp lý, không tối ưu thì dữ liệu đầu ra của mô phỏng rất có thể rất nhiều nhưng chúng ta không thu được các kết quả mong muốn.
2.6. Số lần chạy mô phỏng và chiều dài mô phỏng
Như đã trình bày ở các phần trên, trong mô hình mô phỏng có các yếu tố ngẫu nhiên, nên mỗi lần chạy mô phỏng chỉ cho ta một bộ thông số ứng với một điều kiện nhất định. Vì vậy, muốn chạy mô phỏng nhiều lần với chiều dài lớn, tuy nhiên trong thực tế do hạn chế về thời gian, về khả năng tính toán nên số lần chạy mô phỏng không thể lớn được. Nên chạy mô phỏng một số ít lần với chiều
35
dài mô phỏng lớn tốt hơn là chạy nhiều lần với chiều dài mô phỏng ngắn. Bởi vì mỗi lần chạy mô phỏng phải tốn thời gian nạp điều kiện đầu, vả lại nếu chiều dài mô phỏng ngắn không đủ mô tả dáng điệu của hệ thống. Thông thường số lần chạy mô phỏng nằm trong khoảng 10-30 lần tuỳ thuộc mức độ phức tạp của hệ thống mô phỏng.
Như chúng ta đều biết mối một bước mô phỏng chỉ cho ta một bộ giá trị các thông số ứng với điều kiện nhất định. Muốn có giá trị trung bình theo xác suất (kỳ vọng toán) của các thông số mô hình thì số bước mô phỏng phải đủ lớn, tức chiều dài mô phỏng phải đủ dài. Theo kinh nghiệm chiều dài mô phỏng thì khoảng hàng ngàn bước tính.
Tuỳ thuộc vào mục đích mô phỏng, vào đặc điểm của hệ thống được mô phỏng mà chọn chiều dài mô phỏng thích hợp, đảm bảo cho các dữ liệu đầu ra ổn định.
2.7. Điều kiện khởi động (Starting Conditions) và ngừng mô phỏng (Stopping Rules)
a) Điều kiện khởi động tuỳ thuộc vào mục đích mô phỏng. Điều kiện khởi động chung nhất là điều kiện “hệ thống đang còn rỗng” (Empty and idle) có nghĩa là các sự kiện đầu vào chưa xảy ra.
Có thể chọn một trong ba điều kiện sau đây:
- Nếu mục đích của mô hình là phân tích hành vi của hệ thống ở trạng thái ổn định thì trong quá trình mô phỏng phải bỏ qua thời kỳ quá độ, lúc này điều kiện khởi động chỉ tính từ khi hệ thống bắt đầu ổn định.
- Nếu mục đích của mô hình là phân tích hành vi quá độ của hệ thống thì điều kiện khởi động chính là điều kiện đầu của hệ thống.
b) Điều kiện ngừng mô phỏng được xác định bởi một trong các điều kiện sau đây
tuỳ thuộc vào mục đích mô phỏng:
- Khi thời gian mô phỏng (tổng thời gian giữa các sự kiện) đạt tới giá trị xác định. Trong trường hợp này số sự kiện đầu ra sẽ không xác định trước và trạng thái kết thúc của mô hình có thể không phải là trạng thái rỗng.
36
- Trong trường hợp này mô hình sẽ được chạy cho đến khi sự kiện đầu và cuối cùng đi qua và trạng thái kết thúc của mô hình là trạng thái rỗng.
- Số sự kiện đầu ra đạt tới giá trị xác định. Trong trường hợp này trạng thái kết thúc của mô hình có thể không phải là trạng thái rỗng.
- Khi thông số của mô hình đạt tới giá trị xác định. Trong trường hợp này trạng thái kết thúc của mô hình có thể không phải là trạng thái rỗng.
2.8. Cách tạo dòng thời gian mô phỏng
Trong mô hình mô phỏng cần có một biến để biểu thị thời gian đã trôi qua của quá trình mô phỏng. Gọi biến trong mô hình mô phỏng để tạo ra giá trị thời gian mô phỏng là đồng hồ mô phỏng. Tại thời điểm bắt đầu mô phỏng, đồng hồ mô phỏng đặt thời gian t = 0. sau đó đồng hồ mô phỏng ghi nhận dòng thời gian và chỉ ra bao nhiêu đơn vị thời gian đã đi qua trong quá trình mô phỏng. Một đơn vị thời gian trong mô phỏng sẽ tương ứng với bao nhiêu thời gian trong hệ thống thực (giây, phút, giờ, tháng, năm...) là do người lập trình định trước.
Có hai loại thời gian mô phỏng: - Thời gian sự kiện:
Thời gian sự kiện được tính bằng thời gian để sự kiện kế tiếp xảy ra. Như vậy thời gian mô phỏng được tính bằng cách cộng dồn các quãng thời gian giữa các sự kiện xảy ra trong quá trình mô phỏng. Hình 2.5 trình bày cách biểu diễn thời gian sự kiện. Trong đó, A1, A2,… là các sự kiện, t1, t2… là các thời điểm xảy ra sự kiện tương ứng.
Hình 2.3: Cách biểu diễn thời gian sự kiện
Thời gian sự kiện thường được dùng trong mô phỏng các sự kiện gián đoạn. ví dụ mô phỏng hệ hàng đợi, trong đó sự kiện gián đoạn là các khách hàng đến hệ thống để được phục vụ.
37
Mỗi lần chạy mô phỏng đồng hồ mô phỏng được đặt lại giá trị bằng không và bắt đầu tính thời gian mô phỏng cho mỗi lần chạy mô phỏng mới.
- Thời gian cố định:
Trong trường hợp mô phỏng dùng thời gian cố định đồng hồ mô phỏng sẽ tăng lên những quãng thời gian chính xác là Δt . Sau đó sẽ xác định xem trong quãng thời gian Δt có bao nhiêu sự kiện xảy ra, xem là quãng thời gian cần khảo sát ví dụ là hình 2.6.
Hình 2.4: Cách biểu diễn thời gian cố định
Thời gian cố định thường được dùng trong mô phỏng các hệ thống liên tục, các hệ kinh tế xã hội, trong đó Δt là khoảng thòi gian cần khảo sát ví dụ là
một năm kế hoạch, một năm tài chính hay là quãng thời gian cố định nào đó tuỳ thuộc vào mục đích mô phỏng.
2.9. Ứng dụng của mô hình mô phỏng trong dây chuyền sản xuất
Ví dụ về sự hoạt động của một mỏ khai thác quặng. Tại đây, các xe tải đến lấy quặng từ 3 gầu xúc để đến vị trí nghiền quặng. Một xe tải sẽ trở lại vị trí gầu xúc sau khi đổ quặng tại vị trí nghiền. Có 2 loại xe tải được sử dụng: 1 loại 20 tấn và 1 loại 30 tấn. Cỡ của xe tải ảnh hưởng đến thời gian xúc tại vị trí gầu xúc, thời gian đi đến vị trí nghiền, thời gian đổ quặng tại vị trí nghiền và thời gian trở lại của hành trình từ vị trí nghiền về vị trí gầu xúc phù hợp.
Loại xe 20 tấn thời gian lấy quặng, di chuyển, đổ quặng và hành trình trở lại lần lượt là: phân phối theo hàm mũ với giá trị trung bình là 5; hằng số là 2,5; phân phối theo hàm số mũ với giá trị trung bình là 2; hằng số là 1,5. Tương tự thời gian của xe tải 30 tấn là: phân phối theo hàm số mũ với giá trị trung bình là 10; hằng số là 3;phân phối theo hàm số mũ với giá trị trung bình là 4;hằng số là 2
38
Mỗi gầu xúc, xúc được cho 2 xe tải 20 tấn và 1 xe 30 tấn, quá trình xếp hàng ở gầu xúc theo quy tắc vào trước ra trước.
Tại vị trí nghiền quặng, xếp hàng theo cỡ xe tải, cỡ lớn hơn ưu tiên trước. Biểu đồ hoạt động tại mỏ quặng được cho như hình 2.7. Và ở đây cần phân tích hệ thống này 480 phút để xác định việc sử dụng và chiều dài hàng đợi ở các gầu xúc và máy nghiền 1 1 1 2 2 2 3 3 1 3 2 3 Gầu xúc 1 Gầu xúc 2 Gầu xúc 3 Máy nghiền Hành trình tới máy nghiền
Xe tải đang tới máy nghiền
Xếp hàng chờ
máy nghiền Xe tải trở về vị trí gầu xúc phù hợp
Hình 2.5: Sơ đồ hoạt động của mỏ khai thác quặng
Mô hình mạng mô phỏng hoạt động của mỏ khai thác quặng được mô tả dưới đây:
Hình 2.6: Mô hình mạng hoạt động của mỏ khai thác quặng
SVLS SHOVEL=1,3
CRSR
SHOVEL=1,3
EXPON (LOAD) TRAVEL +1 EXPON (UNLOAD)
TRAVEL
39
Chƣơng3
CÁC NGÔN NGỮ MÔ HÌNH MÔ PHỎNG 3.1. Giới thiệu chung về các phần mềm mô phỏng cơ bản
Các loại các ngôn ngữ mô phỏng và môi trường mô phỏng cơ bản như trong bảng dưới đây:
NGÔN NGỮ MÔ PHỎNG
Ngôn ngữ chương trình tổng quát C,C++,FORTRAN, Pascal, Visual Basic Ngôn ngữ mô phỏng tổng quát GPSS,GPSS/H,SIMAN,SLAM,SimPy Ngôn ngữ thiết kế mô hình tổng quát SIMULA,SIMSCRIPT
MÔI TRƢỜNG MÔ PHỎNG
Hoạt cảnh 2-D Arena,Extend,Withness,Awesim,Visim,Isim
Hoạt cảnh 3-D AutoMod,Quest,Arena,Awesim
CHƢƠNG TRÌNH MÔ PHỎNG
Hệ thống sản xuất Factor,Aim
Mạng lưới máy tính MOGUL
Chương trình sửa chữa MEDMODEL
Viễn thông TELECOM NETWORK
Bảng 3.1: Phân loại ngông ngữ mô phỏng và môi trường mô phỏng.
3.1.1. GPSS
GPSS: General Purpose Simulation System (Hệ thống mô phỏng mục đích tổng quát) được viết bởi Gordon năm 1961. “Chương trình mô phỏng GPSS bao gồm một tập hợp các khối và các kết nối giữa chúng.”
Trong GPSS các kiểu khối mang nhiều ý nghĩa khác nhau và bao gồm hàng, khôi phục, bộ lọc,bộ sưu tập dữ liệu,thời gian và nút tính toán. Kiểu dữ
40
liệu trong GPSS thường là nguyên, thực và bảng ghi. Trong một vài trường hợp, nó cũng được sử dụng để hỗ trợ mô hình mô phỏng với phiên bản khác.
3.1.2. SIMAN/ARENA
SIMAN/ARENA tạo bởi Rockwell Automation, Inc.
Là một chương trình mô phỏng các vấn đề trên máy tính một các nhanh chóng và chính xác.Khái niệm của SIMAN sẽ gặpmột chút vấn đề khi sử dụng, nhưng một khi đã nắm vững, nó cung cấp một cơ chế mạnh mẽ cho việc xác định mô phỏng.
SIMAN được sử dụng kết hợp với môi trường ARENA. Để định nghĩa chương trình SIMAN, khối dữ liệu được định nghĩa và kết hợp nhiều cách khác nhau. SIMAN và SLAMII là những ngôn ngữ mô phỏng, có cùng nguồn gốc.
3.1.3. SimPy
PimPy (Simulation in Python) là một chủ đề có định hướng, Simpy là một đối tượng định hướng, quy trình dựa trên ngôn ngữ mô phỏng sự kiện rời rạc và trên tiêu chuẩn Python và phát hành dưới GNU GPL (General Public License)
Trong Simpy, các thành phần được cung cấp để xây dựng mô hình và chia theo 2 loại: thành phần hoạt động và các thành phần thụ động. Các thành phần hoạt động được bao gồm khách hàng, phương tiện, tài nguyên… Các thành phần thụ động bao gồm máy chủ, truy cập kiểm tra, đường truyền… Trong Simpy, biến ngẫu nhiên thường được sử dụng bởi các module Python ngẫu nhiên tiêu chuẩn và nó cũng đã có những ứng dụng lớn.
3.1.4. SIMCRIPT
SIMCRIPT:(H.Markowitz et al, Rand Corporation, 1962).
Là một ngôn ngữ mô phỏng với cả hai tính năng khai báo thủ tục, thiết kế cho các sự kiện rời rạc và rời rạc lai, mô hình liên tục.
Các báo cáo trong ngôn ngữ Simcript cho phép xây dựng và viết các chương trình mô phỏng, mà chúng dễ dàng để nghiên cứu và hiểu được. Trong Simcript thuộc tính được định nghĩa trong nhóm của các quá trình đối
41
tượng. Dữ liệu trong Simcript được phân chia thành 2 loại: dữ liệu cơ bản và dữ liệu hỗn hợp.
Kiểu dữ liệu cơ bản về các loại thuộc tính và các loại biến mã thủ tục bao gồm: nguyên, thực, chuỗi và con trỏ . Kiểu dữ liệu tổng hợp bao gồm: mảng, bảng ghi và danh sách. Tất cả các phần tử dữ liệu trong chương trình Simscript là hệ thống cấp phát bộ nhớ động, nó là hệ thống tự động hoàn toàn.
Simscript thường sử dụng quá trình mô phỏng bởi các sự kiện rời rạc trong khoảng thời gian như nhau.Trong Simscript, nút dữ liệu được hiểu như là nguyên nhân của quá trình đặc biệ và có thể hiểu như là thời gian cơ bản hoặc tương thích để mô phỏng sự kiện.
3.1.5. SIMULA
Simula là một khối cấu trúc ngôn ngữ thủ tục với một số tính năng lập trình hướng đối tượng. Nó là ngôn ngữ đầu tiên cung cấp kiểu dữ liệu trừu tượng. Do vậy nó được công nhận như là một phần tử tìm kiếm, đối tượng định hướng cho máy tính.
Ngôn ngữ Simula là một ngôn ngữ chương trình cao cấp và chức năng đặc biệt. Simula cũng bao gồm kiểu dữ liệu, chuỗi, kiểu kiểm tra, cấu trúc điều khiển cơ bản, dữ liệu đóng kín, dữ liệu kế thừa đơn giản và đặc biệt có ý nghĩa để mô phỏng rời rạc.
3.1.6. SLAMII/AweSim
SLAMII/Awesim (Simulation Language for Alternative Modeling): Là ngôn ngữ mô phỏng cho mô hình thay thế. AweSim là một hệ thống mô phỏng hỗ trợ xây dựng mô hình, phân tích các mô hình sử dụng mô phỏng và trình bày các kết quả mô phỏng. Khả năng bao gồm các hình ảnh động để hình dung sự hoạt động của cơ cấu và điều khiển logic của một mô hình cũng như báo cáo và đồ thị để hiển thị các biện pháp định lượng mô phỏng hiệu suất từ một hoặc nhiều kịch bản.
42
AweSimcho phép xây dựng Visual SLAM các mạng tương tác và đồ họa. Dữ liệu người dùng, cũng như sự kiện rời rạc và các mô hình liên tục, được nhập dưới dạng văn bản.
Visual SLAM tạo ra một báo cáo tổng kết, tính thống kê (cả tiêu chuẩn và người sử dụng yêu cầu) và thu thập đồ họa dữ liệu (ví dụ, biểu đồ và đồ án). Các kết quả này là văn bản các báo cáo, biểu đồ thanh, biểu đồ và các lô cho