Московский Авиационный Институт Кафедра информационно-управляющих комплексов Курс «Компьютерное моделирование интегрированных систем ЛА» Лабораторная работа №1 Интегрирование систем ОДУ Сергей Суровцев, группа 07-409 Москва, 2009 Оглавление Техническая постановка задачи ..................................................................................................................... 3 Математические модели, алгоритмы и численные методы ....................................................................... 4 Численные методы ....................................................................................................................................... 4 Метод Дормана-Принса 4(5) порядка .................................................................................................... 4 Метод Адамса-Мултона-Бэшфорта 3(4) порядка.................................................................................. 4 Математические модели ............................................................................................................................. 5 Орбита Аренсторфа .................................................................................................................................. 5 Брюсселятор ............................................................................................................................................. 5 Архитектура приложения ................................................................................................................................ 6 Классы ............................................................................................................................................................ 6 Модели...................................................................................................................................................... 7 Интеграторы ............................................................................................................................................. 7 Анализ результатов вычислительных экспериментов ................................................................................. 9 Орбита Аренсторфа ...................................................................................................................................... 9 Метод Адамса-Мултона-Бэшфорта ........................................................................................................ 9 Метод Дормана-Принца 5(4) порядка ................................................................................................. 10 Брюсселятор................................................................................................................................................ 12 Метод Адамса-Мултона-Бэшфорта ...................................................................................................... 12 Метод Дормана-Принса 5(4) порядка .................................................................................................. 12 Вывод .............................................................................................................................................................. 13 Список литературы ......................................................................................................................................... 14 Техническая постановка задачи 1. Спроектировать и реализовать объектно-ориентированный шаблон взаимодействия математической модели и численного метода интегрирования систем обыкновенных дифференциальных уравнений (ОДУ); 2. Реализовать численные методы интегрирования систем ОДУ: — Дормана-Принса 5(4) порядка, включая коррекцию шага и плотную выдачу; — Адамса-Бэшфорта-Мултона 3(4) порядка. 3. Реализовать модели «орбита Аренсторфа», «брюсселятор»; 4. Проверить правильность реализации интеграторов, проинтегрировав ими модель «орбиты Аренсторфа» на двух витках и «брюсселятор» со стандартными Н.У, сравнить полученные результаты с известными a priori. Математические модели, алгоритмы и численные методы Численные методы Метод Дормана-Принса 4(5) порядка В работе реализован метод Дормана-Принса (1), со следующими модификациями: Ошибка определяется как среднеквадратическое отклонение (СКО). Шаг корректируется следующим способом: ,где H — заданная погрешность; e(h) — погрешность в данном шаге. В алгоритмах с коррекцией шага возникает необходимость плотной выдачи, т.е. интерполяции результатов вычислений в нужных точках. В данном случае использовались соотношения (2 стр. 187). Метод Адамса-Мултона-Бэшфорта 3(4) порядка Реализован многошаговый метод с функцией-предиктором Адамса-Бэшфорта 4-ого порядка и функцией-корректором Адамса-Мултона 3-его порядка (3). «Разгон», т.е. получение первых трёх значений осуществляется методом Рунге-Кутты с тонностью на 3 порядка лучшей, чем точность, которой инициализирован метод Адамса-Мултога-Бэшфорта. В каждом шаге коррекции сравнивается результат предыдущей и настоящей коррекций, и коррекция проводится заново, если максимальное значение разности фазовых векторов на двух соседних шага превышает заданную локальную погрешность (при этом в качестве предсказания в функции Мултона принимается предыдущая коррекция). Математические модели Орбита Аренсторфа При начальных условиях: Брюсселятор При начальных условиях: Архитектура приложения Классы Программа включает в себя 6 классов: TODEModel — базовый класс модели СОДУ; TODEIntegrator — базовый класс интегратора СОДУ; TRungeKutta45 — реализация метода Дормана-Принса, наследник TODEIntegrator; TAdamsBashforthMoulton — реализация метода Адамса-Мултона-Бэшфорта, наследник TODEIntegrator; TArenstorf — реализация модели орбиты Аренсторфа, наследник TODEModel; TBruccelator — реализация модели Брюсселятора, наследник TODEModel. Подобная архитекутра выбрана из соображений компактности и является наиболее часто встречающейся в ряде существующих откртых реализациях интеграторов. Хотя подобная архитектура и не является правильной с точки зрения пьюристского ООАиП, решающим фактором в её выборе являлась её компактность. Диаграммы классов находятся на рисунке 1, на рисунке 2 представлена диаграмма последовательностей. Рис.1 Диаграммы классов Рис. 2 Диограмма последовательностей Модели Наследники класса TODEModel реализуют функцию F (правые части ДУ). Наследники TODEIntegrator обязаны реализовывать, по сути, лишь функцию Run, а также в конце каждой итерации обращаться к процедуре AddValue агрегированной модели. Интеграторы Интеграторы обязаны перекрывать процедуру Run предка TODEIntegrator. TRungeKutta45 RmsError(delta): extended — считает СКО. CorrectStep(e,t) — корректирует шаг; Densify(theta, t, y0, K) — осуществляет плотную выдачу. Densify(theta, t, y0, K) — осуществляет плотную выдачу. TAdamsBashforthMoulton CheckIfInBounds(y0, y1) — проверяет, проходит ли разность двух соседних итераций коррекции сравнение с максимально допустимой погрешностью. AdamsBashForthMoulton(y0.y1,y2,y3,t0,t1,t2,t3) — предсказывает следующее значение вектора состояния СОДУ. AdamsMoulton(t1,y2,y3,predY,t1,t2,t3) — корректор. Анализ результатов вычислительных экспериментов Вычислительные эксперименты в данной работе являются функциональными тестами ПО. Ожидается, что модель «орбита Аренсторфа» продержится как минимум 2 витка, а модель «Брюсселятор» будет иметь перидический характер. Орбита Аренсторфа Метод Адамса-Мултона-Бэшфорта Система «Орбита Аренсторфа» держится как минимум 2 витка, будучи интегрированной методом Адамса-Бэшфорта-Мултона со следующими параметрами: Длина шага = 0.001 Допустимая погрешность: = 0.001 Погрешность разгоняющего метода Дормана-Принса: 0.000001. На рисунке 3 изображена полученная орбита. На рисунке 4 изображён увеличенный фрагмент самопересечения траектории справа . Рис. 3 Орбита Аренсторфа, полученная методом Адамса-Бэшфорта-Мултона Рис. 4 Увеличенный фрагмент участка траектории. Метод Дормана-Принца 5(4) порядка Длина шага = 0.01 Допустимая погрешность = 1.0e-8 На рисунках 5 и 6 аналогичные результаты для метода Дормана-принса. Рис. 5 Орбита Аренсторфа, полученная методом Дормана-Принса Рис. 5 Рис. 6 Увеличенный фрагмент участка траектории. Брюсселятор Метод Адамса-Мултона-Бэшфорта Длина шага = 0.001 Допустимая погрешность: = 1.0e-12 Погрешность разгоняющего метода Дормана-Принса: 1.0e-15. На рисунке 7 представлены резульаты интегрирования системы «Брюсселятор» методом АдамсаМултона-Бэшфорта. Рис.7 Система «Брюсселятор» методом Адамса-Мултона-Бэшфорта. Метод Дормана-Принса 5(4) порядка На рисунке 8 отображены результаты интегрирования системы «Брюсселятор» методом АдамсаМултона-Бэшфорта при следующих параметрах: Длина шага: 1.0e-2 Допустимая погрешность: 1.0e-12. Рис. 8 Система «Брюсселятор» методом Дормана-Принса Вывод Результаты полученные обоими интеграторами на обеих системах соответсвуют известным априорным данным. Орбита Аренсторфа не разваливается как минимум 2 витка, а в модели «Брюсселятор» динамика системы сохраняет периодичность. Оба интеграторы являются работоспособными. Список литературы 1. Dormand-Price method. Wikipedia.org. [В Интернете] http://en.wikipedia.org/wiki/Dormand%E2%80%93Prince_method. 2. Э. Хайрер, С.Нёрсетт, Г.Ваннер. Решение обыкновенных дифференциальных уравнений. Нежёсткие задачи. 1990. 3. Shaharuddin Salleh, Albert Y. Zomaya, Sakhinah Abu Bakar. COMPUTING FOR. 2008.