Задание на практику 2 курс

advertisement
Задание на практику 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 круговая орбита, 1e0)
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
St
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
Download