Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Model Vision Studium

 

на главную

 
Model Vision Studium (MVS)компьютерная лаборатория для моделирования и исследования сложных динамических систем.
Model Vision Studium - это интегрированная графическая оболочка для быстрого создания интерактивных визуальных моделей сложных динамических систем и проведения вычислительных экспериментов с ними.

Системные требования

MVS работает на Intel-совместимых компьютерах в среде MS Windows 95/98/NT. Пакет занимает 15Мб на жестком диске и не предъявляет к компьютеру никаких особых требований кроме наличия аппаратной поддержки операций с плавающей точкой.

В начало страницы

Авторы

MVS разработан исследовательской группой "Экспериментальные объектные технологии" (XJ), созданной при кафедре "Распределенных вычислений и компьютерных сетей" факультета Технической Кибернетики Санкт-Петербургского Государственного Технического Университета ( регистрационное свидетельство Роспатента N 990643 от 06.09.99.).
www.xjtek.com

В начало страницы

Основные характеристики

Пакет MVS позволяет описать модель на специальном графическом языке, а затем автоматически построить программу для воспроизведения ее поведения, использующую для этого современные численные методы. Пакет предназначен для исследования гибридных систем. Гибридными называют системы, обладающие одновременно "непрерывными" и "дискретными" свойствами. Разработчики пакетов для моделирования гибридных систем сталкиваются с двумя основными проблемами. Первая – это проблема построения удобного и выразительного языка для описания непрерывных и дискретных свойств моделируемого объекта. Вторая связана с требованием строить достоверное численное решение сформулированной на этом языке математической задачи автоматически.

К современному языку моделирования предъявляются следующие требования:
- быть наглядным;
- выразительным;
- предоставлять присущие современным языкам программирования средства отладки;
- автоматически находить достоверные численные решения построенных моделей;
- автоматически проводить наиболее распространенные на практике типы вычислительных экспериментов.
Требование быть наглядным в основном реализуется за счет использования разнообразных графических Редакторов – редактора уравнений, структуры, поведения и Управляющих различными этапами моделирования и исследования – управляющего проектом, классом, вычислительным экспериментом. Выразительность обеспечивается возможностью поддерживать разнообразные математические конструкции, необходимые для описания модели, решать различные типы уравнений и использовать технологию объектно-ориентированного моделирования (ООМ). Достоверное численное решение и проведение вычислительных экспериментов невозможно получить, не используя современные численные библиотеки и не создавая специальных алгоритмов, обеспечивающих анализ численных свойств задачи и выбор и настройку параметров метода решения.

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

В начало страницы

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

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

Локальное поведение может быть описано как
а) непрерывное поведением,
б) карта поведения (в этом случае узел называется гиперузлом) или
в) считаться пустым поведением NULL.
Графический образ карты поведения позволяет в наглядной форме представлять множества допустимых локальных поведений устройства, их области определения в фазовом пространстве и времена переходов от одного локального поведения к другому. При описании локальных поведений, предусмотрена возможность вводить локальные переменные (аналогичным локальным переменным программных единиц). В принятом в MVS подходе, когда локальные поведения создаются и уничтожаются одновременно с изменением поведения системы, текущий фазовый вектор может менять размерность.

В общем случае переход T из начального узла Nb в конечный узел Ne характеризуется: охраняющим предикатом G, запускающим событием E, и действиями A. Возможны три типа запускающего события:
1) некоторое логическое условие стало истинным (change event);
2) поступил внешний сигнал (signal event);
3) истекло определенное время после того как начальный узел Nb стал текущим (time event).
Семантика перехода следующая. Если узел Nb является текущим и предикат G истинен или отсутствует, переход T становится открытым, в противном случае переход закрыт. Если событие E не указано, то открытый переход немедленно срабатывает. Если указано событие E, то открытый переход сработает только при его появлении и истинности предиката G (до появления события E переход может закрыться, если предикат G перестает быть истинным или узел Nb текущим). Срабатывание представляет собой следующую последовательность мгновенных действий:
1) узел Nb перестает быть текущим;
2) выполняется последовательность действий A;
3) узел Ne становится текущим.

