为飞行数据估计G力
这个例子展示了如何在飞行过程中加载飞行数据和估计G力。
装载记录飞行数据进行分析
记录的数据包含以下飞行参数:
攻角(alpha),单位为弧度,
侧滑角(beta),单位为弧度,
以节为单位的指示空速(IAS),
身体角度速率(ω),单位为弧度/秒,
下距离和横距离的位置单位是英尺,还有
高度(alt),单位英尺。
负载(“astflight.mat”);
从加载数据中提取飞行参数
MATLAB®变量创建攻角(alpha),侧滑角(beta),身体角速率(omega)和高度(alt)从记录的数据。的convangvel
函数用于将身体角速度从弧度/秒(rad/s)转换为度/秒(deg/s)。
Alpha = fltdata(:,2);Beta = fltdata(:,3);= convangvel(fltdata(:,5:7),“rad / s”,“度/秒”);Alt = fltdata(:,10);
从指示空速计算真实空速
在这组飞行数据中,记录了指示空速(IAS)。指示空速(IAS)显示在座舱仪表上。为了进行计算,通常使用真实空速(TAS),即没有测量误差的空速。
测量误差是通过飞行员静态空速指示器来确定空速。这些测量误差是密度误差,压缩错误而且标定误差.将这些误差应用于真实空速会得到指示的空速。
密度误差由于高空空气密度较低而发生。其效果是空速指示器在较高高度时读数低于真实空速。如果将高空空气密度与海平面标准日空气密度的差值或误差应用于真实空速,就会得到等效空速(EAS)。等效空速是随影响空速指示器的大气密度变化而修正的真实空速。
压缩错误发生的原因是空气抗压缩能力有限。这种能力会因高度的增加、速度的增加或体积的限制而降低。在空速指示器内,有一定数量的滞留空气。在高海拔和高空速飞行时,校准空速(CAS)总是高于等效空速。校正空速是用空气压缩效应修正的等效空速,空气压缩效应会影响空速指示器。
标定误差是特定于给定的飞机设计。校准误差是静态排气口的位置和放置的结果,以保持空速指示器内的气压等于大气压力。静态排气口的位置和位置以及飞机的攻角和速度将决定空速指示器内部的压力,从而确定空速指示器的校准误差量。校准表通常在飞行员操作手册(POH)或其他飞机规格中给出。使用该标定表,通过空速指示器的校准误差对标定空速进行修正,从而确定指示空速。
以下数据为襟翼偏转为零的飞机空速指示器的空速标定表。空速校准表通过消除校准误差将指示空速(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),是在标准日的高度使用atmoscoesa
函数。
[T, a, P, rho]= atmoscoesa(alt);
一旦确定了校准的空速(CAS)和大气特性,就可以使用correctairspeed
函数。
Vt =正确速度(CAS, a, P,“中科院”,“助教”);
为飞机导入数字数据com数据
使用datcomimport
函数将数字数据com数据带入MATLAB。空气动力学信息的单位是英尺和度。
数据=数据导入(“astflight.out”, true, 0);
它可以在Digital DATCOM输出文件中看到,并检查导入的数据
而且
只有第一个alpha值的数据。默认情况下,缺失的数据点被设置为99999,并使用fillmissing的“previous”方法填充。缺少的数据点用第一个alpha的值填充,因为这些数据点意味着用于所有alpha值。
{1}数据。Cyb = fillmissing(data{1}.cyb,“以前”,“MissingLocations”、数据{1}。Cyb == 99999);数据{1}.cnb = fillmissing(数据{1}.cnb,“以前”,“MissingLocations”, data{1}.cnb == 99999);{1}数据。CLQ = fillmissing(数据{1}.clq,“以前”,“MissingLocations”、数据{1}。CLQ == 99999);{1}数据。CMQ = fillmissing(数据{1}.cmq,“以前”,“MissingLocations”、数据{1}。CMQ == 99999);
在飞行条件下的稳定性和动态导数插值
数字DATCOM结构中的稳定性和动态导数是三维表,是马赫数、攻角(度)和高度(英尺)的函数。进行三维线性插值(griddedInterpolant
),导数表的索引要求为单调的满点网格。这种形式的索引由nd生成网格
函数。
[mnum, alp, h] = ndgrid(data{1}. c)。马赫、数据{1}。{1}α,数据。alt);
由于导数的角度单位是度,所以攻角单位(alpha)由函数从弧度到角度转换而来convang
.
Alphadeg = convang(alpha,rad的,“度”);
飞行的马赫数由函数计算machnumber
利用声速(a)和空速(Vt)。
Mach = machnumber(convvel([Vt零(大小(Vt,1),2)],“节”,“米/秒”), a);
GriddedInterpolant可用于线性插值导数表,以查找飞行条件下的静态和动态导数。
F = gridinterpolant (mnum, alp, h, pagetranspose(data{1}.cd),“线性”);cd = F(Mach, alphadeg, alt);F = gridinterpolant (mnum, alp, h, pagetranspose(data{1}.cyb),“线性”);cyb = F(Mach, alphadeg, alt);F = gridinterpolant (mnum, alp, h, pagetranspose(data{1}.cl),“线性”);cl = F(Mach, alphadeg, alt);F = gridinterpolant (mnum, alp, h, pagetranspose(data{1}.cyp),“线性”);cyp = F(Mach, alphadeg, alt);F = gridinterpolant (mnum, alp, h, pagetranspose(data{1}.clad),“线性”);clad = F(Mach, alphadeg, alt);
计算空气动力系数
一旦找到了飞行条件的导数,就可以计算出气动系数。
气动系数计算中使用的参考长度和面积是从数字DATCOM结构中提取的。
Cbar =数据{1}.cbar;Sref =数据{1}.sref;Bref =数据{1}.blref;
导数的角度单位是度,所以侧滑角(beta)的单位是由函数从弧度到角度转换而来的convang
.
Betadeg = convang(beta,rad的,“度”);
为了计算空气动力学系数,需要在稳定轴上给出物体角速率(ω),就像导数一样。这个函数dcmbody2stability
当侧滑角(beta)设置为零时,生成体轴到稳定轴(Tsb)的方向余弦矩阵。
Tsb = dcmbody2stability(alpha);
攻角变化率(alpha_dot)也需要计算稳定轴(omega_stab)中的角速率。这个函数diff
用于alpha(以度为单位)除以数据采样时间(0.50秒),以近似攻角变化率(alpha_dot)。
(alphadeg/0.50);
保留alpha_dot的最后一个值,以保持alpha_dot的长度与此计算中的其他数组一致。这是必需的,因为diff
函数返回一个比输入值短一个值的数组。
Alpha_dot = [Alpha_dot;alpha_dot(结束)];
计算飞行数据的稳定轴(omega_stab)中的角速率。角速度被重新塑造成一个三维矩阵,与体轴到稳定轴(Tsb)方向余弦矩阵的三维矩阵相乘。
Omega_temp =重塑((ω -[零(大小(阿尔法))alpha_dot零(大小(阿尔法))])',3,1,长度(ω));为k =长度(ω):1:1 omega_stab (k,:) = (Tsb (:,:, k) * omega_temp (:,:, k)) ';结束
计算阻力系数(CD)、侧向力系数(CY)和升力系数(CL)。的convvel
用函数求得与导数一致的空速(Vt)单位。
CD = CD;CY = (cyb。* betadeg) + (((cyp。* omega_stab (: 1)) * bref) / (2. / convvel (Vt,“节”,“米/秒”)));CL = CL +((包。/(2./convvel(Vt,)“节”,“米/秒”)));
计算力
采用阻力系数、侧力系数和升力系数来计算气动力。
气动力的计算需要动压力。这个函数dpressure
根据空速(Vt)和密度(rho)计算动压力。的convvel
函数用于得到空速(Vt)与密度(rho)一致的单位。
qbar = dpressure(convvel([Vt零(大小(Vt,1),2)],“节”,“米/秒”), rho);
为了求出体轴上的力,需要稳定轴到体轴的方向余弦矩阵(Tbs)。稳定轴与物体轴的方向余弦矩阵(Tbs)是物体轴与稳定轴方向余弦矩阵(Tsb)的转置。要求三维数组的转置,需要使用pagetranspose函数。
Tbs = pagetranspose(Tsb);
通过飞行数据点循环,计算气动力并将其从稳定性转换为机体轴。的convpres
函数用于获得与参考面积(Sref)一致的动压力单位(qbar)。
为k =长度(一):1:1 forces_lbs (k,:) = Tbs (:,:, k) * (convpres(一个(k),“爸爸”,psf的) * Sref * [cd (k);CY (k);cl (k)]);结束
在体轴上估计有一个恒定的推力。
推力= ones(length(forces_lbs),1)*[200 00];
恒定推力估计被添加到空气动力和单位转换为公制。
力= convforce((forces_lbs +推力),“磅力”,“N”);
估计G力
利用计算出的力,估计飞行过程中的G力。
加速度是用计算出来的力和质量换算成千克来估计的convmass
.加速度转换为G力使用convacc
.
N = convacc((力/convmass(84.2,“鼻涕虫”,“公斤”)),“米/秒^ 2”,“G”);N = N .* [1,1,-1];
G力在飞行过程中被画出来。
H1 =图;情节(fltdata (: 1), N);包含(的时间(秒)) ylabel (“G力”)标题(“飞行上的G力”)传说(“Nx”,“纽约”,“新西兰”,“位置”,“最佳”)
关闭(h1);