Форум программистов, компьютерный форум CyberForum.ru

Модель движения КА в центральном поле тяготения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание и вызов файла с описанием функции http://www.cyberforum.ru/cpp-beginners/thread923685.html
#include "iostream" #include <stdlib.h> #include <time.h> #include <ctype.h> #include <string.h> void task(int ); void dispensation (const int*,int ,int ,int); int main()
C++ Абстрактный класс Ребят такая проблема, точнее недопонимания. Реализую графический редактор. Есть базовый абстрактный класс GraphObject От него наследуется класс Point с параметрами X Y Создаю класс Layer в котором храниться массив GraphObject class GraphicObject //Графический объект { public: GraphicObject(); virtual ~GraphicObject(); http://www.cyberforum.ru/cpp-beginners/thread923684.html
Очистка системы от хлама C++
ДОБРЫЙ ДЕНЬ! НУЖНА ПОМОЩЬ Подкиньте плиз кто-то ссылку на прогу в исходниках на С++ , похожую на CCleaner/ или алгоритм реализации. Или куда двигаться. Хочу написать. А вот с чего хвататься, не врубаюсь. книгу можно. Кто чем может помогите.Я новичокСпасибо.:cry:
Почему не вызывается конструктор копии? C++
Почему не вызывается конструктор копии? class CPoint { friend std::istream &operator>>(std::istream &in, CPoint &obj); friend std::ostream &operator<<(std::ostream &out, const CPoint &obj); public: CPoint(int x=0, int y=0) { std::cout << "Конструктор CPoint(" << x << ", " << y << ")" << std::endl; mX=x; mY=y; } CPoint(const CPoint &copy) { std::cout << "Конструктор копии CPoint("...
C++ Класс работник. Сортировка. Советы по коду http://www.cyberforum.ru/cpp-beginners/thread923662.html
Здраствуйте! Вот задание: Построить три класса (базовый и 2 производный), описывающие некоторых работников с почасовой оплатой (один из потомков) и фиксированной оплатой (второй потомок). Описать в базовом классе абстрактный метод для расчета среднемесячной заработной платы. Для работников с почасовой оплатой формула для расчета такова: «среднемесячная заработная плата = 20.8 * 8 * почасовую...
C++ Электронно цифровая подпись RSA Добрый вечер, у меня вопрос, объясните алгоритм Электронно цифровая подпись RSA. Везде посморел так и не понял: Пример. Исходные данные: сообщение M’ = 947829 p = 7 q = 11 d = 17 (закрытый ключ отправителя) e = 53 (открытый ключ отправителя) подробнее

Показать сообщение отдельно
Alecsei
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 10
15.07.2013, 23:22     Модель движения КА в центральном поле тяготения
Модель движения КА в центральном поле тяготения
Рассмотрим модельную задачу, которая в небесной механике называется задачей двух тел и изучает движение двух материальных точек под действием силы их взаимного притяжения. В задаче двух тел учитывается только единственная сила – сила ньютоновского взаимодействия.
Для исследования движения КА относительно небесного тела предположим, что масса КА пренебрежимо мала по отношению к массе небесного тела, что приводит к ограниченной задаче двух тел.
Уравнение движение двух тел в векторной форме будет следующим:

- радиус-вектор между двумя телами
 - гравитационная константа
В задаче двух тел КА движется по орбите, уравнение которой может быть записано как
, где

p – фокальный параметр орбиты
e – эксцентриситет орбиты
 – истинная аномалия (угловое положение КА)
Параметры p и e определяют форму и размер орбиты.

Рассмотрим общий случай эллиптической орбиты, рисунок 1.


Рисунок 1 – Эллиптическая орбита

Отметим на траектории полета следующие основные параметры орбиты и КА:
1. Радиус перигея – расстояние от центра Земли до ближайшей точки орбиты

2. Радиус апогея – расстояние от центра Земли до наиболее удаленной точки орбиты

3. Большая полуось орбиты – большая полуось эллипса

4. Эксцентриситет - характеризует сжатие орбиты (е=0 круговая орбита, 1e0)

5. Радиус-вектор КА – определяет положение КА

6. Период КА – полный оборот КА по орбите

 - гравитационная постоянная Земли, =398600( км3/с2)
7. Площадь эллипса орбиты

8. Радиальная скорость КА (скорость по радиус-вектору)

9. Трансверсальная скорость КА (скорость по трансверсали к радиус-вектору)

10. Скорость КА

11. Скорость в апогее


12. Скорость в перигее

13. - угол, на который меняется положение КА за время


Задание
Разработать библиотеку для моделирования полета КА по орбите. Библиотека должна реализовывать моделирование любого числа КА находящихся на эллиптической орбите.
Построить блок-схемы основных алгоритмов библиотеки.
С помощью разработанной библиотеки промоделировать соответствующие задачи.
Оформить отчет, включающий: постановку задачи, методическую часть с описанием и распечаткой программного обеспечения, результаты расчетов в виде таблицы значений, графиков, рисунков, анализа результатов, выводы.
Рекомендуется написать класс Satellite и реализовать в нем конструктор по умолчанию, общий конструктор, функции доступа к переменным класса и функцию движения КА, которая зависит от вермени полета.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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. Создать модель перехода КА между круговыми компланарными орбитами;
Дополнительно: построить график зависимости радиус-вектора КА от времени



Комментарий: Для перехода между круговыми компланарными орбитами необходимо произвести минимум два импульса. Естественным вариантом переходной орбиты является эллипс минимальной энергии, касающейся в апогее и перигее круговых орбит. Суммарная требуемая скорость на переход вычисляется по формуле:

- приращение скорости на первой орбите
- приращение скорости на второй орбите


5. Смоделировать движения КА в трехмерном пространстве.
Дополнительно: показать вращение Земли, изобразить трехмерный спутник. За какое время спутник с орбиты высотой 150 км перейдет на орбиту с периодом 24 ч и каковы будут суммарные затраты? Добавьте в модель параметр наклонение орбиты и смоделируйте полярную орбиту, перпендикулярную плоскости XOY.





я Вот начил а дальше незнаю как делать

Добавлено через 1 час 37 минут
спасибо вам большое я тут 1 раз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru