主要内容

估计飞行数据的G力

此示例显示了如何加载飞行数据并在飞行过程中估算G力。

负载记录的飞行数据进行分析

记录的数据包含以下飞行参数:

  • 弧度的攻击角(alpha),

  • sideslip angle (beta) in radians,

  • 打结中指示的空速(IAS),

  • 弧度/秒的身体角度率(欧米茄),

  • downrange and crossrange positions in feet, and

  • 高度(alt)英尺。

加载('astflight.mat');

Extract Flight Parameters from Loaded Data

MATLAB® variables are created for angle of attack (alpha), sideslip angle (beta), body angular rates (omega), and altitude (alt) from recorded data. The交流vel功能用于将身体角度速率从每秒(RAD/s)转换为每秒度(DEG/s)度。

alpha = fltdata(:,2); beta = fltdata(:,3); omega = convangvel( fltdata(:,5:7),'rad/s',,,,'deg/s');alt = fltdata(:,10);

从指示的空速计算真实的空速

在这组飞行数据中,记录了指示的空速(IAS)。指示的空速(IAS)显示在驾驶舱仪器中。要执行计算,通常使用了真正的空速(TAS),即没有测量误差的空速。

测量误差是通过用于确定空速的试验静态空速指标引入的。这些测量错误是密度误差,,,,可压缩性误差校准误差。Applying these errors to true airspeed results in indicated airspeed.

  • Density error由于较低的空气密度发生在高度。effect is an airspeed indicator reads lower than true airspeed at higher altitudes. When the difference or error in air density at altitude from air density on a standard day at sea level is applied to true airspeed, it results in equivalent airspeed (EAS). Equivalent airspeed is true airspeed modified with the changes in atmospheric density which affect the airspeed indicator.

  • 可压缩性误差occurs because air has a limited ability to resist compression. This ability is reduced by an increase in altitude, an increase in speed, or a restricted volume. Within the airspeed indicator, there is a certain amount of trapped air. When flying at high altitudes and higher airspeeds, calibrated airspeed (CAS) is always higher than equivalent airspeed. Calibrated airspeed is equivalent airspeed modified with compressibility effects of air which affect the airspeed indicator.

  • 校准误差is specific to a given aircraft design. Calibration error is the result of the position and placement of the static vent(s) to maintain a pressure equal to atmospheric pressure inside the airspeed indicator. Position and placement of the static vent along with angle of attack and velocity of the aircraft will determine the pressure inside the airspeed indicator and thus the amount of calibration error of the airspeed indicator. A calibration table is usually given in the pilot operating handbook (POH) or in other aircraft specifications. Using this calibration table, the indicated airspeed (IAS) is determined from calibrated airspeed by modifying it with calibration error of the airspeed indicator.

以下数据是用于零襟翼挠度的飞机飞速指示器的空速校准表。空速校准表通过删除校准误差将指示的空速(IAS)转换为校准空速(CAS)。

flaps0IAS = 40:10:140; flaps0CAS = [43 51 59 68 77 87 98 108 118 129 140];

飞行和空速校准表中指定的空速(IAS)用于确定飞行的校准空速(CAS)。

cas = interp1(flaps0ias,flaps0cas,fltdata(:,4));

使用大气特性,温度(T),声音(a),压力(P)和密度(RHO)在标准日的高度确定atmoscoesafunction.

[t,a,p,rho] = Attoscoesa(alt);

一旦确定了校准的空速(CAS)和大气特性,就可以使用True Airspeed(VT)计算正确的peedfunction.

Vt = correctairspeed( CAS, a, P,'CAS',,,,'tas');

Import Digital DATCOM Data for Aircraft

使用Datcomimportfunction to bring the Digital DATCOM data into MATLAB. The units for this aerodynamic information are feet and degrees.

data = datcomimport('astflight.out',是的,0);

可以在数字DATCOM输出文件中看到,并检查导入的数据

C y β ,,,, C n β ,,,, C l ,,,, C m

have data only in the first alpha value. By default, missing data points are set to 99999 and filled using the "previous" method of fillmissing. The missing data points are filled with the values for the first alpha, since these data points are meant to be used for all alpha values.

data {1} .cyb = fillmissing(data {1} .cyb,“以前的”,,,,"MissingLocations",,,,data{1}.cyb == 99999); data{1}.cnb = fillmissing(data{1}.cnb,“以前的”,,,,"MissingLocations",数据{1} .cnb == 99999);data {1} .clq = fillmissing(data {1} .clq,“以前的”,,,,"MissingLocations",数据{1} .clq == 99999);data {1} .cmq = fillmissing(data {1} .cmq,“以前的”,,,,"MissingLocations",,,,data{1}.cmq == 99999);

在飞行条件下插值稳定性和动态导数

数字数据结构中的稳定性和动态导数是3-D表,它们是马赫数,攻击角度的函数,以英尺为单位。执行3-D线性插值(网格dedInterpolant),衍生表的索引必须为单调的点数。该表格的索引由ND生成网格function.

[mnum,alp,h] = ndgrid(data {1} .mach,data {1} .alpha,data {1} .alt);

