首页> 中国专利> 一种基于改进Transformer模型的飞行器故障诊断方法和系统

一种基于改进Transformer模型的飞行器故障诊断方法和系统

摘要

本发明公开了一种基于改进Transformer模型的飞行器故障诊断方法和系统,属于故障检测领域。改进Transformer模型将Transformer模型中最后的Softmax函数层替换为输出神经元个数为1的全连接层,方法包括:采用训练样本集对改进Transformer模型进行训练,得到训练好的改进Transformer模型,所述训练样本为飞行器状态信息‑飞行器中的执行器故障信息对;将待测飞行器的状态信息输入至训练好的改进Transformer模型,输出对应的飞行器中的执行器故障信息。本发明对Transformer模型进行改进,创新提出将改进Transformer模型与故障诊断结合,由于改进Transformer模型能够很好地处理时序数据,即使是相隔较远的历史数据也能并行处理。所以提取到的状态特征更加优质,建立起的状态‑故障关系更准确,进一步使得故障诊断误差小。

著录项

  • 公开/公告号CN112947385A

    专利类型发明专利

  • 公开/公告日2021-06-11

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN202110300884.2

  • 申请日2021-03-22

  • 分类号G05B23/02(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人胡秋萍

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-06-19 11:22:42

说明书

技术领域

本发明属于故障检测领域,更具体地,涉及一种基于改进Transformer模型的飞行器故障诊断方法和系统。

背景技术

随着现代控制系统的设备复杂化和规模大型化,有关系统的异常检测和故障诊断一直是学术界关注的重点问题。系统一旦发生故障,若不能及时发现并处理,将造成巨大的经济损失和人员伤亡,美国挑战者号航天飞机的失事就说明这一点。因此采用故障诊断技术来提高系统的可靠性十分重要。故障诊断技术是一种利用设备当前状态信息和历史状况,通过一定分析方法对设备状态进行评价的状态识别技术。一方面,故障诊断技术为容错控制提供了十分重要的技术保障。另一方面系统发生故障的位置和原因是复杂的和不确定的,这导致了求解的故障空间很大、任务困难。因此故障诊断技术具有重要性和困难性的特点。这吸引了众多研究者的兴趣,所以对于故障检测技术的研究也非常多。

目前较为常见的故障检测方法可分为基于解析模型、基于知识和基于数据驱动的方法。基于解析模型的故障诊断技术利用系统残差对局部子系统构建数学模型进行状态估计、在线近似,不过建模过程中难以避免误差和位置干扰,很难同时保证干扰鲁棒性和故障灵敏性,而实际工程化应用中要求构建的数学模型具有高精度性,这意味着此类方法在实际应用中具有局限性。基于知识的故障诊断技术最常见的方法是专家系统。专家系统具有知识表示简单,诊断推理速度快,易于编程开发等优点,但专家系统缺乏自学习能力,它们不能在诊断的实例中学习以获得新的知识,且容易对系统设计的一些边缘性问题的求解显得脆弱和敏感。因此在运用时也具有一定的局限性。基于数据驱动的故障诊断技术主要分为统计分析、信号处理和人工智能的方法。基于统计分析方法的基本思想是:对数据分析,提取检验统计量,然后判断特征量是否超过设定的阈值,但这类方法的应用只是初步的探索,还需理解数据的非线性和动态特性等问题。基于信号处理的方法从信号特征的角度出发,通过提取到的相关特征完成故障的诊断,不过这类方法只能检测出突变特征比较明显的故障。随着深度学习在ImageNet视觉识别挑战赛的优异表现,以深度神经网络为例的人工智能方法被迁移到各个领域并取得了巨大的成果。在故障诊断中,人工智能的方法比如卷积神经网络和长短期记忆网络也已经取得了广泛的应用,并取得了良好的效果。

因此,急需一种减小故障诊断误差的工业系统故障诊断方法。

发明内容

针对现有技术的缺陷和改进需求,本发明提供了一种基于改进Transformer模型的飞行器故障诊断方法和系统,其目的在于通过Transformer模型构建更准确的状态故障关系,使得故障诊断误差小。

为实现上述目的,按照本发明的一个方面,提供了一种基于改进Transformer模型的飞行器故障诊断方法,所述改进Transformer模型将Transformer模型中最后的Softmax函数层替换为输出神经元个数为1的全连接层,该方法包括:

训练阶段:

采用训练样本集对改进Transformer模型进行训练,得到训练好的改进Transformer模型,所述训练样本为飞行器状态信息-飞行器中的执行器故障信息对;

应用阶段:

将待测飞行器的状态信息输入至训练好的改进Transformer模型,输出对应的飞行器中的执行器故障信息。

优选地,所述改进Transformer模型中,编码器,用于从飞行器状态信息向量提取各状态信息内部关系,得到编码张量,发送给解码器;解码器,用于对飞行器中的执行器故障信息向量和编码张量进行融合,得到故障融合张量。

优选地,所述改进Transformer模型中,全连接层,用接收故障融合张量作为输入输出故障估计张量,进一步得到飞行器中的执行器的故障程度。

优选地,所述方法使用GPU并行计算。

为实现上述目的,按照本发明的另一个方面,提供了一种基于改进Transformer模型的飞行器故障诊断系统,所述改进Transformer模型将Transformer模型中最后的Softmax函数层替换为输出神经元个数为1的全连接层,该系统包括:

训练模块,用于采用训练样本集对改进Transformer模型进行训练,得到训练好的改进Transformer模型,所述训练样本为飞行器状态信息-飞行器中的执行器故障信息对;

诊断模块,用于将待测飞行器的状态信息输入至训练好的改进Transformer模型,输出对应的飞行器中的执行器故障信息。

优选地,所述改进Transformer模型中,编码器,用于从飞行器状态信息向量提取各状态信息内部关系,得到编码张量,发送给解码器;解码器,用于对飞行器中的执行器故障信息向量和编码张量进行融合,得到故障融合张量。

优选地,所述改进Transformer模型中,全连接层,用接收故障融合张量作为输入输出故障估计张量,进一步得到飞行器中的执行器的故障程度。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)本发明对Transformer模型进行改进,将Transformer模型中最后的Softmax函数层替换为输出神经元个数为1的全连接层,由于改进后全连接层的存在,模型的拟合能力进一步提升,实现故障诊断误差的降低。创新提出将改进Transformer模型与故障诊断结合,由于改进Transformer模型能够很好地处理时序数据,即使是相隔较远的历史数据也能并行处理。所以提取到的状态特征更加优质,建立起的状态-故障关系更准确,进一步使得故障诊断误差小。

