伺服电机控制方法及其控制器、装置、设备、存储介质与流程

文档序号:23068479发布日期:2020-11-25 17:56阅读:176来源:国知局
伺服电机控制方法及其控制器、装置、设备、存储介质与流程

本发明属于计算机领域,尤其涉及伺服电机控制方法及其控制器、装置、设备、存储介质。



背景技术:

现阶段,工业上使用的一般都是伺服电机,在伺服电机的整个运动控制系统当中,运动控制卡板内主要分为两个部分,dsp(digitalsignalprocessing,数字信号处理)粗插补和fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)精插补,为了保证伺服电机转速均匀稳定,输出的脉冲应具备相同的频率和占空比,脉冲频率的变化会导致设备进给速度的变化,更可能会导致设备的抖动,从而降低设备加工精度。

目前,一般控制器对伺服电机都是采用dda(digitaldifferentialanalyzer,数字积分法)来控制,那么,在dsp的中断周期和fpga的时钟周期已知的情况下,通过上位机对控制器发送数据时就会出现小数部分,又由于伺服电机只能对脉冲进行识别,一般会利用dda把小数部分累加为整数1时随整数部分传输给fpga,进而控制伺服电机的步进,上位机发出的均匀数据也会造成脉冲不均匀的情况,从而影响到伺服电机均匀稳定步进。另外,一般采用的是dsp对上位机的数据进行整理后浮点数或者定点数转换来传递给fpga,为此,fpga还需要进行脉宽的除法或乘法运算,这样会造成fpga资源上的严重消耗,对于未来扩展多轴的控制会造成fpga资源不够而增加芯片成本。

由此可见,现有的运动控制系统中,脉冲输出不均匀,影响伺服电机的稳定步进,并且对fpga的资源占用比较严重,急需解决。



技术实现要素:

本发明实施例的目的在于提供一种伺服电机控制方法及其控制器、装置、设备、存储介质,旨在解决现有的运动控制系统中,脉冲输出不均匀,影响伺服电机的稳定步进,并且对fpga的资源占用比较严重的技术问题。

本发明实施例是这样实现的,一种伺服电机控制方法,所述伺服电机控制方法包括:

获取脉冲控制信号的中断周期t1和fpga的时钟周期t2;

将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽;

将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进。

本发明实施例的另一目的在于提供一种伺服电机控制装置,包括:

信息获取单元,用于获取脉冲控制信号的中断周期t1和fpga的时钟周期t2;

信息处理单元,用于将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽;

信息发送单元,用于将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进

本发明实施例的另一目的在于提供一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述伺服电机控制方法的步骤。

本发明实施例的另一目的在于提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述伺服电机控制方法的步骤。

本发明实施例将脉宽运算的过程在数字信号处理器中处理,将处理得到的脉冲宽度发送至fpga进行换算,得到用于控制伺服电机的脉冲信号,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

附图说明

图1为本发明实施例提供的伺服电机控制方法的应用环境图;

图2为本发明实施例提供的伺服电机控制方法的流程图;

图3本发明实施例提供的一种伺服电机控制器的结构示意图;

图4为本发明实施例提供的一种fpga的工作流程图;

图5为本发明实施例提供的一种脉冲控制信号的具体实施例;

图6为本发明实施例提供的一种具体实施例的输出波形;

图7为本发明实施例提供的一种伺服电机控制装置的结构示意图;

图8为本发明实施例提供的计算机设备的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明实施例提供的伺服电机控制方法的应用环境图,如图1所示,在该应用环境中,包括dsp(数字信号处理器,digitalsignalprocessor)110以及fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)120。

dsp由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器,数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现,可以采用可编程数字信号处理器。

fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。

如图2所示,在一个实施例中,提出了一种伺服电机控制方法,具体可以包括以下步骤:

步骤s202,获取脉冲控制信号的中断周期t1和fpga的时钟周期t2。

在本发明实施例中,脉冲控制信号是指用于生成脉冲信号的控制信号,是外界输入的用于控制电机的信号,但是电机驱动器无法直接识别该脉冲控制信号,所有需要将该脉冲控制信号通过dsp和fpga转为为电机驱动器能够识别的脉冲信号;中断周期t1是指外界向控制器发送脉冲控制信号的间隔周期,时钟周期t2是指fpga的时钟周期,是fpga固有的周期时间。

作为本发明一种实施例,获取脉冲控制信号的中断周期t1和fpga的时钟周期t2可以是通过读取的方式获取脉冲控制信号的中断周期t1和fpga的时钟周期t2,也可以是通过人工输入的方式获取,本发明不做限制。

步骤s204,将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽。

在本发明实施例中,数字信号处理器由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器,数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现,可以采用可编程数字信号处理器。

