Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Модель пружины / Руководство_пользователя

.pdf
Скачиваний:
25
Добавлен:
10.02.2015
Размер:
1.34 Mб
Скачать

Руководство пользователя

ModelVision 3.2.x.

Оглавление.

1.

Введение. ................................................................................................................................

3

2.

Установка пакета и общие соглашения...............................................................................

3

3.

Новый проект. ........................................................................................................................

4

4.

Создаем непрерывную модель. ............................................................................................

5

 

4.1. Ввод переменных, параметров и констант..................................................................

5

 

4.2.

Ввод уравнений..............................................................................................................

7

 

4.2.1.

Ввод уравнений. Дополнительная информация. ................................................

8

 

4.3. Создание и запуск выполняемой модели. ...................................................................

9

5.

Эксперименты с визуальной моделью. .............................................................................

10

 

5.1.1.

Запуск и рестарт модели. ....................................................................................

10

 

5.1.2.

Временная и фазовая диаграммы.......................................................................

11

 

5.1.3.

3D-анимация. .......................................................................................................

13

 

5.1.4.

Интерактивное вмешательство. .........................................................................

14

 

5.1.5.

2D-анимация. .......................................................................................................

16

 

5.1.6.

Останов по условию. ...........................................................................................

19

 

5.1.7.

Формульный калькулятор...................................................................................

20

 

5.1.8.

План. .....................................................................................................................

21

6.

Создаем гибридную модель. ..............................................................................................

21

 

6.1.

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

23

 

6.2.

Редактирование карты поведения. .............................................................................

23

 

6.2.1.

Редактирование узлов. ........................................................................................

25

 

6.2.2.

Редактирование переходов. ................................................................................

28

 

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

31

7.

Создаем компонентную модель. ........................................................................................

34

 

7.1.

Внешние переменные..................................................................................................

34

 

7.2.

Структурная схема. .....................................................................................................

35

 

7.2.1.

Добавление локального блока ...........................................................................

36

 

7.2.2.

Редактирование локального блока.....................................................................

37

 

7.2.3.

Добавление связи.................................................................................................

38

 

7.2.4.

Редактирование связи..........................................................................................

39

 

7.3. Эксперимент с компонентной моделью. ...................................................................

40

8.

Экспорт и импорт классов. .................................................................................................

41

 

8.1. Экспорт класса в другой проект.................................................................................

41

 

8.2. Импорт класса из библиотеки классов. .....................................................................

41

 

8.3. Создание собственной библиотеки классов..............................................................

42

2

1. Введение.

Целью данного Руководства является обучение основным приемам работы с пакетом ModelVision 3.2 на ряде типовых примеров, описанных в документе «Моделирование в примерах». Более детально возможности пакета описаны в справочной системе.

2. Установка пакета и общие соглашения.

Для установки пакета запустите программу setup.exe и укажите место на жестком диске для размещения пакета. Версия 3.2.x занимает около 25 Мбайт на жестком диске.

Для удаления пакета войдите в «Панель управления / Установка и удаление программ», найдите «Model Vision Studium 3.2» и удалите его.

Интегрированная оболочка пакета является приложением с многооконным интерфейсом (MDI). Многооконный интерфейс предполагает наличие главного окна приложения и произвольного числа дочерних окон (см. Рис 3.1). Заголовок главного окна содержит наименование пакета и путь к открытому в данный момент проекту. Проект – это совокупность данных, относящихся к одной модели. Данные проекта хранятся в нескольких файлах, расположенных в папке данного проекта. Основной файл проекта (база данных проекта) имеет расширение *.mvb.

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

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

По нажатию на изображении объекта правой клавиши мыши появляется всплывающее меню, которое содержит команды, применимые к данному объекту.

Значительная часть действий в пакете выполняется методом «drag and drop» («перенеси и брось»), когда требуемый объект выделяется нажатием левой клавиши мыши, а затем перемещается с помощью мыши с прижатой левой клавишей и помещается в нужную область того же или другого дочернего окна после отпускания клавиши мыши. Во время перемещения курсор мыши индицирует области, в которые можно переместить данный объект.

3

3. Новый проект.

Входим в интегрированную оболочку пакета и нажимаем кнопку или выполняем команду главного меню «Проект\Новый…». В появившемся диалоге выбираем путь к папке проекта (например, “C:\Мои_модели\”), вводим имя проекта (например, «Маятник») и нажимаем кнопку «Создать». После этого появится папка “C:\Мои_модели\Маятник” и в ней файл базы данных проекта «Маятник.mvb».

Замечание. Предполагается, что для нового проекта открывается новая папка (если используется существующая, то все данные в ней уничтожаются). В то же время с помощью команды «Проект/Сохранить как» вы можете сохранять в той же папке различные модификации данного проекта (например, Маятник1.mvb).

