您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 基于dsp的数控系统两级插补的设计与实现
基于DSP的数控系统两级插补的设计与实现徐文斌刘其洪(华南理工大学机械与汽车工程学院广州510640)摘要:本文阐述了DSP在数控加工领域中的应用,介绍了两级插补算法的原理及实现过程,探讨了两级插补算法的误差问题,并在数控实验平台上进行了实验。结果表明,采用两级插补算法能使数控系统缩短响应时间,提高加工精度和工作效率。关键词:两级插补;DSP;数控系统;截断误差中图分类号:TP302文献标识码:ADesignandImplementationoftwotieredinterpolationonDSP-basedCNCsystemXuWenbin,LiuQihong(SchoolofMechanical&AutomotiveEngineering,SouthChinaUniversityofTechnology,Guangzhou510640)Abstract:TheapplicationofCNCsystembasedonDSPandtheprincipleandrealizationoftwotieredinterpolationalgorithmareintroducedinthispaper,theissueofthetruncationerrorsisdiscussed,andtheexperimentsinCNCplatformarecarriedout.TheresultsshowthattheuseoftwotieredinterpolationalgorithmintheCNCsystemcanshortenresponsetime,improveprocessingaccuracyandefficiencytoachievetheobjective.Keywords:DSP;twotieredinterpolation;CNCsystem;truncationerror0引言数控机床是当代机械制造业的重要设备,它对提高传统制造业的装备水平具有重要意义[1]。在数控技术的发展过程中,插补功能的实现是一个重要的技术问题。因为一个好的插补算法,可以提高机床的加工精度[2]。而数字信号处理器(DigitalSignalProcessor,简称DSP)具有高效的运算能力、良好的开发环境支持,在数控系统中获得了成功的应用[3-5]。本文在研究了国内外,中、高档的数控产品的技术现状及未来的发展方向的基础上,提出了DSP在数控系统中的两级插补实现方案。1DSP完成插补的原理所谓插补就是根据给定的数学函数,诸如线性函数、圆函数或高次函数,在理想的轨迹或轮廓上的已知点之间,确定一些中间点的一种方法。而对轮廓加工而言,插补的任务就是在一条已知起点和终点的曲线上进行“数据点的密化”工作。新一代的32位定点DSP芯片,每秒执行1.5亿次指令(150MIPS),具有单周期32位×32位的乘积累加操作(MAC)功能,采样频率达12.5MIPS的12位16路A/D转换器,2个面向电机控制的事件管理器。这些功能使得DSP芯片能够应用在高速电机控制领域。DSP利用四个通用定时器同时输出四路异步PWM脉冲信号。其中DSP内部定时器被设定为连续增计数模式,即定时器根据定时器时钟输入进行增计数直到定时器的值与周期寄存器的值相等,在周期匹配之后定时器的计数值复位为0。通过对周期寄存器的设置,可以设定脉冲产生频率。通过对比较寄存器的设置,可以设定脉冲占空比。以定时器控制来产生有序脉冲,以GPIO(general-purposeI/Oport通用输入输出口)来输出方向信号,实现电机控制,完成插补功能。2基于事件管理器的两级插补设计DSP的实时性和强大运算能力,为两级插补方案提供可能。前级插补为粗插补,采用数据采样法,计算一个采样周期内分配到各个坐标轴上的实际位移量。后级插补为精插补,主要是对定时器参数的设置。两级插补可以缩短插补周期,增加插补周期内的最大数据量(脉冲当量)。而且可以大大减少由插补算法的近似逼近造成的轮廓轨迹误差,有利于提高插补运算的输出精度,为实现高精度加工创造条件。2.1粗插补及误差处理不失一般性,以三轴直线插补为例。设线段起点坐标为(0,0,0),终点坐标为(Xe,Ye,Ze),该直线段长度为e2e2e2ZYX++=L,稳定进给速度为Fe,插补周期为T,做正交投影,可求得一个采样周期内,各坐标轴上的对应位移量X∆Y∆Z∆为[6]:L**FKeeKT=∆(K=X,Y,Z)(1)上式有除法运算,必然会带来小数位。若将插补缓冲区设为int型(2字节),占用内存空间较小,却会带来截断误差。要最大限度地保持粗插补数据精度,应采用Q格式数据。DSP2812支持IQ格式,即32位(4字节)Q格式数据。可以在主程序文件中使用#includeIQmathLib.h,同时将“IQmathLib”加入工程的Libraries中。定义插补点的数据类型如下:structPoint{//插补点的数据格式_iq8qX;//X轴坐标Q值表示_iq8qY;//Y轴坐标Q值表示_iq8qZ;//Z轴坐标Q值表示};_iq8表示定义的Q格式数据具有8位(1字节)二进制的小数位,24位(3字节)二进制的整数位,所能表示的数据范围在[-8388608~8388607.996093750]。由于Q格式能表示的数据精度和数据长度是对立的,若要表示的数据精度越高,则Q值越大,相应的,能表示的整数位就越少。综合考虑插补数据长度和精度要求,选取Q8格式。定义缓冲区数据如下:externstructPointinter[256];2.2精插补及截断误差分析在DSP中,定时器的周期寄存器只能接受整型值,而实际插补中周期进给量并非恰好转换为寄存器值。设δ为脉冲当量,T为插补周期,理想位移值为K∆,定时器时钟频率为fclk,则理想周期寄存器值:TfDclkpk**Kδ∆=(2)实际周期寄存器值D'pk为整型,即对Dpk取整,D'pk=int(Dpk),因而将产生截断误差。本文提出的精插补就是要把定时器产生的截断误差累加,并进行相应的处理。设实际位移值为'K∆。那么,由于寄存器自身特性造成的截断误差为:pkpkpkpkclkDDDDTfKKe'''K)(**−=∆−∆=δ(3)2.3插补缓冲区设计对于一般的数控系统设计,均采用异步插补的方式。所谓异步插补,即插补程序顺序执行,不断将当前计算出的插补数据发往插补缓冲区[7]。同时,位控程序以插补周期定时中断方式运行,读取插补缓冲区内数据,并将其转化为脉冲输出。将插补缓冲区设计为环形存储的FIFO(先进先出)数据结构。令rp和wp为FIFO的读写指针,此处设定缓冲区长度为256。初始时,FIFO没有存储数据,rp和wp重合。每当有一个插补数据存入时,wp加一;当读出一个插补数据时,rp加一。当rp或wp达到存储区的末尾时,使其回到开始端。写入数据时,应先比较rp和wp的值并判断FIFO是否已满。读出数据时,同样要比较rp和wp的值来判断FIFO是否已空。相应C语言编写的框架程序如下://写入数据for(;;){if(((wp+1)&0xff)!=rp)//FIFO未满{wp=(wp+1)&0xff;//修改wp指针}}//读出数据for(;;){if(rp!=wp)//FIFO未空{rp=(rp+1)&0xff;//修改rp指针}}2.4两级插补设计设稳定进给速度为Fe,则在插补周期为T时,则周期位移进给量为Fe*T。该组数据即为粗插补结果。对数据做进一步的精插补,产生控制脉冲。设机床脉冲当量为δ,脉冲发生器输出脉冲频率为fout,那么周期位移量与脉冲频率之间有如下关系:TfKout**K'δ=∆(K=X,Y,Z)(4)可求得各坐标轴对应周期寄存器值为TKfDclkpk**''δ∆=(K=X,Y,Z)(5)对精插补设立一个误差累加器S,对截断误差进行累加。由于截断误差ek应小于一个脉冲当量δ,所以可以利用S与δ之间的关系来选择插补的类型。在插补程序中对累加器S做检验,若没有超过,则选择粗插补;若超过一个脉冲当量,则本段插补采用精插补,同时将累加器清零。将(5)式计算出的周期寄存器值置入DSP定时器的周期寄存器中,定时器即可产生频率为fout的脉冲信号。其流程图如图1所示:3插补实验本实验操作系统为windowsXP,DSP开发工具为TI公司CC2.2DSP集成开发工具。实验仪器包括:工控机一台,三轴数控平台一个,TMS320C2812DSP一块,XDS510USB型DSP仿真器一个,E6B2-CWZ6C型编码器一个,此外还需要直流稳压电源以及示波器等辅助设备。其组成原理图如图2所示。在该系统中,利用本文提出的两级插补算法,实现数控平台的全部插补控制。插补周期为0.1ms,脉冲当量为0.001mm,每个插补周期输出的最大数据量为256个脉冲当量。实现了数控系统的高精度加工,提高了数控系统的工作效率。图1两级插补设计流程图Fig1Twotieredinterpolationdesignflowchart图2数控系统组成原理图Figure2CNCsystemcomponentsschematics4结论本文阐述了两级插补系统的实现原理,设计了两级插补算法,最后应用于数控实验平台上。实验结果表明,采用两级插补算法的数控系统,缩短了响应时间,提高了加工精度和工进入位控程序关闭三轴定时器FIFO为空读取FIFO赋值定时器误差累加器S=δkkδ∆=∆+clkpkfDTkδ=∆k∆不变clkpkfDTkδ=∆三轴设置完毕转向下轴定时器设置是是等待S清零SSe=+否是否否使能三轴定时器产生font脉冲信号作效率。本文设计的两级插补程序,具有跨平台性和开放性。目前,DSP两级插补应用于数控系统的产业化工作正在应用推广中。本文作者的创新点:提出了两级插补原理及算法,设计了两级插补程序,并利用DSP在数控设备上实现了全部控制,提高了加工精度,缩短了响应时间。参考文献[1]NewmanST,etal.StrategicadvantagesofinteroperabilityforglobalmanufacturingusingCNCtechnology[J].RobotComputIntegrManuf(2008),doi:10.1016/j.rcim.2008.03.002[2]R.A.Osornio-Riosetal.TheapplicationofreconfigurablelogictohighspeedCNCmillingmachinescontrollers[J].ControlEngineeringPractice16.(2008):674–684[3]RamseyHourani.MinimizingLeakageEnergywithModuloSchedulingforVLIWDSPProcessors[J].etal.,2008,inIFIPInternationalFederationforInformationProcessing,Volume271:111–120.[4]朱若寒.基于DSP信号采集系统设计与实现[J].微计算机信息.2008(3):201-203[5]魏立线.基于DSP的传感器信号采集处理系统设计[J].微计算机信息.2008(4):162-164[6]单忠臣.数控原理与应用[M].中央广播电视大学出版社.2005:105-124[7]左健民.基于软件硬化技术的数控系统插补器研制[J].数控机床世界.2008(3):146~148作者简介:徐文斌(1984-),男(汉族),福建莆田人,华南理工大学机械与汽车工程学院硕士研究生,研究方向为数字制造及计算机应用,Biography:XuWenbin(1984-),male(Hannationality),Fujianprovince,SchoolofMechanical&AutomotiveEngineering,SouthChinaUniversityofTechnolo
本文标题:基于dsp的数控系统两级插补的设计与实现
链接地址:https://www.777doc.com/doc-281468 .html