logo
Моделирование процесса изменения рыночных цен по критерию уровня активов

Выбранная исполняемая среда - Model Vision Studium

Существую много средств моделирования. Я в своей работе выбрала Model Vision Studium. Программный комплекс Model Vision Studium (MVS) как и ближайшая к нему по функциональным возможностям подсистема Simulink пакета Matlab, предназначен для моделирования сложных динамических систем. Но, в отличие от Simulink, MVS является представителем ранее описанного второго подхода к проблеме моделирования сложных динамических систем, основанного на использовании схемы гибридного автомата. Этот подход основан на использовании нового типа объекта - активного динамического объекта и специальной формы наглядного представления гибридного поведения - карты поведения.

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

Устройство

Основным «строительным» элементом в процессе построения модели в MVS является устройство (devicе). Устройство - это некоторый активный объект, функционирующий параллельно и независимо от других объектов в непрерывном времени. Устройство представляет собой систему типа «вход - выход - состояние» (или просто «вход - выход») и может быть как простым, так и составным. В общем случае в описании устройства содержатся следующие элементы: входы, выходы, переменные состояния, поведение, локальная структура, анимация.

По аналогии с классами, используемыми в объектно-ориентированных языках, в MVS введено новое понятие - класс устройств. Все устройства в MVS по умолчанию являются потомками предопределенного класса СDevice. Описание нового устройства всегда строится как описание класса устройств, а при компоновке модели используются его экземпляры. Новый класс устройств может наследовать свойства любого другого уже существующего класса. Класс-потомок наследует все элементы описания класса-предка, а также может содержать новые элементы и переопределять унаследованные элементы.

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

Карта поведения

Карта поведения (behavior chart или B-chart) - это ориентированный граф, в котором узлам приписываются некоторые локальные поведения, а дуги интерпретируются как переходы от одного поведения к другому. В каждый момент времени один из узлов графа является текущим. Когда узел становится текущим, создается экземпляр приписанного ему локального поведения, который уничтожается, когда узел перестает быть текущим. Смена текущего узла происходит в результате срабатывания переходов. Один из узлов должен быть помечен как начальный, он становится текущим когда становиться активным экземпляр устройства, к которому принадлежит данная карта поведения.

Локальное поведение в узле может быть задано как непрерывное поведение, карта поведения (в этом случае узел называется гиперузлом) или пустое поведение NULL.

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

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

Запуск пакета MVS и создание нового проекта

Перед построением модели необходимо предварительно загрузить пакет MVS. Для запуска пакета MVS достаточно выбрать в Главном меню (если работа производиться в операционной системе Windows) пункта Programs/Model Vision Studium. В результате появиться основное окно пакета "Model Vision Studium 3.0". имитационный моделирование цена автомат

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

Для создания нового проекта необходимо выбрать команду меню "Project/New..." или нажать левую кнопку на панели инструментов. В результате на экране появится диалоговое окно "New Project Workspace " (рис.4.1), в котором необходимо указать имя нового проекта и путь до желаемого местоположения проекта. После нажатия кнопки "Create" в папке, указанной ранее при описании пути (если папки не существовало, то она будет создана) появится локальная папка с именем, аналогичным имени созданного проекта, которая и будет «рабочим пространством» проекта.

Рис. 4.1

Редактирование описания модели

После создания нового проекта в главном окне одновременно появятся два самых необходимых окна проекта: Окно Управляющего Проекта - "Project Manager" и Окно Управляющего Вычислительным Экспериментом - "Test Bench" (рис.4.2). Как и следует из названий, окно Project Manager отражает дерево атрибутов проекта и предназначено для создания новых классов устройств и управления проектом в целом, а в специальном устройстве-контейнере окна Test Bench пользователь должен "собрать" моделируемую систему (набор устройств, соединенных функциональными связями), с которой затем будет проводиться вычислительный эксперимент.

Рис. 4.2

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

Задание класса устройств и его переменных

Для того, чтобы задать новый класс устройств, необходимо в окне Test Bench нажать кнопку  и в появившемся диалоговом окне выбрать пункт New Class. Затем необходимо в окне Test Bench подвести появившийся крестообразный курсор к месту, где необходимо разместить левый верхний угол нового устройства, затем нажать на левую кнопку мышки и, не отпуская ее, растянуть прямоугольник, изображающий новое устройство. После необходимо отпустить кнопку мышки, в результате чего в окне Test Bench появится изображение экземпляра устройства с именем Dev_1 по умолчанию.

Чтобы изменить имя устройства, необходимо выделить поле имени и выполнить команду Edit или просто дважды щелкните мышью в этом поле. Окончание редактирования происходит при нажатии клавиши "Enter" или щелчку мыши за пределами элемента редактирования, отказ от изменений - при нажатии "Esc".

Обратите внимание: как только пользователь создал прообраз нового устройства, в окне Project Manager автоматически появился новый класс Class_1. Для того чтобы наполнить вновь созданный класс соответствующим содержимым, необходимо перейти в окно редактирования класса. Это можно сделать двумя способами:

в окне Test Bench необходимо щелкнуть правой кнопкой мышки в поле прямоугольника, соответствующего созданному устройству, а затем выполнить команду "Class" в появившемся всплывающем меню;

в окне Project Manager необходимо раскрыть узел "Device Classes", выделить элемент "Class_1" и дважды щелкнуть на нем мышкой или выполнить команду меню "Edit".

В результате появиться окно редактирования класса (рис.4.3).

