基于Verilog实现的伺服电机控制系统的制作方法

文档序号:19187154发布日期:2019-11-20 01:37阅读:1944来源:国知局
基于Verilog实现的伺服电机控制系统的制作方法

本发明涉及伺服电机控制领域,具体地,涉及一种基于verilog实现的伺服电机控制系统。



背景技术:

伺服电机可以精确控制当前速度及位置,在目前自动化控制系统中有着非常重要的应用。磁场导向控制(foc)算法以其极高的控制精度以及高速的动态响应,成为当前伺服电机控制算法中的首选。

由于磁场导向控制(foc)算法的实现较为复杂,目前绝大多数的硬件实现都是基于数字信号处理芯片(dsp)完成,即使存在一些基于可编程门阵列(fpga)的方案,或是与dsp协同完成,或是利用fpga内嵌软核执行。例如公开号为cn104808582a的专利公开了一种基于fpga的嵌入式数字控制器及其控制方法,包括嵌入式多核控制系统、信号检测模块、视觉跟踪模块、脉冲输出光电隔离模块、模拟控制模块,信号检测模块的输出端及视觉跟踪模块的输出端分别与嵌入式多核控制系统的输入端连接,嵌入式多核控制系统的输出端分别与脉冲输出光电隔离模块的输入端及模拟控制模块的输入端连接,脉冲输出光电隔离模块的输出端与伺服驱动器连接,模拟控制模块的输出端与气泵连接。

纯verilog的实现方案,由于技术难度较大,仍处于缺失状态。近期国产fpga逐渐兴起,但其中没有集成软核资源,因此产生了纯verilog的伺服系统实现的需求。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于verilog实现的伺服电机控制系统。

根据本发明提供的一种基于verilog实现的伺服电机控制系统,包括:

fpga:通过verilog语言实现全部控制算法;

驱动板:连接伺服电机与所述fpga,用以根据fpga的控制信号驱动伺服电机以及向所述fpga传递电机反馈信号。

模数转换器:将电机反馈信号中的三相电流模拟值转换为数字值,传输至所述fpga中进行运算。

优选地,所述电机反馈信号包括:三相电流信号以及正交编码脉冲信号。

优选地,所述fpga包括:

解码模块:根据所述正交编码脉冲信号进行电机参数计算,得到伺服电机的位置以及速度信息;

foc模块:根据所述伺服电机位置以及速度信息,计算得对应占空比的pwm波形,传输至所述驱动板;

接口模块:与pc端通信连接,将所述伺服电机位置及速度信息传输至pc端,pc端评估伺服系统的优劣。

优选地,所述解码模块包括:

速度计算:采用m\t法,同时记录码盘输出脉冲与高频时钟脉冲,在m法与t法之间切换以得到精确测量结果;

位置计算:通过计数所述正交编码脉冲信号计算当前位置。

优选地,所述foc模块包括:

clarke变换模块、park变换模块和ipark变换:均为坐标变换,其中三角函数计算采用cordic算法实现;

pi控制器:调节算法,使得电机更快稳定,采用差分形式实现。

svpwm模块:计算pwm波形占空比,输出pwm波形。

优选地,所述接口模块使用串行接口,波特率为115200。

优选地,所述驱动板输出的所述三相电流信号为模拟信号,通过外置模数转换器转换为数字信号后输入所述fpga。

优选地,所述伺服电机的数量为一台或多台。

优选地,所述驱动板主控芯片选型ir2136,驱动板中内置功率驱动及电流采集电路。

优选地,所述fpga中的各模块进行了量化处理。

与现有技术相比,本发明具有如下的有益效果:

1、本发明实现了伺服系统的纯verilog实现,减少资源消耗,提升系统性能,使得伺服系统在国产fpga中实现成为可能。

2、完全不需要数字信号处理芯片(dsp)的参与,在保证控制精度的同时,使得系统性能最大化。

3.为使得系统能够通过verilog实现,本发明综合使用多种优化算法,包括:cordic算法、差分pi算法等在损失精度有限前提下,极大降低了硬件资源消耗。

4.本发明采用多种算法,优化系统的实现,包括:m\t法有效扩大测速范围、svpwm法降低器件开关损耗,提升电压利用效率等。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的整体结构示意图;

图2为foc算法框图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

如图1所示,本发明提供的一种基于verilog实现的伺服电机控制系统,包括:

fpga:通过verilog语言实现全部控制算法;

驱动板:连接伺服电机与fpga,用以根据fpga的控制信号驱动伺服电机以及向fpga传递电机反馈信号。电机反馈信号包括:三相电流信号以及正交编码脉冲信号。

模数转换器:将三相电流模拟值转换为数字值,传输至所述fpga中进行运算。

在verilog实现过程中对fpga每个模块都进行了量化处理,使其能够在精度损失极小的前提下,大幅降低硬件资源消耗。

fpga包括:

解码模块:根据正交编码脉冲信号进行电机参数计算,得到伺服电机的位置以及速度信息。

foc模块:根据所述伺服电机位置以及速度信息,计算得恰当占空比的pwm波形,传输至所述驱动板。

接口模块:与pc端通信连接,将所述伺服电机位置及速度信息传输至pc端,pc端将信息显示并评估伺服系统的优劣。接口模块采用通用串行接口(uart)。

foc模块包括:

clarke变换模块、park变换模块和ipark变换:均为坐标变换,采用cordic算法实现;在保证精度的前提下,极大的减少了硬件资源消耗。

pi控制器:采用差分形式实现,在精度损失可控的前提下,成功地用verilog在硬件上实现相同功能。

svpwm模块:产生恰当占空比的脉冲波,在减小器件开关损耗的同时,比传统的spwm电压利用效率高出15%。

解码模块包括:

速度计算:采用m\t法,同时记录码盘输出脉冲与高频时钟脉冲,在m法与t法之间切换以得到精确测量结果;

位置计算:通过计数电机反馈正交编码脉冲计算当前位置。

本发明对电机参数计算模块进行了verilog的实现,电机参数计算模块的输入为电机反馈正交编码脉冲,输出为计算得到的位置以及速度信息。速度测量采用上述m\t法,该方法结合了传统的m法与t法的优势,使得电机在高速或是低速情况下,都能精确测量出电机当前速度。位置测量则通过计数脉冲来实现,需要通过判断反馈波形的上升沿与下降沿来实现。

本发明采用外接adc进行三相电流数据的采集,通过uart接口将转换后的数字信号传输至fpga中,在fpga中进行电流的还原。

本发明采用uart接口将计算得到的电机参数反馈至上位机中进行显示,拟开发一套pc端的图形界面,针对电机反馈数据进行显示,同时计算出电机的控制精度,动态响应速度等参数以评估伺服系统的优劣。

本发明构想出一套基于fpga的多电机协同控制方案,充分利用fpga高并行度的特点。对于传统的dsp实现方案,控制多台电机需要多块dsp的参与,而fpga以其高并行性使得同时执行多套算法成为可能,仅需一块fpga即可完成多台电机的控制,不需要进行板间通信,能够更方便的进行多电机的协同控制。其实现方案也相对简单,仅需将电机控制模块复制多份,并添加对应的控制模块,即可实现多电机的协同控制。该技术在agv小车、机器人控制等需要多电机协同控制的领域都能得到很好的应用。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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