Замечание. В дальнейшем в этой папке появятся еще два файла – «Маятник.ini» и «Маятник_em.ini» - в которых сохраняются соответственно установки проекта и выполняемой модели.

После этого в интегрированной среде появятся следующие окна (см. Рис 3.1):

1)окно управления проектом (слева вверху) содержит дерево основных составляющих проекта. К составляющим проекта относятся: классы блоков, глобальные (т.е. видимые во всех составляющих проекта) константы, глобальные процедуры и функции, виртуальный стенд и импортируемые библиотеки классов. С помощью всплывающего по правой кнопке мыши меню можно добавлять новые компоненты, удалять и редактировать существующие. В новом проекте по умолчанию добавлен класс непрерывного блока «Маятник» (имя класса совпадает с именем проекта).

2)окно виртуального стенда (в центре вверху) содержит структурную схему моделируемой системы, т.е экземпляры блоков и связи между ними. По умолчанию в виртуальный стенд помещен экземпляр класса «Маятник» с именем «Маятник_1» (следующий экземпляр этого класса в этой схеме получит по умолчанию имя «Маятник_2» и т.д.). Управлять структурными компонентами можно с помощью всплывающего по правой клавиши мыши меню. Для добавления нового блока достаточно схватить мышкой в окне управления проектов нужный класс, буксировать его в окно структуры и бросить в нужном месте.

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

3)окно редактирования добавленного по умолчанию класса (в данном случае класса «Маятник») содержит дерево составляющих описания класса. Поскольку данный блок предполагается непрерывным, то по умолчанию в него добавлена пустая система уравнений с именем «Система_уравнений_1».

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

иприписана «Система_уравнений_1».

4)окно редактирования системы уравнений, открытое на пустой «Система_уравнений_1».

4

Рис 3.1

4. Создаем непрерывную модель.

Рассмотрим модель простого математического маятника (материальная точка, подвешенная на невесомом нерастяжимом стержне). Это модель чисто непрерывной изолированной системы. Поэтому для нее в качестве основы прекрасно подходит класс, создаваемый по умолчанию при открытии нового проекта. В него теперь необходимо добавить необходимые переменные и уравнения. Данный проект мы назовем «Маятник.mvb».

Путь к готовому примеру «Модели\Маятник\Маятник.mvb».

4.1.Ввод переменных, параметров и констант.

Переходим в окно редактирования класса «Маятник», выделяем в дереве объектов узел «Параметры», нажатием правой клавиши мыши вызываем всплывающее меню и выполняем команду «Добавить». То же самое можно сделать с помощью команды «Редак-

тировать/Добавить» главного меню или кнопки на панели кнопок.

В появившемся диалоге вводим идентификатор переменной Alpha, оставляем заданный по умолчанию тип double, задаем начальное значение –pi/2 и комментарий (см.

Рис 4.1).

5

Рис 4.1

Аналогичным образом добавляем параметр L. Далее выделяем узел «Внутренние переменные» и добавляем переменные Alpha, Omega, X, Y, а затем выделяем узел «Константы» и добавляем константу g (см. Рис 4.2).

Рис 4.2

Вы можете изменить введенные определения дважды кликнув на них мышью, а также с помощью команды «Изменить» всплывающего меню, команды «Редактиро-

вать/Изменить» главного меню или кнопки на панели кнопок. Кроме того, вы можете редактировать выделенное определение как текст с помощью команды «Редактировать/Редактировать как текст (F2)» главного меню или однократного щелчка мыши. На Рис 4.2 в режиме текстового редактирования находится определение переменной Alpha. Завершение редактирования происходит по клавише «Enter» или щелчка мыши за пределами редактируемой строки. Отмена редактирования происходит по нажатию клавиши

«Esc».

6

Вы можете удалит введенные определения с помощью команды «Удалить» всплы-

вающего меню, команды «Редактировать/Удалить» главного меню или кнопки на панели кнопок.

4.2.Ввод уравнений.

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

Рис 4.3

Система уравнений может включать в себя обыкновенные дифференциальные уравнения первого порядка и алгебраические уравнения. Форма ввода уравнений в данной версии пакета достаточно свободная. Например, последние два уравнения можно представить в виде

X-L*sin(Alpha) = 0 Y+L*cos(Alpha) = 0 find X,Y

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

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

7

Рис 4.4

Если вы не указали, какие переменные являются искомыми (оператор find), то транслятор попытается определить их сам, исходя из контекста задачи: искомыми не могут быть параметры, константы и входы. Транслятор также стремится сделать искомыми (если это возможно) интегрируемые переменные (Alpha) и переменные, стоящие в левых частях формул (X,Y). Если же транслятору не удается выбрать искомые переменные, то он вызывает специальный диалог и предлагает сделать это вручную.

