Относительное орбитальное движение

Задание для лабораторной работы по курсу “Основы MATLAB”

Разработать программу для исследования движения наноспутника, отделившегося от орбитальной станции, движущейся по круговой орбите высотой \(h=350\) км.

Движение наноспутника относительно станции определяется в орбитальной системе координат, движущейся вместе с орбитальной станцией по круговой орбите. Начало координат расположено в центре масс станции. Ось \(x_o\) орбитальной подвижной системы координат направлена от Земли вдоль радиус вектора станции. Ось \(y_o\) лежит в плоскости орбиты и направлена в сторону орбитальной скорости станции. Ось \(z_o\) дополняет систему координат до правой.

Image

Задание 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}\]


© 2023. All rights reserved.

Powered by Hydejack v9.1.6