Структура моделирующего алгоритма

 
 


12)

 
 


13)

1)

       
 
 
   


33) 22)


4)

(F17)

5)

(A6)

(F8) (Ф9)

7 (A7)

(K10)

(K14)

(A11)(F16)(F16 )

(A15)

Описание алгоритма. Составленный алгоритм позволяет на основе статистических испытаний определить зависимость доли брака от времени между наладками оборудования. Для получения статистически устойчивой характеристики для каждого интервала времени Tl, проводится М число испытаний.

Работает модель следующим образом. При запуске программы устанавливаются значения: Tl = 0, k = 0, V = 0, = 0, , Tmax, M, .

Затем определяется текущее время Tl+1 оператором 12. Далее управление передаётся оператору 13, который проверяет, достигло ли текущее время максимально допустимого значения. Если «нет», управление передаётся формирователю роликов. Формирование роликов проводится имитатором диаметров роликов zk. Далее управление передаётся оператору 2, проверяющему, все ли ролики подшипника сформированы. Если не все управление передаётся счётчику числа роликов (оператор 3) и далее к оператору 1 для формирования очередного ролика. Если сформированы все n роликов, т.е. создан массив zk объёмом n, управление передаётся оператору 4, определяющему zmax. Далее оператором 5 определяется zmin, а оператором 6 разброс U. Оператором 7 проводится контроль годности подшипника. Если подшипник годен, управление передаётся оператору 8, а затем оператору 10 для подсчета числа годных подшипников. Если подшипник не годен, управление передаётся оператору 9 и далее оператору 10. От оператора 10 управление передаётся оператору 14 для подсчета числа проверенных подшипников. Далее оператором 16 путём присвоения k = 0 систему подготавливают к контролю следующего подшипника. Далее управление передаётся оператору 15, проверяющему, все ли подшипники просмотрены. Если не все, то управление передаётся оператору 1 для формирования очередного подшипника. Если все подшипники проконтролированы, управление передаётся оператору 11 для подсчета доли отказа при времени между наладками Tl+1. Далее оператор 17, подготавливает систему к вычислению доли отказов на следующем интервале времени. Если условие оператора 13 не выполняется (время истекло), выдаются результаты в виде зависимости q = q(Tl).

Пример составления имитационной модели по принципу особых состояний. В качестве примера рассмотрим работу оператора банка. Целью моделирования выберем следующее: определение среднего времени обслуживания одного клиента за интервал времени от 0 до Т, коэффициент загрузки оператора (пропускную способность) и среднее время ожидания клиента своего обслуживания.

Система оператор – клиент работает следующим образом. Оператор обслуживает клиентов в течение времени, подчиняющемуся закону . К оператору через промежутки времени, подчиняющемуся закону f, обращаются клиенты. Если оператор занят, клиент становится в очередь. Максимально допустимое время нахождения клиента в очереди подчиняется закону .

Задачей моделирования является воспроизведение процесса обслуживания клиента оператором. Цель моделирования - найти - среднее время обслуживания одного клиента, - среднее время нахождения клиента в очереди и - пропускную способность оператора.

Выбор имитаторов основных функций. Так как рассматриваемая система является системой обслуживания, выбираем имитаторы следующих элементов.

1. Входной поток.

Для формирователя , подчиняющегося закону , выбираем датчик случайных чисел. Для определения ti выбираем сумматор .

2. Имитаторы обслуживания.

В качестве формирования выбираем датчик случайных чисел, подчиняющихся закону . Для определения выбираем сумматор . Для определения выбираем два блока присвоения: , если клиент обслуживается, не заходя в очередь; - клиент обратился к занятому оператору, и был поставлен в очередь.

3. Имитаторы очереди.

Для формирования выберем датчик случайных чисел, подчиняющихся закону . Для определения момента окончания ожидания выбираем сумматор .

4. Имитаторы правила обслуживания.

- (>Т) клиент не обслуживается, если момент окончания обслуживания выходит за рамки отведённого времени Т.

- клиент, поступивший к занятому оператору, становится в очередь.

