Что нового в версии Model Vision Studium 4

advertisement
Что нового в версии MvStudium 4.0 ?
Новшества в версии 4.0 можно разделить на следующие группы:
- упрощение интерфейса интегрированной среды;
- изменения в визуальной модели;
- изменения входного языка.
При открытии проекта версии 3.2 в интегрированной среде 4.0 проект автоматически
конвертируется, старые файлы проекта и установок сохраняются с расширением 3.2..
Упрощение интерфейса интегрированной среды.
прежде всего касается уменьшения числа необходимых для работы одновременно
открытых окон. Если в предыдущей версии 3.2 (последняя модификация 3.2.24) для
работы с каждой составляющей описания класса (структурной схемой, картой поведений
и т.д.) открывалось отдельное окно, то теперь все аспекты описания класса сосредоточены
в одном окне редактора класса. Определения общих элементов, таких как переменные,
функции и т.п., сосредоточены в визуальном дереве в левой части окна, а определения
составляющих поведения – на разных страницах редактора поведения в правой части окна
(Рис. 1).
Рис. 1
Как показывает опыт, наиболее часто на практике встречается случай модели
изолированной элементарной непрерывной системы. Для таких моделей нет
необходимости ни в менеджере проекта, ни в виртуальном стенде. Поэтому в версии 4
окно менеджера проекта заменено на визуальное дерево элементов проекта, которое
появляется в левой части главного окна только при необходимости (в проекте несколько
классов, используются импортируемые классы и т.д.). Вместо виртуального стенда введен
предопределенный класс Model, экземпляром которого является выполняемая модель.
Таким образом, в типовом случае непрерывной элементарной модели пользователю
необходимо всего лишь задать систему уравнений в единственном окне.
Кроме того, в редакторах карты поведений и структурной схемы показывается опорная
сетка и поддерживается проведение линий переходов и связей по сегментам через
промежуточные точки. В редакторе структурной схемы поддерживается автоматическое
создание прямоугольных линий связи и перемещение отдельных сегментов.
Изменения в визуальной модели.
Существенных изменений в визуальной модели два:
- возможность использования виртуальных переменных;
- показ дискретной составляющей модельного времени.
1
Виртуальная переменная – это такая переменная, которой нет в описании класса
объекта. Она определяется в визуальной модели и связывается с некоторым выражением,
задающим ее текущее значение. Например, в примере BreakingPend модель колебаний в
состоянии SOsc задана в полярных координатах, в то время как для трехмерной анимации
необходимы значения декартовых координат маятника. Для этого в объекте SOsc созданы
виртуальные переменные x  L * sin( Alpha) и y   L * cos( Alpha) , которые и сопоставлены
координатам линии и сферы в окне 3D-анимации.
В версии 4 модельное время является гибридным и включает в себя непрерывную и
дискретную составляющие. Значение непрерывной составляющей соответствует
непрерывному времени модели в целом в условных единицах измерения, а значение
дискретной составляющей равно числу срабатываний переходов в эквивалентном
гибридном автомате. Текущее значение модельного времени отображается в левом углу
инструментальной панели. Показ дискретной составляющей времени облегчает
понимание функционирования модели во временной щели, когда при неизменном
непрерывном времени происходит последовательное срабатывание нескольких переходов.
Изменения входного языка
касаются упрощения моделирования непрерывных систем, обобщения понятия объекта,
расширение возможностей описания дискретных действий, задания начальных значений
производных, использования производных в дискретных действиях, переопределение
унаследованной системы уравнений.
В предыдущей версии пакета непрерывный объект имитировался частным случаем
гибридного с одним состоянием. Опыт показал, что это ненаглядно и неудобно. Поэтому
в новой версии пакета допустим непрерывный объект, поведение которого задается
только системой уравнений. Любой непрерывный объект может быть преобразован в
эквивалентный гибридный, а частный случай гибридного в непрерывный.
Введено общее понятие активного динамического объекта (АДО) как совокупности
переменных и поведения, которое складывается из собственного поведения и совокупного
поведения локальных объектов с учетом связей. В свою очередь, собственное поведение
задается либо системой уравнений, либо картой поведений. Экземпляр АДО может
являться выполняемой моделью, локальным объектом в структурной схеме, а также
локальной деятельностью в состоянии карты поведений. Для конкретного экземпляра
можно указать действительные значения параметров, а также начальных значений
переменных т производных, отличные от указанных в определении класса.
В версии 4.0 реализованы почти все конструкции, предусмотренные UML для карт
состояний: начальное и конечное состояния, точка ветвления, альтернативные переходы,
внутренние переходы. Эти конструкции значительно облегчают описание сложного
гибридного поведения, а также плана вычислительного эксперимента.
В версии 4.0 для систем уравнений с производными второго порядка могут быть
заданы ненулевые начальные значения первых производных. Значения производных
могут использоваться в условиях срабатывания и действиях переходов. В действиях
внутренних переходов могут быть изменены значения производных.
При использовании наследования классов система уравнений в производном классе
может быть доопределена (к унаследованным уравнениям добавлены новые) или
переопределена (изменены унаследованные уравнения).
2
Примеры использования новых возможностей.
Проиллюстрируем отличительные черты MvStudium 4.0 на простейшем примере:
двумерное движение тела, брошенного под углом в поле тяготения. Все варианты этого
примера находятся в папке «…\mvStudium4\Examles\BallExp», для удобства демонстрации
варианты сохранены как отдельные проекты.
Сначала создадим и отладим модель полета (проект Ball). Это чисто непрерывный
элементарный объект, поэтому нет необходимости в менеджере проекта и многооконном
интерфейсе и все пространство главного окна занимает максимизированный редактор
класса Model (Рис. 2).
Рис. 2
Поведение модели задается двумя дифференциальными уравнениями второго порядка в
свободной форме (Рис. 3а). На Рис. 3б показан результат автоматического преобразования
исходной системы уравнений к вычислимой форме (можно получить по команде
всплывающего меню на страничке «Уравнения» в окне класса).
3
а)
б)
Рис. 3
Для того, чтобы тело полетело, необходимо задать ненулевые начальные значения первых
производных. На странице «Уравнения» в окне класса они задаются через значения
параметров V0 (начальная скорость) и Teta0 (угол бросания) (Рис. 2). При нулевых
внешних силах брошенное тело двигается по параболе неограниченно долго, так что
остановить вычислительный эксперимент можно только по вмешательству пользователя
(Рис. 4).
Рис. 4
Сохраним теперь эту модель как класс Flight и на его основе создадим модель
движения до точки падения (проект Ball_L). Проект теперь содержит несколько классов и
может возникнуть необходимость в менеджере проекта (Рис. 5). Кроме того, для
одновременной работы в нескольких редакторах классов необходим многооконный
интерфейс (Рис. 5).
Экземпляр класса Flight используется как локальная деятельность в состоянии F, которая
инициируется параметрами модели. Состояние F немедленно становится текущим и
уравнения движения (Рис. 3) решаются до момента падения, задаваемого условием
срабатывания триггерного перехода из состояния F в конечное состояние (Рис. 5).
4
Рис. 5
При срабатывании этого перехода горизонтальная координата точки падения
запоминается в переменной L модели. Поскольку модель достигла конечного состояния,
вычислительный эксперимент прекращается (Рис. 6).
Рис. 6
На основе класса Flight можно легко создать производный класс FlightInAir, в поведении
которого учитывается сопротивление воздуха. Система уравнений этого класса (Рис. 7)
содержит как уравнения, унаследованные от базового класса (помечены двойным
двоеточием в начале строки), так и собственные дополнительные уравнения, задающие
силы сопротивления воздуха. Заметим, что попытка редактировать унаследованные
уравнения воспринимается редактором уравнений как переопределение всей системы
уравнений в целом.
5
Рис. 7
Сохраним модель как класс Throw и на его основе создадим модель статистических
испытаний (проект Ball_S). Будем бросать тело N раз, каждый раз разыгрывая случайное
значение начальной скорости и угла бросания согласно нормальному закону
распределения, и заносить дальность падения тела в массив измерений L[N] (Рис. 8). Этот
план вычислительного эксперимента удобно задается картой поведений с использованием
точки ветвления (Рис. 8).
Заметим, что безусловный переход из состояния T в точку ветвления срабатывает
только тогда, когда локальная гибридная деятельность (Рис. 5) достигает конечного
состояния, то есть в точке падения.
В результате этого эксперимента мы получает уже не одну фазовую траеторию
модели, а множество фазовых траекторий (Рис. 9).
6
Рис. 8
Рис. 9
Различия между внешним и внутренним переходами продемонстрируем на
примере модели прыгающего мячика. Пусть тело в точке падения будет упруго
отскакивать от горизонтальной поверхности.
Такую модель на основе класса Flight можно создать с использованием обычного
внешнего перехода (проект BBall_Outer). В этом случае «старый» экземпляр мячика
(экземпляр класс Flight в состоянии F) в точке падения исчезает, а дальше продолжает
движения «новый» экземпляр мячика, начальные условия которого соответствуют точке
падения (Рис. 10).
7
Рис. 10
Эту же модель можно построить теперь с использованием внутреннего перехода (проект
BBall_Inner). В этой модели в состоянии F (Рис. 11) имеется внутренний переход
Рис. 11
Это переход срабатывает в точке падения и в его действиях меняется знак у производной
координаты y (Рис. 12). Состояние F остается текущим и после отскока существует тот же
самый экземпляр класса Flight, что и до него.
8
Рис. 12
Обе модели дают одни и те же результаты (Рис. 13), но модель с внутренним переходом
представляется все же более естественной для случаев, когда лишь меняются дискретным
образом значения некоторых переменных.
Рис. 13
9
Download