Относительное орбитальное движение
Задание для лабораторной работы по курсу “Основы MATLAB”
Разработать программу для исследования движения наноспутника, отделившегося от орбитальной станции, движущейся по круговой орбите высотой \(h=350\) км.
Движение наноспутника относительно станции определяется в орбитальной системе координат, движущейся вместе с орбитальной станцией по круговой орбите. Начало координат расположено в центре масс станции. Ось \(x_o\) орбитальной подвижной системы координат направлена от Земли вдоль радиус вектора станции. Ось \(y_o\) лежит в плоскости орбиты и направлена в сторону орбитальной скорости станции. Ось \(z_o\) дополняет систему координат до правой.
Задание 1. Создать функцию определения положения и скорости спутника относительно орбитальной подвижной системы координат, связанной со станцией
function x = get_orbital_state(x0, n, t)
%x = get_orbital_state(x0, n, t)
% Аргументы:
% x0 - 6x1 [x0;y0;z0;vx0;vy0;vz0] - начальное (t=0) положение и скорость наноспутника
% n - 1x1 угловая скорость орбитального движения станции рад/с
% t - 1x1 время
% Результат
% Вектор состояния 6x1 наноспутника для момента времени t
c = cos(n*t);
s = sin(n*t);
A = [4-3*c 0 0 s/n 2/n-2*c/n 0;
-6*n*t+6*s 1 0 -2/n+2*c/n 4*s/n-3*t 0;
0 0 c 0 0 s/n;
3*n*s 0 0 c 2*s 0;
-6*n+6*n*c 0 0 -2*s -3+4*c 0;
0 0 -n*s 0 0 c];
x = A*x0;
end
Задание 2. Спутник №1 отделяется от станции со скоростью 0,5 м/с, при этом угол между вектором скорости отделения и осью \(y_o\) орбитальной системы координат равен 80 градусам (проекция скорости на ось \(x_o\) положительная). Построить таблицу (матрицу) координат спутника №1 в орбитальной системе координат для 100 значений моментов времени, равномерно распределенных в интервале двух орбитальных периодов (100 точек от 0 до 2T, включая границы).
t = linspace(....)
sat1 = cell2mat( arrayfun(...) )
Используемые функции: arrayfun, cell2mat, linspace
Задание 3. Сохранить результат (таблицу координат) в текстовый файл sat1.txt следующего вида:
t, c xo, км yo, км zo, км
00 000.000 000.000 000.000
10 000.000 000.000 000.000
...
f = fopen(...)
fprintf(...)
fclose(f)
Используемые функции: fopen, fprintf, fclose.
Задание 4. Спутник №2 отделяется от станции со скоростью 0,5 м/с в отрицательном направлении оси \(y_o\). Построить таблицу (матрицу) координат спутника №2 в орбитальной системе координат для 100 значений моментов времени, равномерно распределенных в интервале двух орбитальных периодов (100 точек от 0 до 2T, включая границы).
sat2 = cell2mat( arrayfun(...) )
Задание 5. Построить таблицу (матрицу) 100x4 c расстояниями от станции до спутника №1 (d1), от станции до спутника №2 (d2) и от спутника №1 до спутника №2 (d12) для 100 значений моментов времени, равномерно распределенных в интервале двух орбитальных периодов (100 точек от 0 до 2T, включая границы).
d1 = ... выражение с sat1
d2 = ... выражение с sat2
d12 = ... выражение с sat1 и sat2
dist = [....];
Задание 6. Сохранить результат (таблицу расстояний) в текстовый файл dist.txt следующего вида.
t, c d1, км d2, км d12, км
00 000.000 000.000 000.000
10 000.000 000.000 000.000
...
f = fopen(...)
fprintf(...)
fclose(f)
Используемые функции fopen, fprintf, fclose.
Задание 7. Построить на одном графике траекторию движения наноспутника №1 и наноспутника №2 относительно станции в плоскости её орбиты на интервале её двух орбитальных периодов. Ось \(x_o\) на графике должна быть направлена вверх.
Используемые функции: plot.
Задание 8. Загрузить матрицу расстояний из текстового файла dist.txt. Построить графики изменения расстояния между наноспутниками от времени.
dist_matrix = dlmread(...
plot(dist_matrix(:,1),...
xlabel('Время, с');
ylabel('Расстояние d_{12}, км');
Используемые функции: dlmread, plot
Методические указания
Движение наноспутника относительно станции в орбитальной подвижной системе координат, связанной со станцией, предполагая, что расстояние между станцией и наноспутником значительно меньше, чем расстояние от станции до центра Земли, описывается следующими уравнениями: \[\mathbf x = \begin{bmatrix} 4-3c & 0 & 0 & s/n & 2/n-2c/n & 0 \\ -6nt+6s & 1 & 0 & -2/n + 2c/n & 4s/n - 3t & 0 \\ 0 & 0 & c & 0 & 0 & s/n \\ 3ns & 0 & 0 & c & 2s & 0 \\ -6n +6nc & 0 & 0 & -2s & -3+4c & 0 \\ 0 & 0 & -ns & 0 & 0 & c \end{bmatrix} \mathbf x(0)\]
где \(s = \sin nt, \, c = \cos nt\), \(n\) – угловая скорость орбитального движения станции: \[n = \sqrt{\frac{\mu}{r^3}}\]
\(r\) – радиус круговой орбиты станции, \(\mu = 398600.448\) км\(^3\)/c\(^2\) – гравитационный параметр Земли, \(\mathbf x\) – вектор состояния наноспутника (координаты и скорость относительно станции): \[\mathbf x = \begin{bmatrix} x \\ y \\ z \\ \dot x \\ \dot y \\ \dot z \end{bmatrix}, \quad\]
\(\mathbf x(0)\) – вектор начального состояния наноспутника: \[\mathbf x(0) = \begin{bmatrix} x(0) \\ y(0) \\ z(0) \\ \dot x(0) \\ \dot y(0) \\ \dot z(0) \end{bmatrix}\]