Непрерывное поведение в общем случае задается совокупностью обыкновенных   дифференциальных mage401.gif (1076 bytes) и алгебраических уравнений image402.gif (999 bytes), а также формул вида
image404.gif (857 bytes)<выражение, не зависящее от s>.
Уравнения и формулы могут задаваться как в скалярной, так и в матричной форме.

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

Карта поведения представляет собой простую и наглядную форму описания процесса смены поведений. В частном случае устройства с чисто дискретным поведением (например, контроллер в примере 1), всем узлам карты поведения следует приписать пустые локальные поведения и тогда она превращается в обычную карту состояний (statechart) с единственным отличием. Это отличие связано с невозможностью перехода в локальную карту поведения по команде "покажи предисторию" ("history indicator"). В нашем случае поведение - это параметризованный класс, конкретный экземпляр которого создается при входе в узел карты поведения и уничтожается при выходе из него. Элемент с чисто непрерывным поведением (например, объект управления в примере 1) трактуется как гибридный с картой поведения, состоящей из единственного узла, которому приписано непрерывное поведение. Таким образом, дискретные аспекты поведения отражаются с помощью хорошо знакомого языка карт состояния, а непрерывные аспекты - с помощью привычного языка систем уравнений и формул.

В начало страницы

Блоки и связи

Основным “строительным элементом” описания в MVS является устройство (device). Устройство - это некоторый активный объект, функционирующий параллельно и независимо от других объектов в непрерывном времени image405.gif (1025 bytes). Устройство является ориентированным блоком, т.е. все взаимодействия устройства с окружающим миром осуществляются только через его входы и выходы, составляющие интерфейс устройства. Все остальные свойства устройства инкапсулированы внутри него. В общем случае в описании устройства содержатся следующие элементы: входы, выходы, параметры конструктора, переменные состояния, поведение, локальная структура, анимация. Входы, выходы и переменные состояния являются фазовыми переменными и все вместе составляют фазовый вектор устройства. Идентификаторы блоков и переменных могут быть русскими.

Типы данных включают в себя скалярные, регулярные и комбинированные типы, а также типы, определяемые пользователем. Скалярные типы это - вещественные, целые, булевский, перечислимые, символьный и строковый типы. Регулярными типами являются одномерные и двумерные массивы с произвольными элементами, матрицы и векторы с вещественными элементами, а также списки. Комбинированные типы представляют собой записи с полями различных типов. Для передачи информации о дискретных событиях используется специальный тип "сигнал".

В версии 3.0 комбинированные и определяемые типы, а также массивы не поддерживаются.

Описание устройства всегда строится как описание класса устройств. Для конкретных экземпляров устройства могут быть указаны специальные значения параметров конструктора (см. текстовое представление примера 3).

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

В версии 3.0 агрегирование и расщепление связей, а также массивы и списки устройств не поддерживаются.

Конкретная моделируемая система, с которой будет проводиться вычислительный эксперимент, собирается в окне редактора виртуального стенда из экземпляров классов, определенных в данном проекте, и/или библиотечных классов.

В начало страницы

Объектно-ориентированное моделирование

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

В версии 3.0 динамические экземпляры устройств не поддерживаются.

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

Классы устройств обладают свойством полиморфизма: вместо экземпляра класса-предка может использоваться экземпляр класса-потомка.

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

В начало страницы

Примеры

1. Система автоматического регулирования

Система содержит непрерывный объект управления и дискретный PD- регулятор, выдающий управляющий сигнал с периодом T и относительной задержкой image406.gif (843 bytes)(рис. 1).

Рис. 1

Карта поведения объекта управления включает только узел Init, которому приписана система уравнений

image408.gif (1958 bytes)

Карта поведения регулятора (рис. 2) представляет собой чисто дискретную карту состояний.

Рис. 2

В формуле и в операторе присваивания использована алгоритмическая функция XLim, определяемая в проекте следующим образом:

function XLim(in X,Xmin,Xmax: double) return double is
z: double;
begin
if
X<Xmin then
z:=Xmin;
elsif X>Xmax then
z:=Xmax;
else
z:=X;
end if;
return z;
end XLim;

2. Система катапультирования

