Математическое моделирование в программе ModelVision 3.2

Автор: Пользователь скрыл имя, 04 Марта 2013 в 16:14, лабораторная работа

Описание работы

Цель: обучение основным приемам работы с пакетом ModelVision 3.2. Построение математической модели маятника
В данной работе будет построена модель простого математического маятника.
Данная модель является примером модели чисто непрерывной изолированной системы.

Работа содержит 1 файл

Математическое моделирование в программе ModelVision 3.2.doc

— 243.00 Кб (Скачать)

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

 

Математическое моделирование  в программе ModelVision 3.2

 

Цель: обучение основным приемам работы с пакетом ModelVision 3.2. Построение математической модели маятника

 

Теоретические сведения

В данной работе будет построена  модель простого математического маятника.

Данная модель является примером модели чисто непрерывной  изолированной системы.

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

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

 

Состояние маятника полностью определяется значением двух переменных: угла отклонения и угловой скоростью .

Динамика маятника определяется двумя  дифференциальными уравнениями (1).

(1) ,  где

 

При численном моделировании мы будем полагать .

Однако, для анимации движения маятника потребуются дополнительные переменные – координаты и материальной точки, задаваемые двумя формулами (1a)

(1a)

 

На Рис 2б показана траектория движения маятника в координатах . Зависимости показаны на Рис 2а.  Моделируемая система совершает незатухающие колебания. На Рис 2в показана фазовая траектория маятника в системе координат

а)

 

   

б)        в)

Рис 2

Совокупность переменных, определяющих состояние динамической (то есть изменяющейся  во времени) системы, называют фазовым  вектором, а область его изменения  – фазовым пространством. Набор начальных значений определяет начальную точку, соответствующую моменту времени . При изменении конец фазовый вектор определяет последовательность точек, называемую фазовой траекторией. Фазовое пространство с дополнительной координатой – временем – называют расширенным фазовым пространством. Графики, показанные на Рис 2, являются различными двумерными проекциями траектории системы в расширенном фазовом пространстве.

Объектный подход.

Функционирование маятника определяется совокупностью системы уравнений (1) и определений параметров и переменных . Однако, это описание задает не один какой-то конкретный маятник, а любой, совершенно произвольный, то есть задает целый класс маятников. Любой конкретный маятник является экземпляром класса «Маятник». Ничто не мешает вам построить модель, включающую, скажем, три маятника. Описание их будет совершенно одинаковым, однако, значения переменных в какой-то момент могут быть разными в зависимости от конкретных значений параметров .

Объектом принято называть некоторую сущность, которая инкапсулирует  в себе данные и методы как единое целое и взаимодействует с внешним окружением через определенный интерфейс. С понятием объекта тесно связано отношение двойственности — «класс-экземпляр». Экземпляр объекта может иметь уникальные значения параметров, которые устанавливаются только один раз при создании объекта (можно сказать, что параметр – это константа, которая может иметь различное значение для разных .экземпляров). Ясно, что наша динамическая система вполне вписывается в определение объекта.

Различают объекты пассивные  и активные. Пассивные объекты (большая часть объектов в программах) только «откликаются» на вызовы методов и сообщений извне, но сами ничего не делают, т.е. не могут изменять значения своих данных по собственной инициативе. Активные объекты (например, экземпляры класса Thread в языке Java) имеют свою собственную «нить управления» и функционируют независимо от других объектов и параллельно с ними. В UML предлагается задавать функционирование активного объекта с помощью карты состояний, в которой узлам соответствуют некоторые деятельности, протяженные во времени, а переходам — мгновенные реакции на внешние и внутренние события. Динамическая система безусловно является активным объектом, но особым объектом, поскольку они изменяют значения своих переменных непрерывно, в то время как в UML деятельность все же предполагает наличие потока управления, который выполняет некоторую последовательность действий (скорее всего циклическую) параллельно и независимо от других потоков. Будем называть такие объекты активными динамическими.

 

Задание и порядок  выполнения работы

 

Задание

Создать модель математического маятника, описанного в теоретической части.

 

Порядок выполнения работы

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

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

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

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

 

Рис 3

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

 

Рис 4

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

 

Рис 5

 

4. Создайте модель  с  помощью команды «Модель/Создать»  главного меню или кнопки  на панели кнопок.

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

 

6. Постройте временную  и фазовую диаграммы модели (рис. 6, 7)

Рис. 6

 

Рис. 7

 

7. Создайте 3D-анимацию модели.

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

Рис. 8

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

Рис. 9

 

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

8. Создайте панель 2D-анимации для модели.

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

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

 

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

 

Рис 10

 

С помощью команды «Окна/Новая 2D-анимация» создайте анимационное окно. Далее откройте с помощью кнопки или команды «Сервис/Стандартные 2D-компоненты» панель 2D-компонент (Рис 11).

 

Рис 11

 

Выберете на этой панели компоненту «Ползунок» и методом «drag-and-drop» перетащите ее в левую часть окна анимации. Щелкните на появившемся изображении ползунка правой клавишей мыши и с помощью команд всплывающего меню установите вертикальное расположение ползунка, режим показа числового значения и интервал значений 0 .. 100 (Рис 12).

Рис. 12

С помощью мыши можно перемещать 2D-компоненту в пределах окна анимации, а также изменять размер компоненты. Щелкните правой клавишей мыши сверху от компоненты и, выполнив команду «Добавить надпись» всплывающего меню, создайте пояснительную надпись для ползунка (Рис 13). Надпись также можно перемещать с помощью мыши с прижатой клавишей.

Теперь нужно связать  ползунок с переменной модели. Делается это аналогично 3D-анимации: методом «drag-and-drop» переместите переменную g из окна переменных и бросьте ее на изображении ползунка. Теперь ползунок будет отображать текущее значение переменной, а при перемещении ползунка с помощью мыши присваивать соответствующее значение этой переменной. Кроме ползунка интерактивными 2D-компонентами являются еще «Круговой регулятор» и «Кнопка». Остальные компоненты позволяют только отображать текущее значение переменной. Используем две компоненты «Линейный индикатор сплошной» для индикации значений переменных Alpha и Omega (Рис 13).

Рис. 13

 

9. Запустите модель  и поэкспериментируйте с ней,  изменяя ускорения силы тяжести. Пример такого изменения показан на рис. 14.

Рис. 14

10.


Информация о работе Математическое моделирование в программе ModelVision 3.2