一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于FSM的火星车休眠唤醒功能验证方法与流程

2022-02-20 02:53:31 来源:中国专利 TAG:

一种基于fsm的火星车休眠唤醒功能验证方法
技术领域
1.本发明属于航天器系统级测试设计及验证领域,涉及一种基于fsm的火星车休眠唤醒功能验证方法。


背景技术:

2.火星至地球的单程时延约为20min,月球至地球的单程时延约为1s。与月球探测相比,火星探测任务所需飞行时间更长,信号延迟更大。这就需要火星探测器具有更强的自主功能,能够在无法进行人为干预的情况下,自行完成探测任务所需的相关动作。火星与地球类似,存在季节变化和气候变化,对火星车太阳电池发电产生影响,且具有较大的不确定性。由于我国火星车不使用核源,火星车在火面工作期间,不能保证不发生太阳电池发电不足,无法支持火星车平台工作的情况。因此,需要进行火星车自主休眠唤醒设计。
3.目前,深空探测器ai&t(assembly integration&test)阶段,面向自主功能验证的方法较为主观、片面,尤其缺少面向自主休眠唤醒功能的测试验证策略和方法体系支持。该现状已无法满足复杂航天器测试覆盖性对测试设计的要求,迫切需要寻找支撑探测器自主功能,尤其是休眠唤醒功能的测试验证方法。


技术实现要素:

