一种基于事件队列的航天器故障诊断方法技术

技术编号:11856791 阅读:102 留言:0更新日期:2015-08-11 03:40
一种基于事件队列的航天器故障诊断方法,首先获取航天器故障诊断相关数据,并判断获得的故障诊断相关数据是否满足事件注册条件,若满足,则进行事件注册,否则判断当前事件队列中的事件是否满足事件触发条件,若满足,则执行相应的开关操作,否则,结束本周期的故障诊断,本发明专利技术将判断故障发生的时序条件抽象为事件,将故障处理措施抽象为动作,通过事件队列实现故障诊断与处理,实现了复杂故障诊断与处理场景的形式化描述,为了清晰、无二义性地描述航天器故障诊断的需求提供了一种方法,该方法既有利于航天器故障诊断与处理方案设计人员清晰明了地描述航天器故障诊断需求,又有利于实现故障诊断与处理方法的复用。

【技术实现步骤摘要】
一种基于事件队列的航天器故障诊断方法
本专利技术涉及一种航天器故障诊断方法,特别是一种基于事件队列的航天器故障诊断方法,属于航天器故障诊断领域。
技术介绍
随着控制与推进分系统的功能日益复杂,AOCC应用软件承担的任务也从传统的姿态与轨道控制等科学计算功能,逐步扩展到故障处理等业务逻辑功能。与基于软件当前状态,进行科学计算的姿态与轨道控制功能相比,故障处理的特征包括时序性和离散性。即业务逻辑的行为不仅由软件的当前状态决定,还往往与软件的历史状态有关。故障处理的输入一般是离散量(部件的状态,或是以姿态与轨道计算结果的连续量作为自变量的布尔表达式取值等),输出也是离散量(部件的状态等),且输出往往由多个周期的输入共同决定。目前,有些卫星的控制与推进分系统应用软件单独列出了故障处理任务。需要考虑的故障类型多,故障判断与故障处理逻辑复杂,传统的软件架构难以适应这些新的需求。基于事件的航天器软件故障处理方法将时序条件的判定结果抽象为事件,将输出抽象为动作。事件可以既可以触发动作,也可以注册新的事件,极大简化了软件实现的难度,降低了软件实现错误的可能性。
技术实现思路
本专利技术的技术解决问题是:克服现有技术的不足,提供了一种基于事件队列的航天器故障诊断方法,将判断故障发生的时序条件抽象为事件,将故障处理措施抽象为动作,通过事件队列实现故障诊断与处理,实现了复杂故障诊断与处理场景的形式化描述,为了清晰、无二义性地描述航天器故障诊断的需求提供了一种方法。该方法既有利于航天器故障诊断与处理方案设计人员清晰明了地描述航天器故障诊断需求,又有利于实现故障诊断与处理方法的复用。本专利技术的技术解决方案是:一种基于事件队列的航天器故障诊断方法,步骤如下:(1)获取航天器故障诊断相关数据,所述航天器故障诊断相关数据包括航天器各敏感器和各执行机构的测量数据与反馈数据;(2)判断步骤(1)中获得的故障诊断相关数据是否满足事件注册条件,若满足,则进入步骤(3),进行事件注册,否则,进入步骤(4),直接进行事件触发的判断;所述事件为航天器各敏感器和各执行机构的开关切换操作;所述事件注册条件由项、命题和公式确定,具体为:项:Term包括下列两种形式:c或x,其中,Term为项,c为常量,x为变量,即航天器各敏感器和各执行机构的测量数据与反馈数据;命题:Proposition由Function(Term1,Term2,…,Termn)~0确定,其中,Proposition为命题,Function为关于Term的n元初等函数表达式,~为>、<或=,Term1,Term2,…,Termn均为项;公式:Formula包括下列两种形式:Proposition或(Formula1Until[n]Formula2),其中,Until为时序算子,n为时间约束;给定由多个控制周期的航天器各敏感器和各执行机构的测量数据与反馈数据构成的数据序列S=s1,s2,…sn,…,若Formula由Formula1Until[n]Formula2构成,则Formula在数据序列S上成立的条件是:存在i<=n,使得Formula1在序列集合{s1,s2,…si、s3,…si、…、si-1si、si}的各个序列上均成立,且Formula2在si,si+1,…sn,…成立;若Formula由命题Proposition直接构成,则Formula在数据序列S上成立的条件是当且仅当Proposition在s1上成立;(3)对步骤(2)中满足注册条件的事件进行注册,进入步骤(4);具体的注册方法为:若Formula在数据序列S上成立,则将Event加入事件队列,其中,Event为触发事件;(4)判断当前事件队列中的事件是否满足事件触发条件,若满足,则执行相应的开关操作,否则,结束本周期的故障诊断;所述事件触发条件由条件和事件触发确定,具体为:条件:Condition包括下列四种形式:Formula或(!Condition)或(Condition1||Condition2)或(Condition1&&Condition2)其中,!Condition、Condition1||Condition2和Condition1&&Condition2分别表示条件的否定、析取与合取;Condition、Condition1和Condition2均为条件;事件触发:Event包括下列两种形式,Action或IF(Condition)THENEvent1ELSEEvent2,其中Action是航天器各敏感器和各执行机构的开关切换动作;其语义如下:若Event由动作Action直接构成,则执行Action所代表的各敏感器和各执行机构的开关切换操作;若Event的形式为IF(Condition)THENEvent1ELSEEvent2,则根据步骤(2)中的事件注册条件,判断Condition是否成立,若成立,则执行Event1,否则执行Event2;所述动作Action包括三种形式,v:=e或Always[L](v:=e)或Eventually[L](v:=e),分别表示直接将进行v:=e的操作;在接下来的L个周期中,都进行v:=e的操作;在L个周期之后,再进行v:=e的操作。其中,v:=e表示将表达式e的值,赋给v所代表的变量或硬件端口。本专利技术与现有技术相比的有益效果是:(1)本专利技术可以表示包含复杂时序特性的航天器故障诊断与处理方案,提高了航天器故障诊断与处理方法的表达能力。(2)相比于传统的文字、伪代码、图表方式的故障诊断与处理描述方法描述,本专利技术给出了航天器故障诊断与处理描述方法的语法定义和语义解释,更加清晰,避免了二义性,也更有利于航天器设计人员分析方案的合理性、可行性;(3)本专利技术给出了一种航天器故障诊断与处理的新思路,即站在需求的角度分析、设计故障诊断与处理方案,避免过早陷入实现的细节。有利于航天器设计人员提出更加通用、具有复用性的故障诊断与处理方案。附图说明图1为本专利技术流程图;图2为本专利技术应用案例的示意图具体实施方式下面结合附图对本专利技术的具体实施方式进行进一步的详细描述。(1)获取航天器故障诊断相关数据,所述航天器故障诊断相关数据包括航天器各敏感器和各执行机构的测量数据与反馈数据;(2)判断步骤(1)中获得的故障诊断相关数据是否满足事件注册条件,若满足,则进入步骤(3),进行事件注册,否则,进入步骤(4),直接进行事件触发的判断;所述事件为航天器各敏感器和各执行机构的开关切换操作;所述事件注册条件由巴克斯范式构建,所述巴克斯范式由项、命题和公式确定,具体为:项:Term包括下列两种形式:c或x,其中,Term为项,c为常量,x为变量,即航天器各敏感器和各执行机构的测量数据与反馈数据。例如,1.732就是一个常量,phi就是一个变量;命题:Proposition:=Function(Term1,Term2,…,Termn)~0,其中,Proposition为命题,Function是关于Term的n元初等函数表达式,~是>,<或=,Term1,Term2,…,Termn均为项。例如,sin(phi)>0就是本文档来自技高网...
一种基于事件队列的航天器故障诊断方法

