基于FPGA MCU的伺服电机控制器设计.docx
- 文档编号:1665078
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:59
- 大小:1.22MB
基于FPGA MCU的伺服电机控制器设计.docx
《基于FPGA MCU的伺服电机控制器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA MCU的伺服电机控制器设计.docx(59页珍藏版)》请在冰点文库上搜索。
基于FPGAMCU的伺服电机控制器设计
毕业设计(论文)
基于FPGA+MCU的伺服电机控制器设计
学院:
信息科学技术学院
专业:
姓名:
指导老师:
电子科学与技术
学号:
职称:
中国·珠海
二○一○年五月
北京理工大学珠海学院毕业设计
诚信承诺书
本人郑重承诺:
我所呈交的毕业设计《基于FPGA+MCU的伺服电机控制器设计》是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。
承诺人签名:
日期:
年月日
基于FPGA+MCU的伺服电机控制器设计
摘要
本文首先对通用伺服控制平台项目做了整体的设计规划,并着重分析了基于FPGA的电机接口模块的设计和核心算法,给出相应的接口电路,并对等精度算法和设计思路在ALTERAQUARTUS9.0的环境下进行了仿真,在实验电路上进行了测试。
主要目的在于研究出一款高性能的基于FPGA的伺服电机接口模块。
关键词:
伺服控制平台FPGA等精度算法电机接口模块
THEDESIGNOFFPGA+MCUBASEDSERVO
MOTORCONTROLLER
ABSTRACT
Thisfirstgeneral-purposeofthisdissertationistheoverallprojectdesignandplanningfortheservocontrolplatform,andalsoitanalyzedthecorealgorithmsfortheFPGAbasedinterfacedesign.Givenaappropriateinterfacecircuit,AnequalprecisionalgorithmsdesignedwithFPGAisintroduced.ItadoptsVerilogHardware
DescriptionLanguagetoimplementinservomotorinterfacemodules,andaddspulsewidthmeasurementonthebaseoftraditionalfrequencymeasurement,andtheHDLwassimulatedintheALTERAQUARTUS9.0environment.Intendedtodesignahigh-performanceFPGA-basedservomotorinterfacemodule.
Keywords:
servocontrolplatformFPGAequalprecisionalgorithmservomotorinterfacemodule
摘要
ABSTRACT
1引言……………………………………………………………………1
1.1项目背景……………………………………………………………1
1.2研究意义……………………………………………………………1
2系统组成………………………………………………………………2
2.1运动控制器…………………………………………………………2
2.1.1MCU功能…………………………………………………………2
2.1.2FPGA功能…………………………………………………………2
2.1.3光电隔离模块功能………………………………………………2
2.2伺服驱动器…………………………………………………………2
2.2.1常用伺服驱动器简介………………………………………………2
2.3伺服电机………………………………………………………………3
2.3.1伺服电机简介………………………………………………………3
2.3.2伺服电机工作原理…………………………………………………4
2.3.3伺服电机的控制……………………………………………………4
2.4HMI……………………………………………………………………4
2.5控制器上位机部分……………………………………………………4
2.5.1上位机功能…………………………………………………………4
2.6以太网模块……………………………………………………………4
2.6.1以太网模块功能……………………………………………………4
3FPGA接口模块详细介绍………………………………………………5
3.1实现功能………………………………………………………………5
3.1.1速度控制模块……………………………………………………5
3.1.2位置控制模块……………………………………………………5
3.1.3CPU接口模块…………………………………………………………6
3.2速度与位置检测算法讨论………………………………………………6
3.2.1M法……………………………………………………………………6
3.2.2T法…………………………………………………………………6
3.2.3等精度测频算法……………………………………………………6
3.2.4高精度数字测速算法………………………………………………9
3.3速度与位置控制算法…………………………………………………20
3.4硬件部分…………………………………………………………………14
3.4.1ALTERAFPGA介绍……………………………………………………14
3.4.2FPGA硬件部分………………………………………………………14
3.4.2.1电源及晶振部分…………………………………………………14
3.4.2.2内存及FLASH……………………………………………………15
3.4.2.3主芯片……………………………………………………………15
3.4.2.4JTAG下载…………………………………………………………16
3.4.3输入输出光电隔离…………………………………………………17
3.4.3.1输入光电隔离模块………………………………………………17
3.4.3.2输出光电隔离模块………………………………………………18
3.5软件部分………………………………………………………………18
3.5.1verilogHDL编程语言介绍………………………………………18
3.5.2输入输出端子定义……………………………………………………18
3.5.3寄存器定义…………………………………………………………19
3.5.4FPGA架构………………………………………………………………20
3.5.5主要模块介绍……………………………………………………20
4仿真实验结果……………………………………………………………22
5应用案例…………………………………………………………………24
6结论………………………………………………………………………26
谢辞
参考文献
附录
1引言
1.1项目背景
此项目为待开发项目《基于RABBIT5700+FPGA的伺服电机控制器》的前期规划方案,目的在于帮助研发人员了解伺服电机控制器的有关知识和给出基于FPGA的接口模块的设计概要说明。
1.2研究意义
目前国内主力通用的伺服电机生产厂商主要有:
众为兴、雷赛、固高、中达电通、摩森达等,趋于研发成本的考虑,大多数厂家在电机编码器接口芯片选择上,倾向于采用集成芯片如MX314,PCL6045等,但是随着控制要求的如见复杂,在一个ASIC上实现多轴的控制越来越吃力,这就刺激着我们回归基于MCU+FPGA的架构,把所有的多轴运算全都放到MCU里。
本次设计着重对接口FPGA的架构和主要检测算法进行讨论,对接口FPGA的设计,具有一定参考意义。
2系统组成
2.1运动控制器
主要实现对增量编码器信号的采集,以及对电机驱动器的控制,通过上位机发送过来的指令,在控制器里进行插补运算,再通过FPGA接口模块传递给驱动器。
2.1.1MCU功能
a.通过自身的以太网模块,接受上位控制机的指令
b.多轴插补运算
c.通过与FPGA的借口,控制FPGA发出控制脉冲
2.1.2FPGA功能
a.采集增量编码器的信号
b.通过与MCU的接口,把速度,位置等信息传给MCU
c.通过与MCU的接口,接受MCU命令,实现单轴操作。
2.1.3光电隔离模块构成
实现输入输出光电隔离
2.2伺服驱动器
应用于伺服电机的专用伺服驱动单元被称为伺服驱动器。
2.2.1常用伺服驱动器简介
SIMODRIVE611U的简介:
西门子SIMODRIVE611是一种模块化晶体管脉冲变频器,可以实现多轴及组合驱动的解决方案。
基于其模块化的设计,使用SIMODRIVE可以根据具体的驱动任务来制定灵活多变的解决方案。
驱动器的各模块从功能上分为6个部分:
1)电源模块
2)变频模块
3)反馈模块
4)监控模块
5)功率模块
6)控制模块
611U伺服驱动器各模块组成示意图
2.3伺服电机
2.3.1伺服电机简介
一个伺服电机内部一般包括一个直流电机、一组变速齿轮组、一个反馈可调电位器以及一块电子控制板。
其中,高速转动的电机提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出。
齿轮组的变速比越大,伺服电机的输出扭力也越大,也就是说越能承受更高的负载,但转动的速度也相应越低。
2.3.2伺服电机工作原理
伺服电机是一个典型闭环反馈系统,减速齿轮组由电机驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该电位器把转角坐标转换为一比例电压反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动电机正向或反向地转动,使齿轮组的输出位置与期望值相符,令纠正脉冲趋于为0,从而达到使伺服电机精确定位的目的。
2.3.3伺服电机的控制
标准的伺服电机有三条控制线,分别为电源线、地线及控制线。
电源线与地线用于提供内部的电机及控制线路所需的能源,电压通常介于4V-6V之间,该电源应尽可能与处理系统的电源隔离(因为伺服电机会产生噪音)。
甚至小伺服电机在重负载时也会拉低放大器的电压,所以整个系统的电源供应的比例必须合理。
输入一个周期性的正向脉冲信号,这个周期性脉冲信号的高电平时间通常在1ms到2ms之间,而低电平时间应在5ms到20ms之间。
2.4HMI
远程显示控制器上位机的操作界面,实现交互控制。
2.5控制器上位机部分
2.5.1上位机功能
a.参数配置
b.逻辑控制
c.运动控制
d实时通信
e.绘制实时曲线等功能
2.6以太网模块
2.6.1以太网模块功能
完成系统数据的转发通讯工作与运动控制平台部分之间通过RT-TCP/IP协议进行通讯,而与伺服结构模块之间通过西门子标准总线背板总线进行通讯,通讯的数据主要包括系统的参数配置数据、实时运行数据和计算输出控制数据。
3FPGA模块详细介绍
3.1实现功能
3.1.1速度控制
a.方向检测
b.速度检测
c.速度设定
初始
预置
加减速度点设定
实时改变
d.加速减速方式规划
线型
S型
e.脉冲发生
3.1.2位置控制
a.方向检测
b位置检测
c.绝对位置设定
初始
预置
实时改变
短距离运动优化
d.相对位置设定
初始
预置
实时改变
短距离运动优化
e.脉冲发生
3.1.3CPU接口模块
可实现与16位8086、16位H8、16位6800的标准接口。
3.2速度与位置检测算法讨论
全数字交流伺服系统广泛采用增量式光栅编码器作为位置和速度传感器,编码器分辨率直接影响伺服系统的控制精度,为此,高性能伺服系统往往选用高分辨率或者对编码器信号进行倍频细分等,这样不可避免的增加了反馈环节的成本和复杂性。
因而多数通用私服系统往往采用分辨率适中的编码器以寻求性能与成本的平衡,然而有限的分辨率就成为保证和提高伺服系统性能的主要瓶颈。
幸运的是增量光栅编码器的反馈脉冲信号中不仅包含景区的位置信息,也包含着丰富的时间信息,妥善利用这一特征可以保证和提高全数字交流伺服系统的速度以及位置分辨率,以提高伺服控制性能。
以下将着重讨论4种速度采集的算法,M法、T法为常用方法,但是往往只能在其频率段内达到很好的效果,等精度方法是现在比较通用的高效算法。
而高精度数字测速算法主要依靠于32位的DSP进行快速的数据运算,因以后想再用FPGA板载NIOSII软核CPU,固介绍一下这种算法。
3.2.1M法
M法是直接计取给定采样周期内的反馈脉冲数来测量速度,其特点是高速时测速精度高,低速时测速精度低,而如果在低速时把采样周期加长,那么在会对系统实时性有影响。
确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:
fx=Nx/Tw
3.2.2.T法
T法是通过测量两个相邻反馈脉冲的间隔时间来测量速度,其特点是低速时测速精度高,高速时测速精度低,恰恰与M法相反,如果想提高其在高速时的精度,必须大大提高系统时钟频率,实现比较麻烦,成本高。
测周期法需要有标准信号的频率fs,在待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率为:
fx=fs/Ns
3.2.3等精度测频算法
等精度测频算法是在直接测频方法的基础上发展起来的。
它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,测除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量。
系统时钟
待测信号
预置闸门
实际闸门
⏹在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。
⏹首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。
⏹然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。
可以看出,实际闸门时间τ与预置闸门时间τ1并不严格相等,但差值不超过被测信号的一个周期
⏹设在一次实际闸门时间τ中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。
⏹标准信号的频率为fs,则被测信号的频率为
(1)
⏹由式
(1)可知,若忽略标频fs的误差,则等精度测频可能产生的相对误差为
⏹δ=(|fxc-fx|/fxe)×100%
(2)
⏹其中fxe为被测信号频率的准确值。
⏹在测量中,由于fx计数的起停时间都是由该信号的上升测触发的,在闸门时间τ内对fx的计数Nx无误差(τ=NxTx);
⏹对fs的计数Ns最多相差一个数的误差,即|ΔNs|≤1,其测量频率为
⏹fxe=[Nx/(Ns+ΔNs)]/fs(3)
⏹将式
(1)和(3)代入式
(2),并整理得:
⏹δ=|ΔNs|/Ns≤1/Ns=1/(τ·fs)
⏹δ=|ΔNs|/Ns≤1/Ns=1/(τ·fs)
⏹由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量。
⏹闸门时间越长,标准频率越高,测频的相对误差就越小。
⏹标准频率可由稳定度好、精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度。
⏹CNT1和CNT2是两个可控计数器,标准频率(fs)信号从CNT1的时钟输入端CLK输入;经整形后的被测信号(fx)从CNT2的时钟输入端CLK输入。
⏹每个计数器中的CEN输入端为时钟使能端控制时钟输入。
⏹当预置门信号为高电平(预置时间开始)时,被测信号的上升沿通过D触发器的输出端,同时启动两个计数器计数;同样,当预置门信号为低电平(预置时间结束)时,被测信号的上升沿通过D触发器的输出端,同时关闭计数器的计数。
⏹系统由分频器、计数器1、计数器2、D触发器等组成。
⏹分频器出来的信号作为等精度测频原理的预置闸门信号。
⏹其中D触发器,计数器2和计数器1的作用与前2页图中所示相同。
⏹运算模块就是完成公式
(1)的运算。
⏹复位主要对分频、计数器1和计数器2进行清零操作。
3.2.4高精度数字测速算法
M/T法是在大致相等的采样间隔内,计取Cm个反馈脉冲,并同时计取这Cm个反馈脉冲间隔内插入的高频时标信号数Ct,以测量速度。
其速度公式为:
V=kRf0Cm/Ct
(1)
其中:
kR为反馈信号脉冲当量,f0为高频时标频率,Cm为采样周期内计取的反馈脉冲数,Ct为Cm个反馈脉冲间隔内插入的高频时标信号数。
M/T法结合了M法和T法优点,同时也克服了各自的缺点,可以在整个测速范围内保持测速精度的一致性。
因此M/T法最适于构建针对增量式光栅编码器反馈脉冲信号的高精度数字测速算法。
但是,经典的M/T也存在不足之处,即采样时机的不确定性给定周期采样的数字伺服控制系统带来很大的不方便,为此又出现了变M/T法、双缓冲法等方法以进一步改善M/T法的性能和实用性。
本算法以改进的M/T法为基础,利用32位浮点运算的计算能力,充分发掘增量式光栅编码器反馈脉冲信号的位置信息和时间信息,以构建高精度数字测速及位置检测算法,提高数字交流伺服系统的反馈分辨率。
基于32位浮点运算和改进的M/T法的高精度数字测速算法的硬件原理参见图1,主要由32位浮点型数字信号处理器(DsP)和改进的M/T法测速逻辑电路组成。
改进的M/T法测速逻辑电路由反馈脉冲计数器及其数据锁存器Cm,以及高频时标计数器及其两级数据锁存器Cf和Ct构成,用于对反馈脉冲信号及高频时标信号进行计数和定周期采样;其中锁存器Cm和Ct由定周期采样信号触发,锁存器Cf由反馈脉冲信号fp触发。
32位浮点DsP则用于对上述采样值进行实时处理和运算,实现高精度数字测速算法。
图1
高精度数字测速算法的相关时序如图2所示。
由于反馈脉冲信号fp的边沿和定时采样周期T的边沿在时间上不可能总是保持一致,因此任一采样周期的实际采样点Tk与该周期的固定采样点Tn之间必然存在一个不确定的时间差△Tn,其大小随反馈脉冲的变化而变化。
图1中改进的M/T法的测速逻辑可以确保实际采样点Tk总是领先于定周期采样点Tn,因而可以保证从确定的采样点获得可靠的数据,这样就解决了传统M/T法由于实际采样点Tk+1滞后于定周期采样点Tn的时间△Tn不确定所带来的采样时机不确定的问题。
高精度数字测速算法定周期采样计数序列Cm(n)和CT(n),通过相应的差分处理获得当前实际采样间隔内的反馈脉冲增量值Cm和高频时标增量值Ct:
然后按式
(1)以32位浮点运算获得高精度速度信息,这样得到的速度是当前实际采样间隔内的平均速度:
V=kRf0Cm/Ct
在实际采样点TK处高频时标信号f0的边沿不可能总是和反馈脉冲信号fp的边沿保持一致,因而会产生±1个高频时标当量的计数误差,从而影响高精度数字测速算法的测速精度。
因此高精度数字测速算法的测速相对误差为:
当被测对象的速度稳定,且Cm个反馈脉冲所经历的时间恰好等于采样周期时,CtO=f0T,此时高精度数字测速算法的相对误差为恒定值,与被测速度和反馈脉冲分辨率无关,即
然而多数情况下被测对象的速度都不能满足上述关系,Ct会在一个有限的范围内发生变化。
Ct变大时,相对误差εv减小;Ct变小时,相对误差εv扩大;但是无论如何Ct都不会小于Ct0的50%,因此高精度数字测速算法在整个测速范围内的相对误差不会大于2εv0
分析式
(1)可知,计数值Cm正比于被测速度,当反馈脉冲建个大于一个采样周期时,会造成Cm=0及测速值为。
因此,Cm的最小有效值等于1,也就是说Cm=1对应着高精度数字测速算法的测速下限Vmin;另一方面,Cm的最大有效值对应着被测速度的最大值。
于是高精度测速算法的测速范围D恰好等于Cm的最大有效值和最小有效值之比;另外考虑到大多数情况下Ct≈f0T,因而可以推到出以下式:
分析式(3)(4)(5)可以得到有关参数对高精度数字测速算法性能的影响,见表1
可见,反馈脉冲分辨率和采样周期的改变都可以影响高精度数字测速算法的测速范围和测速下限,但是提高反馈分辨率就意味着增加的成本,而延长采样周期就等于降低速度反馈环节的响应特性。
为解决上述矛盾,一方面,可以保持高速段和长速段的采样频率不变,以保证较高的速度环频特性;另一方面,根据低速段速度的具体情况,有限地自动倍增低速段的有效采样周期,一伙的更宽的测速范围和更平稳的低速性能。
这一措施的采用有效地提高了高精度数字测速算法的性能,同时又兼顾了反馈环节的成本。
因此,高精度数字测速算法可以依靠有限的反馈分辨率来保证和提高速度反馈环节的、频响测速范围以及低速平稳性。
由增量式光栅编码器测量被测对象位置信息的传统方法是将反馈脉冲的个数累加起来作为位置信息。
但是用这种方法获取的位置信息的分辨率取决与反馈信号的脉冲当量,就是说,测得的位置信息只能是反馈脉冲当量的整数倍,因而限制了这种方法的精度。
分析增量式光栅编码器反馈脉冲信号在时间和空间两个方面的意义和联系可知,在空间上,反馈脉冲信号是对被测对象所处量化位置区间的反应;在时间上,则是对被测对象到达人意量化位置区间的发生时刻的反应。
也就是说,利用增量式光栅编码器的反馈脉冲信号既可以测量被测对象在确定的时间到达了什么位置,也可以测量被测对象到达确定位置时的准确时间。
因而增量式光栅编码器的反馈脉冲信号具有对被测对象的运动状态进行动态连续测量的能力。
利用这一特性可以构造出一种高精度的动态位置检测算法。
、
参考图2可知,由于反馈脉冲信号fp的边沿和定时采样周期T的边沿在时间上不可能总是保持一致,所以任意采样周期的采样点Tk与该周期的固定采样点Tn之间必然存在一个不确定的时间差△Tn。
正式这个是检查中包含着比一个脉冲当量的量化位置分辨率更为精确的位置信息,因此高精度动态位置检测算法的关键就是获取和处理这一时间差△Tn,并从中获得高精度的动态位置信息。
与高精度数字测速算法类似的是,高精度动态位置检测算法不仅关注已经发生的反馈脉冲的数量,也关注反馈脉冲的发生时刻,因此其软硬件原理也基本类似,部分软硬件功能可以共用。
再图1所示的高精度数字测速算法中改进的M/T法测速逻辑电路的基础上,再增加一个由定周期采样信号T触发的高频时标计数值锁存器CT(图中阴影所示部分),就构成了高精度动态位置检测算法的硬件基础。
高精度动态位置检测算法的时序同样可以参考图2,图中的阴影部分表示由定周期采样信号T触发的高频时标计数值的锁存值
。
高精度动态位置检测算法以定周期T采样技术序列Ct(n)和
,然后将通过相应的处理获得当前有效采样周期采样点Tn和实际采样点之间的计数差
与时间差△Tn
另外,从高精度数字测速算法中可以得到当前实际采样间隔内的反馈脉冲数增量值Cm以及被测对象的平均速度Vn;由Vn和△Tn相乘就可以计算出时间差△Tn中所包含的高精度动态位置信息,因此当前有效采样周期内的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于FPGA MCU的伺服电机控制器设计 基于 FPGA MCU 伺服 电机 控制器 设计