一种遥测数据处理方法、设备及存储介质转让专利

申请号 : CN202410064735.4

文献号 : CN117575887B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尹朝亮布向伟彭昊旻姚颂赵也倪贺浩

申请人 : 东方空间(江苏)航天动力有限公司东方空间技术(山东)有限公司东方空间技术(北京)有限公司东方空间(海南)科技有限公司

摘要 :

本发明公开了一种遥测数据处理方法、设备及存储介质,属于遥测数据处理技术领域,本专利在遥测数据解析方面做了多个方面的优化。首先由使用CPU计算改为使用GPU计算,借助GPU强大的并行计算能力,提高遥测数据解析的速度;其次,把传感器公式写入配置文件,用算法计算出以字符串表示的公式结果;再次根据数据的特性优化GPU算法和GPU的线程设计。本发明能够适用于多传感器条件下的遥测数据解析,提高遥测数据整体的解析速度,实现遥测数据实时处理。

权利要求 :

1.一种遥测数据处理方法,其特征在于,包括:

使用CSV格式的文件配置波道表和传感器公式,读取CSV文件,结合传感器在波道表中位置和传感器公式生成一个新的配置文件;

按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入CPU内存的vector容器中;

在GPU中申请内存空间,把CPU负责的写入传感器信息的vector容器内的数据拷贝到GPU内存中;

在GPU中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式;

将收到的遥测数据在GPU中进行数据解析,获取计算结果;

把计算结果从GPU内存拷贝到CPU内存,并把具体的值赋值给传感器变量;

其中,在GPU中申请内存空间包括:第一内存空间、第二内存空间和第三内存空间;

所述在GPU中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式,包括:把在GPU中申请的第一内存空间及其数据传入转换字符串公式表达方式算法中;

网格和块的维度设置采用一维构建,块的尺度采用32,网格的尺度采用:(传感器数量+

31)/32 得到的整数;

调用转换字符串公式表达方式算法把所有的公式进行转换。

2.如权利要求1所述的遥测数据处理方法,其特征在于,所述使用CSV格式的文件配置波道表和传感器公式中,写入配置文件的传感器需要按其在波道表中的位置从左到右,从上到下的顺序排序。

3.如权利要求2所述的遥测数据处理方法,其特征在于:第一内存空间的大小和CPU负责的vector容器大小相同,用于把CPU负责的写入传感器信息的vector容器内的数据拷贝到显存中;

第二内存空间的大小与一帧遥测数据大小相同,用于存储一帧遥测数据;

第三内存空间的大小为传感器数量的数组,用于存放传感器数据解析的结果,内存的类型为浮点型。

4.如权利要求3所述的遥测数据处理方法,其特征在于,所述调用转换字符串公式表达方式算法把所有的公式进行转换,包括:初始化一个string类型的stack,用于保存暂时还不能确定运算顺序的运算符;

根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取传入vector容器中与下标对应的传感器公式;

从左到右遍历传感器公式中的各个字符;

遇到操作数直接加入表达式;

遇到左括号直接写入stack;遇到右括号则依次弹出stack内运算符并加入表达式;

遇到运算符,依次弹出stack中优先级高于或等于当前运算符的所有运算符,并加入表达式,若碰到左括号或stack为空则停止;之后再把当前运算符写入stack;

遍历完成后,把stack内的数据依次取出,写入新的表达式;

用新的传感器公式覆盖vector容器内与下标对应的传感器公式。

5.如权利要求4所述的遥测数据处理方法,其特征在于,所述将收到的遥测数据在GPU中进行数据解析,获取计算结果,包括:初始化一个float类型的vector,用于保存新表达式中的操作数;

根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取GPU中第二内存空间中下标对应的新传感器公式;

遍历保存新传感器公式;

遇到操作数,直接写入float类型的vector容器中;

遇到运算符,根据运算符的含义和该运算符需要几个操作数完成,来弹出最后写入vector的几个操数,并调用该运算符相应的函数计算操作数的值,并把计算的结果写入float类型的vector容器中;

