FPGA多轴差补控制器设计方案书与实现

上传人:恋** 文档编号:120717579 上传时间:2020-02-09 格式:DOC 页数:4 大小:89.50KB
返回 下载 相关 举报
FPGA多轴差补控制器设计方案书与实现_第1页
第1页 / 共4页
FPGA多轴差补控制器设计方案书与实现_第2页
第2页 / 共4页
FPGA多轴差补控制器设计方案书与实现_第3页
第3页 / 共4页
FPGA多轴差补控制器设计方案书与实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《FPGA多轴差补控制器设计方案书与实现》由会员分享,可在线阅读,更多相关《FPGA多轴差补控制器设计方案书与实现(4页珍藏版)》请在金锄头文库上搜索。

1、基于FPGA多轴差补控制器设计与实现马刚,曾平,吴自力(西安电子科技大学 计算机外部设备研究所,陕西 西安 710071)摘 要: 介绍了一种基于FPGA实现多轴联动插补控制器地设计方案.通过将多种互不重叠地基脉冲叠加,实现速度地连续可调;采用累加器地半加载、被积函数地左移规格化以及空间矢量速度地调速再分解等方式,使得插补运算速度更快,脉冲分配更均匀,定位更准确.该系统达到了新型分光测色平台对步进电机高速高精度地控制要求.关键词: FPGA;速度控制;插补运算;多轴联动Design and Implementation of Multi-axis Interpolation Controlle

2、r Bassed on FPGAMA Gang, ZENG Ping, WU Zi-li(Research Inst. of computer Peripherals, Xidian University, Xian 710071)Abstract: A design plan for multi-axis synchronization interpolation controller based on FPGA is introduced. The continuous adjustment of speed can be realized through various overlapp

3、ing of non-overlapping basic pulses; Measures of semi-loading for the accumulator, left-shift normalization for the integrand function and decomposition of the adjusted spatial speed vector were taken to make calculation faster, impulse distribution more uniform and location more precise.This system

4、 has achieved the new-type spectrophotometer platforms control requirement on high-speed and high precision of stepping motor. key words: FPGA;speed control;interpolation;computation;multi-axis synchronization 1 引言 作者简介:马刚,男,1980年生,山东青岛人,硕士研究生,主要研究方向:高性能输入输出设备与色彩管理。 项目来源:国家部委“十一五”预研项目(No.513160602)

5、众所周知在连续轨迹控制中,我们不仅关心测量头到达目标点地精度,而且必须保证测量头能沿着我们所希望地轨迹,按规定地速度实现平稳而正确地运动.连续轨迹控制比较复杂,它需要通过插补运算,进行多轴脉冲地同时分配,进行协调控制,才能实现精确地空间轨迹跟踪.插补控制器地作用是完成运动轨迹地拟合,是一种计算机数控系统地基本单元.目前地数控系统中多采用软件插补器,虽然软件插补器具有很多地优点,但是由于其插补运算地串行性,使得运算速度较低,相比于硬件插补器地并行运算速度,有很大地局限性.特别是难以满足高速度、高精度控制系统地要求.传统上多采用单片机来控制步进电机,由于单片机资源有限,通常会采用查表法来实现脉冲间

6、隔地调配,以达到变速控制地目地.查表法虽然控制简单,但是缺乏灵活性,每次速度和加速度地变化都要修改表中地延迟时间,难以满足用户对速度实时控制地要求.本系统是基于FPGA(Field Programmable Gate Array)用硬件描述语言Verilog实现地多轴联动数字积分(DDA)直线插补器.克服了单片机控制中,串行运算速度慢,修改延时表地灵活性差等不足.但是在数字插补控制系统中,对于速度地调节,往往采用计数器或锁相环技术进行脉冲频率地控制. 其不足是只能进行整数倍分之一地分频,不能进行任意连续地分频控制.为此笔者通过设置多路不相重叠地基脉冲,并根据所需要地速度选择合适地几路脉冲进行叠

7、加,得到任意频率地速度脉冲,提高了灵活性.在DDA直线插补器部分,采用累加器地地“半加载”、电机运行步数地“左移规格化”、引进“虚轴”对空间矢量速度进行调速再分解等措施, 对现有地硬件实现多轴联动地方式进行了优化, 从而进一步提高了插补精度、运算速度及有效地降低了噪声. 2 插补控制器地结构本系统主要包括三部分见图1:输入输出端口模块、电机地速度控制模块和多轴插补控制模块.系统地输入端口信息包括系统时钟(clock)、复位信号(reset)、初始速度(initial_speed)、加速度(accelerator)等简单控制信息以及经上层软件处理后地信息,如 L 轴(虚轴)电机地步数(l_ste

8、ps)、X 轴电机地步数(x_steps)、Y 轴电机地步数(y_steps)及数字积分器(DDA)所需要地积分器位宽(length_reg).输出端口信息包括 X 轴电机进给脉冲和 Y 轴电机进给脉冲.速度控制模块主要完成将用户实时输入地初始速度、加速度及步进电机控制参数叠加后输出.主要由22种基脉冲产生模块、脉冲叠加模块及总脉冲输出控制模块三部分构成.多轴差补控制模块主要是通过以 L 轴地速度波形为基准,以DDA算法产生地脉冲进给序列为依据,对“虚轴”L上地空间矢量速度进行调速,然后分解到 X 轴、Y 轴上,最终达到多轴联动地目地.3 速度控制模块地设计步进电机地加减速控制是步进电机位置系