(2)在运算效率上,虽然涉及神经网络,但绝大部分运算为矩阵运算,能够很好地运用GPU等并行计算框架进行加速,因此本发明比其他的深度学习网络更高效,具有很高的使用价值。

附图说明

图1为本发明提供的一种基于改进Transformer模型的飞行器故障诊断方法流程图;

图2为本发明提供的改进Transformer网络内部结构与计算示意图;

图3为本发明提供的掩膜矩阵形式示意图;

图4为本实施例提供的数据样例;

图5为本实施例提供的预测故障情况与实际故障情况效果对比图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

2017年,谷歌发布了一种新的机器学习模型Transformer,该模型在机器翻译及其他语言理解任务上的表现远远超过了其他现有算法。Transformer网络在实验中验证非常适合处理时序数据,现已被广泛运用在各个领域。由于故障诊断需要参考当前状态与历史信息,因此Transformer网络在该领域有很大的前景和可行性。

如图1所示,本发明提供了一种基于改进Transformer模型的飞行器故障诊断方法,所述改进Transformer模型将Transformer模型中最后的Softmax函数层替换为输出神经元个数为1的全连接层,该方法包括:

训练阶段:

采用训练样本集对改进Transformer模型进行训练,得到训练好的改进Transformer模型,所述训练样本为飞行器状态信息-飞行器中的执行器故障信息对;

应用阶段:

将待测飞行器的状态信息输入至训练好的改进Transformer模型,输出对应的飞行器中的执行器故障信息。

优选地,将飞行器状态信息向量输入到Transformer模型的编码器,用于提取各状态信息内部关系,得到编码张量;将飞行器中的执行器故障信息向量和编码张量输入Transformer模型的解码器,用于融合状态信息和故障信息,得到故障融合张量。

优选地,将故障融合张量输入全连接层,得到故障估计张量,进一步得到飞行器中的执行器的故障程度。

优选地,所述方法使用GPU并行计算。

实施例

以四旋翼飞行器模型为例,四旋翼飞行器模型的状态量信息包含三个姿态角速度、四个姿态四元数共7维特征组成状态信息向量StateVec;故障信息包含四个舵的故障情况,即4维特征组成故障信息向量FaultVec。一组状态信息即对应一组故障信息,即StateVec与FaultVec一一对应。本实施例以飞行器飞行100秒作为一次飞行,每次等距离采样100个数据样本,总共收集741次飞行数据,即有741*100组数据,再以9:1的比例划分训练集与测试集。

构建改进Transformer网络,如图2所示,改进的Transformer模型将Transformer模型中最后的Softmax函数层直接删除,将全连接层加入其中,定义输出神经元个数为1。将数据输入其中,对Transformer网络训练直至模型收敛。

