[发明专利]一种基于逆波兰式算法的判据自动解析方法在审
申请号: | 201611050603.8 | 申请日: | 2016-11-23 |
公开(公告)号: | CN106648753A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 王兵;王福到;齐竹云;韩峰 | 申请(专利权)人: | 北京航天自动控制研究所;中国运载火箭技术研究院 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 中国航天科技专利中心11009 | 代理人: | 徐辉 |
地址: | 100854 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 波兰 算法 判据 自动 解析 方法 | ||
技术领域
本发明涉及一种基于“逆波兰式”算法的判据自动解析方法,属于自动判读技术领域。
背景技术
现阶段,在使用自动判读技术的系统中,判据的管理多采用两种方式:
第一种方式 直接固化在软件或硬件中
采用这种方式快速,简单,但也有其致命的缺点,即缺乏灵活性,维护成本高,如果需要更改其中某项判据,必须对软件重新进行编译,或者对芯片重新进行烧写,无法满足通用化的要求。
第二种方式 采用配置文件的方式
为达到通用化的目的,可以将判据保存在单独的配置文件中,在需要时进行读取。这种方式提高了灵活性,降低了维护的代价,但由于判据的复杂性,这种方式只能存储不需要其他观测量即可进行判读的数据,如+M1母线电压判据为28±3V,地球重力加速度G判据为9.8±0.5m/s2。部分数据无法直接进行判读,需要依据某些先行观测量的值进行计算,才能得出相应的判据范围,如+M1母线漏电的判据即需要根据+M1的实际测量值确定,惯组陀螺的某些判据需要根据惯组诸元某些参数确定等,这种数据使用配置文件的方式保存较为困难。
在航天领域中,自动判读技术被广泛使用。自动判读技术与使用者的接口只有判据,因此判据的表达是否简单易用直接影响着自动判读的效率,如何对判据进行解析也是自动判读技术的关键。
如何有效的配置并自动解析含有参数的判据文件是本领域亟待解决的技术问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于“逆波兰式”算法的判据自动解析方法,降低自动判读技术中判据管理的复杂度,实现具有依赖值的测量数据的自动判读。
本发明目的通过如下技术方案予以实现:
提供一种基于“逆波兰式”算法的判据自动解析方法,采用“逆波兰式”算法进行判据的自动解析和计算,包括如下步骤:
(1)配置判据文件,将所需判读的参数标准值V、上偏差VH、下偏差VL写入配置文件,标准值V依赖于d,上偏差VH依赖于观测量d1,下偏差VL依赖于观测量d2;
(2)自动判读模块读取配置判据文件,读取标准值V、上偏差VH、下偏差VL的中序表达式;
(3)采用“逆波兰式”算法将标准值V、上偏差VH、下偏差VL中的中序表达式转换为后序表达式;
(4)根据观测量d、d1、d2的测量结果,计算标准值V、上偏差VH、下偏差VL数值;
(5)判断所需判读的参数是否合格。
优选的,步骤(1)中将所需判读的参数标准值V、上偏差VH、下偏差VL写入配置文件的具体方法为:
采用常用文本编辑器根据具体判据范围,将参数标准值V、上偏差VH、下偏差VL按照中序表达式的方式写入到判据配置文件中,判据文件采用UTF-8编码的文本文件保存。
优选的,步骤(2)中自动判读模块读取配置判据文件,读取标准值V、上偏差VH、下偏差VL的中序表达式的具体方法为:
以字符串流的方式顺序读入判据文件,以空格字符分割标准值V,上偏差VH和下偏差VL,以回车换行符区分不同的参数名称。
优选的,步骤(3)中采用“逆波兰式”算法将标准值V、上偏差VH、下偏差VL中的中序表达式转换为后序表达式的具体方法为:
(3.1)在内存中分配两个堆栈S1和S2,分别用于临时存储运算符和转换后的逆波兰式;
(3.2)依次读取中序表达式,若读入的是操作数,则将操作数输出到堆栈S2;
(3.3)若取出的字符是运算符Op,如果此时堆栈S1为空,则将该运算符保存入堆栈S1,如果此时堆栈S1非空,则将该运算符Op与堆栈S1栈顶的操作符优先级做比较,若低于堆栈S1栈顶操作符优先级,则将堆栈S1栈顶操作符弹出,压入S2堆栈,再将该运算符Op与堆栈S1栈顶的操作符优先级做比较,重复该操作直至栈顶运算符优先级不高于运算符Op的优先级,将运算符Op入堆栈S1;若运算符Op优先级高于栈顶运算符优先级,则直接将运算符Op存入堆栈S1;
对于运算符‘(’,则直接存入堆栈S1,若为‘)’,则将距离S1栈顶最近的‘(’及S1栈顶之间的字符弹出并依次送入堆栈S2,并丢弃‘(’;
(3.4)重复以上步骤3.1~3.2,直到单个表达式解析完,最后将堆栈S1中的所有运算符弹出并压入堆栈S2,此时依次弹出堆栈S2中的字符构成的字符串即为转换后的后序表达式。
优选的,运算符的优先级如下:最高优先级包括乘号“*”和除号“÷”,最低优先级包括加号“+”和减号“-”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天自动控制研究所;中国运载火箭技术研究院,未经北京航天自动控制研究所;中国运载火箭技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611050603.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:蜡染布
- 下一篇:控制器运行方法及装置