直到新表达式的vector遍历完成,最终只有一个值在float类型的vector容器中,该值为传感器公式的计算结果;

以线程编号为下标索引,把计算结果写入对应的数组。

6.如权利要求5所述的遥测数据处理方法,其特征在于,在所述按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入CPU内存的vector容器中时,把公式中的参与计算的值和运算分别用一个大写的字母代替,使这些运算符按加减乘除符号同等处理,等数据计算时再用具体的公式替换参与计算。

7.一种计算设备,其特征在于,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如权利要求1至6任一项所述的遥测数据处理方法。

8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至6任一项所述的遥测数据处理方法。

说明书 :

一种遥测数据处理方法、设备及存储介质

技术领域

[0001] 本发明涉及遥测数据处理技术领域,特别涉及一种遥测数据处理方法、设备及存储介质。

背景技术

[0002] 在运载火箭发射的过程中,遥测系统会把箭上的各种参数,以固定的频率把数据传到数据解析软件,数据解析软件需要实时把收到的数据按约定好的协议进行解析,并发送给实时显示软件,供现场指挥人员做出决策。根据目前发展趋势可以看出,对火箭各环节参数的测量将会越来越细致,来更全面了解火箭飞行情况,这无疑会给故障定位、故障分析、改进措施带来很大帮助,通过各种遥测测量手段  ,加强对火箭的全面了解  ,才能使火箭的总体设计全面提高。
[0003] 在遥测数据中传感器数据比重较高,又因传感器数据传输的频率较高,导致解析传感器数据的计算量在整个遥测数据解析计算量中能占70%到80%之间。因此优化传感器解析速度,能提高遥测数据整体的解析速度。
[0004] 随着运载火箭上的传感器越来越多,即使把公式入到代码中,使用一般计算机进行计算时,计算机CPU实时解析越来越吃力,而且把公式写入到代码中会导致每次火箭发射都需要修改遥测数据实时解析软件,使软件的灵活性和可维护性变差。
[0005] 有鉴于此,实有必要提供一种新的技术方案以解决上述问题。

发明内容