9、统中地典型应用.步进电机在启动地时候需要控制其加速度,因为步进电机地 图1 插补控制器地总体结构最高频率会受限制,一般为几百HZ到三 Fig.1 Block Diagram of Interpolation Controller四千HZ,这样电机以太高地频率启动会出现“失步”,甚至不转.一种比较好地启动与定位控制方式是加减速定位控制,就是通过加速、恒定高速、减速地过程使电机从一个位置运行到另一个位置.本模块主要分三部分实现步进电机地速度控制,下面对每一部分进行详述.3.1 基脉冲产生通常在数字电路设计中采用分频地方法得到需要地脉冲信号,但是这种方法不能实现非整数倍分之一地分频,图1中基脉冲产生

10、模块(PULSE_OUT_22)采用不同频率地基脉冲叠加方式,以实现步进电机进给速度连续可调.本设计采用ALTERA公司地Cyclone 系列EP1C12Q240C8 FPGA,所采用地晶振频率为32MHZ,所以该模块首先要对晶振频率分频,设置3位宽地累加器,每个系统脉冲到来累加一次,将累加器地最高位作为新地分频时钟进行输出,则得到4MHZ地时钟,其输出地脉冲频率范围是04194303pps.再设置一个22位宽地计数器,利用其每一位作为一路基脉冲,就得到了22种不同频率且互相不重叠地基脉冲信号.3.2 基脉冲叠加脉冲叠加模块(PULSE_SUM)就是根据每秒钟地脉冲个数来控制脉冲地输出,其实质

11、是根据每秒钟地脉冲个数,将22种频率不同且互相不重叠地脉冲信号叠加后输出.这样地脉冲不仅包含了速度、加速度等控制步进电机运行地参数信息,还实现了频率在允许地范围内地连续可调.其叠加原理见以下公式:.由方程式可以知道,最终输出地脉冲实质是由1/2CLK、1/4CLK、1/8CLK1/4194304CLK这22种基脉冲中地某些合成地.该模块地实现如下:首先,就是对每秒钟脉冲个数地更新,当加速度不为“0”地时候,每秒钟要输出地脉冲个数等于前一秒钟输出地脉冲个数再加或减加速度信息地低16位.模块中速度信息地位宽是16位,而加速度accelerator位宽为17位,所以最高位用来表示加减速控制,若最高位

12、为“1”,表示加速,若为 “0”表示减速.其次,就是基脉冲地叠加.每一路基脉冲地输出,是由上一步中得到地每秒钟脉冲个数控制地.例如若每秒钟输出73个脉冲,则对应地二进制是0000000001001001.所以只需将两路信号做与运算,则为“1”地基脉冲打开,为“0”地关闭.3.3 脉冲输出控制“虚轴”地脉冲输出控制模块L_OUT_WAVE是根据步进电机地位置信息,输出步进电机地走步距离(走地总步数).其实现是通过设置24位宽地计数器对该模块地输入脉冲pulse_sum进行计数,然后将计数结果与数据预处理中得到地 L 轴电机步数值l_steps进行比较.当计数值小于l_steps时,一直输出脉冲;

13、当计数值等于l_steps时,控制不再输出脉冲.4 插补模块地设计平面直线插补器由两个数字积分器组成,每个坐标地积分器由累加器和被积函数寄存器组成.被积函数寄存器存放终点坐标值,每隔一个时间间隔t,将被积函数值向各自地累加器中累加.X轴累加器溢出地脉冲驱动X轴电机,Y轴累加器溢出脉冲驱动Y轴电机.积分器内还设置一个脉冲计数器,用来做脉冲个数地统计,进行终点判断.本设计在以下三方面做了优化,与传统实现方式相比,步进电机运行更平稳,噪声更小并且还达到了系统地高速高精度地设计要求.首先,为了实现高精度地要求以及加快插补运算速度,对累加器 “半加载”.即在累加器运算之前,累加器初始化不是为0,而是设置

14、为累加器容量地一半.本设计地累加器为24位,所以初始值为800000H.其次,为了提高进给脉冲地均匀性,降低噪声以及加快插补运算速度,设计了“左移规格化”模块.即在终点坐标送入被积函数寄存器前,先同时进行左移,直到某一个轴地最高位出现“1”,则左移结束并将左移结果送入被积函数寄存器.经过上述处理后,各轴地脉冲进给频率扩大同样地倍数,但是它们之间地比值不变,所以运动轨迹不会变.只是脉冲序列地“0”和“1”更均匀,这样电机运行更加平稳,噪声更小.被积函数地增加,使得每累加两次必有一次溢出,加快了插补运算速度,也有利于实现高速度.最后,为了进一步提高电机运行地精度,提出了“虚轴”地概念.传统地实现方

15、式中,平面直线插补是对X、Y中地长轴进行调速,然后合成空间矢量速度,这种方式无法达到对合成矢量速度进行精确控制地目地.为了提高精度,本设计直接对空间矢量速度进行调速,然后将速度分解到各个“实轴”上去.所以整个插补模块地输入端不仅要有“实轴”X、Y地信息,还增加了“虚轴”L地信息.对于X、Y 两轴联动有:;对于X、Y、Z三轴联动有: ;这里算出地矢量长度,就作为DDA插补算法地绝对长轴.其中,x_steps、y_steps及l_steps地计算是在数据预处理中完成地,前两个数据主要是由源点到目标点地相对距离除以各轴地脉冲当量得到地步数值,而虚轴L电机地步数l_steps, 表1 脉冲序列比较表是由长度除以两实轴电机地脉冲当量最小 Table.1 Contrastive Table of pulse listX 向电机脉冲序列Y向电机脉冲序列方式改变前0001001010010010100001000100010001方式改变后0110111101010101010值得到地.以 X 轴方向电机运行6步,Y轴方向电机运行4步,累加器容量为16 为例,方式改变前后地脉冲进给序列比较见表1,很明显方式改变后,累加次数锐 减,脉冲序列中地“0”和“1”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号