System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于星载软件设计领域,涉及一种参数可配置的星载自主程控构件。
技术介绍
1、随着空间探索不断深入,航天器所需执行的空间任务也日趋复杂。空间环境复杂多变,航天器在面对空间任务中的不确定因素时,通常采用“地面测定轨->遥测下传->情况判读->决策规划->上注指令->在轨执行”的方式。这种“星地大回路”的控制方式存在窗口和弧段限制、星地链路延时长、运维指控人为因素多等诸多问题。航天器采用这种方式执行空间任务实时性差,不稳定因素多,面对执行时间要求严格的复杂程控任务时,更是难以实现。为了突破弧段外轨控限制,减轻地面人工任务量,保证航天器根据星上状态,准确、及时自主执行相应动作,需要提升航天器在某些任务场景的感知能力和自主决策能力,使得航天器能够在一定约束的框架下,在适当时候,依据星上的状态,自主触发某些动作或指令,即自主程控。
2、自主程控由数管计算机完成,一般星载数管软件的架构层次如图1所示。图中最底层为支撑数管计算机的硬件层,包括cpu、memory、总线以及io等设备;硬件层之上为星载操作系统,负责内存管理、任务调度等基础性工作。操作系统之上为星载软件专用中间件,中间件是高度抽象的星载软件通用构件实体,中间件面向任务,并向其提供各类服务;中间件之上为星载软件的各类应用,即任务,一般的数管软件包含:下行遥测、内务管理、总线数据、遥控数据、指令处理以及自主程控等任务,其中各个任务之间通过消息队列进行数据传输。任务通过接口调用中间件的各项服务,通过系统调用访问操作系统,通过驱动程序访问
3、在上述软件的架构下,传统的星载数管软件一般采用指令组的方式实现自主程控任务,即将一组程控动作配置为若干指令组合而成的指令数组,并设计好每条指令的执行间隔,然后将其固化在软件中,软件初始化时将指令数组中的指令内容和时间间隔排布在一条缓存buff中,当执行该程控时,指令组运行程序在每个时间片判断指令到时情况,进行指令发出或等待操作。指令组实现自主程控示意图详见图2。
4、指令组实现自主程控的方式较为简单,但局限性也很明显,主要体现在以下几个方面:
5、(1)指令组不具备星上自主感知与决策能力,只能按照固化的指令内容和时间间隔僵化的运行。自主程控过程中,一般需要实时对星上当前状态进行判读,自主选择执行哪些指令动作或者更改指令发送间隔等逻辑,但指令组一旦固化,星上无法实时更改,无法实现实时感知与决策的功能。
6、(2)指令组不具备处理复杂程控逻辑的能力。某些复杂程控需要一定的运行逻辑,如某组动作重复执行若干遍、跳过固化好的若干指令动作等操作,指令组固化后,只能按照设定好的顺序,逐步运行,直至所有指令动作均完成,无法实现指令回溯、跳跃等复杂逻辑。
7、(3)指令组一旦开始,无法独立取消运行。指令组本质是一组指令,其一旦开始,那么所有指令就添加在指令队列中,直至运行结束,无法独立删除某个指令组,如果此时星上运行异常需立即停止正在运行的程控,无法在不影响其他指令组的情况下删除此正在运行的指令组,故不能胜任异常处理工作。
8、(4)指令组无法反应程控真实运行状态。指令组本质是一组指令的集合,用其实现自主程控,一旦指令组开启运行,那么就和自主程控没有关系了,软件会将指令组的指令按条抽出并运行,没有运行过程中的状态反馈、错误处理机制,同时软件也难以自知当前程控是否已经结束。
9、综上所述,传统指令组实现自主程控的模式,其功能单一、僵化,自主能力和异常处置能力较弱,难以实现目前复杂程控的需求,需要在继承指令组简便的同时,开发一种灵活、自主、高效的程控构件,用以满足当前程控的复杂需求。
技术实现思路
1、本专利技术解决的技术问题是:克服现有技术的不足,提出一种高效、灵活且安全的参数可配置的星载自主程控构件,能够满足星上各类复杂自主程控需求,从根本上解决了星上自主程控复杂度高、需求多样且结构化代码实现难度大等问题。
2、本专利技术解决技术的方案是:
3、一种参数可配置的星载自主程控构件,包括程控配置体和程控运行体;
4、所述程控配置体包括若干可配置的表格,每个表格对应一个自主程控,表格中的每一行代表自主程控中的一个动作组合,所述动作组合的属性包含动作索引、自主属性接口、动作指令以及与下一动作的时间间隔,其中自主属性接口包括进入接口、运行接口和退出接口;用户通过对表格进行配置,完成对相应自主程控的功能性设计;
5、所述程控运行体根据程控配置体的配置表格驱动相应的自主程控运转,准确、及时的完成程控配置体为自主程控设置的各项具体动作。
6、优选的,用户通过配置进入接口、运行接口、退出接口三类接口函数,实现自主程控每一个动作指令执行前、执行中、执行后的逻辑处理,接口函数的返回值驱动下一步的具体操作。
7、优选的,进入接口函数是指程控运行体在执行自主程控的某一步指令动作前,需要进行的逻辑处理;
8、运行接口函数是指程控运行体在执行完自主程控的某一步指令动作后,需要进行的逻辑处理;
9、退出接口函数是指程控运行体在当前自主程控指令动作完结后,需要进行的逻辑处理。
10、优选的,程控运行体包括5个处理子模块,分别是进入处理子模块、动作执行子模块、运行处理子模块、退出处理子模块、无动作等待子模块,其具体功能如下:
11、进入处理子模块:调用程序配置体的进入接口函数,用于动作指令执行前的自主处理;
12、动作执行子模块:根据装填的指令,进行动作指令发送或执行相应动作;
13、运行处理子模块:调用程控配置体的运行接口函数,用于动作指令执行后的自主处理;
14、退出处理子模块:调用程序配置体的退出接口函数,用于动作指令执行完毕后的退出处理。
15、无动作等待子模块:根据程序配置体设置的等待周期,对相应的状态进行等待。
16、优选的,运行处理子模块能够对动作指令执行状态进行监测。
17、优选的,所述退出处理子模块能够对当前程控状态以及下一步动作指令进行自主设置。
18、优选的,运行过程中,通过操作程控运行体的使能属性对所有或某组自主程控进行启动/禁止设置。
19、优选的,所述程控运行体设置程控状态保存接口和程控状态恢复接口,所述程控状态保存接口用于存储程控运行体状态属性,所述程控状态恢复接口用于恢复程控运行体状态属性;
20、在程控运行过程中,自主程控通过程控状态保存接口不断刷新并存储程控运行体数据,一旦自主程控异常中断,在异常修复后,程控通过程控状态恢复接口读取固化的程控运行体数据,并将其恢复到程控状态属性中,程控将继续从断点处完成相应指令。
21、优选的,所述程控运行体设置程控状态获取接口,用于获取自主程控的运行进度,以本文档来自技高网...
【技术保护点】
1.一种参数可配置的星载自主程控构件,其特征在于:包括程控配置体和程控运行体;
2.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:用户通过配置进入接口、运行接口、退出接口三类接口函数,实现自主程控每一个动作指令执行前、执行中、执行后的逻辑处理,接口函数的返回值驱动下一步的具体操作。
3.根据权利要求2所述的一种参数可配置的星载自主程控构件,其特征在于:进入接口函数是指程控运行体在执行自主程控的某一步指令动作前,需要进行的逻辑处理;
4.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:程控运行体包括5个处理子模块,分别是进入处理子模块、动作执行子模块、运行处理子模块、退出处理子模块、无动作等待子模块,其具体功能如下:
5.根据权利要求4所述的一种参数可配置的星载自主程控构件,其特征在于:运行处理子模块能够对动作指令执行状态进行监测。
6.根据权利要求4所述的一种参数可配置的星载自主程控构件,其特征在于:所述退出处理子模块能够对当前程控状态以及下一步动作指令进行自主设置。
7
8.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:所述程控运行体设置程控状态保存接口和程控状态恢复接口,所述程控状态保存接口用于存储程控运行体状态属性,所述程控状态恢复接口用于恢复程控运行体状态属性;
9.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:所述程控运行体设置程控状态获取接口,用于获取自主程控的运行进度,以了解当前程控运行在哪一条动作指令上。
...【技术特征摘要】
1.一种参数可配置的星载自主程控构件,其特征在于:包括程控配置体和程控运行体;
2.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:用户通过配置进入接口、运行接口、退出接口三类接口函数,实现自主程控每一个动作指令执行前、执行中、执行后的逻辑处理,接口函数的返回值驱动下一步的具体操作。
3.根据权利要求2所述的一种参数可配置的星载自主程控构件,其特征在于:进入接口函数是指程控运行体在执行自主程控的某一步指令动作前,需要进行的逻辑处理;
4.根据权利要求1所述的一种参数可配置的星载自主程控构件,其特征在于:程控运行体包括5个处理子模块,分别是进入处理子模块、动作执行子模块、运行处理子模块、退出处理子模块、无动作等待子模块,其具体功能如下:
5.根据权利要求4所述的一种参数可配置的星载自主程控构件,其特征在于:运...
【专利技术属性】
技术研发人员:王帅,张伍,黄昊,程慧霞,周成英,董振辉,张溢,张涛,
申请(专利权)人:北京空间飞行器总体设计部,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。