Технология моделирования в системе PILGRIM — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Технология моделирования в системе PILGRIM

2019-12-18 908
Технология моделирования в системе PILGRIM 0.00 из 5.00 0 оценок
Заказать работу

Курсовой проект

Моделирование в системе PILGRIM

Пояснительная записка

ИЦМиЗ СФУ. КП ИТЭ 06.1073

 

Зав. кафедрой         _________________________           А.А. Ступина

                                               (подпись, дата)

 

Руководитель проекта _________________________           С.Н. Ежеманская

                                               (подпись, дата)

 

Разработал студент _________________________           Е.И. Карелина

                                                   (подпись, дата)

 

 

Красноярск, 2009 г.


Содержание

Введение. 3

1 Теоретическая часть. 4

1.1 Технология моделирования в системе PILGRIM.. 4

1.2 Инструментальные средства. 4

1.2.1 Транзакты, узлы, события. Модельный таймер. 4

1.2.2 Типы узлов имитационной модели. 5

1.2.3 Команды управления узлами. 9

1.2.4 Параметры транзактов. 10

1.2.5 Параметры состояния узлов. 10

1.2.6 Датчики случайных (псевдослучайных) величин. 11

2 Практическая часть. 13

2.1 Задание. 13

2.2 Построение графа модели. 13

2.3 Инициализация модели. 14

2.4 Описание узлов модели. 15

2.4.1 Очередь. 15

2.4.2 Серверы.. 15

2.4.3 Генератор (датчик, мини-ЭВМ) 16

2.4.4 Ключ. 17

2.4.5 Терминатор. 18

2.5 Сохранение модели. 18

2.6 Генерация программы.. 19

Заключение. 20

Приложение А. Листинг программы.. 21


Введение

Имитационное моделирование (от англ. simulation) – это распространенная разновидность аналогового моделирования, реализуемого с помощью набора математических инструментальных средств, специальных имитирующих компьютерных программ и технологий программирования, позволяющих посредством процессов-аналогов провести целенаправленное исследование структуры и функций реального сложного процесса в памяти компьютера в режиме «имитации», выполнить оптимизацию некоторых его параметров.

Имитационной моделью называется специальный программный комплекс, который позволяет имитировать деятельность какого-либо сложного объекта.

Он запускает в компьютере параллельные взаимодействующие вычислительные процессы, которые являются по своим временным параметрам (с точностью до масштабов времени и пространства) аналогами исследуемых процессов.

Для создания имитационных моделей необходимо специальное программное обеспечение – система моделирования(simulation system).

Среди современных систем имитационного моделирования можно выделить следующие распространенные пакеты:

- Process Charter-1.0.2 (компания «Scitor», Менло-Парк, Калифорния, США);

- Powersim-2.01 (компания «Modell Data» AS, Берген, Норвегия);

- Ithink-3.0.61 (компания «High Performance Systems», Ганновер, Нью-Хэмпшир, США);

- Extend+BPR-3.1 (компания «Imagine That!», Сан-Хосе, Калифорния, США);

- ReThink (фирма «Gensym», Кембридж, Массачусетс, США);

- Pilgrim (Россия).

В данной работе будут рассмотрен процесс моделирования в системе Pilgrim.


Теоретическая часть

Технология моделирования в системе PILGRIM

Средством построения моделей в системе PILGRIM является графический конструктор Gem (от «Generator models»), представляющий собой набор узлов различного типа. На схеме имитационной модели узел есть графическое изображение некоторого типового процесса, или можно сказать, что внутри узла работает процесс. При этом элементарный процесс может быть, вообще говоря, представлен несколькими узлами имитационной модели, если этого требует логика его работы.

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

Конструктор Gem генерирует программу на языке С++, которая в дальнейшем должна быть скомпилирована в составе проекта в среде MS Developer Studio, где предварительно должен быть установлен Visual C++ с библиотеками Pilgrim.

Процесс построения модели в системе PILGRIM включает в себя следующие этапы:

1. Анализ структуры моделируемого процесса

2. Определение входных и выходных параметров модели

3. Построение графа модели с помощью конструктора (вообще говоря, можно сразу писать программный файл, но конструктор значительно облегчает работу).

4. Описание узлов графа (определение значений параметров узлов модели).

