- •Разгон.
- •Отрыв от земли.
- •Программный код отрыва от земли
- •Набор высоты.
- •Программный код набора высоты
- •Программный код крейсерского полёта
- •Программный код второго крейсерского разворота
- •Снижение.
- •Посадка.
- •Программный код посадки
- •Торможение.
- •Программный код торможения
- •Функция integrate() и передача необходимых параметров.
- •Программный код начальной выставки
- •Программный код модели погрешностей
Программный код посадки
% Посадка воздушного средства
% ----- Начало
T_land = 60; % Время посадки
% Углы: крен, тангаж и курс
gamma_land = part(T_land, 0, 0, 1, dt);
theta_land = part(T_land, Max_theta, Max_theta1, 5, dt);
psi_land = part(T_land, Angle_down, Angle_down, 1, dt);
% Скорости: к востоку, к северу и скорость по высоте
V1_land = part(T_land, V_land, V_land, 1, dt)*sin(Angle_down);
V2_land = part(T_land, V_land, V_land, 1, dt)*cos(Angle_down);
V3_land = part(T_land, V_down, V_down, -3, dt);
% ----- Конец
Торможение.
Торможение – на данном этапе авиамодель снижает свою скорость до отметки равной нулю. А также происходит изменение угла тангажа в то время как угол крена и курса остаются неизменными.
Программный код торможения
% Торможение воздушного средства
% ----- Начало
T_break = V_land/(Ft/M); % Время торможения
% Углы: крен, тангаж и курс
gamma_break = part(T_break, 0, 0, 1, dt);
theta_break = part(T_break, Max_theta1, 0, 1, dt);
psi_break = part(T_break, Angle_down, Angle_down, 1, dt);
% Скорости: к востоку, к северу и скорость по высоте
V1_break = part(T_break, V_land, 0, 1, dt)*sin(Angle_down);
V2_break = part(T_break, V_land, 0, 1, dt)*cos(Angle_down);
V3_break = part(T_break, 0, 0, 1, dt);
% ----- Конец
На данном этапе мы использовали следующие формулы:
Рис.
9. Формулы этапа Посадка.
Создаём в программном средстве Matlab функцию, содержащую инструкции, при вычислении которых происходит численное интегрирование. Передаём в данную функцию начальную строку, составленную матрицу скоростей и шаг, с которым будет проходить интегрирование, в качестве параметров этой функции.
Функция integrate() и передача необходимых параметров.
% Основная матрица скоростей на всех этапах построения траекторий
V = [V1_accel,V2_accel,V3_accel; V1_takeoff,V2_takeoff,V3_takeoff; V1_climb,V2_climb,V3_climb; V1_turn1,V2_turn1,V3_turn1; V1_fly,V2_fly,V3_fly; V1_turn2,V2_turn2,V3_turn2; V1_down,V2_down,V3_down; V1_land,V2_land,V3_land; V1_break,V2_break,V3_break];
% Передаем функции интегрирования шаг и матрицу скоростей
fly = integrate(fly(1,:), V, dt);
% Основная матрица углов на всех этапах построения траекторий
fly(:,5:7) = [gamma_accel, theta_accel, psi_accel; gamma_takeoff, theta_takeoff, psi_takeoff; gamma_climb, theta_climb, psi_climb; gamma_turn1, theta_turn1, psi_turn1; gamma_fly, theta_fly, psi_fly; gamma_turn2, theta_turn2, psi_turn2; gamma_down, theta_down, psi_down; gamma_land, theta_land, psi_land; gamma_break, theta_break, psi_break];
% Переводим радианы обратно в градусы
fly(:,2:3) = fly(:,2:3)/pi*180;
fly1 = fly(1:30:end,:);
tgeo2kml(fly1);
% Функция интегрирования
function trj = integrate(start, V, dt)
N = size(V,1);
trj = zeros(N,7);
trj(1,:) = start;
a = 6378137;
e = 6.69437999013*10^(-3);
for i = 2:N
RE = a/(sqrt(1-e*(sin(trj(i-1,3)))^2));
RN = (a*(1-e))/(1-e*(sin(trj(i-1,3)))^2)^(3/2);
trj(i,1) = trj(i-1,1) + dt;
trj(i,2) = trj(i-1,2) + (V(i-1,1)*dt)/((RE+trj(i-1,4))*cos(trj(i-1,3))); % Для долготы
trj(i,3) = trj(i-1,3) + (V(i-1,2)*dt)/(RN +trj(i-1,4)); % Для широты
trj(i,4) = trj(i-1,4) + V(i-1,3)*dt;
end
Инерциальные системы навигации. Матрица ориентации.
В данной части лабораторной работы необходимо построить траекторию полёта авиамодели на основе показания идеальных датчиков: акселерометров и ньютонометров.
Также необходимо моделирование уравнения движения самолёта исходя из показаний акселерометров и ньютонометров.
Для упрощения и удобства расчётов задание было разделено на три раздела:
Матрица ориентации, её построение.
Уравнение движения, его моделирование.
Модель силы тяжести, её построение.
В данном отчёте описывается только первая часть задания – матрица ориентации и её построение.
Чтобы построить матрицу ориентации, требуется выразить углы крена, тангажа и курса из матрицы состояния.
Определяем
состояние системы в первую минуту:
умножаем матрицу ориентации на
транспонированный вектор
.
Получаем столбец в виде
Отсюда, выражаем угол крена:
Найдём второй
угол: умножим матрицу ориентации S
на транспонированный вектор
Из полученного вектора-столбца выражаем
угол тангажа.
Найдём третий
угол: умножим полученный столбец слева
на матрицы поворота по двум углам
.
Отсюда получаем угол курса.
Иллюстрация матрицы ориентации и нахождение углов расположена ниже.
Рис.
10. Матрица ориентации и углы