Рассмотрим кресло пилота, катапультируемое из самолета (пример заимствован из учебника по языку SLAM 2). До начала катапультирования (внешний сигнал Eject) в объекте ничего не меняется. После начала катапультирования происходит движение по направляющим с постоянной скоростью (поведение TrackMove, задаваемое формулами

image410.gif (1406 bytes),

после вылета из корпуса самолета начинается свободный полет (поведение Fly, задаваемое системой уравнений)

image411.gif (1962 bytes),

который заканчивается либо раскрытием парашюта через время TauP, либо столкновением с корпусом самолета и разрушением. Карта поведения устройства показана на рис. 3.

Рис. 3

 3. Бассейн с вливающейся и выливающейся водой

Рассмотрим классическую школьную задачу о бассейне с двумя трубами. Пусть Vin, Vout - положения задвижек на входной и выходной трубах, Win, Wout - объемные расходы по трубам, V - текущий объем воды в бассейне. Поведение простого бассейна (класс CSimplePool) определяется простейшей картой поведения, показанной на рис. 4.

image413.gif (1629 bytes)

Рис. 4

Эта карта поведения унаследована от класса CDevice, но в узле Init пустое поведение переопределено на непрерывное поведение Equations_1.

Рассмотрим теперь более сложную модель, в которой учитывается опорожнение и переполнение бассейна. Новый класс CPool мы сделаем прямым потомком класса CSimplePool. Новый класс унаследует все переменные и поведение своего предка. Для описания более сложного поведения нам потребуются новый параметр Vmax - предельное значение объема воды и переменная Wovr - расход воды, переливающейся через край. Главная карта поведения тоже усложнится (см. рис. 5) - помимо унаследованного узла Init мы введем еще два узла, соответствующие состояниям "Бассен пуст" и "Бассейн переполнен".

Рис. 5

Появляются также два новых непрерывных поведения:

image416.gif (1378 bytes) image417.gif (1663 bytes)

В начало страницы

Текстовое описание

Описание проекта может быть переведено из визуального представления в текстовое на специальном языке MVL, отредактировано и с помощью компилятора MVL переведено в визуальное представление. Текстовое представление удобно для документирования проекта. Ниже приведено текстовое представление проекта для примера 3.

project POOL is
-- Pool
import SysLib;
device class CSimplePool is
parameter

Kv: double := 1;
input
Vin: double := 1;
Vout: double := 0;
output
V: double := 0;
Wout: double := 0;
state
Win: double := 0;
behavior
continuous
behavior class Equations_1 is
body

d( V )/dt = Win-Wout;
Win = Kv*Vin;
Wout = Kv*Vout;
end Equations_1;
bchart class main extends super.main is
body
override
node Init do Equations_1;
end main;
end CSimplePool;
device class CPool extends CSimplePool is
parameter

Vmax: double := 1;
output
Wovr: double := 0;
behavior
continuous
behavior class Equations_2 is
body

Wout = Win;
Win = Kv*Vin;
end Equations_2;
continuous behavior class Equations_3 is
body

Wout = Kv*Vout;
Win = Kv*Vin;
Wovr = Win-Wout;
end Equations_3;
bchart class main extends super.main is
body
node
Overflow do Equations_3
entry actions {V:=Vmax;}
exit actions {Wovr:=0;}
;
node Empty do Equations_2
entry actions {V:=0;}
;
transition Tr_1 from Init to Overflow

when (V>=Vmax) and (Win-Wout>0);

transition Tr_2 from Overflow to Init when Win-Wout<0;
transition Tr_3 from Init to Empty

when (V<=0) and (Win-Wout<0);

transition Tr_4 from Empty to Init when Win-Kv*Vout>0;
end main;
end CPool;
structure
static
Pool: CPool(Vmax=10);
end POOL;

Текстовое представление экспортируется в модуль с расширением *.mvl. В модуль с тем же именем, но с расширением *.pra выводится в текстовом виде служебная информация о визуальном представлении проекта. Теоретически возможно написание нового проекта в текстовой форме, но для этого придется кропотливо описать в текстовом виде графы карт поведение и структурные схемы.

В начало страницы

Численное решение

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

С картой поведения связан гибридный интерпретатор поведений, объединяющий интерпретатор карт состояний, интерпретатор интерактивных воздействий и менеджер численных методов. В MVS имеется достаточно богатый набор численных методов (модифицированных под особенности гибридных моделей).

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

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

В начало страницы

Интегрированная среда

Интегрированная оболочка пакета MVS представляет собой многооконную среду, позволяющую редактировать проект, автоматически преобразовывать графическое описание модели в текстовое и текстовое в графическое, подключать библиотеки классов, создавать выполняемые модели и запускать их (см. рис. 6).

Рис. 6

В пакете MVS используются специальное внутреннее представление информации о проекте в форме деревьев объектов с перекрестными связями, хранящееся в объектно-ориентированной базе данных MVBase (на диске вся информация о проекте находится в одном файле с расширением *.mvb).

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

В MVS 3.0 в качестве промежуточного языка используется Object Pascal (Borland Delphi 3.x). Разрабатывается версия пакета, в которой в качестве промежуточного языка используется Java.

В начало страницы

Вычислительный эксперимент с выполняемой моделью

Пакет MVS относится к компилирующим средам моделирования, т.е. выполняемая модель создается как некоторый исполняемый модуль операционной среды (см. рис. 6), который может запускаться и без интегрированной оболочки пакета. Возможны два вида выполняемой модели:
1) визуальная интерактивная модель с отладочными возможностями;
2) оптимизированная по быстродействию модель, предназначенная для проведения многократных опытов.