Параметры узлов могут быть заданы константами или переменными пользователя. Во втором случае в момент входа в узел очередной заявки значения этих параметров должны быть определены с помощью операторов языка С++.

5. Определение условий выбора узла, если в модели имеются ветвления.

6. Компиляция модели.

Инструментальные средства

Команды управления узлами

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

Освобождение заблокированного узла – команда freed

Команда freed(n) предназначена для борьбы с блокировкой. Она срабатывает в соответствии со следующей логикой.

Допустим, что в узле delet с номером n "застрял" транзакт. Текущий транзакт, который проходит через функцию freed, мгновенно генерирует вспомогательный транзакт и направляет его в узел n. Этот вспомогательный транзакт "выталкивает" застрявший, приводит delet в нормальное состояние, а сам погибает. Факт посещения вспомогательным транзактом фиксируется в delet и отражается на статистических результатах, но время его жизни равно нулю. Застрявший транзакт будет направлен в следующий за delet узел.

Перенастройка постоянного генератора ag – команда cheg

Команда cheg(n,p,r,m,s,n) предназначена для настройки генератора с номером n на новые значения параметров. Такая перенастройка произойдет "мгновенно" – в смысле модельного времени. Все параметры этой команды имеют то же назначение, что и параметры настройки генератора ag (символическое имя генератора в команде не указывается).

Управление клапаном key – команды hold и rels

Команды hold(n) и rels(n) предназначены для управления клапаном с номером n из любых других узлов. После выполнения hold клапан принимает состояние "закрыт", если до этого он был открыт. Соответственно, после rels клапан перейдет в состояние "открыт", если до этого он был в запертом состоянии.

Привязка транзакта или узла к точке пространства – команды sewt и sewk

Команда sewt(x) помещает текущий транзакт в точку пространства, имеющую номер х (т.е. приписывает ему координаты этой точки путем занесения значения х в параметр транзакта t->tх). Команда sewk(x,i) помещает узел с номером i в точку пространства, имеющую номер х (т.е. приписывает узлу координаты этой точки, записывая значение х в параметр узла k->kх).

Параметры транзактов

Транзакты имеют параметры, некоторые из которых доступны пользователю. Обращение к параметру транзакта возможно только в момент его входа в узел модели и производится через системную переменную t, являющуюся именем входящего в узел транзакта.

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

t->iu0, t->iu1, t->iu2, t->iu3 – произвольные целочисленные параметры пользователя (используются для хранения информации о состоянии транзакта);

t->ru0, t->ru1, t->ru2, t->ru3 – произвольные параметры пользователя, имеющие вид переменной с плавающей точкой;

t->ga – признак обслуживания транзакта вновь, который устанавливается операцией присваивания eму глобальной константы again, как это было показано при рассмотрении функции serv;

t->pr – приоритет транзакта;

t->ft – номер семейства, к которому принадлежит транзакт;

t->tx – этот параметр запоминает номер (индекс) точки пространства. Номер точки позволяет определить ее координаты в массивах lat и lon.

Изменять, не опасаясь непредсказуемого поведения модели, можно только t->iu0,
t->iu1, t->iu2, t->iu3, t->ru0, t->ru1, t->ru2, t->ru3, t->ga и, иногда, t->pr и t->ft. Изменение других параметров следует доверить только ПИЛИГРИМу.

Параметры состояния узлов

Некоторые параметры узлов доступны пользователю для анализа (но не для их изменения). Параметры содержатся в системном массиве addr. Доступ к параметру осуществляется с помощью выражения вида:

addr [<n>] - > <параметр>, где <n> – номер узла в модели. 

Имена и назначения параметров узлов приведены в таблице 1.

Таблица 1 – имена и значения параметров

Имя Назначение параметра
nc        Число каналов в узле
na        Число транзактов, прошедших через узел на данный момент модельного времени
tn Число транзактов, находящихся в узле на данный момент модельного времени
ts         Среднее время обслуживания, подсчитанное на данный момент.
op        Признак состояния узла типа key. Это целочисленная переменная, принимающая значение глобальной константы true, если клапан открыт, или false, если он закрыт
se         Признак состояния узла типа delet. Это целочисленная переменная, принимающая значение глобальной константы nil, если в узле нет уничтожающего транзакта
kx        Номер (индекс) точки, в которой находится узел типа creat, delet или proc. По номеру точки определяются ее координаты в массивах lat и lon.
saldo, defic Остаток и дефицит средств на бухгалтерском счете, связанном с узлом типа send.
rsal, rdef Остаток и дефицит ресурса на складе, связанном с узлом типа attach.