Помимо собственно уравнений и формул в систему уравнений могут быть также включены необходимые комментарии. Комментарий начинается символом «--» (двойной минус) и продолжается до конца строки (Рис 4.3).

4.2.1. Ввод уравнений. Дополнительная информация.

Рассмотрим несложную дополнительную модель: одномерное движение материальной точки с массой m под действием вынуждающей силы F и вязкого трения с коэффициентом mu Путь к готовому примеру «Модели\Движение\Движение.mvb»).

Уравнение движения может быть записано в естественной «физической» форме

Рис 4.5

Вынуждающая сила подается на вход с генератора синусоидального сигнала (Рис 4.6), поэтому искомой переменной однозначно является переменная x.

Рис 4.6

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

x : d(x)/dt = x';

8

x' : d(x')/dt = x''; x'': m*x'' = F-mu*x';

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

В данной версии пакета производные видимы только в пределах данной системы уравне-

ний (это означает, что нельзя, например, использовать скорость dx в действиях перехода dt

или в теле функции).

Теперь, не меняя уравнения движения, сделаем входной переменной x, а не F (Рис

4.7).

Рис 4.7

Теперь искомой переменной является сила F (то есть, мы решаем обратную задачу: какую силу нужно прикладывать, чтобы тело двигалось по синусоиде). Однако, для этой задачи мы будем иметь совсем иную «каноническую» систему уравнений:

x' : x' = d(x)/dt; x'': x'' = d(x')/dt; F : m*x'' = F-mu*x';

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

4.3.Создание и запуск выполняемой модели.

Создание модели производится с помощью команды «Модель/Создать» главного меню или кнопки на панели кнопок. Запуск (и создание, если нужно) модели произ-

водится с помощью команды «Модель/Пуск» главного меню или кнопки на панели кнопок.

Пакет MVS относится к категории компилирующих: для элементов описания моделируемой системы генерируется “код” на промежуточном языке программирования, который затем компилируется в машинный код и связывается с Run Time Library (RTL) MVS с помощью штатного компилятора командной строки этого языка. В данной версии пакета в качестве промежуточного языка используется Borland Object Pascal (Delphi 3).

Пакет MVS может создавать модели двух видов: визуальную в форме приложения Win32 и «скрытую» в форме Win32 DLL. Далее рассматривается только работа с визуальными моделями. Вопросы использования «скрытых» моделей см. в соответствующем разделе.

При создании модели вы увидите сначала окно генератора кода, а затем одно за другим два окна консольных приложений - компилятора ресурсов (необходим для присоединения иконки класса) и компилятора Object Pascal Delphi. Вся работа с промежуточ-

9

ным кодом проводится в локальной папке ...\Tmp (в данном примере в C:\Мои_модели\Маятникl\Tmp), в ней же формируется файл model.exe. Обычно это занимает несколько секунд. При выходе из интегрированной среды все содержимое этой папки автоматически уничтожается. Поэтому, если вы хотите оставить промежуточный код для независимого использования (например, чтобы использовать диалоговый отладчик

Delphi), воспользуйтесь кнопкой или командой «Модель/Создать». Для того, чтобы сохранить модель как независимую от оболочки выполняемую программу, воспользуйтесь командой «Модель/Сохранить как» главного меню.

Замечание. Если папка проекта недоступна для записи (расположена на CD или закрыта на запись для данного пользователя), то все временные файлы и файл выполняемой модели формируются в рабочей папке Windows (например C:\Temp).

Выполнение команды «Пуск» завершается запуском созданной программы model.exe. В любой момент вы можете прервать выполнение модели из интегрированной сре-

ды (например, в случае ее зависания) с помощью кнопки

или команды «Мо-

дель/Стоп».

 

В выполняемую модель включается только содержимое окна «Виртуальный стенд». Перед генерацией кода проводится комплексный контроль его правильности и в случае обнаружения ошибки создание выполняемой модели отменяется.

5. Эксперименты с визуальной моделью.

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

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

5.1.1. Запуск и рестарт модели.

Запустим выполнение модели с помощью кнопки (на инструментальной панели главного окна модели) или с помощью команды «Моделирование/Пуск» главного меню. Вы увидите, что начнет изменяться модельное время (в темпе реального, если у вашего компьютера достаточная производительность) и значения фазовых переменных. Однако, наблюдение за цифровыми значениями мало что дает (только констатацию, что в модели

вообще что-то вычисляется). Поэтому остановим выполнение с помощью кнопки или

команды «Моделирование/Стоп» и затем закончим данный прогон с помощью кнопки или команды «Моделирование/Рестарт». В результате этих действий данный экземпляр

10

Соседние файлы в папке Модель пружины