Создаваемая MVS визуальная модель является имитацией испытательного стенда, называемого виртуальным стендом. Все выполняемые операции на виртуальном стенде чрезвычайно похожи на действия экспериментатора, имеющего дело с реальными приборами и установками. Пользователь может наблюдать по ходу моделирования динамику процессов на временных и фазовых диаграммах; в окнах карт поведения, где отображаются текущий узел и срабатывающие переходы; в окнах структурных схем, где видны пути прохождение сигналов по связям; в окнах фазового вектора, куда динамически выводятся текущие значения переменных, а также с помощью типовых анимационных элементов и анимационных окон, которые он сам может создать.
В визуальной модели поддерживается как 2D, так 3D-анимация (последняя реализуется с помощью библиотеки OpenGL). Пользователь может в любой момент изменить значение любой переменной модели, а также менять значение непрерывно, с помощью интерактивных анимационных элементов. Можно задать план прогона модели, в котором указывается последовательность изменений значений переменных и подач сигналов во времени, после чего он может быть исполнен автоматически.
Программу можно приостанавливать, указывая конкретное время, условия истинности предикатов, составленных из фазовых переменных, перечисляя переходы, срабатывание которых приводит к приостановке, и узлы, инициализация которых, вызовет прерывание.
При появлении ошибки в ходе вычислений определяется блок и локальное поведение, где произошла ошибка, а в отладочном режиме дополнительно выводится текстовый вид уравнения или оператора, при выполнении которого она была обнаружена.
Имеется встроенный калькулятор, позволяющий вычислять выражения, в которых можно использовать любые фазовые переменные модели.
MVS 3.0 размещает визуальную модель в модуле *.EXE.

Рис. 7

На рис. 7 показана визуальная модель для примера 3. В ней используются окно временной диаграммы, окно структурной схемы с тремя анимационными элементами, окно фазового вектора и окно карты поведения. Вы можете перемещать входную и выходную "задвижки" и непосредственно наблюдать динамику уровня воды в бассейне, одновременно контролируя значения переменных и переключения узлов в карте поведения. Последовательность значений переменной V может быть выведена из окна диаграммы в текстовый файл и затем импортирована, например, в Excel.

На рис. 8 показано окно 2D-анимации, а на рис. 9 – окно 3D-анимации.

Рис. 8

Рис. 9

"Скрытая" модель является исключительно вычислительной и не имеет ни окон, ни визуальных элементов управления, все, что она может, это вычислить значения переменных модели в заданной временной точке. В MVS 3.0 это специальная DLL. "Скрытая" модель нужна для специальных надстроек (получение фазового портрета системы, получение параметрической зависимости, оптимизация и т.д.).

Выполняемая модель одновременно является сервером автоматизации, поддерживающим интерфейс IMVSAuto. Этот интерфейс позволяет осуществлять чтение и запись значений переменных моделей и управление прогоном модели из других приложений.

