基于深度学习的卫星故障在轨实时故障诊断方法及系统与流程

文档序号:18011158发布日期:2019-06-26 00:05阅读:722来源:国知局
基于深度学习的卫星故障在轨实时故障诊断方法及系统与流程

本发明涉及基于深度学习的卫星故障在轨实时故障诊断方法及系统,适用于高轨卫星在轨故障的实时故障诊断。



背景技术:

随着航天技术的发展以及各国对卫星需求不断增长,全球发射的人造卫星数目也急剧增长,而卫星的可靠性严重影响了卫星的服务质量。为了保证卫星的安全性和可靠性,卫星具备自主故障诊断功能极为必要。当前卫星在轨故障诊断所面临问题:

1、卫星数量激增,传统的在轨运维模式受限。长期以来,在卫星在轨阶段,异常情况的反应都是依靠地面站在可以与其通信的时间内发出控制指令来处理。为了保证在轨卫星及时准确完成任务运行,地面站还要组建包括各分系统运行人员在内的庞大地面工作组。

2、卫星故障关联关系更复杂。随着卫星复杂程度增加,反映系统运行机理和状态的数据具有强烈的不确定性和非线性特征,无法依靠传统方法建立精确的物理模型进行管理监控,故障诊断难度增大,需要构建表征能力更强的故障诊断模型。

3、星载计算环境具有严苛的性能、可靠性需求。当前卫星计算能力有限,内存空间不足,制约了复杂的故障诊断算法的应用。同时,星载计算环境的实时性、高可靠性要求,对星载故障诊断准确率具有较高的要求。

4、卫星故障数据属于小样本识别问题。现在卫星故障识别方法主要是利用先验知识和专家知识对故障进行特征提取和训练分类。由于特定故障的数据获取困难、代价巨大,现有的故障识别方法大多建立在对少量有类标数据学习的基础上,是小样本识别问题,这些因素在一定程度上制约了现有方法的准确性和泛化性。



技术实现要素:

本发明的技术解决问题是:克服现有故障识别技术的不足,提供了一种基于深度学习的卫星故障在轨实时故障诊断方法及系统,提升卫星在轨故障自主诊断能力。

本发明的技术解决方案是:一种基于深度学习的卫星故障在轨实时故障诊断方法,该方法包括下列步骤:

(1)、获取卫星单机和分系统历史观测数据;所述历史观测数据为遥测数据;

(2)、采用卫星单机和分系统历史观测数据构建训练集,对深度学习模型进行训练,得到该单机和分系统的卫星故障深度学习模型;

(3)、采用卫星故障深度学习模型对实时采集的在轨观测数据进行预测,得到下一个帧的预测结果;

(4)、获取下一帧的实际测量数据,将其与预测结果比较,得到预测误差;

(5)、判断预测误差是否连续n次超出预设的范围,是,则根据比较结果进行故障诊断;否则,重复步骤(3)~(5)。

所述步骤(3)的具体训练方法为:

(3.1)、建立基于时间序列的深度学习模型,所述基于时间序列的深度学习模型包括第一lstm层、第一dropout层、第二lstm层、第三lstm层、第二dropout层和全连接层;

(3.2)、初始化基于时间序列的深度学习模型内各层输入维度、神经元个数、第一dropout层和第二dropout层的数据抛弃率;所述输入维度为m×n,其中,m为基于时间序列的深度学习模型滑动窗口大小,n为单机或者分系统的观测数据的种类;滑动窗口大小取为卫星单机和分系统特征的变化周期;神经元个数取为滑动窗口大小的整数倍;

(3.3)、采用基于时间序列的深度学习算法,循环将训练集数据输入到深度学习模型,深度学习模型按照预设的学习率对训练数据进行学习训练,得到各层的权重、偏执和深度学习模型的输出数据,将深度学习模型的输出数据与实际数据进行比较,并统计两者的最小均方误差值,直到执行完预设的循环次数;

(3.4)、当最小均方误差值超过预设的模型误差阈值时,调整学习率,重新执行步骤(3.3)~(3.4),直到最小均方误差值小于预设的模型误差阈值,从而确定基于时间序列的深度学习模型。

该在轨实时故障诊断方法还包括如下步骤:

(3.5)、将验证集数据输入到步骤(3.4)确定的基于时间序列的深度学习模型,将深度学习模型的输出数据与实际数据进行比较,并统计两者的均方误差值;

(3.6)、当步骤(3.5)得到的均方误差值大于预设的模型误差阈值,则认为步骤(3.4)确定的基于时间序列的深度学习模型过拟合,调整学习率,重新执行步骤(3.3)~(3.5),否则,将步骤(3.4)确定的基于时间序列的深度学习模型确定为最终的深度学习模型。

