Федеральне агентство з освіти
ГОУ ВПО Тольяттинский державний університет
Інститут фінансів, економіки і управління
Кафедра Менеджмент організації
Курсова робота
З дисципліни: Моделювання систем керування
Виконав: Банкетова К.
Група: КК-302
Перевірив: Яригін О. Н.
Тольятті 2009
Формулювання завдання:
У компанії ВАТ В«МОЛОКОВ» відвантаження замовлень споживачам організована таким чином. Вантажні автомобілі починають прибувати на навантаження на термінал в 5 годин 00 хвилин ранку з експоненціально розподіленими інтервалами часу між прибуттям із середнім значенням 3 хв. Причому під навантаження прибувають автомобілі різного типу (Вантажопідйомності):
В· 10% з них - великотоннажні автомобілі (понад 6.0 т);
В· 20% - середньотонажні автомобілі (понад 1,5 до 6,0 т):
В· 70% - малотоннажні автомобілі (до 1,5 т).
Кожен вантажний автомобіль проходить диспетчера і пост навантаження. Оформлення товаросупровідних документів у диспетчера відбувається паралельно з вантаженням автомобіля і не вимагає додаткових витрат часу. Час навантаження вантажного автомобіля залежить від його типу (вантажопідйомності) і рівномірно розподілено в інтервалі:
В· для великотоннажних автомобілів (св. 6,0 т) - від 40 до 60 хвилин:
В· для середньотоннажних автомобілів (св. 1.5 до 6.0 т) - від 30 до 40 мл нут;
В· для малотоннажних автомобілів (до 1,5 т) - від 20 до 30 хвилин.
Є ділянки вантаження великотоннажних, середньотоннажних та малотоннажних автомобілів, обладнані двома, п'ятьма і вісьмома паралельними постами відповідно. Кожен автомобіль, який прибуває на навантаження, направляється диспетчером на ділянку навантаження даного типу рухомого складу, де він або займає вільний пост, або встає в єдину чергу з дисципліною обслуговування FIFO. Після навантаження автомобіль покидає термінал (рис. 5.23). Проходження автомобілем КПП і рух по території вантажного терміналу займає незначний час і при моделюванні може не враховуватися.
Потрібно розробити імітаційну модель вантажного терміналу. Виконати п'ять прогонів імітаційної моделі для 120 хвилин (плановане час вантаження автомобілів з 5 годині 00 хвилин до 7 годин 00 хвилин утр і обчислити середню кількість зайнятих постів навантаження, середній час затримки автомобілів на терміналі і середній коефіцієнт використання кожної ділянки вантаження. Чи достатньо для ефективної робіт терміналу виділення під навантаження великотоннажних, середньотоннажних та малотоннажних вантажівок двох, п'яти і восьми паралельних постів відповідно?
Хід роботи:
Для створення моделі були використані блоки
• Activity, Multiple, Executive, Exit (4), Catch, Generator, Set Attribute, Queue, FIFO і Throw бібліотеки Discrete Event;
• Input Random Number бібліотеки Generic;
• Buffer бібліотеки Manufacturing;
• Plotter, Discrete Event бібліотеки Plotter.
Розглянемо докладніше призначення про особливості кожного з них:
Першим блоком, створюваним в рамках даної моделі є блок Executive (малюнок 1). Цей блок - серце кожної окремої моделі і має бути вміщений в лівий верхній кут від всіх інших блоків в моделі. Він дозволяє процесу моделювання зупинитися до часу завершення. Коней процесу можна задати і іншою величиною, наприклад після певної кількості повторень циклу, але у нас немає причин змінювати налаштування задані по мовчанню.
Малюнок 1 - Блок Executive
Другим створюємо блок Generator (малюнок 2). Цей блок генерує транзакти для процесу моделювання в зазначені інтервали часу.
Малюнок 2 - Блок Generator
Параметри розподілу часу між створюваними транзактами задаються в діалоговому вікні. Наприклад: постійний розподіл, емпіричне, показове, нормальне і т.д. Входи 1, 2, і 3 дозволяють Вам змінювати параметри випадкового розподілу в процесі моделювання. Вхід V дозволяє управляти кількістю вироблених транзактов. Для конкретної моделі задамо параметри блоку наступним чином -
Малюнок 3.
Малюнок 3 - Завдання параметрів для блоку Generator
Транзакти, створені в моделі потрапляють в блок Set Attribute (рісунок4).
Малюнок 4 - Блок Set Attribute
Встановлює ознаки пунктів, що проходять через блок. Можливо до семи назв різних атрибутів. Для кожної ознаки визначається кількість варіантів. Назва атрибуту вибирається зі списку, який з'являється після створення розгалуження в моделі. Налагодження цього блоку проведемо пізніше. Щоб задати ймовірність ідентифікування приходять з блоку Generator транзактов, як приналежних до кожного конкретного типом атрибута, створимо блок Input Random Number (рисунок 5).
Малюнок 5 - Блок Input Random Number
Блок виробляє випадкові цілі числа або дійсні числа, засновані на вибраному розподілі. Для нашої моделі використовуємо емпіричне рапределеніе в якому ймовірності задані за допомогою емпіричної таблиці. Налаштуємо блок таким чином - малюнок 6.
Малюнок 6 - Налаштування блоку Input Random Number
Після проходження блоку Set Attribute транзакти потрапляють в блок Buffer (малюнок 7). За подобою черзі типу В«first in - first outВ» моделює накопичення транзактов для того, щоб буферізованние пункти, необхідні подальшим операціями моделювання. Максимальна довжина, обумовлена ​​кількістю пунктів у черзі може бути встановлена ​​в діалоговому вікні.
Малюнок 7 - Блок Buffer
Миттєва буферна довжина і час очікування, час може бути перевірено в L і соединителях W відповідно.
Коли буфер заповнений він перестає приймати транзакти, поки транзакти не будуть видалені; або кінець моделювання може бути визначений як момент заповнення буфера. В діалоговому вікні так само можемо розглянути середню і максимальну довжину черги і час очікування, число пунктів, які увійшли і вийшли з буфера. Налаштування, встановлені в блоці за замовчуванням задовольняють умовам нашої моделі (Малюнок 8).
Малюнок 8 - Налаштування блоку Buffer
З буфера транзакти потрапляють в блок Throw (малюнок 9). Цей блок дозволяє створити розгалуження в схемі, щоб розділити обробку транзактов різного типу. Цей блок "кидає" транзакти в блок Catch (Рисунок 10), не використовуючи з'єднувачі або лінії зв'язку. Зв'язок між блоками Throw і Catch визначається лейбл і номер блоку Catch в його діалоговому вікні. Такі блоки можна використовувати і не створюючи розгалужень в ланцюзі.
Малюнок 9 - Блок Throw
Малюнок 10 - Блок Catch
Щоб В«КинутиВ» транзакт необхідно створити зв'язки, засновані на значенні атрибута. Для цього спочатку налаштуємо блоки приймаючі транзакти (рисунок 11). Для кожного блоку Catch привласнимо ім'я (тип 1, тип 2, та тип 3).
Малюнок 11 - Налаштування блоку Catch
Після цього перейдемо до налаштування блоку Throw. Встановлюємо відмітку Specify CatcСпеціалізірованние блоки Прийому в залежності від атрибутів і заповнюємо таблицю. У рядок Attribute name вводимо ім'я атрибута: Machine tipe. І заповнюємо таблицю порядково, вибираючи Catch block з спадаючого списку (у цьому списку будуть назви, присвоєні кожному з таких блоків).
Малюнок 12 - Діалогове вікно блоку Throw
Після налаштування роботи цього блоку повернемося до блоку Set Attributes і в його діалоговому вікні виберемо запропоноване ім'я атрибута. Заданий кількість варіацій дорівнює трьом - три типи прибувають машин.
Малюнок 13 - Діалогове вікно блоку Set Attributes
Таким чином попередні блоки поділяють приходять в систему транзакти відповідно з їх типом і тепер для кожного типу створюємо окрему чергу типу first in - first ou...