- •Разгон.
- •Отрыв от земли.
- •Программный код отрыва от земли
- •Набор высоты.
- •Программный код набора высоты
- •Программный код крейсерского полёта
- •Программный код второго крейсерского разворота
- •Снижение.
- •Посадка.
- •Программный код посадки
- •Торможение.
- •Программный код торможения
- •Функция integrate() и передача необходимых параметров.
- •Программный код начальной выставки
- •Программный код модели погрешностей
Московский авиационный институт
(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)
К
афедра
информационных технологий
Отчёт по лабораторной работе
Моделирование авиационных систем Наименование работы
Студент Дудин В., Симонова Е. Ф.И.О
Группа: 3О-321Б
Отчёт принял преподаватель Козлов А. В. Ф.И.О.
“ “ 2____г.
__________________________ Подпись преподавателя
Вводная часть
Постановка исследования
Построить траекторию полёта авиационной модели Cessna Citation X из точки отправления г. Сингапур в точку прибытия г. Бангкок. Принять показатели инерциальных датчиков и траекторию полёта идеальными.
Исследование проводить с помощью следующего программного обеспечения:
Matlab – вычислительное программное средство.
Google Earth – программное средство для графического построения вычисленной в Matlab траектории.
FlightGear – программное средство для визуального моделирования полёта авиационной модели.
Обозначения
Программный код, используемый в данном отчёте для удобства чтения будет отображаться моноширинным шрифтом.
Названия городов, стран, авиационных моделей, существующих в реальном времени, будут обозначены курсивным начертанием.
Словосочетания, на которые стоит обратить внимание будут иметь обозначения в виде полужирного начертания.
Примечания1 будут иметь сноску и обозначены подчёркнутым начертанием.
Расчётная часть
Построение идеальной траектории полёта Сesna Citation X.
Для удобства построения полной траектории полёта авиационной модели, разделим траекторию на несколько этапов, первым из которых является – Взлёт, следующий этап – Полёт и заключительный этап – Посадка.
Перечисленные этапы также разделим на несколько частей, каждая из которых поможет понять суть происходящего.
Взлёт состоит из разгона, отрыв от земли и набора высоты авиационной модели.
Полёт состоит из нескольких координированных разворотов и крейсерского полёта.
Посадка состоит из снижения, посадки и торможения, выполняемыми моделируемым воздушным средством – Cessna Citation X.
Иллюстрация перечисленных этапов представлена ниже на рисунке 1.
Рис.
1. Отдельные этапы идеальной траектории
движения авиационной модели
Для того, чтобы произвести моделирование первого этапа траектории – Взлёта, необходимо уточнить расположения моделированного воздушного судна на взлётно-посадочной полосе.
Воспользуемся программным средством Google Earth и имеющимся в наличии подключением к всемирной паутине.
Узнаем координаты2 взлётно-посадочной полосы точки отправления и точки посадки авиационной модели.
Рис.2.
Взлётно-посадочная полоса точки
отправления.
Рис.3.
Взлётно-посадочная полоса точки посадки.
Определим необходимый угол направления движения авиационной модели по взлётно-посадочной полосе обоих точек3.
Для этого воспользуемся математическим тождеством – тангенсом острого угла прямоугольного треугольника называется отношение противолежащего катета к прилежащему.
Рис.4.
Угол направления движения авиамодели
по взлётно-посадочной полосе точки
отправления
В данном случае на иллюстрациях рис. 4 и рис. 5 изображены не все длины взлётно-посадочных полос. Для нахождения корректного угла направления, необходимо учесть всю длину взлётно-посадочных полос. И исходя из этой длины построить прямоугольный треугольник и вычислить угол направления как:
где
– угол направления авиамодели.
Рис.5.
Угол направления движения авиамодели
по взлётно-посадочной полосе точки
отправления
Используя программное средство Matlab создали функцию, содержащую инструкции, позволяющие строить траекторию полёта на каждом этапе моделирования. Достигается это путём изменения выражений с побочным эффектом4, которые отвечают за полёт авиамодели.
Функция part()
function p = part(T, y1, y2, k, dt)
t = [0:dt:T]'; % Время моделирования: начинается с 0, изменяется с шагом dt, заканчивается на T
if(k > 0)
x = (t/T).^k;
else
x = (1 - (1 - t/T).^(-k));
end
p = (y1+y2)/2 + ((y1-y2)/2)*cos(pi*x);
end
Взлёт
Ранее мы разделили этапы на составляющие: разгон, отрыв от земли и набор высоты.
Теперь поговорим об этих составляющих.
Разгон.
Разгон – та часть этапа Взлёта, где авиамодель движется по взлётно-посадочной полосе, без изменения угла крена, курса и тангажа. Скорость авиамодели достигает из нулевой отметки, отметку равной скорости отрыва воздушного судна от земли.
Следующая ниже выдержка из программного кода Matlab описывает данное движение воздушного средства по взлётно-посадочной полосе.
Программный код разгона
% Разгон воздушного судна
% ----- Начало
V_accel = sqrt((2*M*G)/(Pv*S*Co)); % Скорость разгона
T_accel = V_accel/(Ft/M); % Время разгона авиамодели
% Углы: крен, тангаж и курс
gamma_accel = part(T_accel, 0, 0, 1, dt); % Угол крена
theta_accel = part(T_accel, 0, 0, 1, dt); % Угол тангажа
psi_accel = part(T_accel, psi, psi, 1, dt); % Угол курса
% Скорости: к востоку, к северу и скорость по высоте
V1_accel = part(T_accel, 0, V_accel, 1, dt)*sin(psi); % Скорость к востоку
V2_accel = part(T_accel, 0, V_accel, 1, dt)*cos(psi); % Скорость к северу
V3_accel = part(T_accel, 0, 0, 1, dt); % Скорость по высоте
% ----- Конец
Отрыв от земли.
Отрыв от земли – в данной части авиамодель движется с постоянной скоростью. Курс и крен воздушного судна остаются неизменными. А вот тангаж меняется.
Программный код отрыва от земли
% Отрыв воздушного средства от земли
% ----- Начало
Max_theta = 30/180*pi;% Максимальный угол тангажа
% Скорость отрыва воздушного средства от земли в м/c
V_takeoff = V_accel*sin(Max_theta);
T_takeoff = 5; % Время отрыва воздушного средства от земли в секундах
% Углы: крен, тангаж и курс
gamma_takeoff = part(T_takeoff, 0, 0, 1, dt);
theta_takeoff = part(T_takeoff, 0, Max_theta, -5, dt);
psi_takeoff = part(T_takeoff, psi, psi, 1, dt);
% Скорости: к востоку, к северу и скорость по высоте
V1_takeoff = part(T_takeoff, V_accel, V_accel, 1, dt)*sin(psi);
V2_takeoff = part(T_takeoff, V_accel, V_accel, 1, dt)*cos(psi);
V3_takeoff = part(T_takeoff, 0, V_takeoff, -5, dt);
% ----- Конец
Набор высоты.
Набор высоты – в этой части авиамодель всё ещё находится в состоянии взлёта, поэтому угол тангажа сохраняет свою изменчивость. Скорость Cessna Citation X также меняется до отметки равной скорости при координированном развороте. Крен остаётся неизменчивым до того момента, пока авиамодель набирает высоту. В заключительном временном промежутке данного этапа авиамодель выходит на координированный разворот и угол крена начинает меняться.
Программный код набора высоты
% Набор высоты воздушным средством
% ----- Начало
T_climb = 180; % Время набора высоты воздушным средством
Angle_climb = -11.355/180*pi; % Угол тангажа
% Максимальный угол крена для крейсерского поворота Angle_turn = 15/180*pi; % Обновляем угол крена исходя из наших исходных данных Angle_turn1 = Angle_turn - (Angle_climb - psi);
% Углы: крен, тангаж и курс
gamma_climb = part(T_climb, 0, -Angle_turn, 5, dt);
theta_climb = part(T_climb, Max_theta, 0, 1, dt);
psi_climb = part(T_climb, psi, psi, 1, dt);
% Скорости: к востоку, к северу и скорость по высоте
V1_climb = part(T_climb, V_accel, V_krejs, 1, dt)*sin(psi);
V2_climb = part(T_climb, V_accel, V_krejs, 1, dt)*cos(psi);
V3_climb = part(T_climb, V_takeoff, 0, 1, dt);
% ----- Конец
На данном этапе мы использовали следующие формулы:
Рис.
6. Формулы этапа Взлёт.
Полёт
Этап Полёт имеет несколько координированных разворотов и крейсерский полёт.
Координированный разворот.
Координированный разворот – разворот воздушного судна, в котором угол тангажа остаётся неизменным, а углы крена и курса меняются. При этом скорость воздушного судна остаётся постоянной.
Иллюстрацию координированного разворота, взятой из презентации можно увидеть ниже.
Рис.
7. Координированный разворот воздушного
судна.
Программный код координированного разворота
% 1ый координированный разворот воздушного средства
% ----- Начало
Radius = V_krejs^2/(G*tan(-Angle_turn)); % Радиус разворота
T_turn1 = (Angle_climb - psi)/(V_krejs/Radius); % Время поворота
% Углы: крен, тангаж и курс
gamma_turn1 = part(T_turn1, -Angle_turn, 0, -2, dt);
theta_turn1 = part(T_turn1, 0, 0, 1, dt);
t = [0:dt:T_turn1]'; % Моделируем крейсеркий разворот
psi_turn1 = psi + (V_krejs/Radius)*t; % Угол курса
% Скорости: к востоку, к северу и скорость по высоте
V1_turn1 = V_krejs * sin(psi_turn1);
V2_turn1 = V_krejs * cos(psi_turn1);
V3_turn1 = part(T_turn1, 0, 0, 1, dt);
% ----- Конец
На данном этапе мы использовали следующие формулы:
Рис.
8. Формулы части координированный
разворот этапа Взлёт.
Крейсерский полёт.
В данной части авиамодель находится в меньшей активности. Её скорость постоянна. Углы тангажа, крена и курса также постоянны.
Реализация данной части этапа Полёт представлена ниже.
