Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Баумана
Факультет: «Специальное машиностроение»
Кафедра СМ-3:
«Динамика и управление полетом ракет и космических аппаратов»
Домашнее задание № 2
за 6 семестр
по курсу
"Теория полёта, баллистика и аэродинамика"
Москва, 2021
Формулировка задания
Исходные данные
Математическая модель
2
Вводим обозначения: h – высота над поверхностью Земли, Re – радиус
Земли, 𝑣0 – начальная скорость аппарата.
Задаётся вектор координат и скоростей центра масс Xo = [x, y, z, Vx, Vy, Vz]
3
Результаты расчёта
4
Траектория полёта
5
Приложение 1
%% Задание НУ
global Re
Re = 6371e+03;
global h0
h0 = 250e+03;
global mu;
mu = 3.9860045e+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 : 100.0 : tk],...
X0, opts);
%% Визуализация
plot(time_moments, trajectory_parameters(:, 1));
grid on;
hold on; % использовать тот же график для новых кривых
plot(time_moments, trajectory_parameters(:, 2));
hold off;
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 % задать одинаковый масштаб по всем осям
6
Приложение 2
function [DXDT] = RightSides1(t, X1)
r = norm(X1(1:3));
global mu;
Приложение 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;
value = h + 10e+03 - h0;
isterminal = 1;
direction = 0;
end