Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ СИСТЕМ




 

Основы систематизации языков имитационного моделирования.Использование современных ЭВМ и вычислительных комплексов и сетей является мощным средством реализации имитационных моделей и исследования с их помощью характеристик процесса функционирования систем S. В ряде случаев в зависимости от сложности объекта моделирования, т. е. системы S, рационально использование персональных ЭВМ (ПЭВМ) или локальных вычислительных сетей (ЛВС). В любом случае эффективность исследования системы S на программно-реализуемой модели Мм прежде всего зависит от правильности схемы моделирующего алгоритма, совершенства программы и только косвенным образом зависит от технических характеристик ЭВМ, применяемой для моделирования. Большое значение при реализации модели на ЭВМ имеет вопрос |правильного выбора языка моделирования.

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

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

Рассмотрим основные понятия, связанные с алгоритмическими языками и их реализацией на ЭВМ вообще и языками моделирова­ния в частности.

Язык программирования представляет собой набор символов, распознаваемых ЭВМ и обозначающих операции, которые можно реализовать на ЭВМ. На низшем уровне находится основной язык машины, программа на котором пишется в кодах, непосредственно соответствующих элементарным машинным действиям (сложение, запоминание, пересылка по заданному адресу и т. д.). Следующий уровень занимает автокод (язык АССЕМБЛЕРА) вычислительной машины. Программа на автокоде составляется из мнемонических символов, преобразуемых в машинные коды специальной програм­мой — ассемблером.

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

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

Программа, составленная в машинных кодах или на языке АС­СЕМБЛЕРА, всегда отражает специфику конкретной ЭВМ. Инст­рукции такой программы соответствуют определенным машинным операциям и, следовательно, имеют смысл только в той ЭВМ, для которой они предназначены, поэтому такие языки называются ма­шинно-ориентированными языками.

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

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

Особенности использования алгоритмических языков.Рассмот­рим преимущества и недостатки использования для моделирования процесса функционирования систем языков имитационного модели­рования (ЯИМ) и языков общего назначения (ЯОН), т. е. универсаль­ных и процедурно-ориентированных алгоритмических языков. Це­лесообразность использования ЯИМ вытекает из двух основных причин: 1) удобство программирования модели системы, играющее существенную роль при машинной реализации моделирующих ал­горитмов; 2) концептуальная направленность языка на класс систем, необходимая на этапе построения модели системы и выборе общего направления исследований в планируемом машинном эксперимен­те. Практика моделирования систем показывает, что именно ис­пользование ЯИМ во многом определило успех имитации как метода экспериментального исследования сложных реальных объектов.

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

Несмотря на перечисленные преимущества ЯИМ, в настоящее время выдвигаются основательные аргументы как технического, так и эксплуатационного характера против полного отказа при модели­ровании от универсальных и процедурно-ориентированных языков. Технические возражения против использования ЯИМ: вопросы эффективности рабочих программ, возможности их отладки и т. п. В качестве эксплуатационных недостатков упоминается нехватка документации по существующим ЯИМ, сугубо индивидуальный характер соответствующих трансляторов, усложняющий их реали­зацию на различных ЭВМ, и трудности исправления ошибок. Сни­жение эффективности ЯИМ проявляется при моделировании задач более разнообразных, чем те, на которые рассчитан конкретный язык моделирования. Но здесь следует отметить, что в настоящее время не существует и ЯОН, который был бы эффективен при решении задач любого класса.

Серьезные недостатки ЯИМ проявляются в том, что в отличие от широко применяемых ЯОН, трансляторы с которых включены в поставляемое изготовителем математическое обеспечение всех современных ЭВМ, языки моделирования, за небольшим исключе­нием, разрабатывались отдельными организациями для своих до­статочно узко специализированных потребностей. Соответству­ющие трансляторы плохо описаны и приспособлены для эксплу­атации при решении задач моделирования систем, поэтому, несмот­ря на достоинства ЯИМ, приходится отказываться от их практичес­кого применения в ряде конкретных случаев.

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

Подходы к разработке языков моделирования.К настоящему времени сложились два различных подхода к разработке языков моделирования: непрерывный и дискретный — отражающие основ­ные особенности исследуемых методом моделирования систем. Поэтому ЯИМ делятся на две самостоятельные группы, которые соответствуют двум видам имитации, развивавшимся независимо друг от друга: для имитации непрерывных и дискретных процессов.

Для моделирования непрерывных процессов могут быть исполь­зованы не только АВМ, но и ЭВМ, последние при соответствующем программировании имитируют различные непрерывные процессы. При этом ЭВМ обладают большей надежностью в эксплуатации и позволяют получить высокую точность результатов, что привело к разработке языков моделирования, отображающих модель в виде блоков таких типов, которые играют роль стандартных блоков АВМ (усилителей, интеграторов, генераторов функций и т. п.). Заданная схема моделирующего алгоритма преобразуется в систему совместно рассматриваемых дифференциальных уравнений. Моде­лирование в этом случае сводится, по сути дела, к отысканию численных решений этих уравнений при использовании некоторого стандартного пошагового метода.

Примером языка моделирования непрерывных систем на ЭВМ путем представления моделируемой системы в виде уравнений в ко­нечных разностях является язык DYNAMO, для которого уравнения устанавливают соотношения между значениями функций в момен­ты времени t и t+dt между значениями их производных в момент времени t+dt/2. И в этом случае моделирование, по существу, представляет собой пошаговое решение заданной системы диффере­нциальных уравнений.

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

Архитектура языков моделирования.Архитектуру ЯИМ, т. е. концепцию взаимосвязей элементов языка как сложной системы, и технологию перехода от системы S к ее машинной модели Мм мо­жно представить следующим образом: 1) объекты моделирования (системы S) описываются (отображаются в языке) с помощью некоторых атрибутов языка; 2) атрибуты взаимодействуют с про­цессами, адекватными реально протекающим явлениям в моделиру­емой системе S; 3) процессы требуют конкретных условий, опреде­ляющих логическую основу и последовательность взаимодействия этих процессов во времени; 4) условия влияют на события, име­ющие место внутри объекта моделирования (системы S) и при взаимодействии с внешней средой Е; 5) события изменяют состоя­ния модели системы М в пространстве и во времени.

Типовая схема архитектуры ЯИМ и технология его использова­ния при моделировании систем показана на рис. 10.

 

Рис. 10. Типовая схема архитектуры ЯИМ и технология его использования

 

В большинстве случаев с помощью машинных моделей исследу­ются характеристики и поведение системы S на определенном от­резке времени, поэтому одной из наиболее важных задач при созда­нии модели системы и выборе языка программирования модели является реализация двух функций: 1) корректировка временной координаты состояния системы («продвижение» времени, организа­ция «часов»); 2) обеспечение согласованности различных блоков и событий в системе (синхронизация во времени, координация с другими блоками).

Таким образом, функционирование модели Мм должно проте­кать в искусственном (не в реальном и не в машинном) времени, обеспечивая появление событий в требуемом логикой работы ис­следуемой системы порядке и с надлежащими временными интерва­лами между ними. При этом надо учитывать, что элементы реаль­ной системы S функционируют одновременно (параллельно), а ком­поненты машинной модели Мм действуют последовательно, так как реализуются с помощью ЭВМ последовательного действия. По­скольку в различных частях объекта моделирования события могут возникать одновременно, то для сохранения адекватности причин­но-следственных временных связей необходимо в ЯИМ создать «механизм» задания времени для синхронизации действий элемен­тов модели системы.

Задание времени в машинной модели.Существует два основных подхода к заданию времени: с помощью постоянных и переменных интервалов времени, которым соответ­ствуют два принципа реализации моделирующих алгоритмов, т. е. «принцип Dt» и «принцип d z».

У каждого из этих методов есть свои преимущества с точки зрения адекватного отражения реальных событий в системе S и за­трат машинных ресурсов на моделирование. При использовании «принципа d z» события обрабатываются последовательно и время смещается каждый раз вперед до начала следующего события. В модели, построенной по «принципу Dt», обработка событий про­исходит по группам, пакетам или множествам событий. При этом выбор Dt оказывает существенное влияние на ход процесса и резуль­таты моделирования, и если Dt задана неправильно, то результаты могут получиться недостоверными, так как все события появляются в точке, соответствующей верхней границе каждого интервала мо­делирования. При применении «принципа d z» одновременная об­работка событий в модели имеет место только тогда, когда эти события появляются одновременно и в реальной системе. Это позволяет избежать необходимости искусственного введения ран­жирования событий при их обработке в конце интервала Dt.