Для анализа параметров любого узла можно использовать его номер <n>. Например, если транзакту необходимо проанализировать состояние узла типа delet, имеющего номер 5, и, в случае отсутствия уничтожающего транзакта, выполнить какой-то оператор, он должен пройти через следующее выражение:

    if (addr[5]->se == nil)

              <оператор>;

причем сам транзакт в это время находится в произвольном узле. Следует отметить, что возможны пробные обращения координатора network к ветви top(<n>): в смысле передачи управления, но не ввода транзакта в узел. Факт входа транзакта фиксируется в глобальной переменной go и автоматически анализируется всеми функциями ПИЛИГРИМа. Поэтому еще раз необходимо обратить внимание на то, что поток управлений в программе и поток транзактов в модели - это разные явления.

Практическая часть

Задание

Система обработки информации содержит мультиплексный канал и три мини-ЭВМ. Сигналы от датчиков поступают на вход канала через интервалы 10 + 5 мкс. В канале они буферируются и предварительно обрабатываются в течение 10 + 3 мкс. Затем они поступают на обработку в мини-ЭВМ, где имеется наименьшая по длине входная очередь. Емкости входных накопителей во всех мини-ЭВМ рассчитаны на хранение величин 10 сигналов. Время обработки сигнала в любой мини-ЭВМ равно 33 мкс. Смоделировать процесс обработки 500 сигналов, поступающих с датчиков.

Построение графа модели

Для начала работы необходимо найти на диске папку Gem и запустить файл Gem.exe. В меню «Файл» выбрать пункт «Создать» и развернуть рабочую плоскость на весь экран. С помощью палитры объектов построить граф модели на рабочей плоскости в соответствии с рисунком 1.

Рисунок 1 - Граф модели на рабочей плоскости

Нумеруются узлы автоматически, причем первая цифра номера – это номер плоскости, так как в систеие PILGRIM есть возможность иерархического построения графов моделей.

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

Построив граф, необходимо убедиться в отсутствии «зацикливаний», то есть стрелок, протянутых в тот же узел, из которого они выходят.

Инициализация модели

Для инициализации модели необходимо нажать кнопку ModBeg (Model Begin) под палитрой объектов.

В строке «Название» нужно ввести имя модели, которое будет указано в таблице результатов моделирования – Система обработки информации.

В строке «Узлы» автоматически показывается номер последнего узла модели -118

В строке «Время» необходимо указать длительность периода моделирования (16500).

В качестве единичного отрезка разумно принять минимальный отрезок времени, который будет использоваться при задании параметров модели - в микросекундах (в соответствии с рисунком 2).

Рисунок 2 – Инициализация модели

В строке «ПСЧ» указывается начальное значение для генератора псевдослучайных чисел, необходимых для имитации случайных процессов. Автоматически для этого используется показание компьютерного таймера.

В строке «Пространство» предлагается выбрать тип пространства, если модель будет работать с координатной плоскостью. В данной задаче это не требуется.

Строки «Задержка» и «Поток» предназначены для задания номеров контролируемых узлов: очереди (узел «Queue») и терминатора (узел «Term») соответственно. Для указанных узлов в процессе моделирования будут строиться графики времени задержки (очередь) и динамики выходного потока (терминатор). График времени задержки показывает среднее значение времени ожидания транзакта в очереди в каждый единичный отрезок модельного времени. График динамики потока показывает число транзактов, попавших в терминатор в единицу модельного времени (то есть интенсивность выходного потока заявок в моделируемой системе).

В строке «Точность» можно выбрать необходимое число знаков после десятичной точки в таблице результатов моделирования.

В окне «Начальный С++ текст» при необходимости переопределяются имена параметров транзактов и задаются числовые константы.

Окно инициализации ресурсов предназначено для задания начального состояния узлов, которые в данной модели не используются.

Описание узлов модели

Очередь

В очередях сигналы накапливаются до 10 сигналов и затем отправляются на обработку в мини-ЭВМ (в соответствии с рисунком 3)