В начало страницы

Некоторые примеры:

Следящий электропривод

1. Компонентная модель электропривода

Проект ..\Examples\Ads.\ed.mvb.

Электропривод включает в себя двигатель постоянного тока (DCM), редуктор (RGB) и нагрузку (Load). Нагрузка представляет собой нечто вроде "массивного вентилятора", момент реакции которого зависит от ускорения и от скорости.

 

Рис. 10

Особенностью этого устройства является то, что перечисленные три устройства связаны жесткой кинематической связью (т.е. углы поворота, угловые скорости и ускорения на выходе двигателя такие же , как на входе редуктора, а на выходе редуктора - такие же, как на входе нагрузки). Поскольку в MVS не поддерживаются двунаправленные связи, необходимо передавать момент сопротивления от нагрузки к электродвигателю (ML). В приведенной схеме формулы образуют алгебраический цикл, который автоматически разрывается гибридным решателем при запуске модели (одна из формул рассматривается как алгебраическое уравнение и решается численно).

Модель состоит из электропривода (ED), на вход которого подается синусоидальный входной сигнал.

Рис. 11

2. Следящий электропривод с аналоговым PD-регулятором

Проект ...\Examples\Ads\ads_a.mvb.

Модель включает в себя электропривод (ED), усилитель (Amp), регулятор (CU) и генератор программного значения регулируемой величины (Gen). В выполняемой модели вы можете интерактивно изменять коэффициенты усиления по ошибке и по производной ошибки и наблюдать изменение характера переходных процессов (в частности, система может стать неустойчивой).

Рис. 12

3. Следящий электропривод с дискретным PD-регулятором

Проект ...\Examples\Ads\ads_d.mvb.

Модель включает в себя электропривод (ED), усилитель (Amp), регулятор (CU), генератор программного значения регулируемой величины (Gen), цифро-аналоговый (DAC) и аналого-цифровой (ADC) преобразователи. В выполняемой модели вы можете интерактивно изменять коэффициенты усиления по ошибке Ke и по производной ошибки Kd, а также период регулирования T и относительное запаздывание управляющего воздействия относительно измерения Tau и наблюдать изменение характера переходных процессов.

Рис. 13

В начало страницы

Алгебраические циклы

1. Простой алгебраический цикл

Проект: ...\Examples\Algloop\algloop.mvb.

В этом примере демонстрируется как объединение в схему простых блоков, функционирование которых задается элементарными формулами, приводит к возникновению т.н. "алгебраических циклов".

Рис. 14

В данном примере идеальный усилитель G1 охвачен отрицательной обратной связью через идеальный усилитель G2 и вычитатель Sbt. Поведение каждого блока задается прстой формулой:

Sbt: Z = X-Y
G1: Y = K*X
G2: Y = K*X

Однако, с учетом связей, задающих дополнительные соотношения

G1.X = Sbt.Z
G2.X = G1.Y
Sbt.Y = G2.Y

возникает "алгебраический цикл" (переменная в левой части формулы косвенно входит и в правую часть) и эта совокупность формул превращается в систему алгебраических уравнений.

