发明内容
有鉴于此,本申请目的在于提供一种伺服电机控制器及控制方法,以解决现有伺服电机控制器难以兼顾成本和运算速度的问题。
为实现上述目的,本申请提供如下技术方案:
一种伺服电机控制器,应用于具有至少一个伺服电机的伺服控制系统,包括可编程逻辑器件;
所述可编程逻辑器件包括外围接口逻辑、输出调制模块和通过在线编程得到的控制运算模块;
所述外围接口逻辑用于获取所述伺服电机的被控参数反馈值;
所述控制运算模块用于根据所述被控参数反馈值和预设的被控参数目标值进行相应的控制运算,以生成一调制波信号;
所述输出调制模块用于根据所述调制波信号生成相应的伺服电机控制信号;其中,
所述外围接口逻辑、输出调制模块、控制运算模块和所述伺服电机一一对应。
优选的,所述可编程逻辑器件包括现场可编程门阵列FPGA。
优选的,所述被控参数反馈值包括电流反馈值、速度反馈值和位置反馈值;所述被控参数目标值包括速度目标值和位置目标值;
所述外围接口逻辑包括电流反馈接口、速度反馈接口和位置反馈接口;
所述电流反馈接口用于获取所述电流反馈值;
所述速度反馈接口用于获取所述速度反馈值;
所述位置反馈接口用于获取所述位置反馈值;
所述可编程逻辑器件还包括通用串行接口UART;所述通用串行接口UART用于获取所述被控参数目标值。
优选的,所述控制运算模块包括软核处理器和空间矢量控制算法模块FOC;
所述软核处理器用于根据所述速度反馈值和速度目标值进行速度控制运算、根据所述位置反馈值和位置目标值进行位置控制运算,并根据所述速度控制运算结果和位置控制运算结果生成电流参考信号;
所述空间矢量控制算法模块FOC用于根据所述电流参考信号和电流反馈值进行电流环控制运算,并生成所述调制波信号。
优选的,所述输出调制模块包括PWM模块,用于将所述调制波信号与一三角波形式的所述载波信号进行比较,得到所述伺服电机控制信号。
优选的,所述被控参数反馈值为数字信号形式的被控参数反馈值;所述伺服电机控制器还包括采集转换电路;所述伺服控制系统或所述伺服电机控制器还包括被控参数传感器;
所述被控参数传感器用于对所述伺服电机的被控参数进行在线检测,以得到模拟信号形式的被控参数检测值;
所述采集转换电路用于对所述被控参数检测值进行模数转换,得到所述被控参数反馈值,并将所述被控参数反馈值输出至所述外围接口逻辑。
一种伺服电机控制方法,应用于具有伺服电机和驱动器的伺服控制系统,包括:
获取所述伺服电机的被控参数反馈值和被控参数目标值;
根据所述被控参数反馈值和被控参数目标值进行相应的控制运算,生成一调制波信号;
根据所述调制波信号生成相应的伺服电机控制信号。
优选的,所述被控参数反馈值包括电流反馈值、速度反馈值和位置反馈值;所述被控参数目标值包括速度目标值和位置目标值。
优选的,所述根据所述被控参数反馈值和被控参数目标值进行相应的控制运算,生成一调制波信号,包括:
根据所述速度反馈值和速度目标值进行速度控制运算;
根据所述位置反馈值和位置目标值进行位置控制运算;
根据所述速度控制运算结果和位置控制运算结果生成电流参考信号;
根据所述电流参考信号和电流反馈值进行电流环控制运算,并生成所述调制波信号。
优选的,所述根据所述调制波信号生成相应的伺服电机控制信号,包括:
将所述调制波信号与一三角波形式的载波信号进行比较,得到所述伺服电机控制信号。
从上述的技术方案可以看出,本申请将可编程逻辑器件作为伺服电机的主处理器,利用可编程逻辑器件的片上可编程技术生成多个控制运算模块,实现同时对多个伺服电机进行控制运算;本申请实现控制算法不需要多个硬件处理器,仅需一片可编程逻辑器件,减少了芯片的个数,减少了电路板的重量、降低了电路布线难度,降低了主处理器和协处理器之间的接口复杂度,从而大大减少了控制器的成本;同时,通过可编程逻辑器件中的多个控制运算模块分别对每个伺服电机的被控参数进行相应的控制运算,保证了运算速度,提高了伺服系统的响应速度。因此,本申请实施例解决了现有技术的问题。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种伺服电机控制器及控制方法,以解决现有伺服电机控制器难以兼顾成本和运算速度的问题。
本申请实施例提供的伺服电机控制器,应用于具有至少一个伺服电机的伺服控制系统,该系统包括伺服电机和驱动伺服电机的驱动器。
本申请实施例一提供的伺服电机控制器包括可编程逻辑器件。如图1所示,可编程逻辑器件100包括外围接口逻辑110、控制运算模块120和输出调制模块130。
外围接口逻辑110用于获取伺服电机的被控参数反馈值;控制运算模块120用于根据外围接口逻辑110获取的被控参数反馈值和预设的被控参数目标值进行相应的控制运算,生成一调制波信号;输出调制模块130用于根据控制运算模块120生成的调制波信号生成相应的伺服电机控制信号。
本实施例中,依次连接的外围接口逻辑110、控制运算模块120、输出调制模块130构成一个可编程逻辑单元,每个可编程逻辑单元对应控制一个伺服电机,实现对伺服电机的一对一控制。基于可编程逻辑器件100的片上可编程功能,可事先通过开发工具编辑得到控制伺服电机所需的控制算法程序,应用时,在可编程逻辑器件100上对该控制算法程序进行在线烧录,即可得到所需数量的控制运算模块120。
由上述控制器结构可知,本申请实施例将可编程逻辑器件作为伺服电机的主处理器,利用可编程逻辑器件的片上可编程技术生成多个控制运算模块,实现同时对多个伺服电机进行控制运算;本申请实现控制算法不需要多个硬件处理器,仅需一片可编程逻辑器件,减少了芯片的个数,减少了电路板的重量、降低了电路布线难度,降低了主处理器和协处理器之间的接口复杂度,从而大大减少了控制器的成本;同时,通过可编程逻辑器件中的多个控制运算模块分别对每个伺服电机的被控参数进行相应的控制运算,保证了运算速度,提高了伺服系统的响应速度。因此,本申请实施例解决了现有技术的问题。
具体的,本申请实施例所述的可编程逻辑器件包括现场可编程门阵列FPGA。
伺服控制系统中,伺服电机的控制主要包括电流控制、速度控制和位移控制。为实现上述控制,本申请实施例二提供了如图2所示的伺服电机控制器。该伺服电机控制器包括可编程逻辑器件100;可编程逻辑器件100包括多个可编程逻辑单元和至少一个通用串行接口140(即UART,UniversalAsynchronous Receiver/Transmitter)。
通用串行接口140用于实现可编程逻辑器件100与伺服系统上位机的通信,以获取由上位机预设的速度目标值、位置目标值等被控参数目标值,并将其输出至每个可编程逻辑单元。需要说明的是,由于每个可编程逻辑单元的结构是相同的,故图2中重点示出了一个可编程逻辑单元的结构。
可编程逻辑单元包括外围接口逻辑110、控制运算模块120和输出调制模块130。基于片上可编程技术,可编程逻辑器件可根据伺服系统中的伺服电机个数生成相应数量的可编程逻辑单元,每个伺服电机设有一个可编程逻辑单元,实现对伺服电机的一对一控制。
外围接口逻辑110包括电流反馈接口111、速度反馈接口112、位置反馈接口113。其中,外围接口逻辑110用于实现与伺服电机的通信;具体的,电流反馈接口111用于获取伺服电机的电流反馈值,速度反馈接口112用于获取伺服电机的速度反馈值,位置反馈接口113用于获取伺服电机的位置反馈值。
控制运算模块120包括软核处理器121和空间矢量控制算法模块122(即FOC,Field Oriented Control)。
软核处理器121分别与速度反馈接口112、位置反馈接口113和通用串行接口140连接,用于根据上述速度反馈值和速度目标值进行速度控制运算;同时,根据上述位置反馈值和位置目标值进行位置控制运算;并根据上述速度控制运算结果和位置控制运算结果生成电流参考信号。基于片上可编程技术,可通过SOPC开发工具(SOPC Builder)生成上述速度控制运算、位置控制运算以及生成电流参考信号所需程序,进而在需要时,通过在FPGA等可编程逻辑器件上进行在线烧录即可得到软核处理器121。
空间矢量控制算法模块122与软核处理器121连接,用于根据软核处理器121生成的电流参考信号和电流反馈值进行基于空间矢量控制算法的电流环控制运算,并生成以调制波信号。基于片上可编程技术,可通过DSP开发工具(DSP Builder)生成上述电流环控制运算所需程序,进而在需要时,通过在FPGA等可编程逻辑器件上进行在线烧录即可得到空间矢量控制算法模块122。
输出调制模块130与空间矢量控制算法模块122连接,具体可采用PWM模块,用于将空间矢量控制算法模块122生成的调制波信号与预设的三角波形式的载波信号进行比较,得到开关控制信号,将该开关控制信号输出值驱动器,以控制驱动器的功率管的开关状态,从而实现对伺服电机的控制。基于片上可编程技术,可通过VHDL语言生成输出调制模块130所需程序,进而在需要时,通过在FPGA等可编程逻辑器件上进行在线烧录即可。
由上述结构及功能可知,本申请实施例将可编程逻辑器件作为伺服电机的主控制器件,利用片上可编程技术生成多个可编程逻辑单元,实现同时对多个伺服电机进行控制;其中,每个可编程逻辑单元获取相应伺服电机的电流反馈值、速度反馈值、位置反馈值及相应的目标值,通过软核处理器和空间矢量控制算法模块进行相应的控制运算。相对于现有通过一个DSP或单片机控制多个伺服电机的方法,每个空间矢量控制算法模块122针对一个伺服电机进行复杂的电流控制运算,运行时间只需要一个时钟周期,大大提高了电流环控制的运算速度;相对于现有通过多个DSP或单片机控制多个伺服电机的方法,伺服电机个数增加,不需要相应增加硬件的个数,只需在同一个可编程逻辑器件中增加相应数量的软核处理器、空间矢量控制算法模块及输出调制模块,从而减少了芯片的个数,减少了电路板的重量、降低了电路布线难度,降低了主处理器和协处理器之间的接口复杂度,大大减少了硬件成本。因此,本申请实施例解决了现有技术的问题。
一般的,伺服控制系统通过相应的传感器采集伺服电机的电流、位置、速度等参数的反馈信号,传感器直接输出的信号为模拟信号,而FPGA等可编程逻辑器件只能对数字信号进行处理,故本申请提供了图3所示的伺服电机控制器,其包括可编程逻辑器件100和采集转换电路200。
可编程逻辑器件100包括多个可编程逻辑单元和至少一个通用串行接口140(由于每个可编程逻辑单元的结构是相同,故图3中仅重点示出了一个可编程逻辑单元)。每个可编程逻辑单元包括外围接口逻辑110、控制运算模块120和输出调制模块130。
采集转换电路200与伺服电机一一对应,并与相应伺服电机的位置传感器、电流传感器等传感器连接,用于对位置传感器输出的位置模拟信号和速度模拟信号,以及电流传感器输出的电流模拟信号进行模数转换,从而分别得到位置反馈值、速度反馈值和电流反馈值,并输出至外围接口逻辑110。
被控参数目标值,如速度目标值、位置目标值由上位机提供,其本身即为数字信号,故不需转换,直接通过通用串行接口140传输至控制运算模块120。
基于上述伺服电机控制器,本申请实施例还提供了一种伺服电机控制方法,应用于具有伺服电机和驱动器的伺服控制系统。参照图4,该方法包括如下步骤:
S401:获取所述伺服电机的被控参数反馈值和被控参数目标值;
S402:根据所述被控参数反馈值和被控参数目标值进行相应的控制运算,生成一调制波信号;
S403:根据所述调制波信号生成相应的伺服电机控制信号。
上述方法可由实施例一~三任一项所述的伺服控制器执行,不需要多个硬件处理器,仅需一片可编程逻辑器件,通过在线烧录得到的多个控制运算模块分别对每个伺服电机进行相应的控制运算,既保证了运算速度,提高了伺服系统的响应速度,又减少了芯片的个数,减少了电路板的重量、降低了电路布线难度,降低了主处理器和协处理器之间的接口复杂度,大大减少了硬件成本,解决了现有技术的问题。
由于伺服控制系统中,伺服电机的控制主要包括电流控制、速度控制和位移控制,故本申请实施例中的被控参数反馈值至少包括电流反馈值、速度反馈值和位置反馈值;所述被控参数目标值至少包括速度目标值和位置目标值。因此,基于上实施例二所述的伺服电机控制器,本申请实施例五提供了如图5所示的伺服电机控制方法,以实现对伺服电机的电流控制、速度控制和位移控制;具体包括步骤:
S501:获取所述伺服电机的电流反馈值、速度反馈值和位置反馈值,以及速度目标值和位置目标值;
S502:根据所述速度反馈值和速度目标值进行速度控制算法运算,同时根据所述位置反馈值和位置目标值进行位置控制算法运算;
S503:根据所述速度控制运算结果和位置控制运算结果生成电流参考信号;
S504:根据所述电流参考信号和电流反馈值进行电流环控制运算,并生成调制波信号;
S505:将所述调制波信号与一三角波形式的载波信号进行比较,得到伺服电机控制信号。
由上述方法可知,本申请实施例基于片上可编程技术,利用可编程逻辑器件实现上述伺服电机控制方法,既保证了运算速度,提高了伺服系统的响应速度,又减少了芯片的个数,减少了电路板的重量、降低了电路布线难度,降低了主处理器和协处理器之间的接口复杂度,大大减少了硬件成本,解决了现有技术的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。