作为本发明一种实施例,将中断周期t1和所述时钟周期t2发送至数字信号处理器,数字信号处理器接收到中断周期t1和时钟周期t2后对其进行计算,以得到脉冲信号的脉宽,其中,脉冲信号是指能够发送至电机驱动器,并被电机驱动器识别用于驱动电机运动的信号。在本发明实施例中,中断周期各级实际情况确定,如250us,时钟周期根据fpga具体确定,一般采用0.02us,数字信号处理器接收到上述信息后并开始计算脉宽。

本发明实施例通过将脉宽的计算放置数字信号处理器中,能够有效节约fpga的资源空间,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

步骤s206,将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进。

在本发明实施例中,fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单。

作为本发明一种实施例,fpga在接收到脉宽之后,根据脉宽和脉冲数量对脉冲信号进行计算,得到用于控制电机运动的脉冲信号,并将该脉冲信号发送至电机驱动器,电机驱动器根据该脉冲信号控制电机运动。

本发明实施例将脉宽运算的过程在数字信号处理器中处理,将处理得到的脉冲宽度发送至fpga进行换算,得到用于控制伺服电机的脉冲信号,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

在本发明实施例提供的伺服电机控制方法中,所述以使所述数字信号处理器计算用于控制所述伺服电机的脉冲的脉宽,包括:

以使所述数字信息处理器根据所述中断周期t1和所述时钟周期t2计算一个所述中断周期内所述时钟周期的最大个数n,计算公式为:

其中,[]为取整运算;

以使所述数字信号处理器获取所述中断周期内的脉冲个数n,并计算每个所述脉冲的脉宽的最大平均值,计算公式为:

其中,k为所述脉宽占所述时钟周期的个数,则所述脉宽为kt2。

在本发明实施例中,假设中断周期为250us,时钟周期为0.02us,一个中断周期内最大的时钟周期个数为n,即n=12500,假设脉冲数n=1.5,每个脉冲所占脉宽的最大平均值为时钟周期的k个,k=4166。通过计算可以得到一个终端周期内脉宽的个数。

在本发明实施例提供的伺服电机控制方法中,所述将所述脉宽发送给所述fpga,包括:在所述中断周期的上升沿时刻将所述脉宽发送给所述fpga。

在本发明实施例中,中断周期也是方波,存在上升沿,如中断周期为250us,且在一个周期是从中断周期的上升沿开始的,则在中断周期计数到250us时,将脉宽发送至fpga,保证脉宽计算的完整性。

图3示出了本发明实施例提供的一种伺服电机控制器的结构示意图,如图3所示,本发明实施例提供的伺服电机控制器包括:

控制器310,用于获取脉冲控制信号的中断周期t1和fpga的时钟周期t2,并发送至数字信息处理器;

所述数字信息处理器320,用于接收所述中断周期t1和fpga的时钟周期t2,并计算用于控制所述伺服电机的脉冲的脉宽,将得到的所述脉宽发送至fpga;

所述fpga330,用于接收所述脉宽,处理所述脉宽得到用于控制所述伺服电机的脉冲信号,并将所述脉冲信号发送至驱动器;

所述驱动器340,用于接收所述脉冲信号,并根据所述脉冲信号控制所述地府电机步进。

在本发明实施例中,控制器310是上位机,上位机是指可以直接发出操控命令的计算机,可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等,但并不局限于此。dsp由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器,数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现,可以采用可编程数字信号处理器。fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。驱动器是一种将电脉冲转化为角位移的执行机构,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。

作为本发明一种实施例,图4为本发明实施例提供的一种fpga的工作流程图,该工作流程只进行脉宽的计数,不考虑每个中断周期所收到的脉宽影响,即无中断周期概念,能够很好地解决脉冲不均匀的现状。复位:fpga的内部复位,是dsp发送0给到fpga的rst_n端口,fpga内部就会所有数据清零,此时,n是代表rst_n为0的时候。当dsp发送1时,则fpga内部数据就会进行正常的运行,y是代表的rst_n为1时,优先级最高。使能:fpga内部使能端,是dsp发送1给到fpga的start端口时,fpga内部计数器才开始正常计数,n表示0,,反之,计数器为0,y表示1。脉宽的计数器为0:当使能端为1时,脉宽计数器初始化为0。计数器累加:开始加1的计算,并且有fpga的时钟周期的上升沿作为累加的条件,每当一个fpga时钟的上升沿到来时,计数器都会加1。大于等于脉宽:当计数器累加到大于等于脉宽数值时计数器会变为0,从新计数,同时,脉宽输出的电平翻转,否则计数器就会继续累加。脉冲输出的电平翻转:是根据脉宽计数器是否大于等于脉宽值进行翻转。dsp内,6250除以脉冲数等到脉宽:除法器在dsp内进行运行,中断周期为250us,fpga的时钟周期为0.02us,中断周期除以fpga时钟周期为12500又因为脉冲是50%的占空比,所以高电平和低电平脉宽长度一样,即12500除以2等于6250,当每个中断周期发送一次脉冲数为x,则利用6250除以x,得到的就是脉宽值。每次中断周期发送一次脉宽值:在dsp内,计算出脉宽值在每250us的时候给fpga发送一次脉宽值。脉宽大小:就是并行在fpga的大于等于脉宽那部分进行判断。