Для того, чтобы ввести новые параметры, входные или выходные переменные, статические переменные или константы в классе, необходимо выделить узел "Parameters" (или другой) в окне редактирования класса и нажать кнопку  или выполнить команду "Edit/Add..." главного командного меню. На экране появится диалоговое окно, с помощью которого можно ввести имя параметра, выбрать его тип, указать значение по умолчанию и ввести комментарий, поясняющий назначение параметра. При задании значений параметров могут использоваться выражения, содержащие элементарные функции и значения других параметров или переменных (при условии, что взаимные ссылки не образуют циклов, что проверяется при вводе).

Рис. 4.3

Для того, чтобы добавить входные и выходные переменные в классе, необходимо выделить соответственно узлы "Inputs" и "Outputs" и далее действовать по той же схеме, что описана ранее. При добавлении выходной переменной (и входной) дополнительно возникнет окно структуры, в котором необходимо указать нажатием левой кнопки мышки в соответствующей точке требуемое положение выхода или входа. Стрелки, соответствующие входам и выходам, располагаются на сторонах прямоугольника, изображающего устройство.

Создание карты поведения

Для того, чтобы задать карту поведения данного класса устройств, необходимо дважды щелкнуть левой кнопкой мышки на узле "Main B-Chart" окна редактирования класса. В появившимся окне главной карты поведения появиться узел Init (унаследованный от класса CDevice) (рис.4.4). Этот узел является начальным узлом карты поведения. Для того, чтобы создать новый узел, необходимо выбрать вторую сверху кнопку на вертикальной панели инструментов окна главной карты поведения, подвести появившийся крестообразный курсор к месту, где необходимо разместить новый узел и, удерживая левую кнопку мышки, растянуть прямоугольник с закругленными краями (символизирующий узел). Для того, чтобы соединить два узла, необходимо выбрать кнопку  и, нажав левую кнопку мышки на символе узла от которого ведется переход (при этом появиться знак + в кружочке) провести курсором прямую к символу другого узла (пока опять не появиться знак + в кружочке) и затем отпустить кнопку. Узел обладает рядом свойств, доступ к которым открывается при нажатии правой кнопки мышки в его поле.

Для того, чтобы задать непрерывное поведение в узле, необходимо (открыв таким способом всплывающее меню) выполнить команду "Create local Continuous behavior". В результате этих действий в описании класса появится новое непрерывное поведение Equations_1, а также появится соответствующее ему окно Редактора формул (рис.4.5). Тот же результат может быть достигнут и другой последовательностью действий: сначала в окне описания класса создается новая функция непрерывного поведения, а затем способом "drag and drop" буксируется в окно главной карты поведения и «кладется» на изображение узла. Изображение узла после этого будет нарисовано толстой сплошной линией - это означает, что узлу приписано некоторое непрерывное локальное поведение. Если узлу приписана локальная карта поведения, то он изображается двойной тонкой линией (для того, чтобы задать локальную карту поведения, необходимо выбрать во всплывающем меню пункт Create local B-chart).

В окне непрерывного поведения можно с помощью соответствующей кнопки или всплывающего меню добавить любой из описанных ранее типов уравнений (см. рис.4.5).

Рис. 4.4

Рис. 4.5

Наследование класса устройств

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

дважды щелкнуть мышкой на поле Superclass в окне описания нового класса и в появившемся диалоге выбрать в качестве суперкласса необходимый класс;

просто перетащить мышью класс-предок из окна Project Manager на поле Superclass окна описания класса-потомка. После этого класс-потомок сразу унаследует все элементы описания класса-предка (унаследованные элементы отмечены направленными вверх синими стрелками). Кроме унаследованных, класс может обладать и некоторыми своими свойствами.

Запуск модели в MVS

Для начала необходимо сохранить изменения, произведенные при редактировании модели. Для этого надо выбрать в главном меню пункт Project/Save или нажать кнопку . Теперь можно нажать кнопку  на инструментальной панели главного окна или выполнить команду "Model/Run...".

После нажатия кнопки "Run" на экране появиться сначала окно генератора кода, а затем одно за другим два окна консольных приложений - компилятора ресурсов (необходим для присоединения иконки класса) и компилятора Pascal Delphi. Вся работа с промежуточным кодом проводится в локальной папке ...Tmp, в ней же формируется файл model. exe. При выходе из интегрированной среды все содержимое этой папки автоматически уничтожается. Поэтому, если необходимо для каких-либо целей оставить промежуточный код или выполняемую модель для независимого использования, надо воспользоваться кнопкой  или командой "Model /Build...". Выполнение команды "Run" завершается запуском созданной программы model.exe.

После первого запуска выполняемой модели автоматически открываются окно "Test bench", которое является основным «путеводителем» по моделируемой системе.

Запуск выполнения модели производится с помощью кнопки  (на инструментальной панели главного окна модели) или с помощью команды "Simulation/Run". Останавливается выполнение с помощью кнопки  или команды "Simulation Stop", а перезапуск осуществляется с помощью кнопки  или команды "Simulation Restart".

В результате этих действий данный экземпляр испытуемой системы будет уничтожен и создан новый, снова с начальными значениями переменных. Модельное время снова будет равно 0.

С помощью кнопки  или команды "Window/ New Diagram" можно создать окно диаграммы (по умолчанию это будет временная диаграмма, т.е. по оси абсцисс будут откладываться значения модельного времени). Также в пакете MVS возможно создание 2-D и 3-D анимации.