r4 (1123693), страница 2
Текст из файла (страница 2)
Из-за высокой размерности пространства состояний описать оператор, вычисляющий новое значение состояния системы в какой-то момент времени - является достаточно сложной задачей. Поэтому на практике может потребоваться замещение оператора композицией подоператоров. Такое задание оператора H называется расщепленным описанием. Каждый подоператор реализует более простые связи. Расщепление оператора определяется структурой моделирующией системы, степенью подробности описания процеса функционирования, задачами исследования, опытом разработчика модели.
Обычно имеется некая базовая совокупность подоператоров, из которых и строятся различные композиции. Если для моделирования используется универсальный язык - то подоператорами могут быть операторы этого языка. Если применяются специальные языки моделирования, то подоператоры - это операторы таких языков, которые наиболее полно отражают возможности именно моделирующих алгоритмов, позволяют наглядно и общепринято описывать процессы.
Естественно, что применение специализированных языков моделирования требует и соблюдения соответствующих принципов построения моделирующего алгоритма.
Рассмотрим такие принципы при использовании для моделирования обычных языков.
Одним из таких принципов является так называемый «принцип дельта t ». Он позволяет определить события в процессах через некоторые интервалы времени. То есть в каждый момент времени, отстоящий от предыдущего на «дельта t», рассматривается одно или несколько возможных состояний и связанные с ними процессы.
Но поскольку реально в системах процессы параллельны, то схема моделирующего алгоритма может быть такова:
1) Использование многопроцессорных вычислительных систем, где каждому процессору вводится в обязанность моделировать отдельный процесс. Однако число процессов в модели обычно намного больше числа процессоров.
На каждом процессоре свой процесс, от начала до конца... | |||||||||||||||||
2) Последовательный принцип моделирования процессов. Например: после появления в зоне действия ПВО j-й цели (состояние С1), моделируется ее движение, определяются параметры и характеристики цели. Если ее траектория пересекает зону поражения i-го средства (состояние С2), то при условии незанятости i-го средства моделируется стрельба (состояние С3), которая может закончиться уничтожением цели (состояние С4) или непоражением (С5), которое требует повторения стрельбы, если это возможно (С3). Уничтожение j-й цели - это переход к моделированию следующего процесса - появления j+1 цели. Этот способ имеет то преимущество, что максимально экономичен по расходу машинной памяти, так как используется информация только одного процесса, но он неэкономично расходует машинное время, не дает возможности решить оптимизационные задачи целераспределиня, а также не позволяет в полной мере учитывать взаимодействие процессов.
Процессы моделируются | |||||||
последовательно... |
3) Параллельный принцип моделирования процессов с использованием разбиения времени на дискреты. На каждом временном интервале моделируются все возможные процессы и состояния системы, но только в пределах данного интервала времени. (Принцип разделения времени). Проверка всех возможных состояний системы на предмет определения необходимости их моделирования в текущем интервале приводит к большому расходу машинного времени. Для увеличения быстродействия модели следует увеличивать интервал, однако это может привести к пропуску отдельных состояний процессов, что увеличивает неточность результатов моделирования.
... Процесс 1 ... | |||||||||||||
Каждый процесс поделен на интервалы | |||||||||||||
... Процесс 2 ... | и выполняются после- довательно части про- цессов, относящиеся | ||||||||||||
к одинаковому интер- валу... | |||||||||||||
... Процесс N ... | |||||||||||||
Для устранения последнего недостатка может быть использован метод «особых состояний». Он заключается в том, что временной дискрет моделирования не является константой, а рассчитывается каждый раз по известным характеристикам данного или предыдущего состояния модели. Получаемый интервал должен гарантировать попадание в него события - смену состояния какого-либо процесса, то есть появление нового особого состояния.
УЧЕБНЫЙ ВОПРОС 4
Общий подход к моделированию динамических систем.
Существенным недостатком универсальных алгоритмических языков типа PL/1, Pascal и т.д. является отсутствие единого методологического подхода к формальному описанию моделирующих систем.
Такой подход обеспечивается применением специализированных языков моделирования, которые предназначены:
а) служить методологическим инструментом, обеспечивающим единый подход к анализу и описанию различных систем;
б) обеспечивать возможность формального описания системы и автоматическую трансляцию такого описания на язык ЭВМ;
в) отображать в модели факторы, присущие исследуемой системе, и обеспечивать автоматическое выполнение служебных операций, например: продвижение системного времени;
г) обеспечивать наглядность и удобство описания систем, служить средством обмена информацией между исследователями.
Ранее мы рассмотрели общие понятия моделирования: процесс, состояние, оператор. Назовем еще несколько объектов.
Для полного описания процессов необходимо иметь средство, позволяющее строго регламентировать моменты времени ti выполнения операторов hi. В качестве такого средства в автоматизированной модели процесса водится специальный инициатор. Считается, что если происходит сцепление инициатора с элементарным оператором, то последний мгновенно выполняется и вычисляет соответствующее состояние системы. Задание момента времени сцепления отнесем к функциям текущего оператора.
Следующий объект это список активных времен (список будущих событий, управляющий список). Этот динамический список упорядочен по возрастанию времени. В нем хранятся: имя события (номер деятельности, номер события, идентификатор смены состояний), время события (время активизации, время сцепления) и указатель на информацию, относящуюся к данному событию (адрес данных).
Выбор (активизация) очередного события производится из начала списка. При этом управление передается (осуществляется сцепление) программе деятельности данного события. Эта программа представляет собой оператор или композицию операторов, которые позволяют выполнять вычисления, планирования и причинный вызов событий модели. Т.о. список активных времен является каждомоментным срезом всех событий модели. Из них только одно является активным, а поскольку обычно все события, которые уже произошли, из списка исключаются, то список содержит информацию о будущих (планируемых, пассивных) событиях.
В реальной системе могут иметь место одновременные события. Для того, чтобы моделировать совокупность одновременных событий необходимо предусмотреть операторы обнаружения факта одновременности и ее реализации в условиях зависимости событий.
Если же события не одновременны, то реализация их зависимости друг от друга должна обеспечиваться операторами удаления из управляющего списка отменяемых событий или их модификацией.
Принципиальным является понятие управляющего алгоритма. Он выполняет следующие основные функции:
-
ведение календаря событий;
-
активизацию программ деятельности;
-
контроль за наступлением момента окончания моделирования;
-
анализ приоритета сообщений и др.
Имеется несколько промышленных систем имитационного моделирования: GPSS, Симула, Симскрипт, ЦСЛ, НЕДИС, Слэнг, Стам-класс и другие.
Мы будем рассматривать моделирующую систему PSS или SimPas, которая была разработана в качестве учебной на нашей кафедре).
УЧЕБНЫЙ ВОПРОС 5
Принципы построения моделирующей системы PSS.
Моделирующая система PSS (Pascal Systеm for Simulation - Система на Паскале для Моделирования) - используется в качестве учебной при рассмотрении вопросов моделирования сложных динамических систем военного назначения. Поэтому она разрабатывалась с учетом того, чтобы она была достаточно простой в изучении и применении на вычислительных средствах кафедры. Для этой системы не создавался собственный компилятор, а использовались средства базовой версии языка Pascal, используемой в учебном процессе.
Моделирующая система на Паскале представляет собой библиотеку системных модулей и набор правил по использованию этой библиотеки. Данная система является расширением языка Pascal, ориентированным на создание моделей сложных систем.
Основная задача PSS-системы - моделирование последовательно происходящих событий, которые могут относиться к параллельно происходящим процессам (Параллельный принцип + метод Особых состояний, рассмотренные выше).
В основе PSS-системы лежать принципы системы SIMULA и ее упрощенных вариантов SIMSIM и SIMPLI, разработанных для обучения студентов МГУ основам построения моделирующих алгоритмов сложных систем на военной кафедре Войск ПВО. По аналогии с этими системами реализованный в ней псевдоязык можно назвать SimPas.
Для адаптирования к возможностям языка Pascal в данной системе по сравнению с SIMSIM и SIMPLI изменены некоторые операторы и вид структуры моделирующей программы.
Суть работы системы состоит в следующем:
Управляющий алгоритм системы каждый раз после выполнения определенной программы, связанной с обработкой происшедшего события модели, активизирует очередное событие, выбирая его из управляющего списка запланированных событий. Программы обработки событий могут планировать новые события или отменять уже запланированные в управляющем списке в соответствии с развитием процесса в модели. В управляющем списке, имеющем унифицированный вид, содержится основная информация о запланированных событиях: идентификатор события (номер), время наступления события и ссылка на дополнительную информацию (данные), относящуюся к событию. Структура этих данных определяется задачами модели, например: для однородных событий (с одинаковым номером), но принадлежащих к различным процессам, данные могут содержать идентификатор процесса.
Унификация списка позволяет составить библиотеку системных процедур, осуществляющих:
-
основные операции по планированию и отмене событий модели;
-
формирование случайных величин, необходимых в статистических моделях;
-
организацию подготовки управляющего списка, системных переменных;
-
организацию хода моделирования.
УЧЕБНЫЙ ВОПРОС 6
Структура моделирующей программы.
Моделирующая система создается на языке Pascal. Она должна включать операторы подключения библиотеки PSS и операторы PSSсистемы, используемые определенным образом. Общая структура моделирующей программы имеет следующий вид:
Program <Имя программы> (input, output); | |
Label <Список меток> Const <Список констант> | |
Type | |
%include ‘type.pss’; DataType=<описание типа данных>; | оператор подключения, описание DataType |
<описание типов, используемых в программе> | |
Var | |
%include ‘var.pss’; | оператор подключения |
<описание переменных, использ-х в программе> | |
%include ‘proc.pss’; | оператор подключения |
<процедуры и функции программы> | |
Begin | |
Initiate; | инициализация переменных |
<ввод исходных данных модели> | |
<моделирующих блок> | моделирующий алгоритм |
<вывод результирующих данных модели> | |
End. |
Моделирующий блок представляет собой следующую управляющую конструкцию на Паскале:
Моделирующий блок