Лабораторная работа: Модель бензоколонки
Цифрой 5 на схеме (рис.3) обозначено действие пользователя, заключающееся в нажатии кнопки «Очистка». В процедуре, связанной с ней, производится очищение текстового поля для вывода результата моделирования. Затем обычно производятся изменение исходных данных и проведение новых расчетов с использованием кнопки «Расчет».
Рис.3. Схема алгоритма процедур обработки прерываний
Цифрой 7 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Выход». В результате работа программы прекращается.
Оператор 1 на рис. 4 обнуляет глобальную переменную SNобс - суммарное число обслуженных заявок. Оператор 2 активизирует окно формы № 2 и делает неактивным окно формы № 1. Оператор 3 начинает циклический перебор случайных реализаций. Оператор 4 выводит на экран (в окно формы № 2) счетчик числа рассчитанных реализаций.
Оператор 5 в начале каждой случайной реализации обнуляет локальные переменные, к которым относятся: число заявок, поступающих в одной реализации Nz ,число обслуженных заявок в каждом из трех каналов Nобс1 , Nобс2 , Nобс3 , начальные значения времени освобождения 1-го, 2-го и 3-го каналов Tок1 , Tок2 и Tок3 .
Рис.4. Схема алгоритма модуля «Model2»
Оператор 6 обращается к автономной процедуре формирования потока заявок. В результате работы этой процедуры формируется массив значений времени
[Тз (1), Тз (2), Тз (3),…, Тз (Nз i )],
где Nз i -общее число поступивших заявок для i-й случайной реализации.
Оператор 7 является началом цикла обслуживания заявок. Операторы 8, 9, 10 и 11 производят выбор номера канала, который характеризуется наименьшим значением времени освобождения от обслуживания заявки.
Оператор 12 обращается к автономной процедуре обслуживания очередной заявки. На выходе этой процедуры определяется число обслуженных заявок в выбранном канале Nобс (Jmin ).
Оператор 13 служит для расчета суммарного числа обслуженных заявок по рекурсивной формуле
SNобс = SNобс + Nобс.1 + Nобс.2 + Nобс.3.
После окончания цикла случайных реализаций оператор 14 возвращает свойство активного окна форме № 1. Оператор 15 рассчитывает и выводит на экран значение выходной переменной - средней относительной прибыли по формуле
.
Схема алгоритма процедуры формирования заявок показана на рис. 5.
Оператор 1 устанавливает на нуль модельное время Т. Оператор 2 является началом цикла формирования заявок. Оператор 3 обращается к датчику случайных чисел, который вырабатывает возможное значение случайной величины z, равномерно распределенной в интервале (0,1).
Оператор 4 определяет возможное значение случайной величины времени поступления очередной заявки при условии, что среднее время между соседними заявками равно Тз. cp . Оператор 5 проверяет условие окончания процесса формирования заявок.
Оператор 6 подсчитывает число поступивших заявок, помещает время поступления каждой заявки в специальный массив и изменяет модельное время Т.
Схема алгоритма процедуры обслуживания заявок показана на рис. 6.
Оператор 1 обнуляет время ожидания начала обслуживания заявки Tож и присваивает времени начала обслуживания Tн время поступления очередной заявки T3 (J3 ).
Рис.5. Схема алгоритма формирования заявок
Оператор 2 производит проверку занятости канала. Начальное значение времени освобождения канала Тко j приравнивается нулю в главном модуле в блоке обнуления локальных переменных.
Если канал занят, то оператор 3 определяет время ожидания Tож как разность времени освобождения канала Тко j и времени поступления заявки T3 (J3 ). Оператор 4 проверяет условие, что время ожидания Тож превышает допустимое Тож. max . Если это условие выполняется, то управление передается на конец процедуры и заявка остается необслуженной.
Оператор 5 служит для коррекций времени начала обслуживания заявки. Оно теперь должно равняться времени освобождения канала Тко j . Оператор 6 обращается к датчику случайных чисел с равномерным распределением в интервале (0,1), который вырабатывает возможное значение случайной величины z. Оператор 7 определяет возможное значение времени окончания обслуживания заявки Тк .
Оператор 8 проверяет условия окончания периода обслуживания, а оператор 9 фиксирует тот факт, что данный канал будетзанят до конца рабочего дня. Оператор 10 увеличивает на единицу число обслуженных заявок в j-мканале и фиксирует время освобождения канала.
Рис. 6. Схема алгоритма процедуры обслуживания заявок
3. ПРИМЕР РЕШЕНИЯ ЗАДАЧИ МОДЕЛИРОВАНИЯ
Рассмотрим пример решения задачи исследования системы массового обслуживания с помощью разработанной алгоритмической модели. Выберем следующие входные параметры:
• среднее время между заявками Тз.ср = 1 ч;
• максимальное время ожидания Тож. max . = 0,25 ч;
• число случайных реализаций Np = 5000.
Варьируемые переменные:
• среднее время обслуживания заявок Тобс.ср = 0,5; 1; 2; 4 ч;