首页> 中国专利> 一种星载软件中条件统计型需求的处理方法和装置

一种星载软件中条件统计型需求的处理方法和装置

摘要

一种星载软件中条件统计型需求的处理方法和装置,其中方法包括:(1)根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化,其中,所述数组按顺序方式存储满足给定条件的周期序号;(2)更新所述数组,并使所述数组中非0元素均排列在数组前列;(3)判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;(4)获取所述数组的非0元素个数C;(5)判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则返回执行步骤(2)。本发明可节省大量内存,消耗处理器资源较少。

著录项

  • 公开/公告号CN104331279A

    专利类型发明专利

  • 公开/公告日2015-02-04

    原文格式PDF

  • 申请/专利权人 上海微小卫星工程中心;

    申请/专利号CN201410560661.X

  • 发明设计人 徐文明;张晓杰;包海超;吴志华;

    申请日2014-10-21

  • 分类号

  • 代理机构上海翼胜专利商标事务所(普通合伙);

  • 代理人孙佳胤

  • 地址 201203 上海市浦东新区海科路99号

  • 入库时间 2023-12-17 03:18:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-03

    专利权的转移 IPC(主分类):G06F 9/44 专利号:ZL201410560661X 登记生效日:20220524 变更事项:专利权人 变更前权利人:上海微小卫星工程中心 变更后权利人:上海中科辰新卫星技术有限公司 变更事项:地址 变更前权利人:201203 上海市浦东新区海科路99号 变更后权利人:201306 上海市浦东新区自由贸易试验区临港新片区环湖西二路888号C楼

    专利申请权、专利权的转移

  • 2017-06-30

    授权

    授权

  • 2015-03-11

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20141021

    实质审查的生效

  • 2015-02-04

    公开

    公开

说明书

技术领域

本发明涉及星载软件处理技术领域,尤其涉及一种星载软件中的条件统计型需求的处理方法和装置。

背景技术

在星载软件中,存在较多的条件统计型需求。如在姿控模块中,需求描述“在连续200个周期内,三轴角速率绝对值大于0.5度/秒的周期数大于20,则工作模式切换为安全模式”、“在连续64周期内,姿态无效次数小于5次,则轨控推力器开”、“连续50周期内,单机未正常返回遥测次数大于5,则判断其为无效”等。这类需求描述的特点为需要统计一段时间内满足给定条件的次数,称之为条件统计型需求。假定,条件统计型需求需要统计的最近M周期内满足给定条件的次数为N,实际统计最近M周期内条件满足的次数为C;进一步的,可以将条件统计型需求归结为两种类型——C>N型需求和C <N型需求,具体描述为:

1)C>N型需求:在连续的M周期内,条件满足的次数C大于等于N次,则执行动作A;

2)C<N型需求:在连续的M周期内,条件满足的次数C小于N次,则执行动作A。

根据星载软件需求的特点,一般情况下有:20<M<1000、N/M<0.2。针对这类需求,在星载软件设计中实际统计最近M周期内条件满足的次数C,当C大于等于或是小于N时,执行相应动作A。

目前星载软件中条件统计型需求的处理方法为:根据需要统计的周期数M定义一个M维的数组,定义第i次满足条件的情况记为Si(满足条件则Si取1,否则取0),并采用先入先出的方式维持M数组的状态。

参考图1,现有条件统计型需求的处理方法的数组维护过程示意图;令当前周期满足条件情况为Q,则数组M维护过程为将S1状态丢弃,并置S1状态等于S2状态,依次类推,最后置SM状态为Q。

当i>M时,每周期进行判断M次中满足条件的次数C:对于C>N型需求,则若C不小于N,即                                                ,则执行动作A;对于C<N型需求,则若C小于N,即,则执行动作A。

上述方法可以处理C>N型需求、C<N型需求。但对于星载计算机而言,其内存资源和处理器能力均受限(内存一般不超过2M bytes,处理器主频一般为不超过50MHz),上述方法在M较大的情况下,由于需要定义M维数组,会消耗大量内存,且对M维数组的维护和条件判断需要消耗较多的处理器资源,因此现有处理方法不适用于星载计算机中。

发明内容

本发明所要解决的问题是针对现有条件统型需求处理方法会消耗大量内存和处理器资源,不适用于内存资源和处理器能力均受限的星载计算机的技术问题,提供一种星载软件中的条件统计型需求的处理方法和装置,实现节省大量内存,减少处理器资源的消耗。

为了解决上述问题,本发明提供了一种星载软件中的条件统计型需求的处理方法,包括:(1)根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化,其中,所述数组按顺序方式存储满足给定条件的周期序号;(2)更新所述数组,并使所述数组中非0元素均排列在数组前列;(3)判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;(4)获取所述数组的非0元素个数C;(5)判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则返回执行步骤(2)。

为了解决上述问题,本发明还提供了一种星载软件中的条件统计型需求的处理方装置,包括:一数组创建单元、一更新单元、一条件判断单元、一获取单元以及一需求判断单元;所述数组创建单元用于根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化,其中,所述数组按顺序方式存储满足给定条件的周期序号;所述更新单元与所述数组创建单元相连,用于更新所述数组,并使所述数组中非0元素均排列在数组前列;所述条件判断单元与所述更新单元相连,用于判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;所述获取单元与所述条件判断单元相连,用于获取所述数组的非0元素个数C;所述需求判断单元分别与所述获取单元以及所述更新单元相连,用于判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则调用所述更新单元重新对所述数组进行更新。

本发明的优点在于,本发明定义的全局变量数组F占用的内存约为现有技术中条件统计型需求的处理方法的20%~40%,可节省大量内存,在M较大的情况下,节省内存的情形更明显。另外,本发明定义的数组F维数N较小,则处理数组时循环次数减少,从而消耗处理器资源也相应减少。

附图说明

图1,现有条件统计型需求的处理方法的数组维护过程示意图;

图2,本发明所述的星载软件中的条件统计型需求的处理方法流程示意图;

图3,本发明一实施例所创建的数组结构示意图;

图4,本发明一实施例所示数组内元素移位过程示意图;

图5,本发明一实施例所示数组内元素移位之后的数组结构示意图;

图6,本发明一实施例所示数组元素状态更新结果示意图;

图7,本发明所述的星载软件中的条件统计型需求的处理装置示意图。

具体实施方式

以下结合附图和具体实施例对本发明提供的星载软件中的条件统计型需求的处理方法和装置做详细说明。

参考图2,本发明所述的星载软件中的条件统计型需求的处理方法流程示意图。所述方法包括以下步骤:S21:根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化,其中,所述数组按顺序方式存储满足给定条件的周期序号;S22:更新所述数组,并使所述数组中非0元素均排列在数组前列;S23:判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;S24:获取所述数组的非0元素个数C;S25:判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则返回执行步骤S22。以下对本发明所述方法进行详细描述。

S21:根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化。

假定条件统计型需求需要统计的总周期数100中满足给定条件的周期次数为10,则创建10维数组F并初始化;其中,所述数组按顺序方式存储满足给定条件的周期序号。

参考图3,本发明一实施例所创建的数组结构示意图。条件统计型需求需要统计的总周期数为M,M周期内需要满足给定条件的周期次数为N;则定义一个N维数组F,数组F用于按顺序存储满足给定条件的周期序号T(1<=T<=M+1)。初始状态,数组F所有元素T1~TN取值均为0,周期序号T初值为0。根据定义可知,数组F元素取值为周期序号,且按先后顺序排列,则相邻两个元素若均非0,则后一个元素取值总比前一个大。进而可知,若数组F中第一个元素为0,则后续均为0。则一般情况下数组F结构如图3所示,前i(i≥0)个元素为非0,且各非0元素取值从小到大排序,即有T1<T2<…<Ti。数组F以及周期序号T均为全局变量,即当前周期输入的数组F、周期序号T为上一周期输出值。采用数组F对C>N型需求、C<N型需求进行描述,则需求处理转换为对数组F的处理。

S22:更新所述数组,并使所述数组中非0元素均排列在数组前列。

作为可选的技术方案,数组更新可以采用下述流程实现:1)置当前周期序号为前一周期序号加1,之后判断当前周期序号是否大于所述总周期数M,若是,则置当前周期序号为总周期数M加1并执行步骤2),否则直接执行步骤2);2)将所述数组中所有非0元素均减一预设值;3)判断所述数组的第一个元素是否为0,若是,则采用先入先出方式对所述数组内元素进行移位,重复本步骤直至所述数组的第一个元素为非0。可知,移位之后的数组若非全0,则其含t(0<t≤N)个非0值。