所述学习率采用动态方法进行调整,初始设置学习率为常值,当多次循环均方误差值始终保持在一定的范围内不变时,逐渐降低学习率。

所述步骤(3.3)中,深度学习模型采用mini-batch方法对训练数据进行训练。

所述卫星单机和分系统观测数据为经过预处理之后的历史遥测数据;预处理的方法为:预处理包括归一化和预编码两种方法,归一化采用最大最小值归一化方法,使参数的值都集中分布在0-1之间,对于枚举型的参数,统一采用one-hot编码方式归一化。

所述训练集内的数据均为无故障数据。

本发明的另一个技术解决方案是:一种基于深度学习的卫星故障在轨实时故障诊断系统,该系统包括配置管理模块、数据管理模块、算法执行引擎、数据集和已训练模型库。

数据集,得到每个单机或者分系统的历史遥测数据,并对其进行数据抽取和剔野处理,将处理后的历史遥测数据再经过归一化或者预编码,存储至相应的训练数据集或者测试数据集;

配置管理模块,接收外部输入的训练或者测试指令;当指令为训练指令时,设置深度学习模型配置参数,将指定的训练数据集路径发送给数据管理模块;当指令为预测指令时,将指定的测试数据集路径发送给数据管理模块;当指令为测试指令时,发送预测模型选择指令至算法执行引擎;

数据管理模块,根据接收到的训练数据集路径或者测试数据集路径,从数据集库中采用地址追加的方法自动读取训练数据或者测试数据,将训练数据或者测试数据发送给算法执行引擎;

算法执行引擎,当训练时,根据初始化的基于时间序列的深度学习模型参数,调用通用机器学习平台的训练函数,构建卫星故障深度学习模型,循环获取训练数据,并执行通用机器学习平台的训练函数,直到完成训练过程,确定卫星故障深度学习模型,将确定后的卫星故障深度学习模型保存到已训练模型库中;当预测时,根据预测模型选择指令,从已训练模型库挑选已训练模型库,获取训练集数据,并运用已训练模型库进行预测,得到待检测数据,供用户判决。

所述深度学习模型为基于时间序列的深度学习模型包括第一lstm层、第一dropout层、第二lstm层、第三lstm层、第二dropout层和全连接层。

所述深度学习模型具体训练方法为:

(s1)、初始化基于时间序列的深度学习模型内各层输入维度、神经元个数、第一dropout层和第二dropout层的数据抛弃率;所述输入维度为m×n,其中,m为基于时间序列的深度学习模型滑动窗口大小,n为单机或者分系统的观测数据的种类;滑动窗口大小取为卫星单机和分系统特征的变化周期;神经元个数取为滑动窗口大小的整数倍;

(s2)、采用基于时间序列的深度学习算法,循环将训练集数据输入到深度学习模型,深度学习模型按照预设的学习率对训练数据进行学习训练,得到各层的权重、偏执和深度学习模型的输出数据,将深度学习模型的输出数据与实际数据进行比较,并统计两者的最小均方误差值,直到执行完预设的循环次数;

(s3)、当最小均方误差值超过预设的模型误差阈值时,调整学习率,重新执行步骤(s2)~(s3),直到最小均方误差值小于预设的模型误差阈值,从而确定基于时间序列的深度学习模型。

所述数据集还包括验证集数据。

所述深度学习模型具体训练方法还包括如下步骤:

(s4)、将验证集数据输入到步骤(s3)确定的基于时间序列的深度学习模型,将深度学习模型的输出数据与实际数据进行比较,并统计两者的均方误差值;

(s5)、当步骤(s4)得到的均方误差值小于大于预设的模型误差阈值,则认为步骤(s3)确定的基于时间序列的深度学习模型过拟合,调整学习率,重新执行步骤(s2)~(s5),否则,将步骤(s3)确定的基于时间序列的深度学习模型确定为最终的深度学习模型。

所述数据抽取方法包括基于具体时间段的数据抽取和基于参数不等式条件判断的数据抽取方法。

确定后的卫星故障深度学习模型采用h5格式进行存储。

本发明与现有技术相比的有益效果是:

1、本发明采用lstm(longshorttermmemory)算法,对卫星部件、分系统的关键指标的变化规律进行预测,通过预测的结果与实际发生结果的差异来对故障情况进行识别。通过加强对非故障工况数据的学习,来反向推演故障数据。解决了卫星故障预测故障数据少,分类标签不全的问题。

2、本发明采用了lstm算法,对卫星单机或分系统采集信号及指令的历史数据序列进行学习,基于采集信号数据的变化规律的内在关联,实现了基于多参数历史数据对较复杂参数变化规律的拟合。

3、本发明搭建了基于卫星测试历史数据及在轨历史数据的算法研发平台,通过数据解析、剃野等方式抽取卫星数据,形成训练及测试数据集,实现了卫星测试历史数据库、在轨历史遥测数据与成熟算法平台的集合。

