一种基于Bresenham插值的高效率控制电机的方法技术

技术编号:17046216 阅读:32 留言:0更新日期:2018-01-17 17:16
本发明专利技术专利提出了一种基于Bresenham插值的高效率控制电机的方法,该设计方法分为3个模块:虚拟步数发生器,虚拟步数计数器,实际脉冲输出控制器。3个模块各自独立,以非常低度的耦合产生脉冲,从而控制电机转动。根据不同的电机速度可以实时调整虚拟步数阶梯增量,同时利用不同的电机转动范围调整虚拟步数计数器。整个设计方法结构清晰,可替换性好,便于适时调整,便于维护,可用于各种基于脉冲控制方式的实体。

A method of high efficiency control of motor based on Bresenham interpolation

The patent of this invention presents a method of high efficiency control motor based on Bresenham interpolation. The design method is divided into 3 modules: virtual step generator, virtual step counter and actual pulse output controller. Each of the 3 modules is independent, producing pulses with a very low coupling, thus controlling the rotation of the motor. The increment of the virtual step number can be adjusted in real time according to the different motor speed, and the virtual step counter is adjusted by the different motor rotation range. The whole design method has clear structure, good replacability, easy to adjust in time, easy to maintain, and can be used in various entities based on pulse control mode.

【技术实现步骤摘要】
一种基于Bresenham插值的高效率控制电机的方法
本专利技术属于伺服电机工控领域,它提出一种高效率高精度控制伺服电机的地方,特别涉及一种基于Bresenham插值的高效率控制电机的方法。
技术介绍
随着近代控制技术的发展,伺眼电动机及其伺服控制系统广泛应用于各个领域,无论是数控(NC)机床、工业机器人以及工厂自动化(FA)、办公自动化(OA)、家庭自动化(HA)等领域,都离不开伺服电动机及其伺服控制系统。而在工控自动化装备业界,最为普遍的就是伺服电机的控制,几乎大部分自动化的控制都离不开伺服电机的高精度控制。随着科技日新月异的发展,人们对机电产品的性能、质量要求越来越高,复杂型面的零件越来越常见。于是作为复杂型面加工精密化、自动化和智能化的关键技术之一的多轴联动数控技术日益引起国内外有关学者的普遍重视和广泛研究。但是如何更方便地实现高精度、高效率、高柔性的多轴联动还是一个有待继续探索的课题。
技术实现思路
本专利技术提出一种基于Bresenham插值的高效率控制电机的方法,目的在于实现高效的多轴联动,解决高精度高效率的自动化控制难题。本专利技术所涉及的bresenham算法是计算机图形学中为了“显示器(屏幕或打印机)系由像素构成”的这个特性而设计出来的算法,使得在求直线各点的过程中全部以整数来运算,因而大幅度提升计算速度。为了能够高精度高效率的控制伺服电机,并且能够稳定的联动,没有频率突变。本专利技术创新性的在控制伺服电机的基础之上,利用bresenham插值的方式,控制伺服电机,实现高效的多轴联动,使得控制伺服等设备可以精确的达到半个时钟节拍。所述的一种基于Bresenham插值的高效率控制电机的方法,主要包括3个模块,分别为虚拟步数发生器,虚拟步数计数器,实际脉冲输出控制器。所述的虚拟步数发生器主要包括:一个累加器和一个比较器。所述累加器是通过输入时钟不断累加所需要的总步数(这是一种虚拟累计方法),然后输出给比较器。所述比较器在对总步数进行比较,如果大于输出总时钟则就把总的累计步数减去总时钟的值,并向下个模块输出一个虚拟步数。不断的循环往复,直到整个时钟节拍到达输出总时间。所述的拟步数计数器主要包括:一个计数器和一个比较器。所述计数器主要进行上述模块传入的虚拟步数计数,并根据比较器的结果进行增加与减少。所述比较器主要进行虚拟步数总数和正脉冲,负脉冲所需的步数进行比较,达到正脉冲的步数,通知下一个模块输出一个正脉冲信号,并且通知计数器减去相应的正脉冲步数,从而使得计数器模块能到达到负脉冲所需的条件。所述的实际脉冲输出控制器主要就是电机的控制器,或者其他的控制器,可以根据不同的控制方式进行更换不同的控制器。主要是根据上一个模块得到的信号,输出电机所需要的正脉冲和负脉冲。用verilog代码实现三个模块的部分代码:1.虚拟步数发生器:always@(posedgeclkornegedgereset_n)beginif(reset_n==1'b0)vir_step_counter1&lt;=0;elsebeginif(pwm_enable)beginif(vir_step_counter1&gt;=pwm_time)beginvir_step_counter1&lt;=vir_step_counter1-pwm_time+step_add1_reg;endelseif(vir_step_counter1&lt;0)beginvir_step_counter1&lt;=vir_step_counter1+pwm_time+step_add1_reg;endelsevir_step_counter1&lt;=vir_step_counter1+step_add1_reg;endelsevir_step_counter1&lt;=0;endend2.拟步数计数器://组合逻辑赋值虚拟步数always@(posedgeclkornegedgereset_n)beginif(reset_n==1'b0)virtual_step1&lt;=0;elsebeginif(pwm_enable)beginif(vir_step_counter1&gt;=pwm_time)beginvirtual_step1&lt;=virtual_step1+1;endelseif(vir_step_counter1&lt;0)beginvirtual_step1&lt;=virtual_step1-1;endif(virtual_step1&gt;positive_step)//该输出一个方波了,在下一个模块执行virtual_step1&lt;=virtual_step1-step_1000;elseif(virtual_step1&lt;negative_step)virtual_step1&lt;=virtual_step1+step_1000;if(virtual_step1>positive_step&&vir_step_counter1&gt;=pwm_time)virtual_step1&lt;=virtual_step1-step_1000+1;elseif(virtual_step1<negative_step&&vir_step_counter1&lt;0)virtual_step1&lt;=virtual_step1+step_1000-1;endelsevirtual_step1&lt;=virtual_step1;endend3.实际脉冲输出控制器:(为AB正交输出)always@(posedgeclkornegedgereset_n)beginif(reset_n==1'b0)beginpwm1_t1&lt;=1'b0;pwm1_t2&lt;=1'b0;endelsebeginif(virtual_step1&gt;0)beginpwm1_t1&lt;=1'b0;endelsebeginpwm1_t1&lt;=1'b1;end//反向输出if(virtual_step1<25&&virtual_step1>-25)beginpwm1_t2&lt;=1'b0;endelsebeginpwm1_t2&lt;=1'b1;endendend本专利技术的优点和有益效果:1.通过本专利技术可以进行精确位置的同步控制,可以高效解决控制频率突变问题。通过使用本专利技术可以进行半个时钟节拍的控制,并且能够避免频率突变。2.本专利技术根据不同的控制方式可以适应多种电机控制模块,从而适用于不同的控制载体,增加使用范围。3.在不同的控制领域中,本专利技术可以通过更改Bresenham插值的参数从而适应多种输出控制信号周期和不同的输出相位。附图说明图1是基于Bresenham插值的高效率控制电机的方法流程框图。具体实施方式一、控制方法各部分组成如图1所示,是本专利技术提本文档来自技高网...
一种基于Bresenham插值的高效率控制电机的方法

