一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法

文档序号:6273082阅读:291来源:国知局
专利名称:一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法
技术领域
本发明涉及数控技术领域,尤其涉及一种基于ARM9嵌入式系统及FPGA(现场可编程门阵列)的NURBS (Non-Uniform Rational B-Splines,非均勻有理B样条)曲线分段插补方法。
背景技术
NURBS技术在CAD/CAM领域已经取得了比较成功的应用。在CAD/CAM软件中,零件自由曲面的设计常采用非均匀有理B样条(NURBS)表示,而在CNC领域的应用却相对滞后。传统的CNC系统只提供直线和圆弧插补功能,不能直接加工自由曲线曲面。因而,复杂型面零件(如模具、航空航天器模型、汽车模型等)的加工必须借助于CAD/CAM系统,将零件曲线、曲面轮廓离散成大量微段直线或圆弧来加工。这种加工方法存在多方面的局限性首先,为了获得较高加工精度,CAM系统需要生成更加密集的小直线和圆弧拟合的曲线段,就需要用更多的NC代码来描述,而且随着加工精度要求的提高,NC代码量会成几何倍数增长,这样的处理方式不仅加重了 CAD/CAM系统和CNC系统的传输负担,同时也占用了过多的CNC存储空间,因此,考虑·到加工时间和加工耗费,常规插补方式效率低而且不经济;其次,由于曲线是由小线段和圆弧拟合而成,会导致曲线在节点处的速度和加速度的不连续,这样会导致加工过程中的进给率波动过大,降低加工精度和表面质量;另外,还会存在频繁的加减速处理、二次插补精度丢失等问题,限制了数控加工精度和效率的进一步提高。