При моделировании по «принципу Dt» можно добиться хорошей аппроксимации: для этого Dt должно быть малым, чтобы два неодновременных события не попали в один и тот же временной интервал. Но уменьшение Dt приводит к увеличению затрат машинного времени на моделирование, так как значительная часть тратит­ся на корректировку «часов» и отслеживание событий, которых в большинстве интервалов может и не быть. При этом даже при сильном «сжатии» Dt два неодновременных события могут попасть в один и тот же временной интервал Dt, что создает ложное представление об их одновременности.

Для выбора принципа построения машинной модели Мм и со­ответственно ЯИМ необходимо знать: цель и назначение модели; требуемую точность результатов моделирования; затраты машин­ного времени при использовании того или иного принципа; необ­ходимый объем машинной памяти для реализации модели, построенной по принципу Dt и d z; трудоемкость программирования моде­ли и ее отладки.

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

Совмещение.Параллельно протекающие в реальных системах S процессы представляются с помощью последовательно работа­ющей ЭВМ. Языки моделирования позволяют обойти эту труд­ность путем введения понятия системного времени, используемого для представления упорядоченных во времени событий.

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

Изменения.Динамические системы связаны с движением и харак­теризуются развитием процесса, вследствие чего пространственная конфигурация этих систем претерпевает изменения по времени. Поэтому во всех ЯИМ предусматривают обработку списков, от­ражающих изменения состояний процесса функционирования моде­лируемой системы S.

Взаимосвязанность.Условия, необходимые для свершения раз­личных событий в модели Мм процесса функционирования системы S, могут оказаться весьма сложными из-за наличия большого коли­чества взаимных связей между компонентами модели. Для разреше­ния связанных с этим вопросом трудностей в большинство ЯИМ включают соответствующие логические возможности и понятия теории множеств.

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

Анализ.Для получения наглядного и удобного в практическом отношении ответа на вопросы, решаемые методом машинного мо­делирования, необходимо получать статистические характеристики процесса функционирования модели системы М(S). Поэтому предусматривают в языках моделирования способы статистической об­работки и анализа результатов моделирования.

Перечисленным требованиям при исследовании и проектирова­нии различных систем S отвечают такие наиболее известные языки моделирования дискретных событий, как SIMULA, SIMSCRIPT, GPSS, SOL, CSL и др.

Основы классификации языков моделирования.Как уже отмеча­лось, для машинного моделирования системы S пригодны три способа проведения вычислений, в основе которых лежит примене­ние цифровой, аналоговой и гибридной вычислительной техники. Рассмотрим методы моделирования систем с точки зрения исполь­зования языков программирования. Классификация языков для программирова­ния моделей систем имеет вид, приведенный на рис. 5.3.

Для моделирования систем используются как универсальные и процедурно-ориентированные ЯОН, так и специализированные ЯИМ. При этом ЯОН предоставляют программисту-разработчику модели Mм больше возможностей в смысле гибкости разработки, отладки и использования модели. Но гибкость приобретается ценой больших усилий, затрачиваемых на программирование модели, так как организация выполнения операций, отсчет системного времени и контроль хода вычислений существенно усложняются.

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

В основе рассматриваемой классификации в некоторых ЯИМ лежит принцип формирования системного времени. Так как «системные часы» предназначены не только для продвижения си­стемного времени в модели Мм, но также для синхронизации раз­личных событий и операций в модели системы S, то при отнесении того или иного конкретного языка моделирования к определенному типу нельзя не считаться с типом механизма «системных часов».

Рис. 11. Классификация языков для программирования моделей систем

 

Непрерывное представление системы S сводится к составлению уравнений, с помощью которых устанавливается связь между эн­догенными и экзогенными переменными модели. Примером такого непрерывного подхода является использование дифференциальных уравнений. Причем в дальнейшем дифференциальные уравнения могут быть применены для непосредственного получения харак­теристик системы, это, например, реализовано в языке MIMIC. А в том случае, когда экзогенные переменные модели принимают Дискретные значения, уравнения являются разностными. Такой под-код реализован, например, в языке DYNAMO.