Рисунок 3 – Свойства узла Queue

Серверы

Первый сервер – сигналы буферируются и предварительно обрабатываются в соответствии с рисунком 4.

Остальные сервера предназначены для обработки накопленных сигналов. Как только число сигналов становится равным 10 начинается обработка.

Рисунок 4 – Свойства узла Serv (первичная регулировка)

В очередях заданий необходимо установить флаг учета приоритета транзактов (значение "prty"), в параметрах серверов так же нужно задать флаг учитывания приоритетов транзактов (значение "abs"), а также установиться закон распределения и время обработки в соответствии с рисунком 5.

Рисунок 5 – Детализация узла Serv

Ключ

В данной модели ключ используется для регулирования поступления сигналов, в соответствии с рисунком 8.

Рисунок 8 – Свойства узла KEY

Терминатор

Для описания терминаторов необходимо задать только логическое имя узла. Никаких дополнительных действий в данной модели с ними не связано, в соответствии с рисунком 9.

Рисунок 9 – Свойства узла Terminator

Сохранение модели

После того, как граф модели построен, и все узлы полностью описаны, модель необходимо сохранить в графическом формате. Для этого в меню «Файл» нужно выбрать пункт «Сохранить», затем выбрать адрес сохранения на диске и ввести имя файла. Расширение.pgf (pilgrim graphic file) будет подставлено автоматически.

Генерация программы

Если сохранение модели в графическом формате был успешно выполнено, нужно в меню «Выполнить» выбрать пункт «Генерировать С++ файл». В указанной пользователем папке будет создан файл PILGRIM-программы с расширением.cpp (имя также вводится пользователем). Тест программы приведен в Приложении А.

Заключение

В данной курсовой работе были рассмотрены основные принципы моделирования в системе Pilgrim.

Изучены основные инструментальные средства, такие как транзакты, узлы, события, модельный таймер.

Рассмотрены основные типы узлов (Ag, Key, Serv, Creat и т.д.)

В рамках проекта была смоделирована система обработки информации.

 


Приложение А. Листинг программы

#include <Pilgrim.h>

 

 

forward

{

 int fw;

 

 modbeg("Система обработки информации", 119, 16500, (long)time(NULL), none, none, none,none, 2);

 ag("Датчик", 101, none, norm, 10, 5, zero, 102);

 network(dummy, dummy)

 {

top(102):

   queue("Очередь", prty, 103);

        place;

 

top(103):

   if(addr[5]->tn<=addr[4]->tn && addr[5]->tn<=addr[6]->)

        {

         fw=117;

        }

       else

        if(addr[6]->tn<=addr[5]->tn && addr[6]->tn<=addr[4]->)

        {

         fw=118;

        }

       else

        {

         fw=116;

        }

        serv("Сервер", 3, abs, norm, 10, 3, zero, fw);

        place;

 

top(104):

  if addr[4]->tn==10 hold(116)

   queue("Очередь", prty, 113);

        place;

 

top(105):

  if addr[5]->tn==10 hold(117)

   queue("Очередь", prty, 114);

        place;

 

top(106):

  if addr[6]->tn==10 hold(118)

   queue("Очередь", prty, 115);

        place;

 

top(110):

   term("мини-ЭВМ 1");

        place;

 

top(111):

   term("мини-ЭВМ 2");

        place;

 

top(112):

   term("мини-ЭВМ 3");

        place;

 

top(113):

  if addr[4]->tn<10 rels(116)

   serv("Сервер", 1, abs, none, 33, zero, zero, 110);

        place;

 

top(114):

  if addr[5]->tn<10 rels(117)

   serv("Сервер", 1, abs, none, 33, zero, zero, 111);

        place;

 

top(115):

  if addr[6]->tn<10 rels(118)

   serv("Сервер", 1, abs, none, 33, zero, zero, 112);

        place;

 

top(116):

   key("Ключ 1", 104);

        place;

 

top(117):

   key("Ключ 2", 105);

        place;

 

top(118):

   key("Ключ 3", 106);

        place;

 

fault(123);

 }

 modend("pilgrim.rep", 1, 8, page);

 return 0;

}

 

Курсовой проект

Моделирование в системе PILGRIM

Пояснительная записка

