这个例子展示了如何在飞行过程中加载飞行数据和估算重力。
记录的数据包含以下飞行参数:
迎角(α),以弧度为单位,
侧滑角(β),
航速(以节计),
身体角速率(ω),以弧度/秒为单位,
沿射程和横向射程的位置,还有
高度(alt)单位为英尺。
负载(“astflight.mat”);
MATLAB®变量创建的攻角(阿尔法),侧滑角(贝塔),体角速率(欧米茄),和高度(alt)从记录的数据。的convangvel
函数用于将物体的角速度从弧度每秒(rad/s)转换为度每秒(deg/s)。
α= fltdata (:, 2);β= fltdata (: 3);= convangvel(fltdata(:,5:7),“rad / s”,“度/秒”);alt = fltdata (: 10);
在这组飞行数据中,记录了指示空速(IAS)。驾驶舱仪表显示指示空速(IAS)。为了进行计算,通常使用真实空速(TAS),即没有测量误差的空速。
通过用于确定空速的皮托静态空速指示器引入测量误差。这些测量误差包括密度误差,压缩错误和校准误差.将这些误差应用于真实空速,得到指示空速。
密度误差由于高空空气密度较低而发生。其效果是空速指示器在较高高度读数低于真实空速。将海拔高度空气密度与海平面标准日空气密度的差值或误差应用于真空速,得到等效空速(EAS)。等效空速是随大气密度变化对空速指示器的影响而修正的真实空速。
压缩错误发生的原因是空气的抗压缩能力有限。这种能力会因高度的增加、速度的增加或音量的限制而降低。在空速指示器内,有一定数量的滞留空气。在高海拔和高速飞行时,校准空速总是高于等效空速。标定空速是在空气可压缩性影响空速指示器的情况下修正的等效空速。
标定误差是特定于给定飞机设计的。校准误差是由于在空速指示器内保持与大气压力相等的压力的静态通风口的位置和位置所造成的。静态通风口的位置和位置、迎角和飞机的速度将决定空速指示器内部的压力,从而决定空速指示器的校准误差量。校准表通常在飞行员操作手册(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”,“助教”);
使用datcomimport
函数将数字DATCOM数据引入MATLAB。空气动力学信息的单位是英尺和度。
数据= datcomimport (“起飞,起飞”,正确,0);
可以看到,在数字DATCOM输出文件和检查导入的数据
只有第一个alpha值的数据。默认情况下,缺失的数据点被设置为99999。丢失的数据点用第一个alpha的值填充,因为这些数据点意味着用于所有alpha值。
aerotab={“cyb”“cnb”“clq”“cmq的,};为k=1:长度(aerotab)为m=1:data{1}.nmach为h = 1:数据{1}。{1} nalt数据。(aerotab {k}) (:, m h) ={1}数据。(aerotab {k}) (1 m h);结束结束结束
数字DATCOM结构中的稳定性和动态导数是三维表格,是马赫数、攻角(度)和高度(英尺)的函数。为了执行三维线性插值(interp3
),则要求导数表的指数为单调的格子状。这种形式的索引是由meshgrid
函数。
[mnum,alp,h]=meshgrid(数据{1}.mach,数据{1}.alpha,数据{1}.alt);
由于导数的角度单位以度为单位,因此迎角单位(alpha)由函数从度的弧度转换而来convang
.
Alphadeg = convang(alpha,rad的,“度”);
飞行的马赫数由该函数计算machnumber
使用声速(a)和空速(Vt)。
马赫数=马赫数(convel([Vt零点(尺寸(Vt,1),2)],“kts”,“m/s”),a);
通过循环飞行条件,允许interp3
用于线性插值微分表,以求这些飞行条件下的静态和动态微分。
为cd(K,:) = interp3(mnum, alp, h, data{1}. ());cd, Mach(k), aldeg (k), alt(k),“线性”);Cyb (k,:) = interp3(mnum, alp, h, data{1}. Cyb (k,:)cyb, Mach(k), alphadeg(k), alt(k),“线性”);k: = interp3(mnum, alp, h, data{1}. x);cl, Mach(k), alphadeg(k), alt(k),“线性”)cyp(k,:)=interp3(mnum,alp,h,data{1}.cyp,Mach(k),alphadeg(k),alt(k),“线性”);if (k,:) = interp3(mnum, alp, h, data{1}. ());包覆,马赫(k),阿尔法deg(k), alt(k),“线性”);结束
一旦找到飞行条件的导数,气动系数就可以计算出来。
气动系数计算中使用的参考长度和面积是从数字DATCOM结构中提取的。
数据cbar = {1} .cbar;数据Sref = {1} .sref;数据bref = {1} .blref;
导数的角单位是度,因此侧滑角()的单位是由弧度和度通过函数转换而来的convang
.
betadeg=convang(β,rad的,“度”);
为了计算气动系数,需要在稳定轴上给出物体角速率(ω),就像导数一样DCMBODY2风
当侧滑角(beta)设为零时,生成体轴到稳定轴(Tsb)的方向余弦矩阵。
Tsb = dcmbody2wind(alpha, zero (size(alpha))));
攻角的变化率(alpha_dot)也需要找到稳定轴的角速率(omega_stab)。这个函数diff
在alpha上使用度数除以数据采样时间(0.50秒)来近似攻角的变化率(alpha_dot)。
alpha_dot=diff(alphadeg/0.50);
保留alpha_dot的最后一个值是为了使alpha_dot的长度与计算中的其他数组保持一致。这是必要的,因为diff
函数返回一个比输入短一个值的数组
alpha_dot = [alpha_dot;alpha_dot(结束)];
对飞行数据计算稳定轴的角速率(omega_stab)。角速率被重塑成一个三维矩阵,与体轴到稳定轴(Tsb)方向余弦矩阵的三维矩阵相乘。
Omega_temp =整形((omega - [zeros(size(alpha))) alpha_dot zeros(size(alpha))])',3,1,长度(omega));为k =长度(ω):1:1 omega_stab (k,:) = (Tsb (:,:, k) * omega_temp (:,:, k)) ';结束
计算阻力系数(CD),侧力系数(CY)和升力系数(CL)。的convvel
函数用于使空速(Vt)的单位与导数的单位一致。
CD=CD;CY=cyb.*β-半胱氨酸+半胱氨酸。*ω-辛烷值(:,1)*bref/2./convvel(Vt,“kts”,“米/秒”);*alpha_dot*cbar/2./convvel(Vt,“kts”,“米/秒”);
阻力、侧向力和升力的气动系数用于计算气动力。
计算气动力需要动压力。这个函数dpressure
根据空速(Vt)和密度(rho)计算动态压力convvel
函数用于使空速(Vt)的单位与密度(rho)的单位一致。
qbar=D压力(convel([Vt零点(尺寸(Vt,1),2)],“kts”,“m/s”),rho);
要查找身体轴中的力,需要稳定轴到身体轴(Tbs)的方向余弦矩阵。稳定轴到身体轴(Tbs)的方向余弦矩阵是身体轴方向余弦矩阵到稳定轴(Tsb)的转置。要进行三维阵列的转置交换
使用函数。
Tbs=排列(Tsb,[2 1 3]);
通过飞行数据点,计算气动力,并从稳定性转换到身体轴。的convpres
函数的作用是使动压(qbar)的单位与参考区(Sref)的单位一致。
为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];
在气动力中加入恒定推力估计值,并将单位转换为公制。
力=力((力+推力),“磅力”,“N”);
利用计算出的力,估计飞行过程中的重力。
加速度是使用计算出的力和质量估算的,并使用convmass
.加速度转换为G力使用convacc
.
N = convacc((力/convmass(84.2,“鼻涕虫”,“公斤”)),“米/秒^ 2”,“G”s”);N=[N(:,1:2)-N(:,3)];
G力是在飞行过程中绘制的。
h1 =图;情节(fltdata (: 1), N);包含('时间(秒)')伊拉贝尔(“G力”)标题(“飞行中的重力”)传说(“Nx”,“纽约”,“新西兰”,“位置”,“最佳”)
关闭(h1);