Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание имитационной модели процесса
Создание имитационной модели начнем с построения заголовка модели, который может быть представлен, например, в таком виде: ; GPSSW File Smo3re.GPS ********************************************* * Моделирование трехканальной разомкнутой * * системы со смешанными потоками * ********************************************* Программу работы СМО можно представить в виде трех секторов. В первом секторе указывается вместимость СМО. Это можно выполнить с помощью оператора STORAGE (Накопитель), который в нашем примере будет выглядеть так: NAK STORAGE 3 В этом же секторе используем оператор FUNCTION (Функция) для формирования экспоненциального распределения поступления требований в систему. Ввод функции выполняется с использованием непрерывной числовой функции, с помощью значений функции в 24 точках. Это можно представить в таком виде: EXP_G FUNCTION RN1, C24 0, 0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7, 1.2/.75, 1.38/.8, 1.6/.84, 1.83/.88, 2.12/.9, 2.3 .92, 2.52/.94, 2.81/.95, 2.99/.96, 3.2/.97, 3.5/.98, 3.9 .99, 4.6/.995, 5.3/.998, 6.2/.999, 7./.9997, 8. Функция – это вычислительный элемент системы моделирования, связывающий зависимую и независимую переменные моделирования. Функция определяется с помощью оператора FUNCTION. Перед оператором FUNCTION в поле меток ставится символьное или числовое имя (идентификатор) функции. В нашем примере ее имя – EXP_G. В поле операнда А задается аргумент (независимая переменная) функции. Аргумент функции может быть любым стандартным числовым атрибутом, за исключением матричной сохраняемой величины. Если в качестве аргумента функции используется случайное число RN___, то результатом является дробная величина, равномерно распределенная в интервале 0 ≤ RN___ ≤ 1. Во всех других случаях 0 ≤ аргумент ≤ 999. Во втором секторе будем моделировать поток требований в систему и их обслуживание. Моделирование потока требований будем выполнять с помощью оператора GENERATE (Генерировать). В нашем примере он будет выглядеть так: GENERATE 12, FN$EXP_G В поле операнда А указывается средний интервал времени между прибытием двух смежных требований. В поле операнда В дано отклонение времени поступления требований от среднего. В нашем примере отклонение от среднего времени прибытия требований подчиняется экспоненциальному распределению. Сбор статистической информации для многоканальной системы можно обеспечить с помощью операторов ENTER и LEAVE. Оператор ENTER может быть записан в таком виде: ENTER NAK В поле операнда А указано имя накопителя, вместимость которого должна быть заранее определена. Поскольку СМО многоканальная, то необходимо использовать оператор TRANSFER для обеспечения возможности направления требований к незанятому каналу: TRANSFER ALL, KAN1, KAN3, 3 Сначала требование направляется к оператору, имеющему символьную метку KAN1. Этим оператором является SEIZE, который записывается так: KAN1 SEIZE CAN1 Если канал обслуживания с символьной меткой KAN1 занят, то требование направляется к следующему каналу, перешагивая через три оператора. 3 – это число, указанное в поле операнда D в операторе TRANSFER. Таким образом, следующим оператором будет: SEIZE CAN2 Если и этот канал будет занят, то требование снова перешагнет через три оператора и т.д., пока не найдется незанятый канал обслуживания. В свободном канале обслуживания требование будет обслужено. Но предварительно требование должно запомнить канал, в который оно попало на обслуживание. Для этого используется оператор ASSIGN (Присвоить) – с его помощью в параметре требования под номером 1 запоминается имя канала, в который требование пошло на обслуживание. В каждом канале имеется свой оператор ASSIGN. Например, для первого канала это присвоение будет выглядеть так: ASSIGN 1, CAN1 Далее, после определения свободного канала и записи его имени с помощью оператора TRANSFER требование направляется на обслуживание. Это выглядит так: TRANSFER, COME Однако перед началом обслуживания должно быть подано сообщение о том, что требование оставило накопитель под именем NAK, в котором оно находилось. Это будет выглядеть так: COME LEAVE NAK После выхода из накопителя требование поступает в канал на обслуживание. Это действие выполняется с помощью оператора ADVANCE. Время обслуживания определяется с равномерным законом распределения в интервале 8±3 с. Это записывается так: ADVANCE 8, 3 После обслуживания требование выходит из канала обслуживания, и должен появится сигнал об освобождении последнего. Это делается с помощью оператора RELEASE (Освободить): RELEASE P1 Оператор требования под номером P1 содержит имя освобождаемого канала обслуживания. Далее требование выходит из системы с помощью оператора TERMINATE, который записывается в таком виде: TERMINATE 1 И наконец, последний оператор – управляющая команда START – определяет, сколько поступит требований в процессе моделирования системы: START 10000
|