Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
~Экзамен~ / 1999_Ответы_.doc
Скачиваний:
32
Добавлен:
19.04.2013
Размер:
964.1 Кб
Скачать

8. Адаптация имитационных моделей одноканальной смо.

Задачи: Адаптировать модель бензоколонки блоком, определяющим для каждой заявки ожидание её в очереди (это время длится от прихода заявки до поступления её на обслуживающий элемент, при этом собственное время обслуживания не учитывается).

Решение. 1. ДП:

Очередь

ГДОК

* время

Касса КВХ

ВПО

ОВПК

* время

2. Модель - программа

* касса

У Касса.Н = WAIT(Очередь.ПН)

* генератор длительности обслуживания клиентов

Д ГДОК.Н = WHOLE(RAND(0,5), 0)

* ключ по входу

Д КВХ.Н = SWITCH(1, 0, ГДОК.Н)

* очередь времени прихода клиентов

Д ОВПК.Н = FIFO(время, КВХ.Н, Касса.Н, 20)

* время простоя в очереди

Д ВПО.Н = (ОВПК.Н – время) * SWITCH(0, 1, ОВПК.Н)

* очередь

Т Очередь.НБ = FIFO(ГДОК.Н, КВХ.Н, Касса.Н, 20)

E

9. Имитация многоканальной смо.

Для имитации МСМО используется функция FIFON, которая в принципе работает как функция FIFO, но приспособлена к тому, что на входе имеется несколько исходных заявок, а на выходе несколько обслуживающих элементов. Вид функции:FIFON(А.Н, В.Н, С.Н,N, Д), гдеN– номер зарезервированного массива, остальное – как FIFO.

Введение аргумента Nсвязано с тем, что в трансляторе под массивы очередей заранее выделяется несколько групп ячеек памяти (в отличие от этого вFIFOгруппы выделяются по ходу трансляции). В связи со спецификой формирования очереди МСМО в модели – программе имеются 2 модификации функцииFIFON: входнаяFIFON(А.Н, В.Н, 1,N, Д) и выходнаяFIFON(0, 1, С.Н,N, Д)

Иллюстрация работы программы: (В1 – В4 – имитируется датчик случайных чисел)

t

А1

А2

А3

А4

В1

В2

В3

В4

Ф1

Ф2

Ф3

С1

С2

С3

0

4

1

5

8

0

1

1

0

4

8

0

0

0

0

1

3

2

6

7

0

1

0

0

0

0

3

1,001

1,001

0

2

2

3

7

6

0

0

1

0

0

0

0

1

1

1,001

3

1

4

8

5

0

1

1

1

0

0

0

1

1

1

4

4

1

5

8

0

1

0

0

6

0

7

0,999

1

0,999

5

3

2

6

7

0

1

0

1

0

0

0

1,001

1

1,001

6

2

3

7

6

0

1

0

0

0

0

0

1

1

1

7

1

4

8

5

0

1

1

0

0

0

0

1

1

1

8

4

1

5

8

0

0

1

1

0

2

0

1

0,999

1

9

3

2

6

7

0

1

1

0

0

0

0

1

1,001

1

А1 С31 Ф1

В1

С1

А2 С32

FIFON

В2 (N = 5) Ф2

А3 С33 С2

В3

Ф3

А4 С34 А – заявка

В – ключ по входу

В4 СЗ – сборщик заявок С3

Модель – программа:

* обслуживающие элементы

У С1.Н = WAIT(Ф1.ПН)

У С2.Н = WAIT(Ф2.ПН)

У С3.Н = WAIT(Ф3.ПН)

* управление входами очередей

Д В1.Н = 0 - все заявки приходят

Д В2.Н = EVENT(0,8) - только 20%

Д В3.Н = EVENT(0,5) - только 50%

Д В4.Н = EVENT(0,5) - только 80%

* генератор времен обслуживания заявок

Д А1.Н = QUANT(М1,0)

Д А2.Н = QUANT(М2,0)

Д А3.Н = QUANT(М3,0)

Д А4.Н = QUANT(М4,0)

* собиратель заявок

Д СЗ1.Н = FIFON(А1.Н, В1.Н, 1, 5, 20)

Д СЗ2.Н = FIFON(А2.Н, В2.Н, 1, 5, 20)

Д СЗ3.Н = FIFON(А3.Н, В3.Н, 1, 5, 20)

Д СЗ4.Н = FIFON(А4.Н, В4.Н, 1, 5, 20)

* распределение заявок

Т Ф1.НБ = FIFON(0, 1, С1.Н, 5, 20)

Т Ф2.НБ = FIFON(0, 1, С2.Н, 5, 20)

Т Ф3.НБ = FIFON(0, 1, С3.Н, 5, 20)

Е

И М1 = 4/3/2/1

И М2 = 1/2/3/4

И М3 = 5/6/7/8

И М4 = 8/7/6/5

Е

Примечание: Ф.Н = QUANT(М, К), где К – массив, задается во 2 разделе И М=m1/m2/m3/m4 , К – ключ, имеет следующие режимы:

Если 0 <= K < 1, то Ф (t) = mi, гдеi– очередной элемент массива

Ф (t) = ЕслиK > 1, то Ф (t) = 0 иiне увеличивается на единицу

Если K < 0, то Ф (t) = mi, гдеi=WHOLE (MOD(K))

Соседние файлы в папке ~Экзамен~