ИЦМиЗ СФУ. КП ИТЭ 06.1073

 

Зав. кафедрой         _________________________           А.А. Ступина

                                               (подпись, дата)

 

Руководитель проекта _________________________           С.Н. Ежеманская

                                               (подпись, дата)

 

Разработал студент _________________________           Е.И. Карелина

                                                   (подпись, дата)

 

 

Красноярск, 2009 г.


Содержание

Введение. 3

1 Теоретическая часть. 4

1.1 Технология моделирования в системе PILGRIM.. 4

1.2 Инструментальные средства. 4

1.2.1 Транзакты, узлы, события. Модельный таймер. 4

1.2.2 Типы узлов имитационной модели. 5

1.2.3 Команды управления узлами. 9

1.2.4 Параметры транзактов. 10

1.2.5 Параметры состояния узлов. 10

1.2.6 Датчики случайных (псевдослучайных) величин. 11

2 Практическая часть. 13

2.1 Задание. 13

2.2 Построение графа модели. 13

2.3 Инициализация модели. 14

2.4 Описание узлов модели. 15

2.4.1 Очередь. 15

2.4.2 Серверы.. 15

2.4.3 Генератор (датчик, мини-ЭВМ) 16

2.4.4 Ключ. 17

2.4.5 Терминатор. 18

2.5 Сохранение модели. 18

2.6 Генерация программы.. 19

Заключение. 20

Приложение А. Листинг программы.. 21


Введение

Имитационное моделирование (от англ. simulation) – это распространенная разновидность аналогового моделирования, реализуемого с помощью набора математических инструментальных средств, специальных имитирующих компьютерных программ и технологий программирования, позволяющих посредством процессов-аналогов провести целенаправленное исследование структуры и функций реального сложного процесса в памяти компьютера в режиме «имитации», выполнить оптимизацию некоторых его параметров.

Имитационной моделью называется специальный программный комплекс, который позволяет имитировать деятельность какого-либо сложного объекта.

Он запускает в компьютере параллельные взаимодействующие вычислительные процессы, которые являются по своим временным параметрам (с точностью до масштабов времени и пространства) аналогами исследуемых процессов.

Для создания имитационных моделей необходимо специальное программное обеспечение – система моделирования(simulation system).

Среди современных систем имитационного моделирования можно выделить следующие распространенные пакеты:

- Process Charter-1.0.2 (компания «Scitor», Менло-Парк, Калифорния, США);

- Powersim-2.01 (компания «Modell Data» AS, Берген, Норвегия);

- Ithink-3.0.61 (компания «High Performance Systems», Ганновер, Нью-Хэмпшир, США);

- Extend+BPR-3.1 (компания «Imagine That!», Сан-Хосе, Калифорния, США);

- ReThink (фирма «Gensym», Кембридж, Массачусетс, США);

- Pilgrim (Россия).

В данной работе будут рассмотрен процесс моделирования в системе Pilgrim.


Теоретическая часть

Технология моделирования в системе PILGRIM

Средством построения моделей в системе PILGRIM является графический конструктор Gem (от «Generator models»), представляющий собой набор узлов различного типа. На схеме имитационной модели узел есть графическое изображение некоторого типового процесса, или можно сказать, что внутри узла работает процесс. При этом элементарный процесс может быть, вообще говоря, представлен несколькими узлами имитационной модели, если этого требует логика его работы.

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

Конструктор Gem генерирует программу на языке С++, которая в дальнейшем должна быть скомпилирована в составе проекта в среде MS Developer Studio, где предварительно должен быть установлен Visual C++ с библиотеками Pilgrim.

Процесс построения модели в системе PILGRIM включает в себя следующие этапы:

1. Анализ структуры моделируемого процесса

2. Определение входных и выходных параметров модели

3. Построение графа модели с помощью конструктора (вообще говоря, можно сразу писать программный файл, но конструктор значительно облегчает работу).

4. Описание узлов графа (определение значений параметров узлов модели).

Параметры узлов могут быть заданы константами или переменными пользователя. Во втором случае в момент входа в узел очередной заявки значения этих параметров должны быть определены с помощью операторов языка С++.

5. Определение условий выбора узла, если в модели имеются ветвления.

6. Компиляция модели.

Инструментальные средства


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.155 с.