【技术保护点】
本专利技术提出一种基于Bresenham插值的高效率控制电机的方法,目的在于实现高效的多轴联动,解决高精度高效率的自动化控制难题。

【技术特征摘要】
1.本发明提出一种基于Bresenham插值的高效率控制电机的方法,目的在于实现高效的多轴联动,解决高精度高效率的自动化控制难题。2.根据权利要求1所述bresenham算法是计算机图形学中为了“显示器(屏幕或打印机)系由像素构成”的这个特性而设计出来的算法,使得在求直线各点的过程中全部以整数来运算,因而大幅度提升计算速度;为了能够高精度高效率的控制伺服电机,并且能够稳定的联动,没有频率突变;本发明创新性的在控制伺服电机的基础之上,利用bresenham插值的方式,控制伺服电机,实现高效的多轴联动,使得控制伺服等设备可以精确的达到半个时钟节拍。3.根据权利要求2所述的基于Bresenham插值的高效率控制电机的方法,主要包括3个模块,分别为虚拟步数发生器,虚拟步数计数器,实际脉冲输出控制器。4.根据权利要求3所述的虚拟步数发生器主要包括:一个累加器和一个比较器;所述累加器是通过输入时钟不断累加所需要的总步数(这是一种虚拟累计方法),然后输出给比较器;所述比较器在对总步数进行比较,如果大于输出总时钟则就把总的累计步数减去总时钟的值,并向下个模块输出一个虚拟步数;不断的循环往复,直到整个时钟节拍到达输出总时间。5.根据权利要求3所述的拟步数计数器主要包括:一个计数器和一个比较器;所述计数器主要进行上述模块传入的虚拟步数计数,并根据比较器的结果进行增加与减少;所述比较器主要进行虚拟步数总数和正脉冲,负脉冲所需的步数进行比较,达到正脉冲的步数,通知下一个模块输出一个正脉冲信号,并且通知计数器减去相应的正脉冲步数,从而使得计数器模块能到达到负脉冲所需的条件。6.根据权利要求3所述的实际脉冲输出控制器主要就是电机的控制器,或者其他的控制器,可以根据不同的控制方式进行更换不同的控制器;主要是根据上一个模块得到的信号,输出电机所需要的正脉冲和负脉冲。7.根据权利要求3所述的控制方法,其三个模块的部分verilog实现代码为:(1)虚拟步数发生器:always@(posedgeclkornegedgereset_n)beginif(reset_n==1'b0)vir_step_counter1&lt;=0;elsebeginif(pwm_enable)beginif(vir_step_counter1&gt;=pwm_time)beginvir_step_counter1&lt;=vir_step_counter1-pwm_time+step_add1_reg;endelseif(vir_step_counter1&lt;0)beginvir_step_counter1&lt;=vir_step_counter1+pwm_time+step_add1_reg;endelsevir_step_counter1&lt;=vir_st...

【专利技术属性】
技术研发人员:齐飞赵金龙
申请(专利权)人:天津超众机器人科技有限公司
类型:发明
国别省市:天津,12

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

1