скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыДипломная работа: Подсистема визуального отображения процесса интерпретации сетевых моделей в системе имитационного моделирования МИКРОСИМ

PBT: PTRANSITION;    (* АДР.ТАБЛ.НАЧАЛЬНОГО ПЕРЕХОДА

(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)

PET: PTRANSITION;    (* АДР.ТАБЛ.КОНЕЧНОГО ПЕРЕХОДА

(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)

NALOHI: INTEGER;     (* СМЕШЕНИЕ АТРИБУТА ДЛЯ *)

(* ОЧЕРЕДЕЙ ТИПОВ HIGH И LOW *)

PNTP: PPLACE; (* АДРЕС ТАБЛ.СЛЕДУЮЩЕЙ ПОЗИЦИИ *)

PNIP: PPLACE;            (*АДР.ТАБЛ.СЛЕД.ВХ.ПОЗ. ПЕРЕХОДА*)

PNOP: PPLACE;           (*АДР.ТАБЛ.СЛЕД.ВЫХ.ПОЗ.ПЕРЕХОДА*)

PST: PTDIST;                (* АДР.ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)

PX: INTEGER;              (* КООРДИНАТА «X» *)

PY: INTEGER;               (* КООРДИНАТА «Y» *)

PLREC: POINTER;       (* АДР.СПИСКА ЗАПИС.ОБ АТРИБУТАХ*)

NOB: CHAR;                 (* ЧИСЛО ФИШЕК *)

QMAX: CHAR;              (* МАКС.ДЛИНА ОЧЕРЕДИ *)

NENTR: LONGINT;       (* ЧИСЛО ВХОДОВ ФИШЕК В ПОЗИЦИ` *)

SUMTZ: REAL;             (* СУММА ИНТЕРВАЛОВ ЗАНЯТОСТИ *)

END;


Входными параметрами процедуры трассировки I00TRD являются указатели на справочники модели, сегмента и перехода. Все необходимые для записи в файл данные процедура получает из справочников. Имя сегмента в котором сработал переход получаем с помощью процедуры GETNAME, модельное время и время задержки с помощью процедуры I00TUN, обе процедуры из модуля ISPINT.

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

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

Открытие файла происходит при первом обращении к процедуре трассировки. Счетчик обращений SCH обнуляется при активизации пункта меню «Пуск Модели». Описан в разделе глобальных переменных в модуле ISPGLOB, там же осуществлено описание переменной типа файл:

FTRACE: TEXT;

SCH: INTEGER;

Закрытие файла происходит по окончании процесса моделирования, командой: CLOSE (FTRACE);

1.5       Структура СВПИМ

Разработка СВПИМ велась в операционной системе Windows’95.В качестве программного комплекса для реализации СВПИМ использовалась интегрированная среда разработки Delphi 2.0, которая является средой визуального программирования. Поскольку ядром для подсистемы визуального отображения была выбрана СВПИМ, очевидно, что для ее разработка тоже проводилась в среде Delphi 2.0.

Создание программ в Delphi базируется на объектно-ориентированной технологии. Структурной единицей визуального программирования является компонент. Компонент представляет собой объект, обладающий набором свойств, которые определяют его представление и поведение. Е-сетевая модель состоит из связанных друг с другом сегментов, которые можно определить как объекты, имеющие графическое представление и определяемые некоторым набором свойств. В свою очередь, сегменты состоят из элементарных Е-сетей определенных типов. Однако, учитывая идеологию СВПИМ будем считать, что сегменты состоят из переходов, позиций и линий связи между ними (дуг). Каждый из этих структурных элементов Е-сети также можно определить как объект, имеющий свое графическое представление и определяемый соответствующим набором свойств. При таком подходе сегмент представляется набором объектов с определенными свойствами. Таким образом, все структурные компоненты имитационной модели представлены в СВПИМ как Delphi‑компоненты.

1.5.1   Общая структура программы

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

В СВПИМ определено пять основных окон:

·     основное окно сегмента, представляющее графическое изображение сегмента;

·     окно, представляющее текстовое описание сегмента;

·     окно свойств элементов, в том числе сегмента;

·     окно конструктора процедур;

·     окно задания связей сегмента с другими сегментами.

Общая структура программы представлена на рисунке 2.4


1.5.2   Графическое представление сегмента в СВПИМ

В рамках данного дипломного проекта все работы, относящиеся к разработке подсистемы визуального отображения проводились с основным окном сегмента, представляющем его графическое изображение. В СВПИМ этих окон создается столько, столько создано или открыто сегментов. Сегмент в программе представлен классом TGraphSegm. Он представляет собой набор переходов и позиций, связанных между собой. Сегмент имеет набор свойств, описанных в таблице 2.1

Таблица 2.6

Название Тип Описание
Name String Название сегмента
TimeDelay TtimeDelay Модельное время ('псек', 'нсек', 'мксек', 'мсек', 'сек', 'мин', 'час', 'день')
ListNet Tlist Список переходов.
ListPos Tlist Список позиций.
ListLine Tlist Список дуг.
AttributeNames TstringList Имена атрибутов фишек
AttributeTypes TstringList Типы атрибутов фишек
NetVarNames TstringList Имена сетевых переменных
NetVarVals TstringList Значения сетевых переменных
NetVarTypes TstringList Типы сетевых переменных

При визуальном отображении разработанной подсистемой используются свойства ListPos и ListNet.

1.5.3   Компоненты Е-сети

Все компоненты Е-сети в СВПИМ порождены от базового класса TNObject и перегружают все его виртуальные функции. Кроме того, каждый из компонентов имеет собственные данные и методы, специфичные для него.

Переходы представлены в редакторе классом TNetObj. Кроме свойств, определенных в базовом классе, объект имеет набор собственных свойств, описывающих тип перехода, ширину графического изображения, высоту графического изображения, выражение в операторе TIME, выражение в операторе CONTROL, выражение в операторе TRANSFER и т.д.

Позиции представлены классом TposObj Кроме свойств определенных в базовом классе, объект имеет следующий набор собственных свойств: тип – позиция или очередь, ширина графического изображения, высота графического изображения, ориентация, координаты точек привязки линий, состояние точек привязки и т.д.

Дуги представлены классом TlineObj Кроме свойств, определенных в базовом классе, объект имеет следующий набор собственных свойств: тип дуги, направление дуги, указатель на переход, к которому присоединена дуга, указатель на позицию, к которой присоединена дуга и т.д.

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

Класс TNetObj:

TNetObj = class (TNObject)

public

TypeNet:TAllTypeNet;

ResizeRgn:HRGN;

Width:integer;

Height:integer;

HeightVertLine:integer;

IsPassed:boolean;                             (*добавленное свойство*)

Свойство IsPassed описывает состояние перехода (срабатывающий или нет)

Класс TPosObj:

TPosObj = class (TNObject)

public

TypePos:TAllTypePos;

Width:integer;

Height:integer;

Orientation: Boolean;

Length: Longint;

Pos1, Pos2:TPoint;

InOutPoint: array [1..2] of TPoint;

SatatusInOutPoint:array [1..2] of TWayLine;

OrientationRgn:HRGN;

NumPoints:integer;                                     (*добавленное свойство*)

Свойство NumPoints описывает количество фишек в позиции.

1.6       Структура подсистемы визуального отображения

Структура подсистемы имеет следующий вид:



1.6.1   Обработка файла созданного МИКРОСИМ

Файл с данными о сработавших переходах создается в результате работы МИКРОСИМ. Структура файла описана в п. 2.3.3. Имя файла задается в виде <имя модели>.log, располагается он в директории МИКРОСИМ. При некорректном задании параметров моделирования размер файла может достигать нескольких мегабайт. Очевидно, что активная работе с таким файлом будет затруднена из-за ограниченной пропускной способности дисковой системы.

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

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

OneLine= Record

Segment: string                                  (*имя сегмента*);

Perehod: string                                  (*имя перехода*);

Ttime: real                                         (*текущее модельное время*);

Ddelay: real                                       (*задержка*);

FromPos: String                                (*имя входной позиции*);

FromCount: integer                           (*кол-во фишек*);

ToPos: string                                     (*имя выходной позиции*);

ToCount:integer                                (*кол-во фишек*);

end;

В процессе обработки файла организуется список из таких записей, в порядке следования сработавших переходов.


1.6.2   Начальная маркировка модели

Моделирование в МИКРОСИМ подразумевает необходимость задания начальной маркировки модели. Маркировка (размещение фишек) осуществляется исполнительной подсистемой на этапе задания параметров, на языке ЯЗП (предложение MARK). Для правильного отображения процесса моделирования, перед началом визуализации необходима расстановка фишек в исходные позиции. Поэтому первым этапом работы подсистемы визуального отображения является начальная маркировка.

Одним из вариантов начальной маркировки был лексический анализ файла с параметрами системы. Но он был отвергнут ввиду наличия такого механизма в МИКРОСИМ и нежелательности дублирования функционала в разных местах системы. Вместо него использован более простой и логичный вариант начальной маркировки непосредственно по данным о сработавших переходах.

Исходя из правила функционирования элементарных Е-сетей, первым в системе сработает тот переход у которого выполнены условия срабатывания наличие фишки во входной позиции и ее отсутствие в выходной., а также истекло время задержки перехода. Следовательно для таких переходов время задержки будет равно текущему времени моделирования. Зная же переход, сработавший в начальный момент времени, можно определить, какая траектория перехода была активна в этот момент и, соответственно, определить, из какой позиции появилась фишка.

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


1.6.3   Визуальное отображение

Таким образом перебираются все сработавшие переходы и поведение модели можно пронаблюдать на экране.

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

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

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

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

Разработанная в рамках данного дипломного проекта подсистема позволяет наблюдать за процессом интерпретации модели. Визуально, процесс интерпретации заключается в перемещении фишек в системе.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.