Задача. Склад нефтепродуктов распределяет 3 категории топлива: а) домашнее печное топливо; б) промышленное легкое дистиллятное топливо; в) дизельное топливо для машин. Для каждой категории топлива имеется один насос, спрос на каждую категорию топлива одинаковый. Заказы на топливо распределены равномерно в диапазоне от 3000 до 5000 галлонов с шагом в 10 галлонов. Время, необходимое для заполнения автоцистерны для горючего, определяется следующими условиями:
1. Производительность насосов (6, 5 и 7 минут на 1000 галлонов соответственно).
2. Размер заказа.
3. Количество автоцистерн на нефтехранилище (дополнительно 30 секунд на каждый автомобиль).
4. Время установки (2 минуты).
Нефтехранилище вмещает максимум 12 грузовиков. Среднее время между прибытием грузовиков составляет 18 минут и изменяется по следующей функции:
Время между прибытием грузовиков
Частота .20 .40 .25 .15
Коэффициент среднего .45 .60 1.5 2.0
Необходимо:
1. Смоделировать работу нефтехранилища в течение 5 дней.
2. Найти распределение транзитного времени грузовиков.
3. Определить количество продаваемого каждый день топлива.
Решение.
RMULT 5631,39941
Arr FUNCTION RN2,C5 ;Частота прибытия грузовиков.
0,0/0.2,.45/.6,1/.85,1.5/1.0,2
Pumprate FUNCTION P$Type,L3 ;Требуется минут на перекачку 1000 галл.
1,6/2,5/3,7
Gals VARIABLE (RN1@201+300)#10
Type VARIABLE RN1@3+1
Pump VARIABLE (FN$Pumprate#P$Gals)/1000+S$Depot/2+2
Depot STORAGE 12 ;Помещается 12 грузовиков.
Transit TABLE M1,10,10,20 ;Время пребывания грузовика на базе.
Qty TABLE X$Gals,20000,20000,9 ;Количество продаваемого топлива.
GENERATE 18,FN$Arr ;Прибытие грузовика.
ASSIGN Gals,V$Gals ;P$Gals=количество галлонов.
ASSIGN Type,V$Type ;P$Type=Тип топлива.
ENTER Depot ;Грузовик въезжает на базу.
QUEUE P$Type ;Встать в очередь по типу топлива.
SEIZE P$Type ;Занять насос.
DEPART P$Type ;Выйти из очереди.
ADVANCE V$Pump ;Время работы насоса.
RELEASE P$Type ;Освободить насос.
LEAVE Depot ;Грузовик покидает базу.
SAVEVALUE Gals+,P$Gals ;Подсчитывается кол-во проданных галлонов.
TABULATE Transit ;Таблица транзитных времен.
TERMINATE ;Грузовик уезжает.
GENERATE 480 ;Один транзакт в «день».
TABULATE Qty ;Записывается кол-во проданных галлонов.
SAVEVALUE Sold+,X$Gals ;Записывается общее количество проданного топлива.
SAVEVALUE Gals,0 ;Ячейка устанавливается в 0.
TERMINATE 1 ;Один день прошел.
START 5
Результаты моделирования.
![](http://primat.at.ua/_pu/12/s00712726.jpg)
![](http://primat.at.ua/_pu/12/s19836718.jpg)