Вы находитесь на странице: 1из 8

Московский государственный технический университет им. Н.Э.

Баумана

Факультет: «Специальное машиностроение»

Кафедра СМ-3:

«Динамика и управление полетом ракет и космических аппаратов»

Домашнее задание № 2

за 6 семестр

по курсу

"Теория полёта, баллистика и аэродинамика"

«Исследование простейшей краевой задачи в схеме И. Кеплера»

Выполнил студент группы СМ1-62 Разоренов О.А.


подпись дата

Проверил преподаватель: Недогарок А.А.


подпись дата

Москва, 2021
Формулировка задания

1. Составить математическую модель невозмущённого движения


низкоорбитального космического аппарата.
2. Реализовать модель в программе на современном языке высокого уровня.
3. Смоделировать участок траектории численными методами.

Исходные данные

В качестве исходных данных орбиты принять круговую околоземную


орбиту. Начальная высота орбиты – 475 км. Гравитационный параметр Земли 𝜇з
принять равным 𝜇з=398600,45 км3/𝑐2 , радиус сферической Земли принять
равным 6 371 км. Наклонение орбиты – 30˚.

Обязательные требования к модели

1. Условие прекращения интегрирования: моделирование движения


производить до тех пор, пока не будет совершён один виток.
2. Модель движения должна быть пространственной.
3. Ориентация КА не учитывается, моделируется движение только центра
масс.
4. Дифференциальные уравнения ММД интегрировать с шагом по времени
не более ∆𝑡𝑖𝑛𝑡=0,01 c при использовании алгоритма с постоянным шагом
или с абсолютной точностью 0,1 и относительной точностью 1е-06 при
использовании алгоритма с адаптивным шагом.

Математическая модель

Имеем две системы дифференциальных уравнений:


𝑑𝑥
𝑑𝑡
= 𝑉𝑥

𝑑𝑦
𝑑𝑡
= 𝑉𝑦 - уравнения кинематики

𝑑𝑧
𝑑𝑡
= 𝑉𝑧

2
𝑑𝑉𝑥 μ*𝑥
𝑚 𝑑𝑡
=− 3
𝑟

𝑑𝑉𝑦 μ*𝑦
𝑚 𝑑𝑡
=− 3 - уравнения динамики центра масс
𝑟

𝑑𝑉𝑧 μ*𝑧
𝑚 𝑑𝑡
=− 3
𝑟

2 2 2
𝑟= 𝑥 + 𝑦 + 𝑧 , μ – гравитационный параметр Земли

Вводим обозначения: h – высота над поверхностью Земли, Re – радиус


Земли, Vo – начальная скорость аппарата.

Задаётся вектор координат и скоростей центра масс Xo = [x, y, z, Vx, Vy,


Vz].

Для поиска других точек необходимо провести простое интегрирование


(параметры с индексом 1 – до интегрирования, с индексом 2 – после, dt – шаг
интегрирования):

1. Для координат выражение вида x2 = x1 + Vx1*dt


2. Для скорости выражение вида Vx2 = Vx1 + dV1*dt

Тогда по смыслу интегрирования получаем сумму – конечные координаты


и скорости, при этом по смыслу численного решения получаем все значения
всех параметров во всех точках до конечных точек.

Также вводится вектор правых частей дифференциальных уравнений


dXdt = [Vx, Vy, Vz, dVx, dVy, dVz], рассчитываемый с помощью дополнительной
функции Rightsides(t, x) (x – например, наш вектор Хо). Т.к. используем
сферическую модель Земли, то проекции ускорения свободного падения по
μ*𝑥 μ*𝑦
декартовым осям осям одинаковы и равны 𝑑𝑉𝑥 = − 3 ,𝑑𝑉𝑦 = − 3 ,
𝑟 𝑟
μ*𝑧
𝑑𝑉𝑧 = − 3 .
𝑟

При интегрировании будем использовать функцию ODE45,


использующую метод Рунге-Кутта.

3
Результаты расчета
t, с X, км Y, км Z, км Vx, м/с Vy, м/с Vz, м/с

0 5929 0 3423 0,0 7630,5 0,0


