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

Модель пружины / Отчёт по работе / Лабораторная работа

.pdf
Скачиваний:
12
Добавлен:
10.02.2015
Размер:
696.64 Кб
Скачать

Лабораторная работа №3

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

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

«lab3.mvb».

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

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

1.1Ошибка! Неверная ссылка закладки.):

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

Вновом проекте по умолчанию добавлен класс непрерывного блока «lab3» (имя класса совпадает с именем проекта).

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

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

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

Рис 1.1

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

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

Путь к готовому примеру «C:\Users\NTiutiugin\Desktop\Модель пружины \lab3.mvb».

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

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

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

В появившемся диалоге вводим идентификатор переменной m1, оставляем заданный по умолчанию тип double, задаем начальное значение – 1 и комментарий (см. Рис 2.1).

Рис 2.1

Аналогичным образом добавляем параметр m2. Далее выделяем узел «Внутренние переменные» и добавляем переменные x1, x2, Q, x1_0, x2_0, Omega01 (см. Рис 2.2).

Рис 2.2

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

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

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

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

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

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

Рис 2.3

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

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

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

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

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

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

При создании модели вы увидите сначала окно генератора кода, а затем одно за другим два окна консольных приложений - компилятора ресурсов (необходим для присоединения иконки класса) и компилятора Object Pascal Delphi. Вся работа с промежуточным кодом проводится в локальной папке ...\Tmp (в данном примере в C:\Users\NTiutiugin\Desktop\Модель пружины\Tmp), в ней же формируется файл model.exe. Обычно это занимает несколько секунд. При выходе из интегрированной среды все содержимое этой папки автоматически уничтожается. Поэтому, если мы хотим оставить промежуточный код для независимого использования (например, чтобы использовать диалоговый отладчик Delphi), то воспользуемся кнопкой или командой «Модель/Создать». Для того, чтобы сохранить модель как независимую от оболочки выполняемую программу, воспользуемся командой «Модель/Сохранить как» главного меню.

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

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

любой момент мы можем прервать выполнение

модели из интегрированной среды

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

или команды «Модель/Стоп».

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

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

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

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

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

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

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

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

Рис 3.1

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

Спомощью кнопки или команды «Окна/Новая диаграмма» создадим окно диаграммы (по умолчанию это будет временная диаграмма, т.е. по оси абсцисс будут откладываться значения модельного времени). Методом “drag-and-drop” перенесем в окно диаграммы из окна переменных переменные x1, x2, Q, x1_0 и x2_0. Запустим модель и получим следующий график cм. Рис 3.2.

Замечание. Может оказаться, что на нашем компьютере эти несложные уравнения решаются так быстро, что мы просто не успеваем ничего заметить. С помощью кнопки

или команды «Установки/Модель» вызовем диалог редактирования установок. На станице «Выполнение» переключим параметр «Соотношение модельного и реального времени» из положения «так быстро как можно» в положение «число» (по умолчанию это 1, то есть моделирование в реальном времени). Изменяя это число, мы можем ускорять или замедлять прогон модели.

Нам теперь хотелось бы увидеть на графике зависимость (Q) , т.е получить

фазовую диаграмму. Для этого создадим новую диаграмму, перетащим в нее те же самые переменные, а затем правой клавишей мыши откроем на ней всплывающее меню и выполним команду «Настройка». В появившемся диалоге настроек укажем с помощью двойного щелчка мышью в поле , что по оси абсцисс откладываются значения переменной Q (см. Рис. 3.3). Запустив модель снова, мы получим следующий график (см.

Рис. 3.4).

Рис 3.2

Рис 3.3

Рис 3.4

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

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

3D-анимации. Создаём его мы с помощью команды главного меню «Окна/Новая 3Dанимация».

Окно 3D-анимации позволяет нам строить динамические трехмерные изображения, в виде совокупности трехмерных примитивов (линия, шар, цилиндр, конус и т.д.), некоторые параметры которых (координата, радиус, цвет и т.п.) однозначно связаны со значением соответствующих переменных модели..

С помощью двойного щелчка мыши в области окна или команды «Свойства» всплывающего меню мы вызываем диалог редактирования свойств 3D-анимации. В данной модели нам понадобится только два стандартных объекта – пружина и сфера (см. Рис. 3.5). Один конец линии должен всегда находиться в начале координат, а координаты второго конца (параметры x1, х2) должны изменяться в соответствии со значением переменных X1 и Х2 пружины. Для задания этого соответствия тащим методом «drag-and- drop» соответствующие переменные из окна переменных и бросаем их в колонке «Переменная» соответствующих параметров пружины (см. Рис. 3.5). Аналогичным образом этим же переменным X1_0, Х2_0 мы сопоставляем координаты центра (параметры x1_0, х2_0).

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

С помощью нажатия левой клавиши мыши при нажатой клавише <Control> мы можем удалять точку наблюдения от начала системы координат, при нажатой клавише <Shift> можем приближать ее к началу координат.

Рис 3.5

Рис 3.6

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

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

Например, пусть мы хотим исследовать поведение нашей пружины при изменении ускорения силы тяжести m1 или m2. Для этого нам нужно, во-первых, трансформировать m1 или m2 из константы в переменную.

Замечание. Константа – это величина, которая никогда не меняется. Параметр – это величина, которая может меняться для разных экземпляров класса и для данного экземпляра только однократно в начале прогона. Переменная может меняться во время прогона модели.

Такую трансформацию очень легко выполнить методом «drag-and-drop», перетащив m1 или m2 из секции констант в секцию переменных в определении класса (см. Рис. 3.7).

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

5*x1*sin(Time)).

Соседние файлы в папке Отчёт по работе