发明内容
本发明提供一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,解决传统CNC系统在加工复杂零件时需离散成大量微段直线或圆弧,导致加工精度差效率低等问题,实现由NURBS曲线描述的复杂工件直接加工技术。本发明一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,包括2个步骤I)粗插补从NC代码文件中提取NURBS曲线描述的工件信息,得到控制点集合{PJ、权因子集合{wj及指令速度F ;采用二阶泰勒展开近似法对NURBS曲线进行预插补,得到预插补点集合{(Ui, Vi, P,)},系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合Vm (Ui) = {v I V (Ui)〈F} u, e (ιζ , ιζ}系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点Cm (Ui) = IuiHiin (Vm (Ui))} , e ,《)以相邻速度特征点对NURBS曲线进行分段,得到分段曲线
Lffl= {(Cm (Ui), Cm+1(ui+1))}
采用自适应辛普森方法计算分段曲线长度,得到四元组{us,Vi,SJ表示的曲线段数据,该数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息;由ARM9嵌入式系统通过总线将曲线段数据写入到FPGA的FIFO队列中;
2)精插补
FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据 NURBS曲线定义式实时生成插补点坐标;
外围电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
所述的系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是
所述的小曲率半径区预插补点速度集合为
Vm (Ui) = {v I V (Ui)〈F} u, G (H': , H)
其中为第m个小曲线半径区起始参数;
采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点, 具体为
Stepl速度特征点初始化令特征点进给速度Vf=F,参数Uf=I ;
Step2插补点参数计算由参数Ui,进给速度V (Ui)根据二阶泰勒展开式计算参数
Step3敏感点判断根据圆弧近似插补误差模型计算弦C(Ui)C(Ui+1)的弓高误差 ERi,如果ERi大于最大弓高误差限制δ_,则动态调整进给速度V(Ui),此时C(Ui)为敏感点,执行St印4 ;如果ERi小于等于最大弓高误差限制δ_,当曲线扫描结束,执行St印5 ;否则,执行St印2 ;
St印4速度特征点检测如果Vf>Uf,则当前敏感点为新的速度特征点,令Vf=V(Ui), Uf=Ui,执行St印2 ;如果Vf ( Uf,预插补点C(Ui)即为小曲率半径区速度特征点,当曲线扫描结束,执行St印5 ;否则,继续检测下一个小曲率半径区速度特征点,执行St印I ;
St印5算法结束得到NURBS曲线速度特征点集合
Cm(Ui) = Iui I min (V(Ui))} 〃, e《"X)。
本发明具有如下优点
(I)采用实时性高的ARM9嵌入式系统和FPGA (现场可编程门阵列)控制技术,将 NURBS曲线的插补分为粗插补和精插补两个阶段,ARM9嵌入式系 统实现NURBS曲线的粗插补功能,FPGA实现NURBS分段曲线的精插补功能,解决了传统CNC在加工零件曲线、曲面轮廓需离散成大量微段直线或圆弧的问题,实现了 NURBS曲线描述的复杂曲面零件直接加工技术,在保证加工精度的同时,提高了加工效率。
(2)传统的NURBS曲线加减速处理时,只针对小曲率半径区进行加减速处理,容易形成速度尖角,产生加速度突变,而本发明在充分考虑NURBS曲线几何特征的基础上进行了分段处理,在精插补时对分段曲线的加减速处理不会形成速度尖角,使得速度过渡更加平滑。


图1为本发明的系统框架图2为本发明的分段预处理实现粗插补的流程图3为本发明中曲线段类型示意图4本发明S型曲线加减速各阶段加速度、速度、加加速度和位移的关系图表。
以下结合附图和具体实施例对本发明做进一步详述。
具体实施方式
如图1所示,本发明包括ARM9嵌入式系统以及经过总线与之连接的FPGA(现场可编程门阵列),该ARM9嵌入式系统在离线阶段对NURBS曲线进行分段预处理,完成粗插补功能,并将分段曲线数据写入到FPGA的FIFO队列中,FPGA根据插补周期,根据NURBS曲线的定义式计算各进给轴运动分量,完成精插补功能,并将脉冲插补值输出到电动机的信号控制端口,实现实时、准确的电动机伺服控制。
本发明一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,具体包括如下步骤
步骤1、如图2所示,由ARM9嵌入式系统在离线阶段根据NURBS曲线几何特性,对 NURBS曲线进行分段预处理,实现粗插补功能,然后ARM9嵌入式系统通过总线将分段曲线数据写入到FPGA的FIFO队列中
(I)用户选择NC代码文件,读取出NC加工代码,该NC加工代码包含控制点集合 {PJ、权因子集合{wj、节点矢量和指令速度F的NURBS曲线特征信息;
(2)采用二阶泰勒展开近似法对NURBS曲线进行预插补,将NURBS曲线参数u对时间t进行二阶泰勒展开,由当前插补点参数Ui及进给速度V (Ui)得到下一个插补点预插补点参数Ui+1 :
权利要求
1.一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,其特征在于包括2个步骤 I)粗插补 从NC代码文件中提取NURBS曲线描述的工件信息,得到控制点集合{PJ、权因子集合IwJ及指令速度F ; 采用二阶泰勒展开近似法对NURBS曲线进行预插补,得到预插补点集合{(Ui, Vi, P,)},系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合
2.根据权利要求1所述的一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,其特征在于系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是 所述的小曲率半径区预插补点速度集合为
全文摘要
本发明一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,采用ARM9嵌入式系统对NURBS曲线进行粗插补,完成对NURBS曲线的分段预处理,采用FPGA对分段曲线进行精插补,最后,外围电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制;实现了NURBS曲线描述的复杂曲面零件直接加工技术,在保证加工精度的同时,提高了加工效率。
文档编号G05B19/41GK103048953SQ20131000301
公开日2013年4月17日 申请日期2013年1月5日 优先权日2013年1月5日
发明者聂明星, 蒋新华, 陈兴武, 李光炀, 邵明, 陈青霞, 聂作先, 朱悦涵, 郑积仕, 王光耀 申请人:福建工程学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1