本发明专利技术涉及伺服控制系统的编码器应用技术领域,尤其是指一种绝对值编码器零点脉冲生成的方法,根据实际设置的每圈希望输出的脉冲个数,可以灵活按照绝对值编码器的实时速度生成相对应的零点脉冲宽度,相比传统的固定零点宽度,大大减小了使用误差;且本发明专利技术适用于多种类型的绝对值编码器,只需将对应的绝对值编码器分辨率r、通信周期t更改为当前的绝对值编码器的信息即可应用,兼容性强,降低了使用成本。本。本。
【技术实现步骤摘要】
一种绝对值编码器零点脉冲生成的方法
[0001]本专利技术涉及伺服控制系统的编码器应用
,尤其是指一种绝对值编码器零点脉冲生成的方法。
技术介绍
[0002]绝对值编码器由于极高分辨率和对位置的记忆功能使其在伺服控制中得到了越来越广泛的应用。
[0003]在伺服应用中,上位控制器有时需要接收伺服输出的编码器零点脉冲来实现系统的逻辑控制。由于绝对值编码器的位置是通过数据通信的方式采集的,没有实际的脉冲,所以一般都是通过计算生成的编码器零点脉冲的方式来实现。目前一般的方法是:比较两次采集到的绝对值编码器位置,一旦发现位置过零点,即生成零点脉冲的边沿,然后自定义一个脉冲的宽度,完成零点脉冲的生成。
[0004]但是,上述方式存在如下问题:由于生成零点脉冲的宽度是自定义的,不能根据电机的实时速度输出宽度匹配的零点脉冲,使用起来误差较大。
技术实现思路
[0005]本专利技术针对现有技术的问题提供一种绝对值编码器零点脉冲生成的方法,根据实际绝对值编码器的实时速度来改变生成的零点脉冲宽度,即可以根据客户设置的每圈输出脉冲数,灵活生成与之相匹配的零点脉冲,大大减小了使用误差。
[0006]为了解决上述技术问题,本专利技术采用如下技术方案:一种绝对值编码器零点脉冲生成的方法,包括以下步骤:
[0007]A.设置绝对值编码器每圈的分辨率为r,每圈生成的脉冲个数为m,绝对值编码器通信的周期为t;
[0008]B.设上一次通信时绝对值编码器的位置为P(n
‑
1),当前通信时绝对值编码器的位置为P(n);
[0009]C.根据绝对值编码器在两次通信之间的位置差(P(n)
‑
P(n
‑
1)) 以及脉冲个数的变化,来判断绝对值编码器的实时速度;根据绝对值编码器的实时速度的变化来获取生成零点脉冲的宽度width:
[0010]D.判断绝对值编码器的位置是否过零点,若是,则生成零点脉冲的边沿,持续width宽度来完成零点脉冲的生成。
[0011]优选的,所述步骤C中的两次通信之间的绝对值编码器的位置差以及脉冲个数变化的获取包括以下步骤:
[0012]C1.设mull,mull=(P(n)
‑
P(n
‑
1))*m;
[0013]C2.设dividend_sub和remainder,其中remainder=dividend_sub/r的余数,remainder初始化值为0;dividend_sub=mull+remainder;
[0014]C3.设quotient,quotient=dividend_sub/r的商;
[0015]C4.零点脉冲宽度为width=t/quotient。
[0016]优选的,所述步骤C中,设置第一被除数寄存器、第二被除数寄存器、余数寄存器、脉冲个数寄存器以及零点脉冲宽度寄存器,其中 mull的值储存于第一被除数寄存器,dividend_sub的值储存于第二被除数寄存器,remainder的值储存于余数寄存器,quotient的值储存于脉冲个数寄存器,脉冲宽度width的值储存于零点脉冲宽度寄存器。
[0017]优选的,多个所述寄存器均为32位的寄存器。
[0018]优选的,所述步骤D中判断绝对值编码器位置是否过零点包括以下步骤:
[0019]D1.若P(n
‑
1)大于0.8*r且Pn小于0.2*r,则判断编码器正向过零;
[0020]D2.若P(n
‑
1)小于0.2*r且Pn大于0.8*r,则判断编码器反向过零。
[0021]优选的,所述步骤A至步骤D均在FPGA中执行。
[0022]本专利技术还提供一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行上述的绝对值编码器零点脉冲生成的方法。
[0023]本专利技术还提供一种电子设备,该电子设备包括:
[0024]处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述的绝对值编码器零点脉冲生成的方法。
[0025]本专利技术的有益效果:
[0026]本专利技术提供的一种绝对值编码器零点脉冲生成的方法,根据实际设置的每圈希望输出的脉冲个数,可以灵活按照绝对值编码器的实时速度生成相对应的零点脉冲宽度,相比传统的固定零点宽度,大大减小了使用误差;且本专利技术适用于多种类型的绝对值编码器,只需将对应的绝对值编码器分辨率r、通信周期t更改为当前的绝对值编码器的信息即可应用,兼容性强,降低了使用成本。
附图说明
[0027]图1为本专利技术的方法流程图;
具体实施方式
[0028]为了便于本领域技术人员的理解,下面结合实施例与附图对本专利技术作进一步的说明,实施方式提及的内容并非对本专利技术的限定。以下结合附图对本专利技术进行详细的描述。
[0029]实施例一:
[0030]本实施例提供的一种绝对值编码器零点脉冲生成的方法,如图1,包括以下步骤:
[0031]A.设置绝对值编码器每圈的分辨率为r,每圈生成的脉冲个数为m,绝对值编码器通信的周期为t;
[0032]B.设上一次通信时绝对值编码器的位置为P(n
‑
1),当前通信时绝对值编码器的位置为P(n);
[0033]C.根据绝对值编码器在两次通信之间的位置差(P(n)
‑
P(n
‑
1))以及脉冲个数的变化,来判断绝对值编码器的实时速度;根据绝对值编码器的实时速度的变化来获取生成零点脉冲的宽度width:
[0034]D.判断绝对值编码器的位置是否过零点,若是,则生成零点脉冲的边沿,持续width宽度来完成零点脉冲的生成。
[0035]具体地,本实施例旨在生成零点脉冲宽度可变的零点脉冲,其中,首先根据两次通信之间的绝对值编码器的位置以及之间的脉冲个数,来判断在同样的通信周期t内,若是两次通信之间脉冲个数有变化,则说明绝对值编码器的实时速度产生了变化,则说明此时生成的零点脉冲的宽度需要调整,具体地计算方式如下:
[0036]C1.设mull,mull=(P(n)
‑
P(n
‑
1))*m;
[0037]C2.设dividend_sub和remainder,其中remainder=dividend_sub/r的余数,remainder初始化值为0;dividend_sub=mull+remainder;
[0038]C3.设quotient,quotient=dividend_sub/r的商;
[0039]C4.零点脉冲宽度width=t/quotient。
[0040]其中,设置第一被除数寄存器、第二被除数寄存器、余数寄存器、脉冲个数寄存器以及零点脉冲宽度寄存器,其中mull的值储存于第一被除数寄存器,di本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种绝对值编码器零点脉冲生成的方法,其特征在于,包括以下步骤:A.设置绝对值编码器每圈的分辨率为r,每圈生成的脉冲个数为m,绝对值编码器通信的周期为t;B.设上一次通信时绝对值编码器的位置为P(n
‑
1),当前通信时绝对值编码器的位置为P(n);C.根据绝对值编码器在两次通信之间的位置差(P(n)
‑
P(n
‑
1))以及脉冲个数的变化,来判断绝对值编码器的实时速度;根据绝对值编码器的实时速度的变化来获取生成零点脉冲的宽度width:D.判断绝对值编码器的位置是否过零点,若是,则生成零点脉冲的边沿,持续width宽度来完成零点脉冲的生成。2.根据权利要求1所述一种绝对值编码器零点脉冲生成的方法,其特征在于,所述步骤C中的两次通信之间的绝对值编码器的位置差以及脉冲个数变化的获取包括以下步骤:C1.设mull,且mull=(P(n)
‑
P(n
‑
1))*m;C2.设dividend_sub和remainder,其中remainder=dividend_sub/r的余数,remainder初始化值为0,且dividend_sub=mull+remainder;C3.设脉冲个数为quotient,则quotient=dividend_sub/r的商;C4.零点脉冲宽度为width=t/quotient。3.根据权利要求2所述一种绝对值编码器零点脉冲生成的方法,其特征在于:所述步骤C中,设置第一被除...
【专利技术属性】
技术研发人员:施琼瑜,王继超,黄明洁,
申请(专利权)人:威科达东莞智能控制有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。