DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 116|回复: 0
打印 上一主题 下一主题

基于DSP的NURBS曲线插补控制

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 14:26:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
摘要:本文介绍了一种基于TMS320LF2407a?DSP芯片的运动控制卡的设计方法及NURbS插补的概念,提出了实现NURbS曲线插补的一种实时方法,采用基于参数递推预估与校正的参数曲线插补算法,有效地简化了插补过程中的轨迹计算,避免了对曲线的直接求导和曲率半径等复杂计算,该算法显著减小了插补计算时间,从而能够适应运动控制系统的高速高精度要求。
关键词:DSP??运动控制??NURbS插补


1 引言
运动控制卡是一种基于工业PC机、用于各种运动控制场合(包括位移、速度、加速度等)的上位控制单元,而插补模块是运动控制单元不可缺少的。本文所设计的基于PCI总线的DSP运动控制卡,可完成数控系统中实时性要求较高的插补、位置控制、实现数控系统中多轴联动的插补计算、位置控制等功能。传统的插补器一般都具有直线和圆弧的插补功能,使用不同算法处理直线、圆弧、螺旋线运动。使用这种方法并非所有的控制特征被编程到每种插补类型,而添加一种新的插补类型需要大幅度改动软件结构。而该DSP运动控制卡的插补器采用基于非均匀有理b样条NURbS的通用插补器,把所有编程的插补类型转换为公共的数学表达式,使所有的功能不依赖于编程类型。通用插补器是一种能准确表达曲率的插补模型,能够精确表达出各种曲线、曲面的轨迹。基于NURbS原理的通用插补器模型包含任何曲线、曲面,所有传统的插补类型(直线、圆弧)也不例外,克服了传统插补器的缺点,提高了控制精度。
2 运动控制卡的硬件设计
运动控制卡的硬件设计基于PCI总线规范,采用DSP和FPGA的结合,再配以其它辅助电路,可适用于各种PC机及其兼容机系统,其硬件方框图如图1所示,以下分别介绍图1中各芯片功能及其在该硬件电路中的作用。
核心处理器DSP:TMS320LF2407a是TI公司专为电机控制和其他控制系统设计的DSP[1]。主要完成位置速度PID控制,插补迭代运算,开关量输入和输出以及程序和数据存储和上下机的通信。
模拟量控制电路:将速度信号数字量用数据线接4路12位数模转换芯片DAC7625,将数字信号转换为-10~10V的模拟信号,输出接模拟信号输入的电机伺服驱动模块。
反馈电路:在大多数运动系统中,采用光电编码器作为闭环控制的反馈元件。光电编码器输出的是两组相位相差90°的脉冲信号A和B, 先将信号差分整形以消除干扰信号的影响,然后对A、b两相信号进行四倍频,同时进行鉴相确定出DIR,根据DIR对四倍频的脉冲进行加计数或减计数。计数器和位置捕捉寄存器均为32位,DSP可对其进行读取或清零。
通讯电路:通过PCI接口从模式3.3V芯片PLX9030和双口RAM芯片70V24与PC机的PCI总线相连,可以进行高速数据传输。其中双口RAM70V24作为上下机交换数据公共缓冲区。70V24芯片具有8个异步仲裁标志位,更好地保证双方对数据的准确操作。另外,使用FPGA芯片FLEX10KA来实现PLX9030对双口RAM70V24的时序转换。
开关量电路:包括通用16/16通用I/O点、能使4个电机输出,4个轴左右的极限输入和原点中断输入。




U=[u0,u1,…,un+k+1]称为节点矢量。以三次NURbS曲线为例,即k=3时,第i段曲线可以写成下列矩阵形式:
??????? 其中 ?,




由于控制顶点及权因子均已知,则Y0、Y1、Y2、Y3、Y0’、Y1’、Y2’、Y3’与参数无关,可在插补计算之前预先算出,插补计算时只需计算插补变化量Δt,从而大大加快了计算速度。
在参数空间,曲线上插补点的参数可由二阶泰勒级数表示为:
??????? ti+1= ti+T·t`+(T2/2)·t(2) +O(T2 )????? (3)?
其中,T为插补周期,t`,t(2)分别为参数对t的一阶和二阶导数。若以一阶差分代替微分,将



代入公式(3),整理可得参数快速递推公式,用以预估新插补点的参数:


i+1=2.5ti-2ti-1+0.5ti-2? ????????????? (4)
?




?

基于上述算法可进一步推导NURbS插补的误差,加减速控制等算法,从而完善运动控制卡的NURbS插补运算功能。




图三 插补子程序框图
插补子程序流程如图三所示,具体插补过程包括以下几个步骤:
1) 设定参数初始值,在选取t2点时,需要对插补步长进行预算,在满足弓高误差、进给速度、进给加速度的约束条件时才可采用、否则需进行校正。
2) 预估插补参数,得出预估参数后需取t的整数部分来确定取哪一段曲线的Y系数数组,这里0≤ti≤n,若ti超出n则说明该曲线已到尽头 这时插补参数应取为n,取第n-1段曲线的Y参数数组,实际插补参数取值为1。???????????????????????????????????????????
3) 根据预估插补参数计算预估插补点Fi+1,预估插补步长Li。
4) 求期望步长,需要先分别根据弓高误差、进给速度、进给加速度的约束条件算出各自步长,然后取其最小值即为期望步长。
5) 根据希望步长计算插补偏差,判断插补偏差是否符合精度要求,若符合则该插补点即为所求,否则需对其进行校正。???????????????????????????????????????
6) 确定符合要求的插补参数后,计算新插补点,并算出各轴增量。
当运动控制系统的精度要求较高时,仅根据进给速度及插补周期生成插补轨迹是不够的, 需要进一步对步长进行调整,方法是在插补中实时监控插补弓高误差的大小,当误差在允许误差范围内时,仍按瞬时进给速度计算进给步长Li,若误差超出了允许范围,则按允许误差求取约束插补步长。此外,为了获得更好的速度稳定性,应直接以弦长速度为控制目标,为了满足式(2) 的新插补点Fi+1,本文采用基于参数递推预估与校正的参数曲线插补算法,它不仅计算速度快,而且可避免其他插补算法所需的曲线求导等复杂计算。
4 结束语
NURbS曲线插补具有极大的优越性,程序量小,实时性高[3],但是由于NURbS

曲线所具有的有理形式分段参数方程使曲线的轨迹及其导数、曲率等计算异常繁琐,因而需要通过适当的插补预处理,运用基于预估与校正的插补策略以及合理的近似计算等措施,有效地简化了插补过程中的轨迹计算,避免了对曲线的直接求导和曲率半径等复杂计算,确保了插补算法的良好实时性。
根据上述算法,在上位机用VC++实现上层控制,通过PCI总线和双口RAM芯片与DSP交换数据,用DSP语言实现下层插补算法,利用DSP的高速运算能力和和实时信号处理能力,在芯片粘片机的运用中取得了良好的效果,使该运动控制卡能够满足运动控制系统中高速高精度的要求。
参考文献
1? 刘和平等,TMS320LF240x DSP结构、原理及应用,北京:北京航空航天大学出版社 2002
2? 叶伯生等,计算机数控系统原理、编程与操作,武汉:华中理工大学出版社,1999
3? 赵鸿,NURbS曲线插补技术的应用,制造技术与机床,1999
4? 施法中,计算机辅助几何设计与非均匀有理B样条,北京:高等教育出版社2001
5? Cheng M Y,Tsai M C,Kuo J C,Real time nurbs command generators for CNC servo controllers[J], Machining tools & Manufacture,2002,42:801-813
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-29 12:24 , 耗时 0.090882 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表