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

Автор работы: Пользователь скрыл имя, 04 Октября 2010 в 16:12, Не определен

Описание работы

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

Файлы: 1 файл

Курсовой по имитациям.doc

— 608.00 Кб (Скачать файл)

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

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

                 <оператор>;

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

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

     Часто в процессе моделирования возникает  необходимость получить случайную  величину в формате float, распределенную по какому-либо закону. В системе PILGRIM есть стандартные 32-разрядные датчики псевдослучайных величин. В каждом узле есть свой датчик, независимый от датчиков других узлов. Связь с этими датчиками осуществляется с помощью следующих функций:

     normal(m,s); – нормальный закон распределения;

     expont(m); – экспоненциальный закон;

     unifrm(m,s); – равномерный закон на отрезке  [m-s,m+s];

     rundum(); – равномерный закон на отрезке  [0,1];

     erlang(m,s); – обобщенный закон Эрланга;

     triplex(m,s,o); – закон b-распределения,

     где  m – мaтематическое ожидание ( normal, expont, unifrm);

            – математическое  ожидание величины одного элемента (erlang);

            – минимальное  значение (triplex);

              s – cpeднeквадратичное oтклонение  (normal);

           – мaкcимальное oтклoнeниe (unifrm);

           – zero (expont);

           – наиболее вероятное  значение (triplex);

           – количество отрезков(erlang), s > 0;

             o – максимальное значение (triplex).

     При обращении к одной из этих функций  используется датчик того узла, в котором  находится транзакт.

     Табличные результаты моделирования

     Таблица результатов моделирования имеет  следующий вид: 

*-----------------------------------------------------------------------------*

|  ВРЕМЯ МОДЕЛИРОВАНИЯ: 501.58                                  Лист: 1       |

|-----------------------------------------------------------------------------|

|    |      |    |Загруз-|         |   2     |       |    |    |              |

| No | Тип  |Точ-| ка, % |  M [t]  |  C [t]  |Счeтчик|Кол.|Оcт.|Состояние  узла|

|узла| узла | ка |Путь,км| среднее | вариация| входов|кан.| тр.| в этот момент|

|-----------------------------------------------------------------------------|

|    |      |    |       |         |         |       |    |    |              |

|   1  queue  нет     нет      1.79      4.50     142    1    1        открыт |

|   2   serv  нет  %= 55.6      5.17      1.09     141    2    0        открыт |

|   3   term  нет      нет      7.96      0.79      96    0    0        открыт |

|   4   term  нет      нет      5.02      0.66      45    0    0        открыт |

|   5     ag  нет     нет       5.18      0.17      97    1    1        открыт |

|   6     ag  нет     нет      10.71      0.83      46    1    1        открыт |

*-----------------------------------------------------------------------------*

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

 

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

     2.1 Задание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     2.4.1 Очередь

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

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

     2.4.2 Серверы

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

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

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

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

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

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

     Описание  генератора похоже на описание серверов в соответствии с рисунками 6,7. Здесь  необходимо задать интервал времени поступления каналов на вход и время обработки.

     Рисунок 6 – Свойства узла AG (датчик)

     По  условию от датчиков поступают на вход канала сигналы через интервалы 10+ 5мкс.

     Рисунок 7 – Детализация узла AG (датчик)

     Значение параметра 3 остаются нулевыми.

     2.4.4 Ключ

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

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

     2.4.5 Терминатор

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

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

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

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

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

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     Заключение

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

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

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

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

 

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

 

#include <Pilgrim.h>

 

 

forward

{

int fw;

Информация о работе Моделирование в системе PILGRIM