Этот пример показывает, как загрузить данные о рейсе и оценить силы G во время рейса.
Зарегистрированные данные содержат следующие параметры рейса:
угол атаки (альфа) в радианах,
боковой угол (бета) в радианах,
указанная воздушная скорость (IAS) в узлах,
угловые скорости тела (омега) в радианах/секунду,
понижающее и перекрестное положения в футах, и
высота (альт) в футах.
load('astflight.mat');
Переменные MATLAB ® создаются для угла атаки (альфа), угла боковой оси (бета), угловых скоростей тела (омега) и высоты (альт) по записанным данным. The convangvel
функция используется для преобразования угловых скоростей тела из радианов в секунду (рад/с) в степени в секунду (град/с).
alpha = fltdata(:,2); beta = fltdata(:,3); omega = convangvel( fltdata(:,5:7), 'rad/s', 'deg/s' ); alt = fltdata(:,10);
В этом наборе полетных данных была зафиксирована указанная воздушная скорость (IAS). В инструментирование кабины отображается указанная воздушная скорость (IAS). Для выполнения вычислений обычно используется истинная воздушная скорость (TAS), воздушная скорость без ошибок измерения.
Ошибки измерения вносятся через ПВД, используемые для определения воздушной скорости. Эти ошибки измерения являются ошибкой плотности, ошибкой сжимаемости и ошибкой калибровки. Применение этих ошибок к истинной воздушной скорости приводит к указанной воздушной скорости.
Ошибка плотности возникает из-за меньшей плотности воздуха на высоте. Эффект - индикатор воздушной скорости, считываемый ниже, чем истинная воздушная скорость на больших высотах. Когда различие или ошибка в плотности воздуха на высоте от плотности воздуха в стандартный день на уровне моря применяется к истинной воздушной скорости, это приводит к эквивалентной воздушной скорости (EAS). Эквивалентной воздушной скоростью является истинная воздушная скорость, измененная с изменениями атмосферной плотности, которые влияют на индикатор воздушной скорости.
Ошибка сжимаемости возникает из-за ограниченной способности воздуха противостоять сжатию. Эта способность уменьшается увеличением высоты, увеличением скорости или ограниченным объемом. В пределах индикатора воздушной скорости имеется определенное количество поглощенного воздуха. При полете на больших высотах и больших воздушных скоростях калиброванная воздушная скорость (CAS) всегда выше эквивалентной воздушной скорости. Калиброванная воздушная скорость - эквивалентная воздушная скорость, измененная с эффектами сжимаемости воздуха, которые влияют на индикатор воздушной скорости.
Ошибка калибровки характерна для заданного проекта самолета. Ошибка калибровки является результатом положения и размещения статического вентиляционного отверстия (ов) для поддержания давления, равного атмосферному давлению внутри индикатора скорости воздуха. Положение и размещение статического вентиляционного отверстия с углом атаки и скоростью самолета будут определять давление внутри индикатора скорости воздуха и, таким образом, величину ошибки калибровки индикатора скорости воздуха. Таблица калибровки обычно приводится в руководстве по эксплуатации пилотов (POH) или в других спецификациях самолета. С помощью этой калибровочной таблицы указанная воздушная скорость (IAS) определяется по калиброванной воздушной скорости путем ее изменения с ошибкой калибровки индикатора воздушной скорости.
Следующими данными является таблица калибровки воздушной скорости для индикатора воздушной скорости самолета с нулевым отклонением закрылка. Таблица калибровки воздушной скорости преобразует указанную воздушную скорость (IAS) в калиброванную воздушную скорость (CAS) путем устранения ошибки калибровки.
flaps0IAS = 40:10:140; flaps0CAS = [43 51 59 68 77 87 98 108 118 129 140];
Для определения калиброванной воздушной скорости (ПТК) для рейса используются указанные значения воздушной скорости (IAS) из таблицы калибровки рейса и воздушной скорости.
CAS = interp1( flaps0IAS, flaps0CAS, fltdata(:,4) );
Атмосферные свойства, температура (T), скорость звука (a), давление (P) и плотность (rho), определяются на высоте для стандартного дня с помощью atmoscoesa
функция.
[T, a, P, rho]= atmoscoesa( alt );
После определения калиброванной воздушной скорости (CAS) и атмосферных свойств истинная воздушная скорость (Vt) может быть вычислена с помощью correctairspeed
функция.
Vt = correctairspeed( CAS, a, P, 'CAS', 'TAS' );
Используйте datcomimport
функция для переноса данных Digital DATCOM в MATLAB. Для этой аэродинамической информации модулей футы и степени.
data = datcomimport( 'astflight.out', true, 0 );
Это можно увидеть в выходном файле Digital DATCOM и исследуя импортированные данные, которые
иметь данные только в первом альфа- значении. По умолчанию для отсутствующих точек данных задано значение 99999. Отсутствующие точки данных заполняются значениями для первого альфа-сигнала, поскольку эти точки данных предназначены для использования во всех альфа-значениях.
aerotab = {'cyb' 'cnb' 'clq' 'cmq'}; for k = 1:length(aerotab) for m = 1:data{1}.nmach for h = 1:data{1}.nalt data{1}.(aerotab{k})(:,m,h) = data{1}.(aerotab{k})(1,m,h); end end end
Устойчивость и динамические производные в цифровой структуре DATCOM являются 3-D таблицами, которые являются функциями числа Маха, угла атаки в степенях и высоты в футах. В порядок для выполнения 3-D линейной интерполяции (interp3
), индексы для производных таблиц должны быть монотонными и плоскими. Индексы этой формы генерируются meshgrid
функция.
[mnum, alp, h] = meshgrid( data{1}.mach, data{1}.alpha, data{1}.alt );
Поскольку угловые единицы производных в степенях, модули измерения угла атаки (альфа) преобразуются из радианов в степени функцией convang
.
alphadeg = convang( alpha, 'rad', 'deg' );
Числа Маха для рейса вычисляются функцией machnumber
использование скорости звука (а) и воздушной скорости (Vt).
Mach = machnumber( convvel( [Vt zeros(size(Vt,1),2)], 'kts', 'm/s' ), a );
Петля через условия рейса, позволяет interp3
используется для линейной интерполяции таблиц производных для поиска статических и динамических производных в этих условиях рейса.
for k = length(alt):-1:1 cd(k,:) = interp3( mnum, alp, h, data{1}.cd, Mach(k), alphadeg(k), alt(k), 'linear'); cyb(k,:) = interp3( mnum, alp, h, data{1}.cyb, Mach(k), alphadeg(k), alt(k), 'linear'); cl(k,:) = interp3( mnum, alp, h, data{1}.cl, Mach(k), alphadeg(k), alt(k), 'linear'); cyp(k,:) = interp3( mnum, alp, h, data{1}.cyp, Mach(k), alphadeg(k), alt(k), 'linear'); clad(k,:) = interp3( mnum, alp, h, data{1}.clad, Mach(k), alphadeg(k), alt(k), 'linear'); end
Как только производные найдены для условий рейса, аэродинамические коэффициенты могут быть вычислены.
Опорные длины и области, используемые при расчете аэродинамического коэффициента, извлекаются из цифровой структуры DATCOM.
cbar = data{1}.cbar; Sref = data{1}.sref; bref = data{1}.blref;
Угловые единицы производных указаны в степенях, поэтому модули измерения угла боковой оси (бета) преобразуются из радианов в степени функцией convang
.
betadeg = convang( beta, 'rad', 'deg' );
В порядок вычисления аэродинамических коэффициентов необходимо задать угловые скорости тела (омега) в осях устойчивости, как и производные. Функция dcmbody2wind
генерирует матрицу косинуса направления для осей тела к осям устойчивости (Tsb), когда угол боковой оси (beta) установлен в нуль.
Tsb = dcmbody2wind( alpha, zeros(size(alpha)) );
Скорость изменения угла атаки (alpha_dot) также необходима, чтобы найти угловые скорости в оси устойчивости (omega_stab). Функция diff
используется на альфа в степенях, разделенных на шаг расчета данных (0,50 секунды), для аппроксимации скорости изменения угла атаки (alpha_dot).
alpha_dot = diff( alphadeg/0.50 );
Последнее значение alpha_dot удерживается, чтобы сохранить длину alpha_dot, сопоставимую с другими массивами в этом вычислении. Это необходимо, потому что diff
функция возвращает массив, который на одно значение короче, чем вход
alpha_dot = [alpha_dot; alpha_dot(end)];
Угловые скорости по оси устойчивости (omega_stab) вычисляются для данных рейсов. Угловые скорости изменяются в матрицу 3-D, которая умножается на матрицу 3-D для матрицы косинуса направления для осей тела к осям устойчивости (Tsb).
omega_temp = reshape((omega - [zeros(size(alpha)) alpha_dot zeros(size(alpha))])',3,1,length(omega)); for k = length(omega):-1:1 omega_stab(k,:) = (Tsb(:,:,k)*omega_temp(:,:,k))'; end
Вычислите коэффициент перетаскивания (CD), коэффициент боковой силы (CY) и коэффициент подъема (CL). The convvel
функция используется для получения модулей воздушной скорости (Vt), соответствующих единицам производных.
CD = cd; CY = cyb.*betadeg + cyp.*omega_stab(:,1)*bref/2./convvel(Vt,'kts','ft/s'); CL = cl + clad.*alpha_dot*cbar/2./convvel(Vt,'kts','ft/s');
Аэродинамические коэффициенты для сопротивления, боковой силы и подъема используются для вычисления аэродинамических сил.
Динамическое давление необходимо для вычисления аэродинамических сил. Функция dpressure
вычисление динамического давления от скорости воздуха (Vt) и плотности (rho). The convvel
функция используется для получения модулей воздушной скорости (Vt), соответствующих единицам плотности (rho).
qbar = dpressure( convvel( [Vt zeros(size(Vt,1),2)], 'kts', 'm/s' ), rho );
Чтобы найти силы в осях тела, необходима матрица косинуса направления для осей устойчивости к осям тела (Tbs). Матрица косинуса направления для осей устойчивости к осям тела (Tbs) является транспонированием матрицы косинуса направления для осей тела к осям устойчивости (Tsb). Чтобы взять транспонирование трехмерного массива, permute
используется функция.
Tbs = permute( Tsb, [2 1 3] );
Петля через точки данных рейса, аэродинамические силы вычисляются и преобразуются из устойчивости в оси тела. The convpres
функция используется для получения модулей динамического давления (qbar), соответствующих давлениям области ссылки (Sref).
for k = length(qbar):-1:1 forces_lbs(k,:) = Tbs(:,:,k)*(convpres(qbar(k),'Pa','psf')*Sref*[-CD(k); CY(k); -CL(k)]); end
Постоянная тяга оценивается в осях тела.
thrust = ones(length(forces_lbs),1)*[200 0 0];
Оценка постоянной тяги складывается из аэродинамических сил, а модули преобразуются в метрические.
forces = convforce((forces_lbs + thrust),'lbf','N');
Используя рассчитанные силы, оцените силы G во время рейса.
Ускорения оцениваются с помощью вычисленных сил и массы, преобразованной в килограммы с помощью convmass
. Ускорения преобразуются в силы G с помощью convacc
.
N = convacc(( forces/convmass(84.2,'slug','kg') ),'m/s^2','G''s'); N = [N(:,1:2) -N(:,3)];
Силы G строятся над рейсом.
h1 = figure; plot(fltdata(:,1), N); xlabel('Time (sec)') ylabel('G Force') title('G Forces over the Flight') legend('Nx','Ny','Nz','Location','Best')
close(h1);