以下通过实施例给出数组更新的具体过程。对当前周期序号进行设置:当前周期序号为前一周期序号加1,即T=T+1;当当前周期序号T>总周期数M时,则置当前周期序号T为总周期数M加1后进行元素更新处理,否则不对当前周期序号T的值进行处理而直接进行元素更新处理。对当前周期序号进行设置后进行元素更新处理:进入当前周期后对数组F的处理包括元素值更新和数组内元素移位,保证数组F中非0元素均在前;具体过程如下:a)数组F中所有非0元素均减一预设值,例如减1;b)若数组F第一个元素T1为0,则采用先入先出方式,所有元素均向前一位,将T2覆盖T1、T3覆盖T2,如此类推,并置TN为0。数组内元素移位过程如图4所示。如此类推,直至所述数组的第一个元素为非0。可知,移位之后的数组F若非全0,则其含t(0<t≤N)个非0值,数组内元素移位之后的数组结构如图5所示。

S23:判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;若不满足则不对当前数组进行元素状态更新,并返回执行步骤S22。

元素状态更新为根据当前周期判断结果对更新之后的数组F进行元素取值更新处理。具体方法为:判断当前周期对应条件是否满足所述给定条件,若不满足,则不更新数组F;若满足,则将数组F中首个0元素取值更新为总周期数M,数组元素状态更新结果如图6所示。

S24:获取所述数组的非0元素个数C。

根据上述数组F定义可知,当前周期判断结束,数组中最后一个非0元素对应的维数即为所述数组的非0元素个数C。例如,图6所示数组F中 Tt+1为最后一个非0元素,其对应的维数t+1即为所述数组的非0元素个数C。

S25:判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则返回执行步骤S22。

根据上述数组F定义可知,数组F中所有非0元素的个数C可直接反应需求中条件的满足情况。以下分别给出C>N型需求以及C<N型需求的判断方式。

对于C>N型需求,判断所述非0元素个数C是否与所述数组的维数N相等,若相等,则满足预设的条件统计型需求;若不相等,则返回执行步骤S22更新数组并继续判断。比如,在姿控模块中,需求描述“在连续200个周期内,三轴角速率绝对值大于0.5度/秒的周期数大于20,则工作模式切换为安全模式”。则创建的数组F为21维数组,若当前周期判断结束、数组元素更新处理完毕 ,21维数组F所有元素均为非0,即非0元素个数C为21与数组F的维数21相等,则满足预设的条件统计型需求“在连续200个周期内,三轴角速率绝对值大于0.5度/秒的周期数大于20”,执行“工作模式切换为安全模式”的预设动作。

对于C<N型需求,判断所述非0元素个数C是否满足预设的条件统计型需求具体包括:1)判断当前周期序号是否大于等于所述总周期数M,若是则执行步骤2),否则返回执行步骤S22;2)判断所述数组中非0元素的个数C是否小于所述数组的维数N,若小于,则满足预设的条件统计型需求。比如,在姿控模块中,需求描述“在连续64周期内,姿态无效次数小于5次,则轨控推力器开”。则创建的数组F为5维数组,若当前周期(比如,周期序号为65)判断结束、数组元素更新处理完毕,5维数组F最后一个非0元素的取值为64;其对应的维数Tt中,t=4,即非0元素个数C为4小于数组F的维数5,则满足预设的条件统计型需求“在连续64周期内,姿态无效次数小于5次”,执行“轨控推力器开”的预设动作。

对于C<N型需求,若当前周期对应条件满足所述给定条件,且所述数组中非0元素的个数C等于所述数组的维数N(即所述数组全非0)时, 则采用先入先出方式对所述数组进行移位,并置移位后所述数组中最后一个元素的取值为总周期数M,然后返回执行步骤S22更新数组并继续判断。

根据星载软件需求的特点,由于N/M<0.2,即N远远小于M,本发明定义的全局变量数组F占用的内存约为现有技术中条件统计型需求的处理方法的20%~40%;从而采用本发明提供的星载软件中条件统计型需求的处理方法,可节省大量内存,在M较大的情况下,节省内存的情形更明显。另外,本发明定义的数组F维数N较小,则处理数组时循环次数减少,从而消耗处理器资源也相应减少。

参考图7,本发明所述的星载软件中的条件统计型需求的处理装置,包括:一数组创建单元71、一更新单元72、一条件判断单元73、一获取单元74以及一需求判断单元75。

