Среди большого числа пакетов визуального моделирования пакет MatLab занимает особое место. Первоначально ориентированный на исследовательские проекты, пакет в последнее время стал незаменимым рабочим инструментом. Одной из основных причин широкого использования MatLab является широкий набор средств, предоставляемых пользователю для решения разнообразных инженерных и научных задач. Среди этих средств особое место занимает подсистема Simulink.
Основные свойства подсистемы Simulink – интерактивная среда для моделирования и анализа широкого класса динамических систем, использующая графический язык блок-диаграмм.
Подсистема Simulink:
а) предоставляет возможность моделирования непрерывных, дискретных и гибридных - как линейных, так и нелинейных – систем;
б) включает в себя обширную библиотеку блоков (непрерывные элементы, дискретные элементы, математические функции, нелинейные элементы, источники сигналов, средства отображения, дополнительные блоки), которые можно использовать для создания новых систем;
в) позволяет объединять блок-диаграммы в составные блоки, что обеспечивает иерархическое представление структуры модели;
г) содержит средства для создания блоков и библиотек, определяемых пользователем;
д) даёт возможность проектировать подсистемы, имеющие изменяемую во времени структуру, но эти возможности весьма ограничены.
Начиная с версии 3.0, в Simulink появились специализированные приложения, значительно расширившие её возможности, в частности:
а) подсистема StateFlow – даёт возможность моделировать поведение гибридных или сложных событийно-управляемых систем, базируясь на картах состояния Харела. Уже созданные пользователями пакета Simulink модели рассматриваются как объекты, закон управления которыми реализуется в StateFlow.
б) подсистема StateFlow Coder предназначена для генерации С-кода при реализации диаграмм StateFlow. Применяя StateFlow и StateFlow Coder? пользователь может генерировать нужный код на алгоритмическом языке С только для управляющих моделью блоков, реализованных с помощью StateFlow;
в) подсистема Real-Time WorkShop дополняет Simoink и StateFlow Coder? обеспечивая автоматическую генерацию кода С для моделей, разработанных в Simulink;
г) подсистема Simulink Report Generator позволяет создавать и настраивать отчеты из моделей Simulink и StateFlow в различных форматах, среди которых HTML? RTF? XML и SGML.[7]
Model Vision Studium
Model Vision Studium(MVS) – это интегрированная графическая оболочка для быстрого создания интерактивных визуальных моделей сложных динамических систем и проведения вычислительных экспериментов с ними. Пакет MVS 3.2 работает на Intel-совместимых компьютерах в среде MS Windows 95/98/2000. Пакет занимает примерно 15 Мбайт на жестком диске и не предъявляет к компьютеру никаких особых требований. Кроме наличия аппаратной поддержки операций с плавающей точкой.
Пакет MVS 3.2 разработан исследовательской группой «Экспериментальные объектные технологии» (XJ), созданной на кафедре «Распределенные вычислительные сети» факультета Технической Кибернетики Санкт-Петербургского Государственного Технического Университета.
Ключевыми проблемами при разработке MVS 3.2 являлись:
а) поддержка технологии объектно-ориентированного моделирования (ООМ);
б) удобное и адекватное описание гибридных (непрерывно-дискретных) систем;
в) обеспечение достоверности численного решения;
г) обеспечение моделирования и визуализации результатов без написания какого-либо программного кода.
Технология моделирования в MVS.
Как и в большинстве других современных графических инструментов моделирования, в основе технологии MVS лежит понятие виртуального лабораторного стенда. На этом стенде размещаются различные виртуальные блоки моделируемой системы – вновь создаваемые и стандартные, такие как «генераторы сигналов», «измерительные приборы», «устройства отображения», соединенные виртуальными «кабелями». Вся виртуальная квазиаппаратура функционирует независимо и параллельно, подобно её физическим двойникам «в металле».
Для получения виртуального стенда необходимо описать моделируемую систему на входном языке пакета и создать соответствующий этому описанию программный код, выполнение которого компьютером и будет восприниматься как работа стенда. Структура пакета MVS приведена на рис. 3.1
Интегрированная оболочка пакета представляет собой многооконную среду позволяющую редактировать проект, автоматически преобразовывать графическое описание модели в текстовое и текстовое в графическое, подключать библиотеки в классов, создавать свои библиотеки классов, создавать выполняемые модели и запускать их, а также запускать специальные подсистемы(оптимизации и символического анализа).
Предполагается, что каждой модели (проекту) соответствует определенная папка, в которой хранятся файл внутреннего представления проекта (mvb), файлы установок проекта и выполняемой модели (ini), а также картинки для анимации, DLL пользователя и т.п. Описание проекта и библиотек классов хранится виде дерева объектов в объектно-ориентированной базе данных MVBase (отдельный файл с расширением mvb на каждый проект и библиотеку классов). Библиотеки классов (за исключением стандартной библиотеки SysLib) являются обычными проектами, их могут создавать и редактировать пользователи.
Описание проекта пользователь может вводить и редактировать как в визуальном, так и в текстовом виде. При открытии в интегрированной среде какого-либо проекта его внутреннее представление автоматически разворачивается в визуальное представление. В любой момент с помощью специальной команды может быть получено текстовое описание проекта на специальном языке Model Vision Language (MVL), включающее в себя два текстовых файла: собственно функциональное описание (расширение mvl) и описание визуальных элементов (расширение pra). Импорт проекта из текстового представления осуществляется специальным MVL-компилятором.[4]
Описание проекта включает в себя описание классов и устройств, глобальных констант и алгоритмических процедур и функций, а также описание конкретной конфигурации виртуального стенда, с которой будет проводиться вычислительный эксперимент. Предполагается, что виртуальный стенд является устройством-контейнером TestBench – экземпляром предопределенного класса _CTestBench . Пользователю необходимо поместить в его локальную структуру конкретные локальные устройства – экземпляры классов, определенных в данном проекте или импортируемых из подключенных к проекту библиотек классов. Стандартная библиотека классов SysLib, включающая определения типовых блоков (линейные и нелинейные блоки, генераторы сигналов и т.д.), подключена к любому проекту по умолчанию. При создании выполняемой модели программный код создается только для классов, реально используемых (прямо или косвенно, через другие классы) в TestBench.
Рис. 3.1
Все визуальные редакторы работают в режиме так называемой «инкрементальной компиляции», т.е. по завершении ввода какой-либо законченной конструкции они немедленно проверяют её синтаксическую и семантическую правильность в контексте уже существующего описания и при обнаружении ошибок выводят соответствующие сообщения.
При генерации выполняемой модели сначала проводится полный комплексный анализ контроль классов, используемых в TestBench, а затем для каждого класса генерируется соответствующий программный модуль на промежуточном языке программирования и в зависимости от типа модели генерируется соответствующий главный модуль программы. Затем полученная программа компилируется с помощью компилятора командной строки для промежуточного языка. На этом этапе к сгенерированным модулям присоединяются стандартные модули промежуточного языка и библиотека периода исполнения (RTL) пакета MVS для данного промежуточного языка.
В MVS 3.2 возможны три типа выполняемых моделей:
а) визуальная интерактивная модель в виде 32-разрядного приложения для MS Windows;
б) «скрытая» модель в виде 32-разрядной DLL для MS Windows;
в) визуальная интерактивная модель в виде Java-приложения, выполняемая на любой платформе, где имеется виртуальная машина Java. В версии 3.2 визуальная Java-модель не поддерживает векторных и матричных переменных, а также анимации.
При генерации моделей для Windows в качестве промежуточного языка используется Object Pascal 10.0 (Borland Delphi 3). Необходимые для компиляции модули устанавливаются автоматически при инсталляции пакета MVS.
При генерации Java-моделей пользователь должен предварительно установить на своём компьютере JDK 1.2.
В описании проекта пользователь может употреблять свои собственные внешние процедуры и функции, программную реализацию которых он должен выполнить в соответствующих DLL или Java-классах.