- клиент, у которого время нахождения в очереди ограничено и меньше времени окончания обслуживания предыдущего клиента, не обслуживается.

В итоге имитаторы основных функций:

А3: ; Ф4: à; А5: ; А6: ;

F7: ; F8: ; Ф9: à ; А10: ;

А11: ; Ф1: à , .

Выбор имитаторов «сервисных» функций. 1. Имитаторы сбора и обработки данных.

Для определения указанных выше характеристик необходимы следующие блоки:

- счётчик числа обслуженных клиентов ;

- счётчик числа не обслуженных клиентов ;

- сумматор, определяющий общее время обслуживания всех клиентов за интервал времени от 0 до Т: ;

- сумматор для вычисления общего времени ожидания клиентами своего обслуживания ;

- вычислитель (вычислитель фактического времени ожидания);

- вычислители: ; ; .

В итоге имитаторы сбора и обработки:

К12: ; А13: ; К14: ; А18: ;

А19: ; А20: , , .

2. Имитаторы организации эксперимента.

Для организации эксперимента необходимы:

- блок окончания прогона (прогон считается законченным, если tiТ);

- блок наращивания числа прогонов (если за время Т собрано недостаточное число данных (меньше 30), в алгоритм вводятся дополнительные блоки, с помощью которых организуются повторные прогоны модели; это блоки: счётчик числа прогонов N = N + 1 и арифметическое устройство, проверяющее условие N N0, где N0 – требуемое число прогонов).

В итоге имитаторы организации испытаний:

А2: ti < T; К15: N = N + 1; А16: N N0.

3. Имитаторы установки исходных данных.

Поскольку в системе необходимо провести несколько повторных прогонов, то в алгоритме предусматривается блок установки начальных условий при переходе к очередному прогону. Такой блок должен устанавливать: , , , .

В итоге имитаторы задания исходных данных:

F17: , , , .

Структура алгоритма. Используя принцип особых состояний и последовательной проводки, составим алгоритм вида


       
 
   
 


Описание алгоритма. Оператором 1 формируется поток клиентов к оператору банка. Процедура проверки окончания модельного времени выполняется оператором 2. Если клиент обратился до истечения времени Т, он принимается оператором банка. Далее управление передаётся оператору 3, с помощью которого выясняется, свободен ли оператор банка. Если оператор банка свободен, управление передаётся оператору 8, который присваивает моменту начала обслуживания значение момента поступления в систему. Затем операторами 9 и 10 имитируется обслуживание клиента, а оператором 11 проверяется - достаточно ли оставшегося времени до конца работы оператора, чтобы обслужить клиента. Если «да», то управление передаётся операторам 18, 13, 12, 19 для сбора статистических данных. Далее клиент считается обслуженным, управление передаётся на вход оператора 1 для формирования нового поступления.

Если условие, записанное в операторе 2, не выполняется, то управление передаётся оператору 15 для подсчёта числа прогонов (смен работы оператора банка). Далее оператором 16 проверяется - по всем ли прогонам модели собрана статистика. Если «нет», то путём передачи управления оператору 17 переходят к имитации следующей смены работы оператора банка. Переход осуществляется путём установки нулевых начальных значений переменным, циркулирующим в алгоритме. От оператора 17 управление передаётся оператору 1 для формирования первого клиента новой смены.

Если условие оператора 3 не выполняется (клиент поступил в занятую систему), путём передачи управления операторам 4 и 5 имитируется постановка клиента в очередь. Далее управление передаётся оператору 6, проверяющему дождётся ли клиент, находящийся в очереди, своего обслуживания. Если «да», то управление от 7 передаётся операторам 9, 10 для имитации обслуживания. Если «нет», управление передаётся оператору 14, который ведёт подсчёт числа не обслуженных клиентов.

Если условие оператора 11 не выполняется, то управление передаётся оператору 14 для подсчёта числа не обслуженных клиентов.

Если условие оператора 16 не выполнено (все смены просмотрены), управление передаётся оператору 20 для обработки результатов и для вычисления искомых характеристик.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: