[发明专利]一种脚本化的智能电表事件判断解析方法有效
申请号: | 202010598309.0 | 申请日: | 2020-06-28 |
公开(公告)号: | CN111767038B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 刘笑菲;张奔;刘国栋;敖鑫;张宏莉;李卓伟;于洪;杨加龙 | 申请(专利权)人: | 烟台东方威思顿电气有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06Q10/20;G06Q50/06 |
代理公司: | 烟台双联专利事务所(普通合伙) 37225 | 代理人: | 申国栋 |
地址: | 264003 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 脚本 智能 电表 事件 判断 解析 方法 | ||
1.一种脚本化的智能电表事件判断解析方法,其特征在于:构建逻辑脚本,每条逻辑脚本对应一个智能电表事件;所述逻辑脚本包含用于进行事件判断的逻辑表达式;
所述逻辑表达式包括通过逻辑运算符连接在一起的逻辑单元;
构建与各逻辑表达式一一对应的分支树,所述分支树的判断结果与所述逻辑表达式一致;依据分支树的跳转结构生成判断代码,将判断代码写入到智能电表的单片机中,用于实现逻辑表达式的动态实时判断;
构建分支树的方法为:统计逻辑表达式中所出现的逻辑单元,求取各逻辑单元所对应的信息熵,然后依据信息熵对逻辑单元排序,依据排序构建所述分支树;
构建分支树的具体方法为:
步骤1、统计对应的逻辑表达式中所出现的逻辑单元,重复出现的只计一次;设有逻辑单元的数量为n;
步骤2、每个逻辑单元的结果取值为0、1两种情况,0表示逻辑假,1表示逻辑真;将所有可能存在的逻辑单元取值进行排列组合,共有2n种情况;将排列组合构成2n×n维的矩阵X,其中每一行的元素分别对应一种取值组合情况,第i列的元素均对应第i个逻辑单元;
步骤3、将矩阵X的每一行分别代入逻辑表达式进行逻辑运算,将所有行的运算结果按矩阵X的行序组成2n×1维的向量Y;
步骤4、将X,Y按照列方向进行组合,使X、Y组合成2n×(n+1)维的矩阵Z;
步骤5、分别计算矩阵Z的前n列的信息熵:
步骤5-1、对于第i列,按该列元素的不同取值,将矩阵Z分成Zi1和两个矩阵:表示矩阵Z第i列取值为1的行所组成的矩阵,设该矩阵的行数为m;表示矩阵Z第i列取值为0的行所组成的矩阵,设该矩阵的行数为n;
步骤5-2、根据矩阵和最后一列的不同取值,继续将划分为和将划分为和共四个矩阵:表示矩阵中最后一列取值为1的行所组成的矩阵,设该矩阵的行数为m1;表示矩阵最后一列取值为0的行所组成的矩阵,设该矩阵的行数为m2;表示矩阵最后一列取值为1的行所组成的矩阵,设该矩阵的行数为n1;表示矩阵最后一列取值为0的行所组成的矩阵,设该矩阵的行数为n2;
步骤5-3、根据信息熵公式计算矩阵Z前n列各自的信息熵,以Entropyi表示矩阵Z第i列的信息熵,有:
步骤5-6、将计算得到的信息熵按绝对值由小到大进行排序;
依据排序构建所述分支树的步骤6,其具体步骤为:
步骤6-1、按优先级顺序由上至下构建n个与逻辑单元一一对应的分层,每个分层用于放置与该层的逻辑单元对应的Node节点,每个Node节点对应一个节点矩阵H;
在最上方的第一层中建立一个Node节点,将矩阵Z作为与该Node节点所对应的节点矩阵H;
由上至下遍历各个分层,对于每个分层,分别执行步骤6-2至步骤6-4,完成分支树的构建;
步骤6-2、对于当前遍历到的分层,遍历该分层中的每个Node节点;对于每个Node节点,取其节点矩阵H,设该层所对应的逻辑单元与矩阵H中的第i列对应,则根据矩阵H第i列中各行元素的取值,将H分为矩阵和表示矩阵H第i列取值为1的行所组成的矩阵,设该矩阵的行数为a;表示矩阵H第i列取值为0的行所组成的矩阵,设该矩阵的行数为b;
然后根据矩阵和最后一列的不同取值,继续将划分为和将划分为和共四个矩阵:表示矩阵中最后一列取值为1的行所组成的矩阵,设该矩阵的行数为a1;表示矩阵最后一列取值为0的行所组成的矩阵,设该矩阵的行数为a2;表示矩阵最后一列取值为1的行所组成的矩阵,设该矩阵的行数为b1;表示矩阵最后一列取值为0的行所组成的矩阵,设该矩阵的行数为b2;
步骤6-3、若a1=0,新建一个结果值为0的叶子节点,并建立当前Node节点与该叶子节点之间的路径关系:当前Node节点对应的逻辑单元值为1时,该Node节点指向该叶子节点;
若a2=0,新建一个结果值为1的叶子节点,并建立当前Node节点与该叶子节点之间的路径关系:当前Node节点对应的逻辑单元值为1时,该Node节点指向该叶子节点;
若a1和a2均不为0,则在下一层新建一个Node节点作为下层Node节点,并建立当前Node节点与该下层Node节点之间的路径关系:当前Node节点对应的逻辑单元值为1时,该Node节点指向该下层Node节点,并将当前Node节点的作为该下层Node节点的节点矩阵H,留作该下层Node节点被遍历到时使用;
步骤6-4、若b1=0,新建一个结果值为0的叶子节点,并建立当前Node节点与该叶子节点之间的路径关系:当前Node节点对应的逻辑单元值为0时,该Node节点指向该叶子节点;
若b2=0,新建一个结果值为1的叶子节点,并建立当前Node节点与该叶子节点之间的路径关系:当前Node节点对应的逻辑单元值为0时,该Node节点指向该叶子节点;
若b1和b2均不为0,则在下一层新建一个Node节点作为下层Node节点,并建立当前Node节点与该下层Node节点之间的路径关系:当前Node节点对应的逻辑单元值为0时,该Node节点指向该下层Node节点,并将当前Node节点的作为该下层Node节点的节点矩阵H,留作该下层Node节点被遍历到时使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烟台东方威思顿电气有限公司,未经烟台东方威思顿电气有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010598309.0/1.html,转载请声明来源钻瓜专利网。