Эта ситуация распознается гибридным решателем MVS при сортировке формул, выполняемой всякий раз при изменении совокупного непрерывного поведения. Выдается предупреждающее сообщение, одна из связей (в данном случае связь G1.Y a G2.X автоматически разрывается и вместо нее начинает решаться алгебраическое уравнение
"0 = G2.X - G1.Y" с искомой величиной G2.X.

Аналитическое преобразование исходных формул дает результат

G1.Y = G1.K*Sbt.X/(1+G1.K*G2.K)

при кэффициентах усиления равных 1 результирующий выход должен быть вдвое меньше входа. Тот же результат получается при численном решении.

Рис. 15

2. Двойной алгебраический цикл

Проект: ...\Examples\Algloop\twoalgloop/mvb.

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

В начало страницы

Маятник с подвижным подвесом

Проект: ...\Examples\Pendulums\Pend2.mvb.

Две точечные массы m1 и m2 соединены жестким стержнем длины L. Точка подвеса (x1,y1) не закреплена и может двигаться по оси X (рис. 16). Таким образом, возникает первое ограничение y1=0. Второе ограничение связано с жесткостью стержня - (x1-x2)2+ y22=L2.

Image4271.gif (3010 bytes)

Рис. 16

Опираясь на уравнения Лагранжа, получим:

image427.gif (2124 bytes)

В проекте Pend2.mvb эти уравнения разрешены аналитически относительно вторых проихводных Совокупное непрерывное поведение представляет собой систему дифференциальных уравнений и набор формул.

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

Результат вычислений в обоих случаях одинаковый (рис. 17), но первый вариант решается быстрее.

Рис. 17

В начало страницы

Прыгающий мячик

оект: ...\ExamplesBall\\Ball1.mvb.

Рассмотрим материальную точку, брошенную под некоторым углом к горизонтальной плоскости, которая абсолютно упруго соударяется с этой плоскостью. Эта модель стала почти обязательной в демонстрационном наборе примеров пакетов моделирования. Действительно, это типичная гибридная система с непрерывным поведением (полет в поле тяготения) и дискретными событиями (отскоки).

Процесс создания этой модели и ее анимации очень подробно разобран в Help демо-версии MVS (разделы “Как создать модель в MVS ?” и “Как анимировать модель в MVS ?”.

На этом примере иллюстрируется также и объектно-ориентированный подход к моделированию: мячик, летящий в атмосфере является потомком мячика, летящего в безвоздушном пространстве и автоматически наследует все общие черты, добавляя при этом свои особенности поведения (рис. 18).

Рис. 18

В начало страницы

Система терморегулирования дома

Проект: ...\Examples\Thermo\Thermo.mvb.

Этот пример мы позаимствовали из демо-версии пакета Simulink. При этом мы оставили естественную структуру системы регулирования и восстановили исходные системы уравнений из блок-схем, задающих поведение. В описании термостата мы использовали стандартные классы (сумматор и релейное звено) из стандартной библиотеки классов MVS.

Для иллюстации поведения системы в модели используются компоненты 2D-анимации (рис. 19): “термометры” показывают температуру внутри и снаружи дома, изображение нагревателя краснеет, когда он включен и темнеет, когда он выключен, счетчик показывает расходы (видимо, в долларах) на электроэнергию. Кстати, в этой модели любопытно поэкспериментировать с разными параметрами и константами (толщина стен, число окон и т.п.), вы быстро установите, что тепло (и деньги) действительно в основном вылетают в окна.

Рис. 19

 

В начало страницы

Десятичный счетчик

Проект: ...\Examples\Counter\Count1.mvb.

Рис. 20

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

В начало страницы

Бьющееся сердце

Проект: ...\Examples\Heart\Heart.mvb.

Идею этого примера и изображения сердца мы позаимствовали из демо-версии пакета VisSym. Однако, запутанную блок-схему поведения мы заменили на простые автоколебательные уравнения из статьи Зимана (E.C.Zeeman, 1972). В окне 2D-анимации вы можете наблюдать биения сердца (рис. 21) (изображения соответствуют трем качественным состояниям сердца – расслабленному, сжатому и промежуточному).

Рис. 21

В начало страницы

Модели с жесткими дифференциальными уравнениями

Проект: ...\Examples\Stiff\Adiabat_R\Adiabat_R.mvb.

Проект: ...\Examples\Stiff\Jab\Jab1.mvb.

Первая модель описывает адиабатический реактор, в котором медленное течение реакции в определенный момент приобретает взрывной характер (рис. 22).

Рис. 22

Вторая модель описывает один из вариантов циклической реакции Белоусова-Жаботинского. Изменение переменных в этой модели также меняется от плавного к взрывоподобному и обратно (рис. 23).

Рис. 23

Автоматические решатели, выбираемые по умолчанию, распознают момент, когда система уравнений становится “жесткой” и переключаются на подходящий численный метод. Однако, после того, как вы обнаружили, что ваша модель “жесткая”, лучше подобрать один из специальных методов, который как правило будет работать значительно быстрее. Для примера измените метод решения в модели Jab1 со специального на автомат и вы увидите, насколько медленнее стала работать модель.

В начало страницы

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00