附图说明

图1为本发明的卫星机器学习算法研发平台架构图。

具体实施方式

下面结合附图对本发明的具体实施方式进行进一步的详细描述。

1、卫星故障在轨实时故障诊断系统搭建

本发明提供了一种基于深度学习的卫星故障在轨实时故障诊断系统,该系统采用比较流行的tensorflow机器学习平台为基础,对上提供python语言进行算法模型开发。

如图1所示,本发明基于深度学习的卫星故障在轨实时故障诊断系统,其特征在于包括配置管理模块、数据管理模块、算法执行引擎、数据集和已训练模型库。

数据集,得到每个单机或者分系统的历史遥测数据,并对其进行数据抽取和剔野处理,将处理后的历史遥测数据再经过归一化或者预编码,存储至相应的训练数据集或者测试数据集;数据来源包括卫星测试数据库和卫星在轨数据库,两个数据库都采用oracle数据库进行管理,数据抽取功能通过解析遥测数据库结构,获取历史遥测数据。本模块提供了两种数据抽取方法:基于具体时间段的数据抽取;基于参数不等式条件判断的数据抽取。本模块提供了两种具体的剃野规则:剔除状态、配置切换指令周围遥测数据,即在影响遥测的相关单机进行切换时,该切换时刻周围遥测会进行剔除;剔除非稳定跳变的野值,即每个遥测数据都通过三帧验证的方式进行校验的。预处理:基于卫星参数的多样性,软件参数的预处理包括归一化和预编码两部分。软件归一化采用最大最小值归一化方法,使参数的值都集中分布在0-1之间。对于枚举型的参数,统一采用one-hot编码方式,消除数据大小差异而带来的训练效果差异。

配置管理模块,接收外部输入的训练或者测试指令;当指令为训练指令时,设置深度学习模型配置参数,将指定的训练数据集路径发送给数据管理模块;当指令为预测指令时,将指定的测试数据集路径发送给数据管理模块;当指令为测试指令时,发送预测模型选择指令至算法执行引擎;

数据管理模块,根据接收到的训练数据集路径或者测试数据集路径,从数据集库中采用地址追加的方法自动读取训练数据或者测试数据,将训练数据或者测试数据发送给算法执行引擎;

算法执行引擎,当训练时,根据初始化的基于时间序列的深度学习模型参数,调用通用机器学习平台的训练函数,构建卫星故障深度学习模型,循环获取训练数据,并执行通用机器学习平台的训练函数,直到完成训练过程,确定卫星故障深度学习模型,将确定后的卫星故障深度学习模型保存到已训练模型库中;当预测时,根据预测模型选择指令,从已训练模型库挑选已训练模型库,获取训练集数据,并运用已训练模型库进行预测,得到待检测数据,供用户判决。已训练模型库主要实现对训练后的模型进行统一的版本管理,训练后的模型采用h5格式进行存储。该算法执行引擎基于tensorflow框架的软件算法原型开发。tensorflow框架把各个深度学习的网络层次封装成为独立的模块,通过配置文件配置各个模块的输入输出后,实现网络搭建。例如,一个学习网络由lstm层、dropout层、softmax层组成,需要在配置文件上明确该三个层次,并明确输入输出的维度,明确损失函数和优化函数等深度学习所需参数即可。

2、故障诊断算法原型

本卫星故障诊断算法主要基于卫星平台的主要单机和分系统的数据进行分析,输入数据是单机或分系统的硬件采集数据,例如,电压、电流、温度、开关状态等。输出数据为上层应用的关键输入指标,例如,敏感器对上层软件的输出、电池相关控制指标等。本发明算法原型的形成过程主要包括训练和预测两个过程。训练过程主要采用训练集数据对深度学习模型各层的权重和偏执进行训练,当预测的卫星遥测参数与实际获得遥测参数的均方误差小于预定误差值后,可以当前深度学习的训练过程已经完成。预测过程即通过训练后的算法对当前数据进行预测,实际应用过程中通过判断实际观测数据和预测数据的均方误差值后,判断是否发生故障。算法原型的实施主要包括如下要点:

由于是基于历史数据预测值与实际观测值的误差来判断故障,数据集并没有故障标签需求,数据集主要基于非故障工况的卫星测试及在轨数据。数据集在训练过程中被分为训练集、验证集和测试集,三个数据相分离。在训练过程中,通过训练集来对算法进行训练;通过验证集实现交叉验证,检测训练过程是否过拟合;通过测试集验证算法训练的实际效果。

(3)、卫星故障在轨实时故障诊断方法

基于上述卫星故障在轨实时故障诊断系统和故障诊断算法原型,本发明提供了一种基于深度学习的卫星故障在轨实时故障诊断方法,该方法包括下列步骤:

