Задание на практику II курс Модель движения КА в центральном поле тяготения Рассмотрим модельную задачу, которая в небесной механике называется задачей двух тел и изучает движение двух материальных точек под действием силы их взаимного притяжения. В задаче двух тел учитывается только единственная сила – сила ньютоновского взаимодействия. Для исследования движения КА относительно небесного тела предположим, что масса КА пренебрежимо мала по отношению к массе небесного тела, что приводит к ограниченной задаче двух тел. Уравнение движение двух тел в векторной форме будет следующим: d 2r 3r 2 dt r r - радиус-вектор между двумя телами - гравитационная константа В задаче двух тел КА движется по орбите, уравнение которой может быть записано как r p , где 1 e cos p – фокальный параметр орбиты e – эксцентриситет орбиты – истинная аномалия (угловое положение КА) Параметры p и e определяют форму и размер орбиты. Рассмотрим общий случай эллиптической орбиты, рисунок 1. Рисунок 1 – Эллиптическая орбита Отметим на траектории полета следующие основные параметры орбиты и КА: 1. Радиус перигея – расстояние от центра Земли до ближайшей точки орбиты p 1 e r 2. Радиус апогея – расстояние от центра Земли до наиболее удаленной точки орбиты r p 1 e 3. Большая полуось орбиты – большая полуось эллипса a r r 2 4. Эксцентриситет - характеризует сжатие орбиты (е=0 круговая орбита, 1e0) e 1 r a 5. Радиус-вектор КА – определяет положение КА r a(1 e 2 ) 1 e cos 6. Период КА – полный оборот КА по орбите T 2 a3 - гравитационная постоянная Земли, =398600( км3/с2) 7. Площадь эллипса орбиты S a a(1 e 2 ) 8. Радиальная скорость КА (скорость по радиус-вектору) Vr p e sin 9. Трансверсальная скорость КА (скорость по трансверсали к радиус-вектору) Vn p (1 e cos ) 10. Скорость КА V Vr Vn 2 2 11. Скорость в апогее V r (1 e) (1 e) 12. Скорость в перигее V r (1 e) (1 e) 13. - угол, на который меняется положение КА за время t A St T 2A r2 Задание Разработать библиотеку для моделирования полета КА по орбите. Библиотека должна реализовывать моделирование любого числа КА находящихся на эллиптической орбите. Построить блок-схемы основных алгоритмов библиотеки. С помощью разработанной библиотеки промоделировать соответствующие задачи. Оформить отчет, включающий: постановку задачи, методическую часть с описанием и распечаткой программного обеспечения, результаты расчетов в виде таблицы значений, графиков, рисунков, анализа результатов, выводы. Рекомендуется написать класс Satellite и реализовать в нем конструктор по умолчанию, общий конструктор, функции доступа к переменным класса и функцию движения КА, которая зависит от вермени полета. class Satellite { //основные параметры орбиты и КА float perigee; float apogee; float Theta; //вспомогательные параметры орбиты public: Satellite(float, …); Satellite(void){}; void Move(float step); //функции доступа к основным параметрам орбиты и КА //скорость, координаты и т.д. }; Рассмотрим возможный фрагмент основной программы //инициализация OpenGL void init(){ //ортогональная проекция //gluOrtho2D(xmin, xmax, ymin, ymax); //очистка экрана glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //трехмерная проекция экрана //glOrtho(xmin, xmax, ymin, ymax,zmin, zmax); //Поместить объекты в один слой //glEnable(GL_DEPTH_TEST); } //Функция отрисовки трехмерной Земли void Earth (){ glutSolidSphere(3671,20,20); } void SolarSystem(){ glClear(GL_COLOR_BUFFER_BIT); Sun(); for (int i=0;i<PlanetCount;i++) Orbit(Planet[i]); glFlush(); glutSwapBuffers (); } void Move(){ if (t<=tk){ for (int i=0;i<PlanetCount;i++) Planet[i].Move(tStep); t+=tStep; glutPostRedisplay (); } } void main(int argc, char **argv){ //инициализация Glut glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA |GLUT_DEPTH ); glutInitWindowPosition(50,50); glutInitWindowSize(700,700); glutCreateWindow("Orbit"); init(); glutDisplayFunc(SolarSystem); glutMouseFunc(mouse); glutIdleFunc(Move); glutMainLoop(); } Задачи: 1. Создать модель движения КА по орбите на плоскости; Дополнительно: построить график зависимости угла истинной аномалии от времени 2. Смоделировать движение группировки КА на эллиптических орбитах в 2D; Дополнительно: построить графики расстояний между КА 3. Создать модель движения планет солнечной системы; Дополнительно: построить графики расстояний между планетами 4. Создать модель перехода КА между круговыми компланарными орбитами; Дополнительно: построить график зависимости радиус-вектора КА от времени Комментарий: Для перехода между круговыми компланарными орбитами необходимо произвести минимум два импульса. Естественным вариантом переходной орбиты является эллипс минимальной энергии, касающейся в апогее и перигее круговых орбит. Суммарная требуемая скорость на переход вычисляется по формуле: 2r2 2r1 V V1 V2 Vкр (r1 ) 1 Vкр (r2 )1 r r r r 1 2 1 2 V1 - приращение скорости на первой орбите V2 - приращение скорости на второй орбите 5. Смоделировать движения КА в трехмерном пространстве. Дополнительно: показать вращение Земли, изобразить трехмерный спутник. За какое время спутник с орбиты высотой 150 км перейдет на орбиту с периодом 24 ч и каковы будут суммарные затраты? Добавьте в модель параметр наклонение орбиты и смоделируйте полярную орбиту, перпендикулярную плоскости XOY. Литература 1. Теория кеплеровых движений летательных аппаратов, Погорелов Д.А., М – 1961 2. Механика космического полета, под ред. Мишина, М – 1989 3. С/С++ Программировании на языке высокого уровня, Павловская Т.А., СПб.: Питер, 2003 4. OpenGl, Суперкнига, 3-е издание: пер. с англ. – М: «Вильямс», 2006 5. http://www.opengl.org/ работа с OpenGL 6. http://nehe.gamedev.net/ работа с OpenGL 7. http://pmg.org.ru/nehe/index.html работа с OpenGL