[0006] 为解决上述技术问题,本申请提供一种遥测数据处理方法,能够适用于多传感器条件下的遥测数据解析,提高遥测数据整体的解析速度,实现遥测数据实时处理。
[0007] 一种遥测数据处理方法,包括:
[0008] 使用CSV格式的文件配置波道表和传感器公式,读取CSV文件,结合传感器在波道表中位置和传感器公式生成一个新的配置文件;
[0009] 按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入CPU内存的vector容器中;
[0010] 在GPU中申请内存空间,把CPU负责的写入传感器信息的vector容器内的数据拷贝到GPU内存中;
[0011] 在GPU中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式;
[0012] 将收到的遥测数据在GPU中进行数据解析,获取计算结果;
[0013] 把计算结果从GPU内存拷贝到CPU内存,并把具体的值赋值给传感器变量。
[0014] 优选的,所述使用CSV格式的文件配置波道表和传感器公式中,写入配置文件的传感器需要按其再波道表中的位置从左到右,从上到下的顺序排序。
[0015] 优选的,所述在GPU中申请内存空间,把CPU负责的写入传感器信息的vector容器内的数据拷贝到GPU内存中,在GPU中申请内存空间包括:第一内存空间、第二内存空间和第三内存空间;
[0016] 其中,第一内存空间的大小和CPU负责的vector容器大小相同,用于把CPU负责的写入传感器信息的vector容器内的数据拷贝到显存中;
[0017] 第二内存空间的大小与一帧遥测数据大小相同,用于存储一帧遥测数据;
[0018] 第三内存空间的大小为传感器数量的数组,用于存放传感器数据解析的结果,内存的类型为浮点型。
[0019] 优选的,所述在GPU中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式,包括:
[0020] 把在GPU中申请的第一内存空间及其数据传入转换字符串公式表达方式算法中;
[0021] 网格和块的维度设置采用一维构建,块的尺度采用32,网格的尺度采用:(传感器数量+31)/32 得到的整数;
[0022] 调用转换字符串公式表达方式算法把所有的公式进行转换。
[0023] 优选的,所述调用转换字符串公式表达方式算法把所有的公式进行转换,包括:
[0024] 初始化一个string类型的stack,用于保存暂时还不能确定运算顺序的运算符;
[0025] 根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取传入vector容器中与下标对应的传感器公式;
[0026] 从左到右遍历传感器公式中的各个字符;
[0027] 遇到操作数直接加入表达式;
[0028] 遇到左括号直接写入stack;遇到右括号则依次弹出stack内运算符并加入表达式;
[0029] 遇到运算符,依次弹出stack中优先级高于或等于当前运算符的所有运算符,并加入表达式,若碰到左括号或stack为空则停止;之后再把当前运算符写入stack;
[0030] 遍历完成后,把stack内的数据依次取出,写入新的表达式;
[0031] 用新的传感器公式覆盖vector容器内与下标对应的传感器公式。
[0032] 优选的,所述将收到的遥测数据在GPU中进行数据解析,获取计算结果,包括:
[0033] 初始化一个float类型的vector,用于保存新表达式中的操作数;
[0034] 根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取GPU中第二内存空间中下标对应的新传感器公式;
[0035] 遍历保存新传感器公式;
[0036] 遇到操作数,直接写入float类型的vector容器中;
[0037] 遇到运算符,根据运算符的含义和该运算符需要几个操作数完成,来弹出最后写入vector的几个操数,并调用该运算符相应的函数计算操作数的值,并把计算的结果写入float类型的vector容器中;
[0038] 直到新表达式的vector遍历完成,最终只有一个值在float类型的vector容器中,该值为传感器公式的计算结果;
[0039] 以线程编号为下标索引,把计算结果写入对应的数组。
[0040] 优选的,在所述按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入CPU内存的vector容器中时,把公式中的参与计算的值和运算分别用一个大写的字母代替,使这些运算符按加减乘除符号同等处理,等数据计算时再用具体的公式替换参与计算。
[0041] 根据本申请的另一方面,还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行所述的遥测数据处理方法。
[0042] 根据本申请的另一方面,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行所述的遥测数据处理方法。
[0043] 与现有技术相比,本申请至少具有以下有益效果:
[0044] 1、本发明在于提出适用于运载火箭发射场景下,能够适用于多传感器条件下的遥测数据解析,提高遥测数据整体的解析速度,实现遥测数据实时处理。
[0045] 2、本发明传感器公式写入配置文件,在每次火箭发射时,只需要修改配置文件,不需要再修改软件代码,提高软件可维护性和灵活性。
[0046] 3、本发明每个传感器的解析都是相对独立的,不依赖其他传感器数据,这样的特性完全满足并行计算的条件,可以充分利用GPU的多线程,为几千甚至几万个传感器,每个传感器申请一个线程,所有的传感器一起并行解析,所用的时间于解析一个线程解析一个传感器的时间相同。
[0047] 4、利用本发明的方法使用一般的电脑在传感器写入配置文件下,也能够快速计算大量的传感器数据,能保证数据的实时性。

附图说明

[0048] 后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0049] 图1为本发明的整体流程示意图。

具体实施方式

