ФЭНДОМ


1.     классификации языков моделирования

для машинного моделирования системы S' пригодны три способа проведения вычислений, в основе которых лежит применение цифровой, аналоговой и гибридной вычислительной техники рис. 1.

68767318

Рис. 1.

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

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

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

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

Представление системы S' в виде типовой схемы, в которой участвуют как непрерывные, так и дискретные величины, называется комбинированным. Состояние модели системы М(S') описывается набором переменных, некоторые из которых меняются во времени непрерывно. Законы изменения непрерывных компонент заложены в структуру, объединяющую дифференциальные уравнения и условия относительно переменных. Предполагается, что в системе могут наступать события двух типов:

1) события, зависящие от состояния системы;

2) события, зависящие от времени.

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

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

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

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

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

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

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

Язык моделирования должен обеспечить: 1) удобство описания процесса функционирования системы, 2) удобство ввода исходных данных, 3) составление и варьирование структуры, параметров модели, 4) реализуемость как детерминированного, так и статистического моделирования.

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

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

Позднее стали появляться системы моделирования, в основе которых был расширенный универсальный язык программирования. Рас¬ширение универсального языка, надстройка его учитывала специфику решаемого круга задач, специфику моделируемого объекта. К таким языковым средствам моделирования относится DSL (Digital Simula¬tion Language) фирмы IBM для моделирования непрерывных систем.

Дальнейшим развитием стала система CSMP, в основе которой были заранее запрограммированные функциональные блоки, наподобие блоков на аналоговых машинах. Расширенный ФОРТРАН в системе CSMP включал возможности обращения манипуляции этими блоками при разработке программы, реализующей ту или иную модель. Здесь широко используются операторы Фортрана. Однако в подобных системах большинство трудностей моделирования сохранилось.

Подобные языки называют еще моделирующими языками высокого уровня или универсальными моделирующими языками.

Разработан ряд моделирующих языков высокого уровня для моделирования дискретных систем, систем массового обслуживания. Таких, как SIMULA, SIMSCRIPT, GPSS, CSL и др.

SIMULA представляет собой расширение языка АЛГОЛ, SIMSCRIPT — расширение Фортрана. Наибольшее распространение из этих языков получил язык GPSS. В GPSS важное место занимает обработка таких объектов, как транзакты (сообщения, заявки, запросы).

Языки моделирования цифровых систем в основном обеспечивают задачи разработки цифровой аппаратуры. Их называют HDL или на русском языке — языки описания аппаратуры (ЯОА). Наиболее известным и эффективным ЯОА сегодня является язык VHDL. VHDL является единым, общим языком описания моделей и проектирования электронных устройств, начиная с вентильного, регистрового уровней и кончая уровнем описания вычислительных систем. Но основное назначением языка VHDL — описание заданий на моделирование.

Для моделирования непрерывных динамических систем получил распространение язык CSMP, который реализует пакетный режим взаимодействия с пользователем. Появились и другие языки и системы моделирования непрерывных процессов, такие как MIDAS, PACTOLUS, CSSL. К отечественным языкам и системам моделирования непрерывных динамических систем относятся МАСЛИН и МАСС (разработанные сотрудниками МЭИ). Примерами языков, реализующих комбинированное моделирование являются GASP, НЕДИС и МИКС.

GASP является расширением языка ФОРТРАН. Здесь непрерывные алгоритмы моделируются дифференциальными уравнениями, а дискретные процессы представляются в виде событий, наступление которых зависит от процесса функционирования системы. Событие — переход системы из одного состояния в другое в соответствии с принятыми правилами.

НЕДИС — язык моделирования непрерывно-дискретных систем разработан сотрудниками Института кибернетики Академии наук Украины. НЕДИС создан на основе алгоритмических языков высокого уровня и относится к системам программирования универсального типа, т.е. языки GASP и НЕДИС относятся к процедурным языкам программирования.

МИКС (моделирование имитационное комбинированных систем) представляет собой удобное средство моделирования. Как и язык МАСЛИН, МАСС система МИКС имеет в своей основе блочно-ориентированный язык с непроцедурной технологией программирования, позволяющей легко и быстро моделировать исследуемую систему, осуществлять быстрое преобразование модели, воспроизводить реально действующие сигналы и организовать вычислительный эксперимент. Блочные языки и соответствующие программные модули позволяют легко реализовать динамическое распределение памяти посредством размещения во внешнее запоминающее устройство (ВЗУ) больших библиотек модулей, извлекать их по мере необходимости, пересылать их в оперативную память.

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

Для нас интерес представляют средства моделирования, встроенные в упомянутые системы. В этих комплексных системах используются такие средства моделирования как SYSTEM BULD и SIMULINK. Языки моделирования этих средств блочно-ориентированные и близки к языку моделирования системы МАСС. Но поскольку SYSTEM BULD и SIMULINK являются подсистемами комплексных систем, то освоение технологии работы с ними требует дополнительных знаний помимо знания языка моделирования. Например, SIMULINK не может работать без матричной системы MATLAB. Другими словами, средствам моделирования в этих системах принадлежит вторичная роль.