4.本发明解决的技术问题是:克服现有技术的不足,提出一种基于fsm的火星车休眠唤醒功能验证方法。
5.本发明解决技术的方案是:
6.一种基于fsm的火星车休眠唤醒功能验证方法,该方法的步骤包括:
7.(1)建立状态集:根据设计报告中对火星车休眠唤醒过程的描述,对该过程火星车经历过的状态进行提炼和定义,形成状态集;
8.(2)建立输入集:根据设计报告中对火星车休眠唤醒过程的描述以及对火星车上行激励的描述,对状态间迁移过程的输入条件进行定义,形成输入集;
9.(3)建立输出集:根据设计报告中对火星车休眠唤醒过程的描述,对火星车在某状态下,受到激励迁移至其他状态下的输出进行定义,形成输出集;
10.(4)在步骤(1)、(2)、(3)基础上,依据设计报告中对火星车休眠唤醒过程的动态描述,绘制火星车休眠唤醒过程的有限状态机状态迁移图fsm;
11.(5)根据逻辑及条件覆盖算法对有限状态机状态迁移图进行遍历,生成测试用例集,遍历测试用例集中的各个用例,实现火星车系统级的休眠唤醒功能验证。
12.所述步骤(1)中,被提炼和定义的状态必须为能够被监视的状态。
13.所述步骤(2)中,输入集中的每个输入条件均需要明确执行条件,所述执行条件为自主执行或人为激励执行。
14.所述步骤(3)中,输出集中的每个输出元素必须能够被监视。
15.所述步骤(5)中,测试用例集生成方法如下:
16.梳理在轨休眠唤醒的应用场景,针对每个应用场景,选择状态迁移路径,使得该状态迁移路径覆盖尽量多未曾覆盖的状态集、输入集、输出集中的元素;
17.针对每个应用场景,根据所选的状态迁移路径,形成一个测试用例;
18.所有应用场景的测试用例形成测试用例集。
19.所述测试用例集包括发送指令方式测试用例集和自主执行方式测试用例集;
20.生成发送指令方式测试用例集时,首先判断是否覆盖了所有休眠唤醒场景,若没有,继续生成发送指令方式测试用例;若覆盖了,则判断是否覆盖了所有状态;
21.若没有覆盖所有状态,则继续生成发送指令方式测试用例;若覆盖了,则判断是否覆盖了所有路径;
22.若没有覆盖所有路径,则继续生成发送指令方式测试用例;若覆盖了,则发送指令方式测试用例生成完毕;
23.生成自主执行方式测试用例集时,首先判断是否覆盖了所有休眠唤醒场景,若没有,继续生成自主执行方式测试用例;若覆盖了,则判断是否覆盖了所有状态;
24.若没有覆盖所有状态,则继续生成自主执行方式测试用例;若覆盖了,则判断是否覆盖了所有路径;
25.若没有覆盖所有路径,则继续生成自主执行方式测试用例;若覆盖了,则自主执行方式测试用例生成完毕。
26.设计两层推进方式进行火星车系统级的休眠唤醒功能验证:
27.第一层,通过发送指令方式,执行发送指令方式测试用例,实现状态间的迁移,覆盖所有的指令组及路径,用于验证指令组执行的正确性、周期任务模板执行的正确性、状态间可迁移性;
28.第二层,通过自主方式,执行自主执行方式测试用例,实现状态间的迁移,覆盖所有应用场景以及休眠唤醒策略的各个分支,用于验证在连续休眠唤醒场景中,自主休眠唤醒策略及功能的正确性。
29.本发明与现有技术相比的有益效果是:
30.(1)本发明首次系统性提出了适合我国自主研制火星车休眠唤醒功能的验证策略,改变了当前复杂航天器自主功能主要依据测试经验开展的局面。为火星车自主功能,尤其是休眠唤醒功能验证提供了一个自上而下的分析思路。使得测试设计人员能够依据该方法完成航天器自主休眠唤醒过程测试设计及验证工作;
31.(2)本发明方法采用基于模型的测试设计思路,使用fsm对休眠唤醒过程进行建模,并在此基础上形成测试用例集。该用例集能够覆盖休眠唤醒过程中,火星车所有状态、所有迁移场景以及所有状态迁移路径,最大程度上保证了对休眠唤醒过程进行验证的测试覆盖性;
32.(3)本发明方法能够减小器上设计与测试设计的关联性,降低器上更改对测试设计的影响,变化中寻找不变,减少了测试需求再分析、测试用例再设计、测试再实施的用时,有效提高了测试设计效率,找到了一种适合新产品开发的测试验证策略,特别适用于具有复杂度高、迭代次数多研制特点的航天器测试验证任务。
附图说明
33.图1为本发明流程图;
34.图2为火星车休眠唤醒期间的状态迁移图。
具体实施方式
35.下面结合实施例对本发明作进一步阐述。
36.本发明提供了一种适合我国自主研制火星车的休眠唤醒过程测试验证方法。该方法首先采用面向天问一号火星探测器飞行过程分析思路,对火星车休眠唤醒过程中的工作状态进行定义;接着,在此基础上对火星车休眠唤醒错综复杂的自主行为进行建模,开展基于fsm的场景识别,形成基于火星车状态迁移的fsm(有限状态机),完成“去时间因子”性质的面向任务剖面的分解动作分析;最后,根据逻辑及条件覆盖算法,并结合测试设计经验对fsm进行遍历,形成测试用例集,并最终完成该火星车系统级的休眠唤醒功能验证。
37.该方法采用基于模型的测试设计思路,使用fsm对休眠唤醒过程进行建模,并在此基础上形成测试用例集。该用例集能够覆盖休眠唤醒过程中,火星车所有状态、所有迁移场景以及所有状态迁移路径,最大程度上保证了对休眠唤醒过程进行验证的测试覆盖性。此外,该方法能够减小器上设计与测试设计的关联性,降低器上更改对测试设计的影响,变化中寻找不变,减少了测试需求再分析、测试用例再设计、测试再实施的用时,有效提高了测试设计效率,找到了一种适合新产品开发的测试验证策略,特别适用于具有复杂度高、迭代次数多研制特点的航天器测试验证任务。
38.本发明提出一种基于fsm的火星车休眠唤醒功能验证方法,步骤如下:
39.(1)建立状态集:根据设计报告中对火星车休眠唤醒过程的描述,对该过程火星车经历过的状态进行提炼和定义。这里要特别注意,被选择和定义的状态必须为可监视。比如通过器地间遥测数据等方式,能够实施监视状态的变化。所以,火星车状态的选择需要和可监视手段相结合。此外,状态定义数量不宜过多。如被测对象过于复杂,可以考虑分层次进行建模;
40.(2)建立输入集:根据设计报告中对火星车休眠唤醒过程的描述,以及对火星车上行激励的描述,对状态间迁移过程的输入条件进行定义。这里需要注意,对每个输入条件需要明确其执行条件,一般分为自主执行和人为激励执行两种;
41.(3)建立输出集:根据设计报告中对火星车休眠唤醒过程的描述,对火星车在某状态下,受到激励迁移至其他状态下的输出进行定义。这里要特别注意,被选择和定义的“输出”也必须为可监视。比如通过器地间遥测数据等方式,能够实施监视输出的发生;
42.(4)在(1)、(2)、(3)基础上,依据设计报告中对火星车休眠唤醒过程的动态描述,绘制火星车休眠唤醒过程fsm(有限状态机状态迁移图);
43.(5)根据逻辑及条件覆盖算法对fsm(有限状态机状态迁移图)进行遍历,形成测试用例集,并最终完成火星车系统级的休眠唤醒功能验证。测试用例生成需遵循以下逻辑及条件覆盖原则:
44.基于在轨休眠唤醒的应用场景,选择状态迁移路径,使得该路径覆盖尽量多未曾覆盖的状态集、输入、输出集中的取值;重复以上操作,直至所有状态、输入、输出被覆盖;
45.对于每个场景形成一个测试用例;
46.根据测试经验,为了具体测试实施过程能够顺利推进,也为了覆盖在轨时状态迁移可使用的两种方式(人为、自主),特设计两层推进方式进行该功能测试。第一步,通过人为干预方式,执行状态间的迁移,覆盖所有的状态及路径。主要验证fsm的可迁移性,并对fsm中的状态、输入输出集的定义进行初步验证;第二步,通过自主方式,执行状态间的迁移,覆盖所有应用场景以及休眠唤醒策略的各个分支。主要验证在连续休眠唤醒场景中,自主休眠唤醒策略及功能的正确性。但要特别注意“人为”与“自主”两种方式执行过程中的区别。
47.本发明流程图如图1所示。测试用例集包括发送指令方式测试用例集和自主执行方式测试用例集;
48.生成发送指令方式测试用例集时,首先判断是否覆盖了所有休眠唤醒场景,若没有,继续生成发送指令方式测试用例;若覆盖了,则判断是否覆盖了所有状态;
49.若没有覆盖所有状态,则继续生成发送指令方式测试用例;若覆盖了,则判断是否覆盖了所有路径;
50.若没有覆盖所有路径,则继续生成发送指令方式测试用例;若覆盖了,则发送指令方式测试用例生成完毕;
51.生成自主执行方式测试用例集时,首先判断是否覆盖了所有休眠唤醒场景,若没有,继续生成自主执行方式测试用例;若覆盖了,则判断是否覆盖了所有状态;
52.若没有覆盖所有状态,则继续生成自主执行方式测试用例;若覆盖了,则判断是否覆盖了所有路径;
53.若没有覆盖所有路径,则继续生成自主执行方式测试用例;若覆盖了,则自主执行方式测试用例生成完毕。
54.实施例:
55.以天问一号火星车自主休眠唤醒功能为例,详细说明本发明的方法。
56.具体步骤如下:
57.1)建立状态集:依据设计报告中对天问一号火星车自主休眠唤醒功能的描述,以及过程可监视的原则,选择常规工作模式、正常工作模式、最小工作模式、休眠模式、唤醒模式5个状态,组成火星车在轨休眠唤醒过程中的状态集,且该五个状态均有对应的遥测参数与其对应。其中,常规工作模式、最小工作模式、唤醒模式以“周期任务模板标识”遥测参数唯一定义;正常工作模式以“任务指令运动标识”遥测参数定义,认为执行任何任务级指令时,火星车均为正常工作模式,包括太阳翼运动、感知、图像压缩、移动、探测、通信等任务指令;休眠模式以标志“整星自主断电”唯一定义;
58.2)建立输入集:为了便于火星车执行相关自主动作,火星车对状态间的切换动作序列进行了模块化定义,形成输入集。如指令组20#为“休眠指令组1”,其负责完成常规工作模式向休眠工作模式切换时,火星车各单机状态恢复与再设置功能。故,定义执行指令组20#、21#、22#、23#、24#、25#、26#、27#的指令,为火星车休眠唤醒期间,状态间迁移的输入集合。且可通过“执行指令组序号”遥测参数进行实时监视;
59.3)建立输出集:以上指令组中的每条设置指令,均可通过相关遥测进行状态监视。故,定义指令组20#、21#、22#、23#、24#、25#、26#、27#的执行结果,为火星车休眠唤醒期间,状态间迁移的输出集合;
60.4)绘制火星车休眠唤醒期间的状态迁移图:使用圆圈表示状态集、使用带箭头的弧线表示状态间的迁移动作,并把输入集、输出集标注于弧线之上。如状态集、输入输出集与对应遥测参数关联,则该fsm可实时同步表示火星车当前状态;火星车休眠唤醒期间的状态迁移图如图2所示。
61.5)根据相应的算法对fsm进行遍历,形成测试用例集,并最终完成该探测器系统级的模拟飞行验证。测试用例生成需遵循以下原则:
62.(1)基于在轨休眠唤醒的应用场景,选择状态迁移路径,使得该路径覆盖尽量多未曾覆盖的状态集、输入集中的取值;针对不同应用场景,重复以上操作,直至所有路径均被覆盖;
63.(2)对于每个场景形成一个测试用例,用于测试实施;
64.(3)根据测试经验,为了具体测试实施过程能够顺利推进,也为了覆盖在轨时状态迁移可使用的两种方式(手动、自主),特设计两层推进方式进行该功能测试。第一步,通过发送指令方式,执行状态间的迁移,覆盖所有的指令组及路径。主要验证指令组执行的正确性、周期任务模板执行的正确性、状态间可迁移性;第二步,通过自主方式,执行状态间的迁移,覆盖所有应用场景以及休眠唤醒策略的各个分支。主要验证在连续休眠唤醒场景中,自主休眠唤醒策略及功能的正确性。
65.6)生成测试用例:
66.(1)发送指令方式:覆盖指令组20#~27#、覆盖5个工作状态(常规、正常、最小、休眠、唤醒)、覆盖休眠唤醒策略1-2
67.分支1:常规(指令组24#)-》最小(指令组20#)-》休眠(指令组21#)-》唤醒(指令组25#)-》最小(指令组26#)-》常规
68.分支2:常规(指令组27#)-》休眠(指令组21#)-》唤醒(指令组25#)-》最小(指令组26#)-》常规
69.分支3:正常(指令组23#)-》常规
70.分支4:正常(指令组22#)-》最小(指令组26#)-》常规
71.(2)自主休眠唤醒方式:覆盖三个场景(见下文)、覆盖指令组20#~27#、覆盖5个工作状态(常规、正常、最小、休眠、唤醒)、覆盖休眠唤醒策略1-2
72.分支1:正常(自主-指令组22#)-》最小(自主-指令组26#)-》常规(覆盖首次休眠进入最小后再恢复至正常模式场景-策略1)
73.分支2:正常(自主-指令组22#)-》最小(自主-指令组20#)-》休眠(自主-指令组21#)-》唤醒(自主-指令组27#)-》休眠(自主-指令组21#)-》唤醒(授时指令-指令组25#)-》最小(自主-指令组27#)-》休眠(自主-指令组21#)-》唤醒(授时指令-指令组25#)-》最小(发送指令-指令组26#)-》常规(覆盖首次休眠起始状态为最小工作模式场景-策略1;覆盖非首次休眠起始状态为唤醒模式、最小工作模式场景-策略2)
74.分支3:常规/正常(自主-指令组20#)-》休眠(自主-指令组21#)-》唤醒(授时指令-指令组25#)-》最小(自主-指令组26#)-》常规(自主-指令组27#)-》休眠(自主-指令组21#)-》唤醒(授时指令-指令组25#)-》最小(发送指令-指令组26#)-》常规(覆盖首次休眠起始状态为常规或正常模式-策略1;覆盖非首次休眠起始状态为唤常规或正常模式-策略2)。
75.本发明已成功应用于某火星探测器系统级测试阶段的休眠唤醒功能验证过程。首
先,该发明改变了当前复杂航天器自主功能主要依据测试经验开展、验证思路过于主观和片面的局面,是一种面向自主休眠唤醒功能的测试验证策略和方法;其次,通过对火星车休眠唤醒过程进行fsm建模,不仅对该过程中火星车自主性行为模型的每个分支进行了覆盖(包括正常及故障分支),还对火星车休眠唤醒过程在轨真实场景进行了覆盖,从功能及操作特性两方面能够充分满足了测试覆盖性的要求;此外,该发明通过手动、自主两种方式对fsm模型进行遍历,使得测试过程能够分层次递进式推进,为尽早发现异常问题提供了有效手段,满足测试有效性的要求。基于模型的测试验证思路,也能够有效提高测试设计效率,特别适用于具有复杂度高、迭代次数多等研制特点的航天器测试验证任务。
76.本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献