Автор: Пользователь скрыл имя, 04 Марта 2013 в 16:14, лабораторная работа
Цель: обучение основным приемам работы с пакетом ModelVision 3.2. Построение математической модели маятника
В данной работе будет построена модель простого математического маятника.
Данная модель является примером модели чисто непрерывной изолированной системы.
Лабораторная работа №4
Математическое моделирование в программе ModelVision 3.2
Цель: обучение основным приемам работы с пакетом ModelVision 3.2. Построение математической модели маятника
Теоретические сведения
В данной работе будет построена модель простого математического маятника.
Данная модель является примером модели чисто непрерывной изолированной системы.
Изолированной называется система, не взаимодействующая с внешним окружением. Таким образом, модель изолированной системы должны включать в себя как описание изучаемой системы, так и описание внешнего окружения.
Моделируемая система
Состояние маятника полностью определяется значением двух переменных: угла отклонения и угловой скоростью .
Динамика маятника определяется двумя дифференциальными уравнениями (1).
(1) , где
При численном моделировании мы будем полагать .
Однако, для анимации движения маятника потребуются дополнительные переменные – координаты и материальной точки, задаваемые двумя формулами (1a)
(1a)
На Рис 2б показана траектория движения маятника в координатах . Зависимости показаны на Рис 2а. Моделируемая система совершает незатухающие колебания. На Рис 2в показана фазовая траектория маятника в системе координат
а)
б) в)
Рис 2
Совокупность переменных, определяющих состояние динамической (то есть изменяющейся во времени) системы, называют фазовым вектором, а область его изменения – фазовым пространством. Набор начальных значений определяет начальную точку, соответствующую моменту времени . При изменении конец фазовый вектор определяет последовательность точек, называемую фазовой траекторией. Фазовое пространство с дополнительной координатой – временем – называют расширенным фазовым пространством. Графики, показанные на Рис 2, являются различными двумерными проекциями траектории системы в расширенном фазовом пространстве.
Функционирование маятника определяется
совокупностью системы
Объектом принято называть некоторую сущность, которая инкапсулирует в себе данные и методы как единое целое и взаимодействует с внешним окружением через определенный интерфейс. С понятием объекта тесно связано отношение двойственности — «класс-экземпляр». Экземпляр объекта может иметь уникальные значения параметров, которые устанавливаются только один раз при создании объекта (можно сказать, что параметр – это константа, которая может иметь различное значение для разных .экземпляров). Ясно, что наша динамическая система вполне вписывается в определение объекта.
Различают объекты пассивные и активные. Пассивные объекты (большая часть объектов в программах) только «откликаются» на вызовы методов и сообщений извне, но сами ничего не делают, т.е. не могут изменять значения своих данных по собственной инициативе. Активные объекты (например, экземпляры класса 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-
Рис 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
10.
Информация о работе Математическое моделирование в программе ModelVision 3.2