一种光电轴角编码器的快速编码方法技术

技术编号:21511435 阅读:47 留言:0更新日期:2019-07-03 08:08
本发明专利技术提出一种光电轴角编码器的快速编码方法,将哈夫曼编码算法应用到单圈光电轴角编码器中,实现码盘崭新的单圈编码方法。该方法利用构建好符合条件的哈夫曼二叉树,通过做标记避免重复遍历的方式设定构建好的二叉树的特殊遍历扫描顺序,以此顺序进行遍历,在每一个叶节点处得到的从根到叶节点的编码就是码盘所需要的位移连续码的编码组。本发明专利技术提出了光电轴角编码器全新的单圈编码方式,能够大大提高编码速度,降低算法复杂度,是一种切实可行的编码方式。

A Fast Coding Method for Photoelectric Shaft Encoder

【技术实现步骤摘要】
一种光电轴角编码器的快速编码方法
本专利技术属于光电
,具体涉及一种光电轴角编码器的快速编码方法。
技术介绍
光电轴角编码器作为一种高精度的测角器件,编码盘是光电轴角编码器的核心器件,现有的编码方式有:自然二进制码、周期二进制码也称为“格雷码”、十进制码、六十进制码、绝对码条码、正弦条码、位移连续码等。上世纪九十年代提出了单圈绝对式编码技术,是基于对上述编码方式的研究,在格雷码的基础上提出的一种新型编码技术。它是将传统的径向编码改为仅仅刻在一个码道的纵向编码,编码方式多种多样。这种单码道的编码方式大大减小的码盘尺寸,在一个同心码道即可完成所有编码值的刻画,降低了码盘的刻画难度,缩小了编码器的体积,减轻了重量。因此各个国家的各大科研机构都纷纷开始对单圈编码方式进行探索,最早瑞士和日本的几家公司根据这一原理设计开发出了相应的编码测角仪器,国内也有光电技术研究所和长春光机所为代表的几家机构提出了新的设计方案。郑洪提出位移连续码的编码方式,此种编码是由一种位数等长的由“0”“1”组成的编码,它的任何一个编码的后继编码可以视为其前趋编码平移一位后再补一个“1”或“0”,一般向左平移,去掉最左一位并在最右端之后补位。此种单圈编码方式采用循环编码的模式,大大减少了编码长度及位数,降低了码盘在同等编码数位下的刻画难度。如果按照传统流程实现连续位移码,为保证编码的唯一性要不断进行查重删除程序,算法复杂度高,对于高位数编码程序运行时间冗长。哈夫曼是一类带权路径长度最短的树,树的带权路径长度是指树中所有叶子节点到根节点的路径长度与该叶子节点权重的乘积之和,如果在一颗二叉树中共有n个叶子节点,用Wi表示第i个叶子节点的权值,Li表示第i个叶子节点到根节点的路径长度,则该二叉树的带权路径长度为以下公式所示:WPL=W1*L1+W2*L2+...Wn*Ln。将二叉树编码的想法结合到光电轴角编码器中来,提出新的编码方式,提高编码速度,成为一种崭新的编码方法。
技术实现思路
为了解决上述现有技术存在的问题,本专利技术的目的在于提出一种利用优化哈夫曼编码,构建最优二叉树进行位移连续码的编码方法,该方法具体实现了光电轴角编器码盘的编码算法,算法简单可行,有实际应用价值,能提高单圈编码的编码速度,最终得到的位移连续码可以降低码盘的刻画线数,简化了制作工艺。本专利技术采用的技术方案为:一种光电轴角编码器的快速编码方法,包括以下步骤:步骤(一):构造符合要求的哈夫曼树,根据光电轴角编码器编码要求,需要建立一棵根节点权值相等的满二叉树;步骤(二):设置结点分支的字符,构造哈夫曼编码树;步骤(三):改变哈夫曼遍历顺序,实现位移连续码输出。进一步地,所述哈夫曼编码树是由权值相等的叶子结点构成,构建完成后为一棵满二叉树。进一步地,所述构建的哈夫曼编码树,将每棵树的左分支编码设置为字符0,右分支编码设置为字符1,将从根节点到最下方的叶子节点经过路径上分支字符组成的字符串作为叶子节点字符的编码。进一步地,遍历顺序为:从第一条支路进行遍历,对遍历后的支路做标记,保证遍历的唯一性,记录下字符串;按照上一个记录下的字符串后n-1位字符进行遍历相应的支路,最后一位字符的选择首先本着不与之前编码重复的原则,其次本着先“0”后“1”的原则进行扫描,如果两条原则都不符合则反查前一条已经入编码集的编码,将其删除出编码集。进一步地,使用标记父结点的方法避免重复遍历,用S=0表明该父结点的左右孩子都没有被遍历过,用S=1表明该结点只有左孩子被遍历过,用S=-1表明该结点只有右孩子被遍历过,用S=2表明该结点左右孩子均被遍历过。进一步地,以此顺序进行遍历,在每一个叶节点处得到的从根到叶节点的编码就是码盘所需要的位移连续码的编码组。其具体步骤如下:步骤(1):首先构造符合要求的哈夫曼树,将给定的编码位数n,编码长度2n看作是权值相同(程序中都设置为1)的2n棵只有根节点(无左右孩子)的二叉树,组成一个集合HT,每棵树的权值为该节点的权值。步骤(2):从集合HT中选出2棵权值最小的二叉树(由于此时设置权值相等,因此只需任意选出2棵),组成一棵新的二叉树,其权值为这2棵二叉树的权值之和。步骤(3):将步骤(2)中选出的2棵二叉树从集合HT中删除,同时将步骤(2)中新得到的二叉树加入到集合HT中。步骤(4):重复步骤(2)和步骤(3),直到集合HT中只含有一棵树,这棵树便是我们需要的哈夫曼树,根据我们的构造,这棵树同时也是一棵满二叉树。步骤(5):经过以上步骤后,搭建起符合要求的二叉树,从根节点开始扫描到叶子节点,将每棵树的左分支编码设置为字符0,右分支编码设置为字符1,将从根节点到最下方的叶子节点经过路径上分支字符组成的字符串作为叶子节点字符的编码。步骤(6):从第一条支路进行遍历,对遍历后的支路做标记,保证遍历的唯一性,记录下字符串。步骤(7):按照上一个记录下的字符串后n-1位字符进行遍历相对应的支路,最后一位字符的选择首先本着不与之前字符串重复的原则,其次本着先“0”后“1”的原则进行扫描,如果两条原则都不符合则反查前一条字符串。步骤(8):最后按照步骤(6)和步骤(7)遍历原则顺序输出编码即可得到符合条件的位移连续码。本专利技术与现有技术相比的优点在于:(1)该方法结合了二叉树遍历的方法,提供了光电编码器编码算法新的思路。(2)该方法对支路标记的方式,可以确定遍历状态,减少了查重程序,保证编码唯一性的同时加快了运算速度。附图说明图1为位移连续码算法流程图;图2为哈夫曼树图;图3为二叉树编码示意图;图4为哈夫曼树存储算法流程图;图5为n位编码遍历算法流程图。具体实施方式以下结合附图,具体说明本专利技术的实施方式。本专利技术是一种将哈夫曼编码应用到光电轴角编码器编码中,其3位编码具体实现步骤如下:步骤(1):要实现3位连续位移码,需要首先设置权重相同的8个叶子节点,编码长度为8位,将8个只有根节点无左右孩子的二叉树组成一个集合HT即一个森林,此森林中一共有8棵树,每棵树的权值为该节点的权值。步骤(2):在森林中,选择根节点权值最小的两颗树来进行合并,这里因为权值设置的都相等,即任意选择两棵树进行合并将它们作为一颗新树的左右孩子,并且新树的权值是左右孩子的权值之和。即,我们这一步将得到四棵权值为2的新树,将权值为1的树从森林中删除,将新树添加到森林中来。步骤(3):重复步骤(2),任意选择两棵权值为2的树进行合并,这里可以合并出两棵权值为4的新树,将这两棵新树加入森林,将权值为2的四棵树从森林中删除。步骤(4):重复步骤(3),此时森林中只有两棵权值为4的树,将其合并组成权值为8的新树添加到森林中,并将权值为4的两棵树删除,此时森林中只有一棵深度为4的哈夫曼树,此哈夫曼树同时也是一棵满二叉树,这就是我们需要的哈夫曼编码树,如下图2所示。步骤(5):将这棵搭建好的二叉树进行编码,将整棵树的每个结点的左分支编码为字符0,右分支编码为字符1,将从根节点到叶子节点的路径上的分支字符组成的字符串作为叶子节点字符的编码,这便是哈夫曼编码,如下图3所示。步骤(6):根据步骤(5)已经搭建到可以用于编码的哈夫曼树,要改变遍历扫描顺序将其实现位移连续码的编码实现。设置所有叶子结点的父结点标记S=0,表明节本文档来自技高网
...

【技术保护点】
1.一种光电轴角编码器的快速编码方法,其特征在于:包括以下步骤:步骤(一):构造符合要求的哈夫曼树,根据光电轴角编码器编码要求,需要建立一棵根节点权值相等的满二叉树;步骤(二):设置结点分支的字符,构造哈夫曼编码树;步骤(三):改变哈夫曼遍历顺序,实现位移连续码输出。

【技术特征摘要】
1.一种光电轴角编码器的快速编码方法,其特征在于:包括以下步骤:步骤(一):构造符合要求的哈夫曼树,根据光电轴角编码器编码要求,需要建立一棵根节点权值相等的满二叉树;步骤(二):设置结点分支的字符,构造哈夫曼编码树;步骤(三):改变哈夫曼遍历顺序,实现位移连续码输出。2.如权利要求1所述的光电轴角编码器的快速编码方法,其特征在于:所述哈夫曼编码树是由权值相等的叶子结点构成,构建完成后为一棵满二叉树。3.如权利要求1所述的光电轴角编码器的快速编码方法,其特征在于:所述构建的哈夫曼编码树,将每棵树的左分支编码设置为字符0,右分支编码设置为字符1,将从根节点到最下方的叶子节点经过路径上分支字符组成的字符串作为叶子节点字符的编码。4.如权利要求1所述的光电轴角编码器的快速编码方法,其特征在于:遍历顺序为:从第一条支路进行遍历,对遍历后的支路做标记,保证遍历的唯一性,记录下字符串;按照上一个记录下的字符串后n-1位字符进行遍历相应的支路,最后一位字符的选择首先本着不与之前编码重复的原则,其次本着先“0”后“1”的原则进行扫描,如果两条原则都不符合则反查前一条已经入编码集的编码,将其删除出编码集。5.如权利要求1所述的光电轴角编码器的快速编码方法,其特征在于:使用标记父结点的方法避免重复遍历,用S=0表明该父结点的左右孩子都没有被遍历过,用S=1表明该结点只有左孩子被遍历过,用S=-1表明该结点只有右孩子被遍历过,用S=2表明该结点左右孩子均被遍历过。6.如权利要求1所述的光电轴角编码器的快速编码方法,...

【专利技术属性】
技术研发人员:任曦杜升平徐少雄陈兴龙胡婕郭弘扬罗传欣
申请(专利权)人:中国科学院光电技术研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1