张黎黎,王逸斌,赵 宁,刘学强
(南京航空航天大学 非定常空气动力学与流动控制工业和信息化部重点实验室,江苏 南京 210016)
嵌入式大气数据传感(Flush Air Data Sensing,FADS)系统采用分布在飞行器表面的压力传感器阵列,得到各测压点的压强值,然后通过特定解算算法计算出大气数据(迎角α、侧滑角β、马赫数Ma等)。使用FADS系统测量大气参数,与传统的探针式大气数据系统相比,维护成本较低,经济性良好。因此,被广泛应用于航空航天领域。
从上世纪中叶起,美国国家航空航天局(National Aeronautics and Space Administration,NASA)就已经开展了嵌入式大气数据传感系统的相关研究,并先后将其应用于诸多飞行器上(如:X-33,X-34,X-43a等)。NASA的德莱顿飞行中心最先研究了建立在X-15上的FADS系统的雏形,但该系统机械结构十分复杂,而且得到的结果也并不理想,故这种利用机械系统估算大气参数的方法并不可行。而后在NASA的兰利研究中心开展的SEDA(Shuttle Entry Air Data System)项目[1]中提出了通过安装在飞行器机头的传感器测得的压强值来反推大气数据。20世纪90年代初,NASA在F-18大迎角气动特性验证机(High Alpha Research flight Vehicle,HARV)上安装了大迎角嵌入式大气数据传感系统(High angle-of-attack Flush Air Data Sensing System,HI-FADS),Whitmore等[2]提出了非线性回归算法来估算大气数据,并进行了飞行试验。后来,在应用于X-33的嵌入式大气数据系统的研究中,Whitmore等[3]提出了三点法来计算大气数据。三点法是目前应用最为成熟的FADS算法,但该算法存在迭代不收敛的情况。21世纪初,Baumann等[4]开发了用于高超声速飞行器(X-43a)的嵌入式大气数据传感系统,成功飞行了两次,并且收集了飞行数据。20世纪末,Rohloff等[5-6]将神经网络应用于FADS系统算法,并且提出了容错算法[7],研究了基于神经网络的FADS系统算法的噪声鲁棒性[8]。国内一些学者如郑成军等[9]研究了BP神经网络在FADS系统中的应用。方习高等[10]提出了一种以马赫数为分段依据的基于BP人工神经网络的FADS大气数据解算算法。2015年,王逸斌等[11]基于Kriging算法提出了一种FADS系统计算模型,并与神经网络方法构建的模型进行了对比。2019年,王鹏等[12-13]研究了用于尖楔前体飞行器的嵌入式大气数据传感系统算法,构建了各大气数据的神经网络模型,并且对算法进行了验证和测试。2021年,王禹等[14]提出了适合工程应用的飞翼布局飞机的FADS算法模型,并对算法进行了仿真测试。
为实现对飞行器的精确控制,需获得准确的大气数据,故大气数据系统应快速且准确地测量大气参数。而神经网络方法具有很好的实时性,其自身具有一定的容错能力,并且不会出现迭代不收敛的情况,而三点法计算大气数据难以做到这些。故采用神经网络算法,以迎角和马赫数为分段依据,开发了基于BP神经网络的FADS系统算法,并对该算法进行了仿真测试,结果表明使用该算法预测各大气参数能够达到较高的精度。
FADS系统的故障检测与管理自身具有一定的特殊性,如实时性较高、漏报率低,因为一旦引入故障数据可能会产生难以预估的后果。随机森林算法常用于故障识别,但鲜有人将其应用于FADS系统故障识别。因而,将随机森林算法用于FADS系统的故障诊断,采用随机森林分类器快速准确地识别出故障测压点,再将故障压强剔除,使用构建的容错神经网络计算大气数据,降低了故障数据对FADS系统算法计算各大气数据精度的影响。
提出了以迎角和马赫数为分段依据的基于BP神经网络的FADS系统算法和基于随机森林和神经网络的故障检测与容错算法,并且对该算法进行了仿真测试,图1为算法流程图。研究的FADS系统算法与故障识别与容错算法适用于飞翼布局飞行器,该飞行器机身共分布有7个测压点。首先,测压传感器测得的7个测压点的压强由事先构建的随机森林分类器进行区分是否存在测压点压强故障的问题,若未出现故障,则由神经网络总模块1初步计算迎角和马赫数,然后由对应范围内的神经网络各分模块计算各大气参数(迎角、侧滑角、马赫数、静压Ps)。以7个测压点压强为输入,其中:神经网络分模块1为α=-4°~9°,Ma=0.1~0.4分段下的迎角、侧滑角、马赫数和静压的神经网络;神经网络分模块2为α=-4°~9°,Ma=0.4~1.0分段下的各大气参数的神经网络;神经网络分模块3为α=9°~20°,Ma=0.1~0.4分段下各大气参数的神经网络;神经网络分模块4为α=9°~20°、Ma=0.4~1.0分段下的各大气参数神经网络。若随机森林分类器判断出该压强组合存在故障压强,并识别出故障测压点,则将故障测压点压强剔除,由相应的神经网络总模块2(该模块为以6个测压点压强为输入,迎角和马赫数为输出的神经网络)初步计算迎角和马赫数。初步计算出迎角和马赫数后,可大致判断其所在范围,从而由对应范围内的不包含故障测压点压强的容错神经网络各分模块进一步计算各大气参数(包括迎角和马赫数)。以6个测压点压强为输入,其中:神经网络分模块5为α=-4°~9°、Ma=0.1~0.4分段下的容错神经网络;神经网络分模块6为α=-4°~9°、Ma=0.4~1.0分段下的容错神经网络;神经网络分模块7为α=9°~20°、Ma=0.1~0.4分段下的容错神经网络;神经网络分模块8为α=9°~20°、Ma=0.4~1.0分段下的容错神经网络。
图1 基于人工智能算法的嵌入式大气数据传感系统算法流程
由于容错神经网络是以6个测压点压强为输入构建的,所以提出的故障检测和容错算法能处理单个测压点故障的情况,能够有效降低单个测压点故障对FADS系统计算大气参数精度的影响。
为提高神经网络预测大气参数的精度,考虑将训练数据以迎角(α=-4°~9°和α=9°~20°)和马赫数(Ma=0.1~0.4和Ma=0.4~1.0)为分段依据分为4个部分。分别构建以7个测压点压强为输入,迎角、侧滑角、马赫数、静压为输出的神经网络。
使用MATLAB平台的神经网络工具箱构建BP神经网络,使用LM(Levenberg-Marquardt)算法作为训练算法,该算法收敛速度较快[15]。训练时,训练集占样本总量的70%,验证集和测试集分别占15%。并且构建的神经网络均只含有一个隐藏层,若误差较大,则通过增加隐藏层神经元数目和选用不同初始条件对网络进行训练来提高网络的精度[16]。但增加隐藏层神经元数目将会增加网络训练时间,而且可能会造成过拟合问题。
神经网络的训练数据是由在实验数据的基础上构建的Kriging模型获得的,采用共计394组实验数据,以迎角、侧滑角和马赫数为输入,各测压点的压强系数为输出构建Kriging模型,采用构建的Kriging模型生成训练神经网络所需的训练数据,构建Kriging模型时均留有部分数据用于验证模型精度。
表1~表4所示为构建的各分段下的迎角、侧滑角、马赫数以及静压神经网络的误差区间以及均方根误差。如表1所示,各分段下的迎角神经网络精度较高,其中3个分段下其精度可达0.2°,高马赫、大迎角(α=9°~20°&Ma=0.4~1.0)分段下迎角神经网络的精度稍低,误差在0.65°以内。表2所示为各个分段下训练得到的侧滑角神经网络的误差区间以及均方根误差,各分段下的侧滑角神经网络误差以及均方根误差与迎角相比稍大,小迎角分段下,构建的侧滑角神经网络误差以及均方根误差更小。如表3所示,构建的各分段下的马赫数神经网络均方根误差量级可达10-5。如表4所示,各分段下的静压神经网络误差均在200 Pa以内,低马赫数的分段下其精度更高,均方根误差也很小。
表1 各分段下迎角误差区间及均方根误差 单位:(°)
表2 各分段下侧滑角误差区间及均方根误差 单位:(°)
表3 各分段下马赫数误差区间及均方根误差
表4 各分段下静压误差区间及均方根误差 单位:Pa
机器学习的主要挑战是算法必须能够在未学习到的新输入上表现良好(这种能力被称为泛化)[17],而不只是在训练集上表现良好,所以为了解构建的神经网络模型的泛化能力,采用飞行曲线数据,对开发的基于BP神经网络的FADS系统算法进行了测试,同时测试了测压点压强有偏置时,各大气数据的误差情况。
用于仿真测试的飞行曲线数据共3023组,图2~图5分别为迎角、侧滑角、马赫数和静压的计算结果。将各大气数据的真实值与计算值进行对比,图6~图9分别为迎角、侧滑角、马赫数和静压的相对误差。图2~图9中横坐标对应仿真数据中的每个状态点。由图2~图9可知,每个飞行状态下迎角误差均小于0.2°,相对误差小于0.7%;各状态下侧滑角误差小于0.3°,大多数状态点侧滑角的计算误差在0.1°以内波动,相对误差在1.5%以内;马赫数计算值与真实值吻合很好,绝对误差均小于0.0105,相对误差在1.1%以内;静压误差在300 Pa以内,仅个别飞行状态下误差大于200 Pa,绝大多数状态点静压误差在100 Pa以内,其相对误差小于0.35%。
图2 迎角计算结果
图5 静压计算结果
图6 迎角相对误差
图7 侧滑角相对误差
图8 马赫数相对误差
图9 静压相对误差
仿真结果表明:以迎角和马赫数为分段依据,开发的基于BP神经网络的FADS系统算法能够快速准确地计算出各大气数据,能够满足飞翼飞机FADS系统解算要求。
由于测压点的传感器通常存在一定的误差(一般的压强传感器的相对误差为0.1%),传感器误差可能会导致神经网络的输入压强与真实的压强值出现微小的偏差,从而导致输出的大气数据产生误差。本节人为增加驻点压强偏差模拟测压传感器的误差,研究这种情况下该算法计算出的大气数据的误差是否满足要求。因此本节测试了单个测压点压强存在偏置(偏置100~400 Pa,每间隔100 Pa)时,基于BP神经网络的FADS系统算法计算大气数据的准确性情况。限于篇幅,只给出驻点压强偏置时,该算法计算迎角的结果。
图10(a)~图10(d)为测压点7(驻点)压强偏置分别为100~400 Pa时,FADS系统算法预测迎角的情况。测压点7压强偏置100 Pa时,迎角误差比压强无偏置时略增大,压强偏置至400 Pa时,其最大误差超过0.2°。压强偏置越大,迎角预测误差越大,但仍满足飞翼布局飞机对大气数据的精度要求。这说明该FADS系统算法自身就具有一定的容错能力。
图10 测压点7不同压强偏置迎角计算结果
基于随机森林分类器开发了测压点故障诊断算法,同时构建了单个测压点故障时,排除故障测压点后仅采用6个测压点压强为输入的神经网络,使该系统具备故障识别与容错能力。假定测压点压强绝对误差大于等于500 Pa,则认为该测压点故障,使用随机森林分类算法对错误压强组合和正确压强组合进行分类并识别出故障测压点。本节构建的随机森林分类器采用决策树的个数为500,分裂属性集中的属性个数设为2。所有数据共包括正确压强组合6020组,错误压强组合84280组。从其中随机选取90000组数据作为训练数据,剩余300组数据作为测试数据。测试结果显示,构建的随机森林分类器能够较为准确地将300组测试数据中的压强正确分类,并且能够较为准确地识别出故障压强点,300组测试数据中,该分类器仅误报一组压强(将无故障误报为测压点7故障,此时测压点存在500 Pa压强误差),其余299组皆分类正确。
容错神经网络依然采用分段神经网络提高网络预测精度,目前算法中涉及的容错神经网络以6个测压点压强为输入,能够处理单个测压点故障,当将故障测压点压强剔除后,使用对应的不包含故障测压点压强为输入的神经网络初步计算迎角和马赫数,然后根据迎角和马赫数的范围采用对应分段下不包含故障测压点压强的神经网络进一步计算各大气参数。
表5为不同输入情况下迎角神经网络预测误差及均方根误差,任何一个传感器出现故障,经随机森林分类器识别并剔除后,采用不包含故障压强的正确压强组合作为输入,对各大气参数进行预测。
表5 不同输入情况下迎角神经网络预测误差及均方根误差
为测试基于随机森林分类器和容错神经网络的故障识别与容错算法的可靠性和计算大气数据的准确性,对于故障识别模块,分别训练了决策树和随机森林分类器,对比了两种分类算法训练得到的分类器的故障识别能力。
本节中采用的测试数据为飞行曲线中单个测压点压强偏置1500 Pa和2000 Pa(共计42组,包含7个不同测压点压强故障的情况)。飞行曲线测试结果显示,构建的随机森林分类器能够准确识别出故障测压点,准确率高达100%。而决策树准确率也较高,但略逊于随机森林分类器,42组数据中,训练出的决策树有一组数据识别错误,出现了误报的情况。
图11~图18为使用随机森林分类器识别故障测压点,然后剔除故障压强,采用有效压强计算大气数据的结果。图11中的迎角计算值1和差值1为采用了开发的基于随机森林的故障识别和容错算法所计算得到的结果;迎角计算值2和差值2为未采用故障识别和容错算法得到的结果;迎角真值为选取的测试数据的迎角真实值。从图11中可以看出采用了故障识别系统的迎角计算结果与迎角真实值吻合较好,其误差基本在0°附近;而未采用故障识别系统的迎角计算结果与迎角真实值相距甚远,误差较大,最大误差甚至可达20°。图12为采用故障检测系统的迎角计算值与真实值的具体吻合情况,从该图中可以看到,其最大误差小于0.15°,迎角计算值较为准确。
图11 使用故障检测系统和不使用故障检测系统的迎角计算结果对比
图12 故障检测算法计算的迎角误差
图13 使用故障检测系统和不使用故障检测系统的侧滑角计算结果对比
图14 故障检测算法计算的侧滑角误差
图15 使用故障检测系统和不使用故障检测系统的马赫数计算结果对比
图13~图18分别为是否使用开发的故障诊断算法计算侧滑角、马赫数以及静压的结果对比情况,图中计算值1和差值1均为采用故障诊断算法得到的结果,计算值2和差值2均为未采用任何故障诊断算法直接计算得到的结果。从图13~图18中可以看出,采用了故障诊断算法的侧滑角、马赫数和静压的计算结果均精度较高,侧滑角误差在±0.35°以内,马赫数误差在±0.004以内,静压误差在±40 Pa以内;而未采用故障检测算法的各大气数据计算结果误差很大。
图16 故障检测算法计算的马赫数误差
图17 使用故障检测系统和不使用故障检测系统的静压计算结果对比
图18 故障检测算法计算的静压误差
将机器学习算法应用于FADS系统算法中,采用随机森林算法实现了故障传感器的检测,开发了以迎角和马赫数为分段依据的FADS系统神经网络算法,采用飞行曲线数据对其进行测试。结果表明该算法能够快速准确地计算出各大气参数:迎角误差小于±0.2°;侧滑角误差小于±0.3°;马赫数绝对误差小于±0.0105,相对误差小于±1.1%;静压绝对误差小于±300 Pa,相对误差小于±0.35%。当出现单个故障测压点时,设计的基于随机森林分类器的故障诊断模块能准确识别故障测压点,采用的飞行曲线测试中测试准确率达到100%。在算法自动排除故障测压点后,通过剩余的测压点仍能快速准确地计算出大气数据,此时迎角精度可达±0.2°,侧滑角精度可达±0.35°,马赫数误差在±0.004以内,静压误差在±40 Pa以内,依旧满足嵌入式大气数据系统的使用精度要求,从而实现了嵌入式大气数据系统的故障诊断与容错功能。