Моделирование систем
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
тием переменной. Любая переменная используется для описания какой-либо характеристики системы, например, узел может находиться в одном из двух состояний:
занят (участвует в операции сборки детали),
свободен (не участвует в операции сборки детали).
Во многих случаях перечислить все значения переменной трудно (или невозможно), поэтому в таких ситуациях переменную характеризуют типом, определяющим ее возможные значения.
В процессе имитации исследуемой системы переменные модели будут изменять свои значения, поэтому перед запуском модели всем переменным необходимо назначить исходные начальные значения (Initial Value), которые будут определять исходное состояние системы.
Все переменные модели должны быть внесены в список переменных.
Рис. 2 Окно списка переменных (Name - имя, Value - значение переменной)
В таблице 3 представлен список с описанием всех переменных модели. В этом списке представлены системные переменные. Такие переменные используются в любой модели: переменная clock - модельное время и tag (тэг) - индивидуальный номер динамического объекта.
Кроме системных переменных в модели присутствуют переменные, которые определяются непосредственно пользователем применительно к его модели.
Таблица 3
Имя переменнойСмысловое содержаниеТип переменнойНачальное значениеclockСистемная переменнаяReal0durationСистемная переменнаяReal0objectiveСистемная переменнаяReal0runСистемная переменнаяInteger1seedСистемная переменнаяInteger1tagСистемная переменнаяInteger0kСигнал прихода очередного клиента в банкInteger0Status[ ]Сигнальная переменная для входа тэга в блокArray of Integers0q[ ]Количество клиентов в очереди, ожидающих обслуживанияArray of Integers0M1-M8Среднее время выполнения операцииArray of Integers
2.3 Описание задачи
Окно описания задачи открывается после двойного клика на соответствующем блоке сетевой многоуровневой структуры модели.
2.3.1 Блок Vxod
Блок Vxod имитирует поступление клиентов в банк. В данном блоке задается время между приходами клиентов - 18, тип распределения - Exponential.
Поля Time Distribution, Mean Time и Standard Deviation используются для задания интервала времени между приходами клиентов. В списке Time Distribution содержатся различные законы распределения вероятностей. Экспоненциальное распределение (Exponential Distribution) связано с моделированием простейших потоков. В таких потоках время между событиями распределено по экспоненциальному закону. Это распределение характеризуется единственным параметром - средним значением.
Поле Release Condition в общем случае содержит условие возможности входа тэга в соответствующий блок. Если в этом поле присутствует любое число, большее 0, вход в блок открыт.
Рис. 3 Окно описания блока Vxod
Разветвитель типа Multiple используется для организации потока клиентов. Тэг, попадая в разветвитель, раздваивается: одна копия тэга поступает в блок tip klienta (при условии, если переменная k=0), вторая - на вход этого же блока (обратная связь).
Рис. 4 Описание разветвителя
2.3.2 Блок tip klienta
Блок tip klienta является вспомогательным в структуре модели, необходим для организации прихода клиентов в банк по очереди - переменная k организует вход в блок только одного тэга.
Рис. 5 Описание блока tip klienta
Разветвитель, стоящий после данного блока, распределяет всех пришедших клиентов в соответствии с заданной вероятностью, направляя их тем самым в разные очереди.
Рис. 6 Описание разветвителя
Разветвитель может использовать один из трех типов разветвления (Decision Type): Multiple, Probabilistic и Tactical. Тип Probabilistic определяет стохастический (случайный) механизм выбора тэгом направления дальнейшего движения. Для такого выбора в полях Routing Condition задаются вероятности переходов по выбранному направлению (их сумма должна быть равна 1).
2.3.3 Блоки klient 1, ... , klient 5
Блоки-клиенты организуют поступление посетителей в соответствующие очереди и особо необходимы для тех случаев, когда разные кассы выполняют одну и ту же операцию. При этом дополнительно используются разветвители, которые указывают клиенту направление движения в сторону свободной кассы. Описание блоков klient 1,…,5 представлено на рисунке 7,8,9,10,11.
блок компьютерный модель файл
Рис. 7 Описание блока klient 1
Рис. 8 Описание блока klient 2
Рис. 9 Описание блока klient 3
Рис. 10 Описание блока klient 4
Рис. 11 Описание блока klient 5
Рис. 12 Описание разветвителя после блоков klient 3, klient 4, klient 5
Тип Tactical использует поля Routing Condition для записи выражений, значения которых определяют направление дальнейшего движения тэга. Тэг, проходящий через разветвитель типа Tactical, будет направлен в ту задачу, для которой выражение, записанное в соответствующем поле Routing Condition, примет (в момент перехода) максимальное значение.
2.3.4 Блоки kassa 1, ... , kassa 8
Блоки kassa 1, ... , kassa 8 имитируют 8 окошек кассиров в банке. Перед данными блоками находятся очереди для учета количества клиентов, ожидающих обслуживания. Каждый вновь пришедший клиент встает в очередь перед кассой, если в момент своего прихода кассир занят для обслуживания другого клиента, и учитывается переменной q[i].
Рис. 13 Окно описания регистратора очереди в kassa 8
Когда кассир освобождается, переменная q[i] уменьшает свое значение на 1, тэг входит в блок, и переменная Status[i] меняет свое значение на 1, что говорит о занятости кассира. После выполнения операции переменная Status снова п