【技术保护点】
一种基于事件队列的航天器故障诊断方法,其特征在于步骤如下:(1)获取航天器故障诊断相关数据,所述航天器故障诊断相关数据包括航天器各敏感器和各执行机构的测量数据与反馈数据;(2)判断步骤(1)中获得的故障诊断相关数据是否满足事件注册条件,若满足,则进入步骤(3),进行事件注册,否则,进入步骤(4),直接进行事件触发的判断;所述事件为航天器各敏感器和各执行机构的开关切换操作;所述事件注册条件由项、命题和公式确定,具体为:项:Term包括下列两种形式:c或x,其中,Term为项,c为常量,x为变量,即航天器各敏感器和各执行机构的测量数据与反馈数据;命题:Proposition由Function(Term1,Term2,…,Termn)~0确定,其中,Proposition为命题,Function为关于Term的n元初等函数表达式,~为>、<或=,Term1,Term2,…,Termn均为项;公式:Formula包括下列两种形式:Proposition或(Formula1Until[n]Formula2),其中,Until为时序算子,n为时间约束;给定由多个控制周期的航天器各敏感器和各执行机构的测量数据与反馈数据构成的数据序列S=s1,s2,…sn,…,若Formula由Formula1Until[n]Formula2构成,则Formula在数据序列S上成立的条件是:存在i<=n,使得Formula1在序列集合{s1,s2,…si、s2,…si、…、si‑1si、si}的各个序列上均成立,且Formula2在si,si+1,…sn,…成立;若Formula由命题Proposition直接构成,则Formula在数据序列S上成立的条件是当且仅当Proposition在s1上成立;(3)对步骤(2)中满足注册条件的事件进行注册,进入步骤(4);具体的注册方法为:若Formula在数据序列S上成立,则将Event加入事件队列,其中,Event为触发事件;(4)判断当前事件队列中的事件是否满足事件触发条件,若满足,则执行相应的开关操作,否则,结束本周期的故障诊断;所述事件触发条件由条件和事件触发确定,具体为:条件:Condition包括下列四种形式:Formula或(!Condition)或(Condition1||Condition2)或(Condition1&&Condition2)其中,!Condition、Condition1||Condition2和Condition1&&Condition2分别表示条件的否定、析取与合取;Condition、Condition1和Condition2均为条件;事件触发:Event包括下列两种形式,Action或IF(Condition)THEN Event1ELSE Event2,其中Action是航天器各敏感器和各执行机构的开关切换动作;其语义如下:若Event由动作Action直接构成,则执行Action所代表的各敏感器和各执行机构的开关切换操作;若Event的形式为IF(Condition)THEN Event1ELSE Event2,则根据步骤(2)中的事件注册条件,判断Condition是否成立,若成立,则执行Event1,否则执行Event2;所述动作Action包括三种形式,v:=e或Always[L](v:=e)或Eventually[L](v:=e),分别表示直接将进行v:=e的操作;在接下来的L个周期中,都进行v:=e的操作;在L个周期之后,再进行v:=e的操作。其中,v:=e表示将表达式e的值,赋给v所代表的变量或硬件端口。...