[0050] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051] 如图1所示,一种遥测数据处理方法,包括以下步骤:
[0052] 步骤S1、使用CSV格式的文件配置波道表和传感器公式,读取CSV文件,结合传感器在波道表中位置和传感器公式生成一个新的配置文件。
[0053] 其中,新的配置文件中记录了传感器在波道表中的位置和传感器的公式。
[0054] 在使用CSV格式的文件配置波道表和传感器公式中,写入配置文件的传感器需要按其再波道表中的位置从左到右,从上到下的顺序排序。
[0055] 为了提高运算速度,提高遥测数据处理的实时性,把公式中的参与计算的值和运算分别用一个大写的字母代替,使这些运算符按加减乘除符号同等处理,等数据计算时再用具体的公式替换参与计算。
[0056] 步骤S2、按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入CPU内存的vector容器中。
[0057] 步骤S3、在GPU中申请内存空间,把CPU负责的写入传感器信息的vector容器内的数据拷贝到GPU内存中。
[0058] 具体的,在GPU中申请内存空间包括:第一内存空间、第二内存空间和第三内存空间;
[0059] 其中,第一内存空间的大小和CPU负责的vector容器大小相同,用于把CPU负责的写入传感器信息的vector容器内的数据拷贝到显存中;
[0060] 第二内存空间的大小与一帧遥测数据大小相同,用于存储一帧遥测数据;
[0061] 第三内存空间的大小为传感器数量的数组,用于存放传感器数据解析的结果,内存的类型为浮点型(float)。
[0062] 步骤S4、在GPU中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式。
[0063] 具体的,包括以下步骤:
[0064] 步骤S41、把在GPU中申请的第一内存空间及其数据传入转换字符串公式表达方式算法中。
[0065] 步骤S42、网格和块的维度设置采用一维构建,块的尺度采用32,网格的尺度采用:(传感器数量+31)/32 得到的整数。
[0066] 考虑到GPU的“线程组分歧( wrap divergence)”、“延迟隐藏(latency hiding)”、“寄存器打翻(register spill)”和“区块冲突( bank conflict)”问题和传感器个数以及这些数据维度,把网格和块的维度设置为一维构建,块的尺度采用32,网格的尺度采用:(传感器数量+31)/32 得到的整数。这样都能够保证所有的传感器都并行计算,能够提升计算速度。
[0067] 步骤S43、调用转换字符串公式表达方式算法把所有的公式进行转换。
[0068] 具体的,包括以下步骤:
[0069] 初始化一个string类型的stack,用于保存暂时还不能确定运算顺序的运算符;
[0070] 根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取传入vector容器中与下标对应的传感器公式;
[0071] 从左到右遍历传感器公式中的各个字符;
[0072] 遇到操作数直接加入表达式;
[0073] 遇到左括号直接写入stack;遇到右括号则依次弹出stack内运算符并加入表达式;
[0074] 遇到运算符,依次弹出stack中优先级高于或等于当前运算符的所有运算符,并加入表达式,若碰到左括号或stack为空则停止;之后再把当前运算符写入stack;
[0075] 遍历完成后,把stack内的数据依次取出,写入新的表达式;
[0076] 用新的传感器公式覆盖vector容器内与下标对应的传感器公式。
[0077] 步骤S5、将收到的遥测数据在GPU中进行数据解析,获取计算结果。
[0078] 具体的,包括以下步骤:
[0079] 初始化一个float类型的vector,用于保存新表达式中的操作数;
[0080] 根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取GPU中第二内存空间中下标对应的新传感器公式;
[0081] 遍历保存新传感器公式;
[0082] 遇到操作数,直接写入float类型的vector容器中;
[0083] 遇到运算符,根据运算符的含义和该运算符需要几个操作数完成,来弹出最后写入vector的几个操数,并调用该运算符相应的函数计算操作数的值,并把计算的结果写入float类型的vector容器中;
[0084] 直到新表达式的vector遍历完成,最终只有一个值在float类型的vector容器中,该值为传感器公式的计算结果;
[0085] 以线程编号为下标索引,把计算结果写入对应的数组。
[0086] 步骤S6、把计算结果从GPU内存拷贝到CPU内存,并把具体的值赋值给传感器变量。
[0087] 按照以上方法进行实验,1000多个传感器能够在5毫秒内完成遥测数据的解析,与现有方法相比具有显著提升,能够保证遥测数据传输的实时性。
[0088] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。