由于衍生物的角度单位为程度,因此攻击角度(alpha)是通过功能从学位转换为弧度的交流

alphadeg = Convang(Alpha,'rad',,,,'deg');

飞行的马赫数由功能计算Machnumber使用声音(A)和空速(VT)的速度。

MACH = MACHNUMBER(VERVEVEL([VT ZEROS(size(VT,1),2)],'kts',,,,'小姐'), 一个 );

GriddedInterpolant可用于线性插值衍生表,以在飞行条件下找到静态和动态衍生物。

f = griddedInterpolant(mnum,alp,h,pagetranspose(data {1} .cd),“线性”);CD = F(Mach,Alphadeg,Alt);f = griddedInterpolant(mnum,alp,h,pagetranspose(data {1} .cyb),“线性”);cyb = f(马赫,alphadeg,alt);f = griddedInterpolant(mnum,alp,h,pagetranspose(data {1} .cl),“线性”);Cl = F(Mach,Alphadeg,Alt);f = griddedInterpolant(mnum,alp,h,pagetranspose(data {1} .cyp),“线性”);CYP = F(Mach,Alphadeg,Alt);f = griddedInterpolant(mnum,alp,h,pagetranspose(data {1} .clad),“线性”);clad = F(Mach, alphadeg, alt);

Compute Aerodynamic Coefficients

Once the derivatives are found for the flight conditions, aerodynamic coefficients can be calculated.

Reference lengths and areas used in the aerodynamic coefficient computation are extracted from the digital DATCOM structure.

cbar = data{1}.cbar; Sref = data{1}.sref; bref = data{1}.blref;

衍生物的角度单位是度数的交流

betadeg = convang(beta,'rad',,,,'deg');

To calculate the aerodynamic coefficients, the body angular rates (omega) need to be given in the stability axes, like the derivatives. The functiondcmbody2stability当侧滑角(beta)设置为零时,为身体轴(TSB)生成方向余弦矩阵。

tsb = dcmbody2Stacity(alpha);

还需要需要在稳定轴(Omega_stab)中找到角度速率的攻击角度变化速率(alpha_dot)。功能差异is used on alpha in degrees divided by data sample time (0.50 seconds) to approximate the rate of change in angle of attack (alpha_dot).

alpha_dot = diff(alphadeg/0.50);

持有alpha_dot的最后值,以保持与本计算中其他数组一致的alpha_dot的长度。这是需要的差异函数返回一个比输入短的数组。

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));fork = length(omega):-1:1 omega_stab(k,:) = (Tsb(:,:,k)*omega_temp(:,:,k))';end

计算阻力系数(CD),侧力系数(CY)和升力系数(CL)。这convvel功能用于获得与衍生物一致的空速单位(VT)。

CD = CD;cy =(cyb。'kts',,,,'ft/s'));cl = cl +(((((clad。*alpha_dot))*cbar)/(2./convvel(vt),'kts',,,,'ft/s'));

计算力

用于阻力,侧力和升力的空气动力系数用于计算空气动力。

Dynamic pressure is needed to calculate the aerodynamic forces. The functiondpressure计算来自空速(VT)和密度(RHO)的动态压力。这convvel功能用于获得与密度(RHO)一致的空速单位(VT)。

qbar = dpressure(vervel([vt zeros(size(vt,1),2)]],'kts',,,,'小姐'),rho);

为了在身体轴中找到力,需要方向余弦矩阵,用于稳定到身体轴(TBS)的稳定性轴。稳定轴的方向余弦矩阵(TBS)是指向体轴的方向余质矩阵的转置,用于稳定轴(TSB)。为了采用3-D阵列的转置,使用了pagetranspose函数。

tbs = pagetranspose(TSB);

通过飞行数据点循环,计算空气动力并将其从稳定性转换为车身轴。这convpres功能用于获得与参考区域(SREF)相一致的动态压力单位(QBAR)。

fork =长度(QBAR):-1:1 forces_lbs(k,:) = tbs(::,:,k)*(conspres(qbar(k),,,'Pa',,,,'PSF')*sref*[ -  cd(k);cy(k);-cl(k)]);end

A constant thrust is estimated in the body axes.

推力=一个(length(forces_lbs),1)*[200 0 0];

这constant thrust estimate is added to aerodynamic forces and units are converted to metric.

力= confforce((势_lbs +推力),'lbf',,,,'n');

估计G部队

使用计算的力,在飞行过程中估算G力。

使用计算的力估算加速度,并使用质量转化为千克Convmass。加速使用使用卷发

n = convacc(力/convmass(84.2,,'slug',,,,'kg'),'m/s^2',,,,“ G的”);N = N .* [1,1,-1];

G forces are plotted over the flight.

H1 =图;情节(fltdata(::,1),n);Xlabel(“时间(SEC)”)ylabel(“ G力”)title(“ g飞行”) 传奇('nx',,,,'ny',,,,'NZ',,,,'地点',,,,'最好的'

图包含一个轴对象。轴对象具有标题G在飞行上的力,包含3个类型线的对象。这些对象代表NX,NY,NZ。

close(h1);