Представление системы S в виде типовой схемы, в которой участвуют как непрерывные, так и дискретные величины, называет­ся комбинированным.Примером языка, реализующего комбини­рованный подход, является GASP, построенный на базе языка FORTRAN. Язык GASP включает в себя набор программ, с помо­щью которых моделируемая система S представляется в следу­ющем виде. Состояние модели системы M(S) описывается набором переменных, некоторые из которых меняются во времени непрерывно. Законы изменения непрерывных компонент заложены в структуру, объединяющую дифференциальные уравнения и условия от­носительно переменных. Предполагается, что в системе могут на­ступать события двух типов: 1) события, зависящие от состояния zj; 2)события, зависящие от времени ti. События первого типа наступа­ют в результате выполнения условий, относящихся к законам изме­нения непрерывных переменных. Для событий второго типа процесс моделирования состоит в продвижении системного времени от мо­мента наступления события до следующего аналогичного момента. События приводят к изменениям состояния модели системы и зако­нов изменения непрерывных компонент...

Языки моделирования дискретных систем.

В рамках дискретного подхода можно выделить несколько принципиально различных групп ЯИМ.

группы ЯИМ. 1)подразумевает наличие списка событий, отличающих моменты начала выполнения операций. Продвижение времени осуществляется по событиям, в моменты наступления которых производятся необходимые операции SIMSCRIPT. Моделирование с помо­щью языка SIMSCRIPT включает в себя следующие этапы: а) элементы моделируемой системы S описываются и вводятся с помощью карт определений; б) вводятся начальные условия; в) фиксиру­ются и вводятся исходные значения временных параметров; г) составляются подпрограммы для каждого события; д) составляется перечень событий и указывается время свершения каждого эндоген­ного события. Команды языка SIMSCRIPT группируются следующим образом: операции над временными объектами, арифмети­ческие и логические операции и команды управления, команды ввода-вывода, специальные команды обработки результатов. К центральным понятиям языка SIMSCRIPT относятся обработка списков с компонентами, определяемыми пользователем, и последова­тельность событий в системном времени. При этом имеются специ­альные языковые средства для работы с множествами.

2)после пересчета системного времени, просмотр действий сцелью проверки выполнения условий начала или окончания какого-либо действия производится непрерывно. Просмотр действий определяет очередность появления событий. Языки дан­ного типа имеют в своей основе поисковый алгоритм, и динамика системы S описывается в терминах действий. FORSIM, представляющий собой пакет прикладных программ, который позволяет оперировать только фиксированными массивами данных, Язык FORSIM удобен для описания систем с большим числом разнообразных ресурсов, так как он позволяет записывать условия их доступности в компактной форме.

3)поведение которых определяется процессами. под процессом понимается последовательность событий, связь между которыми устанавливается с помощью набора отношений. Динамика заложена в независимо управляемых программах, которые в сово­купности составляют программу процесса. SIMULA, в котором осуществляется блочное представление системы S cиспользованием понятия процесса для формализации элементов, на которые разбивается моделируемая система. Процесс задается набором признаков, характеризующих его структуру, и программой функционирования. Функци­онирование каждого процесса разбивается на этапы, протекающие в системном времени.

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

4) GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. В процессе имитации транзакты «создаются» и «уничтожаются». Функцию каждого из них можно представить как движение через модель Mм с поочередным воздействием на ее блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше. Данные для ЭВМ подготавливаются в виде пакета управляющих и определяющих карт, который составляется по схеме модели, набранной из стандартных символов. Созданная GPSS-программа, работая в режиме интерпретации, генерирует и передает транзакты из блока в блок в соответствии с правилами, устанавливаемыми блоками. Каждый переход транзакта приписывается к определен­ному моменту системного времени.

Таблица 5

Возможности языка   Простота применения   Предпочтение пользователя  
SIMULA SIMSCRIPT GPSS   GPSS SIMSCRIPT SIMULA   SIMSCRIPT GPSS SIMULA  

 

Перечисленные особенности ЯИМ во многом определяют воз­можности выбора того или иного языка для целей проведения имитационного эксперимента с моделью системы S, причем в каж­дом конкретном случае на выбор языка моделирования оказывают влияние многие факторы его практической реализации. Задачи вы­бора ЯИМ должны рассматриваться как одна из комплекса задач, решаемых при автоматизации процесса моделирования систем с ис­пользованием современных ЭВМ.







Дата добавления: 2014-12-06; просмотров: 2157. Нарушение авторских прав

codlug.info - Студопедия - 2014-2017 год . (0.156 сек.) русская версия | украинская версия