所述数组创建单元71用于根据需要统计的总周期数M中满足给定条件的周期次数N创建N维数组并初始化。

假定条件统计型需求需要统计100周期中满足给定条件的周期次数为10,则创建10维数组F并初始化;其中,所述数组F按顺序方式存储满足给定条件的周期序号。所创建的数组结构可参考图3所示,创建方法参照前述方法项描述此处不再赘述。采用数组F对C>N型需求、C<N型需求进行描述,则需求处理转换为对数组F的处理。

所述更新单元72与所述数组创建单元71相连,用于更新所述数组,并使所述数组中非0元素均排列在数组前列。

作为可选的技术方案,所述更新单元72进一步包括一周期序号设置模块721、一减值计算模块722以及一元素移位模块723。所述周期序号设置模块721,用于置当前周期序号为前一周期序号加1,之后判断当前周期序号是否大于所述总周期数M,若是,则置当前周期序号为总周期数M加1并调用所述减值计算模块722,否则直接调用所述减值计算模块722。所述减值计算模块722与所述周期序号设置模块721相连,用于将所述数组中所有非0元素均减一预设值,例如减1。所述元素移位模块723与所述减值计算模块722相连,用于判断所述数组的第一个元素是否为0,若是,则采用先入先出方式对所述数组内元素进行移位,重复调用所述元素移位模块723直至所述数组的第一个元素为非0;数组内元素移位过程如图4所示。如此类推,直至所述数组的第一个元素为非0。可知,移位之后的数组若非全0,则其含t(0<t≤N)个非0值;数组内元素移位之后的数组结构如图5所示。

所述条件判断单元73与所述更新单元72相连,用于判断当前周期对应条件是否满足所述给定条件,若满足,则将所述数组中首个0元素取值更新为所述总周期数M;若不满足则不对当前数组进行元素状态更新,并调用所述更新单元72。元素状态更新为根据当前周期判断结果对更新之后的数组F进行元素取值更新处理。具体方法参照前述方法项描述此处不再赘述,数组元素状态更新结果如图6所示。

所述获取单元74与所述条件判断单元73相连,用于获取所述数组的非0元素个数C。根据上述数组F定义可知,当前周期判断结束,数组中最后一个非0元素对应的维数即为所述数组的非0元素个数C。

所述需求判断单元75分别与所述获取单元74以及所述更新单元72相连,用于判断所述非0元素个数C是否满足预设的条件统计型需求,若满足,则执行预设动作,若不满足,则调用所述更新单元72重新对所述数组进行更新。根据上述数组F定义可知,数组F中所有非0元素的个数C可直接反应需求中条件的满足情况。以下分别给出C>N型需求以及C<N型需求的判断方式。

对于C>N型需求,所述需求判断单元75进一步用于判断所述非0元素个数C是否与所述数组的维数N相等,若相等,则满足预设的条件统计型需求;若不相等,则调用所述更新单元72更新数组并继续判断。具体判断实例参照前述方法项描述此处不再赘述。

对于C<N型需求,所述需求判断单元75进一步一第一判断模块751、一第二判断模块752。所述第一判断模块751分别与所述第二判断模块752以及所述更新单元72相连,用于判断当前周期序号是否大于等于所述总周期数M,若是则调用所述第二判断模块752,否则调用所述更新单元72更新数组并继续判断。所述第二判断模块752用于判断所述数组中非0元素的个数C是否小于所述数组的维数N,若小于,则满足预设的条件统计型需求。具体判断实例参照前述方法项描述此处不再赘述。

对于C<N型需求,若当前周期对应条件满足所述给定条件,且所述数组中非0元素的个数C等于所述数组的维数N(即所述数组全非0)时,则所述需求判断单元75进一步用于采用先入先出方式对所述数组进行移位,并置移位后所述数组中最后一个元素的取值为总周期数M。作为优选的实施方式,所述需求判断单元75进一步包括一数组移位模块753,所述数组移位模块753分别与所述第二判断模块752以及所述更新单元72相连,用于在当前周期对应条件满足所述给定条件,且所述第二判断模块752判定所述数组中非0元素的个数C等于所述数组的维数N时,采用先入先出方式对所述数组进行移位,并置移位后所述数组中最后一个元素的取值为所述总周期数M,之后调用所述更新单元72。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号