200 5782 1513 3338 -1460,9 7441,7 -843,5
400 5349 2952 3088 -2849,5 6884,6 -1645,2
600 4652 4245 2686 -4097,1 5986,8 -2365,5
800 3724 5327 2150 -5142,0 4792,8 -2968,7
1 000 2612 6146 1508 -5932,3 3361,6 -3425,0
1 200 1371 6661 791 -6429,2 1764,0 -3711,9
1 400 62 6846 36 -6607,8 79,2 -3815,0
1 600 -1251 6692 -722 -6459,5 -1609,6 -3729,4
1 800 -2501 6207 -1444 -5991,5 -3218,7 -3459,2
2 000 -3627 5415 -2094 -5227,0 -4668,6 -3017,8
2 200 -4574 4355 -2641 -4203,8 -5887,4 -2427,1
2 400 -5295 3080 -3057 -2972,6 -6814,8 -1716,2
2 600 -5754 1652 -3322 -1594,3 -7405,1 -920,5
2 800 -5928 142 -3422 -137,1 -7628,8 -79,2
3 000 -5808 -1375 -3353 1326,9 -7475,1 766,1
3 200 -5401 -2823 -3118 2725,2 -6951,4 1573,4
3 400 -4727 -4132 -2729 3988,7 -6083,7 2302,9
3 600 -3819 -5237 -2205 5054,7 -4914,9 2918,4
3 800 -2722 -6082 -1571 5870,7 -3503,0 3389,4
4 000 -1490 -6626 -860 6396,1 -1917,7 3692,8
4 200 -184 -6843 -107 6605,0 -237,4 3813,4
4 400 1130 -6720 652 6487,0 1454,5 3745,3
4 600 2389 -6266 1379 6048,0 3074,5 3491,8
4 800 3529 -5501 2038 5309,7 4542,4 3065,6
5000 4495 -4464 2595 4308,7 5785,4 2487,6
5200 5239 -3206 3025 3094,4 6742,2 1786,6
5400 5723 -1789 3304 1727,0 7365,3 997,1
5600 5924 -284 3420 274,1 7623,9 158,3

4
Рисунок 1 – траектория в пространстве

5
Приложение 1. Листинг кода
clear all % удалить все переменные

close all % закрыть все графики

clc

%% Задание НУ

global Re

Re = 6371e+03;

global h0

h0 = 475e+03;

global mu;

mu = 3.986004415e+14;

i = 30*pi/180;

V0 = sqrt(mu/(Re + h0));

X0 = [(Re + h0)*cos(i), 0.0,(Re + h0)*sin(i), 0.0, V0, 0.0];% X0 = [x0 y0 z0 Vx0


Vy0 Vz0]

t0 = 0.0;

tk = 1.6 *60*60;

%% Цикл интегрирования

opts = odeset('RelTol',1e-06,'AbsTol',0.1, 'Events', @eventsFcn);

[time_moments, trajectory_parameters] = ode45(@RightSides1,...

[t0 : 200.0 : tk],...

X0, opts);

%% Визуализация

plot(time_moments, trajectory_parameters(:, 1));

grid on;

hold on; % использовать тот же график для новых кривых

plot(time_moments, trajectory_parameters(:, 2));

hold off;

6
plot3(trajectory_parameters(:,1),...

trajectory_parameters(:,2),...

trajectory_parameters(:,3))

grid on;

hold on % не открывать новый график, а продолжать выводить в уже открытый

[X_globe,Y_globe,Z_globe] = sphere(100); % создать сетку координат для поверхности


сферы r=1.0

X_globe = X_globe * Re; % смасштабировать сферу до Re

Y_globe = Y_globe * Re;

Z_globe = Z_globe * Re;

surf(X_globe,Y_globe,Z_globe); % отобразить сетку сферы на графике

axis equal % задать одинаковый масштаб по всем осям

Приложение 2. Функция правых частей дифференциального уравнения


function [DXDT] = RightSides1(t, X1)

r = norm(X1(1:3));

global mu;

% рассчитать занчение производных в данном X и t

DX = X1(4:6); % [Vx Vy Vz]

DV = -mu / r^3 * X1(1:3); % [dVx/dt dVy/dt dVz/dt]

DXDT = [DX ; DV]; % DXDT = [dxdt dydt ... dVzdt]

end

Приложение 3.
function [value,isterminal,direction] = eventsFcn(t,y)

% y - тот же вектор состояния [x y z Vx Vy Vz], который фигурирует в

% RightSides

global Re

global h0

R = sqrt(y(1)*y(1) + y(2)*y(2) + y(3)*y(3));

h = R - Re;

7
value = h + 10e+03 - h0;

isterminal = 1;

direction = 0;

end

Вам также может понравиться