(1)、获取卫星单机和分系统历史观测数据;所述历史观测数据为遥测数据;所述卫星单机和分系统观测数据为经过预处理之后的历史遥测数据;预处理的方法为:预处理包括归一化和预编码两种方法,归一化采用最大最小值归一化方法,使参数的值都集中分布在0-1之间,对于枚举型的参数,统一采用one-hot编码方式归一化。

(2)、采用卫星单机和分系统历史观测数据构建训练集,对深度学习模型进行训练,得到该单机和分系统的卫星故障深度学习模型;所述训练集内的数据均为无故障数据。

(3)、采用卫星故障深度学习模型对实时采集的在轨观测数据进行预测,得到下一个帧的预测结果;

以所述深度学习模型为基于时间序列的深度学习模型包括第一lstm层、第一dropout层、第二lstm层、第三lstm层、第二dropout层和全连接层为例,具体训练方法为:

(3.1)、建立基于时间序列的深度学习模型,所述基于时间序列的深度学习模型包括第一lstm层、第一dropout层、第二lstm层、第三lstm层、第二dropout层和全连接层;

(3.2)、初始化基于时间序列的深度学习模型内各层输入维度、神经元个数、第一dropout层和第二dropout层的数据抛弃率;所述输入维度为m×n,其中,m为基于时间序列的深度学习模型滑动窗口大小,n为单机或者分系统的观测数据的种类;滑动窗口大小取为卫星单机和分系统特征的变化周期;神经元个数取为滑动窗口大小的整数倍;

(3.3)、采用基于时间序列的深度学习算法,循环将训练集数据输入到深度学习模型,深度学习模型按照预设的学习率对训练数据进行学习训练,得到各层的权重、偏执和深度学习模型的输出数据,将深度学习模型的输出数据与实际数据进行比较,并统计两者的最小均方误差值,直到执行完预设的循环次数;深度学习模型采用mini-batch方法对训练数据进行训练。

(3.4)、当最小均方误差值超过预设的模型误差阈值时,调整学习率,重新执行步骤(3.3)~(3.4),直到最小均方误差值小于预设的模型误差阈值,从而确定基于时间序列的深度学习模型。

(3.5)、将验证集数据输入到步骤(3.4)确定的基于时间序列的深度学习模型,将深度学习模型的输出数据与实际数据进行比较,并统计两者的均方误差值;

(3.6)、当步骤(3.5)得到的均方误差值大于预设的模型误差阈值,则认为步骤(3.4)确定的基于时间序列的深度学习模型过拟合,调整学习率,重新执行步骤(3.3)~(3.5),否则,将步骤(3.4)确定的基于时间序列的深度学习模型确定为最终的深度学习模型。所述学习率采用动态方法进行调整,初始设置学习率为常值,当多次循环均方误差值始终保持在一定的范围内不变时,逐渐降低学习率。

(4)、获取下一帧的实际测量数据,将其与预测结果比较,得到预测误差;

(5)、判断预测误差是否连续n次超出预设的范围,是,则根据比较结果进行故障诊断;否则,重复步骤(3)~(5)。

基于时间序列的深度学习算法,输入数据为某一时刻之前n帧的相关数据,在本发明某一实施例中,滑动窗口大小为50帧数据,50帧数据中,通过前49帧数据的值作为输入,第50帧数据为输出。每次训练过程都是通过前49帧数据来学习第50帧数据。

在本发明某一实施例中,lstm层统一采用adam的优化算法进行梯度下降学习(调整权值方法),神经源个数初始值为50个。dropout层采用0.2(0~1)作为初始数据抛弃率的初始值。算法误差函数采用均方误差计算方法。学习过程中,采用mini-batch方法对模型进行训练,batch采用几十到几百量级,epoch个数根据具体数据集而定。

4、故障诊断模型的应用

本发明所提供的深度学习模型以动量轮的电压、电流、动量轮角速度等动量轮相关采集数据为输入,对动量轮电压数据进行拟合,通过对动量轮电压的预测,检测动量轮电压不稳故障。

本发明通过学习控制分系统姿态数据及星敏器采集参数,对星敏输出的长值故障进行诊断。通过图片发现,星敏在运行过程中出现了短暂的长值故障,长值故障数据能跳过星载软件的有效性判断,造成卫星控制系统故障。通过本发明算法能够有效地对长值故障数据进行判断。

通过不断的训练学习后,形成较稳定的故障诊断模型。基于该模型,研制在轨故障诊断任务,并对其进行在轨维护操作。通过在轨的故障诊断任务,实时检测卫星故障,提升卫星自主健康管理的能力,完善在轨故障诊断机制,减少卫星地面卫星在轨运维的成本与压力。

本发明未详细说明部分属本领域技术人员公知常识。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1