本发明涉及遥测数据处理,特别涉及一种遥测数据处理方法、设备及存储介质。
背景技术:
1、在运载火箭发射的过程中,遥测系统会把箭上的各种参数,以固定的频率把数据传到数据解析软件,数据解析软件需要实时把收到的数据按约定好的协议进行解析,并发送给实时显示软件,供现场指挥人员做出决策。根据目前发展趋势可以看出,对火箭各环节参数的测量将会越来越细致,来更全面了解火箭飞行情况,这无疑会给故障定位、故障分析、改进措施带来很大帮助,通过各种遥测测量手段 ,加强对火箭的全面了解 ,才能使火箭的总体设计全面提高。
2、在遥测数据中传感器数据比重较高,又因传感器数据传输的频率较高,导致解析传感器数据的计算量在整个遥测数据解析计算量中能占70%到80%之间。因此优化传感器解析速度,能提高遥测数据整体的解析速度。
3、随着运载火箭上的传感器越来越多,即使把公式入到代码中,使用一般计算机进行计算时,计算机cpu实时解析越来越吃力,而且把公式写入到代码中会导致每次火箭发射都需要修改遥测数据实时解析软件,使软件的灵活性和可维护性变差。
4、有鉴于此,实有必要提供一种新的技术方案以解决上述问题。
技术实现思路
1、为解决上述技术问题,本技术提供一种遥测数据处理方法,能够适用于多传感器条件下的遥测数据解析,提高遥测数据整体的解析速度,实现遥测数据实时处理。
2、一种遥测数据处理方法,包括:
3、使用csv格式的文件配置波道表和传感器公式,读取csv文件,结合传感器在波道表中位置和传感器公式生成一个新的配置文件;
4、按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入cpu内存的vector容器中;
5、在gpu中申请内存空间,把cpu负责的写入传感器信息的vector容器内的数据拷贝到gpu内存中;
6、在gpu中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式;
7、将收到的遥测数据在gpu中进行数据解析,获取计算结果;
8、把计算结果从gpu内存拷贝到cpu内存,并把具体的值赋值给传感器变量。
9、优选的,所述使用csv格式的文件配置波道表和传感器公式中,写入配置文件的传感器需要按其再波道表中的位置从左到右,从上到下的顺序排序。
10、优选的,所述在gpu中申请内存空间,把cpu负责的写入传感器信息的vector容器内的数据拷贝到gpu内存中,在gpu中申请内存空间包括:第一内存空间、第二内存空间和第三内存空间;
11、其中,第一内存空间的大小和cpu负责的vector容器大小相同,用于把cpu负责的写入传感器信息的vector容器内的数据拷贝到显存中;
12、第二内存空间的大小与一帧遥测数据大小相同,用于存储一帧遥测数据;
13、第三内存空间的大小为传感器数量的数组,用于存放传感器数据解析的结果,内存的类型为浮点型。
14、优选的,所述在gpu中转换字符串公式表达方式算法,将vector容器内的传感器公式转换为新的传感器公式,包括:
15、把在gpu中申请的第一内存空间及其数据传入转换字符串公式表达方式算法中;
16、网格和块的维度设置采用一维构建,块的尺度采用32,网格的尺度采用:(传感器数量+31)/32 得到的整数;
17、调用转换字符串公式表达方式算法把所有的公式进行转换。
18、优选的,所述调用转换字符串公式表达方式算法把所有的公式进行转换,包括:
19、初始化一个string类型的stack,用于保存暂时还不能确定运算顺序的运算符;
20、根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取传入vector容器中与下标对应的传感器公式;
21、从左到右遍历传感器公式中的各个字符;
22、遇到操作数直接加入表达式;
23、遇到左括号直接写入stack;遇到右括号则依次弹出stack内运算符并加入表达式;
24、遇到运算符,依次弹出stack中优先级高于或等于当前运算符的所有运算符,并加入表达式,若碰到左括号或stack为空则停止;之后再把当前运算符写入stack;
25、遍历完成后,把stack内的数据依次取出,写入新的表达式;
26、用新的传感器公式覆盖vector容器内与下标对应的传感器公式。
27、优选的,所述将收到的遥测数据在gpu中进行数据解析,获取计算结果,包括:
28、初始化一个float类型的vector,用于保存新表达式中的操作数;
29、根据线程在板块中的编号、板块中的线程数量和板块的编号计算出线程编号,以线程编号为下标索引,获取gpu中第二内存空间中下标对应的新传感器公式;
30、遍历保存新传感器公式;
31、遇到操作数,直接写入float类型的vector容器中;
32、遇到运算符,根据运算符的含义和该运算符需要几个操作数完成,来弹出最后写入vector的几个操数,并调用该运算符相应的函数计算操作数的值,并把计算的结果写入float类型的vector容器中;
33、直到新表达式的vector遍历完成,最终只有一个值在float类型的vector容器中,该值为传感器公式的计算结果;
34、以线程编号为下标索引,把计算结果写入对应的数组。
35、优选的,在所述按传感器名称、位置和解析公式构建结构体,读取配置文件并把传感器信息写入结构体存入cpu内存的vector容器中时,把公式中的参与计算的值和运算分别用一个大写的字母代替,使这些运算符按加减乘除符号同等处理,等数据计算时再用具体的公式替换参与计算。
36、根据本技术的另一方面,还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行所述的遥测数据处理方法。
37、根据本技术的另一方面,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行所述的遥测数据处理方法。
38、与现有技术相比,本技术至少具有以下有益效果:
39、1、本发明在于提出适用于运载火箭发射场景下,能够适用于多传感器条件下的遥测数据解析,提高遥测数据整体的解析速度,实现遥测数据实时处理。
40、2、本发明传感器公式写入配置文件,在每次火箭发射时,只需要修改配置文件,不需要再修改软件代码,提高软件可维护性和灵活性。
41、3、本发明每个传感器的解析都是相对独立的,不依赖其他传感器数据,这样的特性完全满足并行计算的条件,可以充分利用gpu的多线程,为几千甚至几万个传感器,每个传感器申请一个线程,所有的传感器一起并行解析,所用的时间于解析一个线程解析一个传感器的时间相同。
42、4、利用本发明的方法使用一般的电脑在传感器写入配置文件下,也能够快速计算大量的传感器数据,能保证数据的实时性。