表一为本发明实施例中提供的fpga的端口设计表

图5为本发明实施例提供的一种脉冲控制信号的具体实施例,其中电机加速度是0.8pulse/1ms^2,电机起止速度为0.1,反向加速度为0.2pulse/250us.^2,每次叠加后的的速度(单位pulse/250us)依次0.1,0.3,0.5,0.7,0.9,1.1,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,2.9,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,3.1,2.9,2.7,2.5,2.3,2.1,1.9,1.7,1.5,1.3,1.1,0.9,0.7,0.5,0.3,0.1。设定时钟为10ps/1ps,中断周期为250us,时钟周期为0.02us。输入clk为时钟周期;输入rst_n为低电平有效的复位使能端;输入start为开始输出脉冲使能端;输入decimal_pulse为小数脉冲的脉宽;输出pulse_out为脉冲输出端。因为是整数外加小数,此设计是根据1个脉冲是4khz进行改变脉宽,例如,0.1个脉冲就是400hz,10个脉冲就是40khz。图6示出了本发明是实施例的输出波形,其中,pulse_out则为脉冲输出结果,最大速度为3.1个脉冲,计数器count2为脉冲数的计数,根据testbench的数据可知加速度的脉冲数25.6,匀速的脉冲数是55.8,减速度的脉冲数是25.6,得出结果是107,同时对decimal_pulse输入为0时则把pulse_out的电平进行拉低。此时波形1的计数器为16’h006b,即为107,脉冲整数结果正确。

本发明实施例将脉宽运算的过程在数字信号处理器中处理,将处理得到的脉冲宽度发送至fpga进行换算,得到用于控制伺服电机的脉冲信号,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

图7为本发明实施例提供的一种伺服电机控制装置的结构示意图,如图7所示,包括:

信息获取单元,用于获取脉冲控制信号的中断周期t1和fpga的时钟周期t2。

在本发明实施例中,脉冲控制信号是指用于生成脉冲信号的控制信号,是外界输入的用于控制电机的信号,但是电机驱动器无法直接识别该脉冲控制信号,所有需要将该脉冲控制信号通过dsp和fpga转为为电机驱动器能够识别的脉冲信号;中断周期t1是指外界向控制器发送脉冲控制信号的间隔周期,时钟周期t2是指fpga的时钟周期,是fpga固有的周期时间。

作为本发明一种实施例,获取脉冲控制信号的中断周期t1和fpga的时钟周期t2可以是通过读取的方式获取脉冲控制信号的中断周期t1和fpga的时钟周期t2,也可以是通过人工输入的方式获取,本发明不做限制。

信息处理单元,用于将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽。

在本发明实施例中,数字信号处理器由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器,数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现,可以采用可编程数字信号处理器。

作为本发明一种实施例,将中断周期t1和所述时钟周期t2发送至数字信号处理器,数字信号处理器接收到中断周期t1和时钟周期t2后对其进行计算,以得到脉冲信号的脉宽,其中,脉冲信号是指能够发送至电机驱动器,并被电机驱动器识别用于驱动电机运动的信号。在本发明实施例中,中断周期各级实际情况确定,如250us,时钟周期根据fpga具体确定,一般采用0.02us,数字信号处理器接收到上述信息后并开始计算脉宽。

信息发送单元,用于将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进。

在本发明实施例中,fpga器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单。

作为本发明一种实施例,fpga在接收到脉宽之后,根据脉宽和脉冲数量对脉冲信号进行计算,得到用于控制电机运动的脉冲信号,并将该脉冲信号发送至电机驱动器,电机驱动器根据该脉冲信号控制电机运动。

本发明实施例将脉宽运算的过程在数字信号处理器中处理,将处理得到的脉冲宽度发送至fpga进行换算,得到用于控制伺服电机的脉冲信号,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

图8示出了一个实施例中计算机设备的内部结构图。如图8所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现伺服电机控制方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行伺服电机方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取脉冲控制信号的中断周期t1和fpga的时钟周期t2;

将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽;

将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:

获取脉冲控制信号的中断周期t1和fpga的时钟周期t2;

将所述中断周期t1和所述时钟周期t2发送至数字信号处理器,以使所述数字信号处理器计算用于控制所述伺服电机的脉冲信号的脉宽;

将所述脉宽发送给所述fpga,以使所述fpga生成所述脉冲信号,并控制所述伺服电机步进。

本发明实施例将脉宽运算的过程在数字信号处理器中处理,将处理得到的脉冲宽度发送至fpga进行换算,得到用于控制伺服电机的脉冲信号,能够解决其脉冲的不均匀现状,而且脉冲个数也不受到影响,同时减少fpga资源的占用,降低芯片的成本还可以能够在提高fpga时钟周期的情况下增加精度以及降低误差。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1