Transformer模型的核心是编码器和解码器。状态信息向量StateVec将会被输入到Transformer网络的编码器,以提取到各状态信息内部关系,得到编码张量EncoderVec。同时将故障信息向量StateVec输入Transformer网络的解码器。

利用编码器中得到的编码张量EncoderVec结合输入解码器的故障信息构建状态信息和故障信息之间的关系,生成故障融合张量FaultInfusionVec。由于编码器和解码器均有6个,故上述步骤重复6次。得到的故障融合张量FaultInfusionVec离开解码器,最后经过全连接层获得故障估计张量FaultProbVec,张量FaultProbVec中包含4个数据,分别表示4个舵机的故障程度。

编码器

首先,将输入的状态信息张量StateVec输入到位置编码层得到状态位置张量PosVec

其中,pos代表状态信息张量在输入中的位置,i代表位置编码张量的维度(取值为1到10),d

然后,将状态信息张量StateVec和状态位置张量PosVec

接着,复合状态张量EmbeddingVec

多头注意层的第i个输出的注意力张量

其中,d

然后,把各个注意力张量拼接起来,映射到原输入空间中作为多头注意力层的输出MultiHead

多头注意力层包含残差连接结构,即将子层输出与输入相加再经过规范化得到子层最终的输出。

AttentionOut

得到的多头注意力层输出AttentionOut

在前馈网络层也包含残差连接结构,经过残差连接后得到编码器的最终输出EncoderVec,编码张量EncoderVec的计算式如下:

EncoderVec=LayerNorm(AttentionOut

解码器

解码器的原始输入是故障信息张量FaultVec,经过位置编码层得到故障位置张量PosVec

其中,pos代表故障信息张量在输入中的位置,i代表位置编码张量的维度(取值为1到4),d

然后,将故障信息张量FaultVec和故障位置张量PosVec

接着,复合状态张量EmbeddingVec

Q

K

V

在解码器中,为了保证输入逻辑的合理性,Q,K,V经过掩膜多头注意力层,与多头注意力层的区别是在其基础之上需附带解码掩膜Mask,因为故障信息只可能与之前的状态相关而与之后的状态不想管,因此Mask是为了让运算逻辑更为合理,其形式如图3所示。

Q

其中,σ为一个很小的常数。

其他操作和多头注意层一致,掩膜多头注意层的第i个输出的注意力张量

其中,d

然后把各个注意力张量拼接起来,映射到原输入空间中作为多头注意力层的输出MaskMultiHead。

MaskedMultiHead=Concat(head

掩膜多头注意力层也包含残差连接结构,经过残差连接结构得到故障注意力张量FaultSelfAttentionVec。

FaultSelfAttentionVec=LayerNorm(EmbeddingVec

接着,故障注意力张量FaultSelfAttentionVec和来自解码器输出的编码张量EncoderVec共同作为下一个多头注意层的输入,它们首先经过特征映射形成Q

多头注意层的第i个输出的注意力张量

其中,d

然后把各个注意力张量拼接起来,映射到原输入空间中作为多头注意力层的输出MultiHead

多头注意力层包含残差连接结构,即将子层输出与输入相加再经过规范化得到子层最终的输出。

AttentionOut

得到的多头注意力层输出AttentionOut

在前馈网络层也包含残差连接结构,经过残差连接后得到编码器的最终输出FaultInfusionVec,故障融合张量FaultInfusionVec的计算式如下:

FaultInfusionVec=LayerNorm(AttentionOut

因解码器也有6个,故将上述过程也重复6次。

最后,将故障融合张量FaultInfusionVec输入一个包含softmax函数的全连接层得到故障估计张量FaultProbVec,根据故障估计张量判断各执行器是否发生故障,如若发生故障,故障大小为多少。

FaultProbVec=FullConnected(FaultInfusionVec)

如图4所示,数据每一行就代表一组数据,每行包含11个数据。其中,前4个数据表示故障信息,后7个表示状态信息。将原始数据的每一组数据划分成故障信息张量FaultVec和状态信息张量StateVec,将状态信息张量StateVec送入编码器;故障信息张量FaultVec送入解码器,经过模型输出得到张量FaultProbVec。由于FaultProbVec的维度是在FaultVec维度的基础上扩充了一维,所以在训练阶段利用两者求损失函数时,需要将张量FaultProbVec多余的一个维度剔除。

预测故障情况与实际故障情况效果对比如图5所示。y_true表示实际故障情况,y_pred表示预测故障情况,以第二个为例子,y_true=[0,-0.24,0,0],表示第二个舵机发生故障,故障程度为24%。可以看到,每个例子的损失值都极小,说明经过不断地训练,故障诊断的误差变小。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号