【技术特征摘要】
1.一种基于事件队列的航天器故障诊断方法,其特征在于步骤如下:(1)获取航天器故障诊断相关数据,所述航天器故障诊断相关数据包括航天器各敏感器和各执行机构的测量数据与反馈数据;(2)判断步骤(1)中获得的故障诊断相关数据是否满足事件注册条件,若满足,则进入步骤(3),进行事件注册,否则,进入步骤(4),直接进行事件触发的判断;所述事件为航天器各敏感器和各执行机构的开关切换操作;所述事件注册条件由项、命题和公式确定,具体为:项:Term包括下列两种形式:c或x,其中,Term为项,c为常量,x为变量,即航天器各敏感器和各执行机构的测量数据与反馈数据;命题:Proposition由Function(Term1,Term2,…,Termn)~0确定,其中,Proposition为命题,Function为关于Term的n元初等函数表达式,~为>、<或=,Term1,Term2,…,Termn均为项;公式:Formula包括下列两种形式:Proposition或(Formula1Until[n]Formula2),其中,Until为时序算子,n为时间约束;给定由多个控制周期的航天器各敏感器和各执行机构的测量数据与反馈数据构成的数据序列S=s1,s2,…sn,…,若Formula由Formula1Until[n]Formula2构成,则Formula在数据序列S上成立的条件是:存在i<=n,使得Formula1在序列集合{s1,s2,…si、s2,s3,…si、…、si-1,si、si}的各个序列上均成立,且Formula2在si,si+1,…sn,…成立;若Formula由命题Proposition直接构成,则Formula在数据序列S上成立的条件是当且仅当Proposition在s1上成立;(3)对步骤(2)...

【专利技术属性】
技术研发人员:王政刘端牛和明尚葳蕤王振华
申请(专利权)人:北京控制工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1