一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法转让专利

申请号 : CN201310003017.8

文献号 : CN103048953B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 聂明星蒋新华陈兴武李光炀邵明陈青霞聂作先朱悦涵郑积仕王光耀

申请人 : 福建工程学院

摘要 :

本发明一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,采用ARM9嵌入式系统对NURBS曲线进行粗插补,完成对NURBS曲线的分段预处理,采用FPGA对分段曲线进行精插补,最后,外围电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制;实现了NURBS曲线描述的复杂曲面零件直接加工技术,在保证加工精度的同时,提高了加工效率。

权利要求 :

1.一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,其特征在于包括2个步骤:

1)粗插补

从NC代码文件中提取NURBS曲线描述的工件信息,得到控制点集合{Pi}、权因子集合{wi}及指令速度F;

采用二阶泰勒展开近似法对NURBS曲线进行预插补,得到预插补点集合{(ui,vi,ρi)},系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合:插补误差模型为:

ki为曲线在参数ui处的曲率,有:

根据插补弓高误差和最大弓高误差限制关系,动态调整插补进给速度方程为:系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点:以相邻速度特征点对NURBS曲线进行分段,得到分段曲线:m m+1

Lm={(C(ui),C (ui+1))}

采用自适应辛普森方法计算分段曲线长度,得到四元组{us,ue,vi,Si}表示的曲线段数据,该数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息;由ARM9嵌入式系统通过总线将曲线段数据写入到FPGA的FIFO队列中;

2)精插补

FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标;

外围电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。

2.根据权利要求1所述的一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,其特征在于系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是:所述的小曲率半径区预插补点速度集合为:

其中: 为第m个小曲线半径区起始参数;

采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点,具体为:Step1速度特征点初始化:令特征点进给速度Vf=F,参数Uf=1;

Step2插补点参数计算:由参数ui,进给速度V(ui)根据二阶泰勒展开式计算参数ui+1;

Step3敏感点判断:根据圆弧近似插补误差模型计算弦C(ui)C(ui+1)的弓高误差ERi,如果ERi大于最大弓高误差限制δmax,则动态调整进给速度V(ui),此时C(ui)为敏感点,执行Step4;如果ERi小于等于最大弓高误差限制δmax,当曲线扫描结束,执行Step5;否则,执行Step2;

Step4速度特征点检测:如果Vf>Uf,则当前敏感点为新的速度特征点,令Vf=V(ui),Uf=ui,执行Step2;如果Vf≤Uf,预插补点C(ui)即为小曲率半径区速度特征点,当曲线扫描结束,执行Step5;否则,继续检测下一个小曲率半径区速度特征点,执行Step1;

Step5算法结束:得到NURBS曲线速度特征点集合

说明书 :

一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补

方法

技术领域

[0001] 本发明涉及数控技术领域,尤其涉及一种基于ARM9嵌入式系统及FPGA(现场可编程门阵列)的NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)曲线分段插补方法。

背景技术

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

发明内容

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

附图说明

[0030] 图1为本发明的系统框架图;
[0031] 图2为本发明的分段预处理实现粗插补的流程图;
[0032] 图3为本发明中曲线段类型示意图;
[0033] 图4本发明S型曲线加减速各阶段加速度、速度、加加速度和位移的关系图表。
[0034] 以下结合附图和具体实施例对本发明做进一步详述。

具体实施方式

[0035] 如图1所示,本发明包括ARM9嵌入式系统以及经过总线与之连接的FPGA(现场可编程门阵列),该ARM9嵌入式系统在离线阶段对NURBS曲线进行分段预处理,完成粗插补功能,并将分段曲线数据写入到FPGA的FIFO队列中,FPGA根据插补周期,根据NURBS曲线的定义式计算各进给轴运动分量,完成精插补功能,并将脉冲插补值输出到电动机的信号控制端口,实现实时、准确的电动机伺服控制。
[0036] 本发明一种基于ARM9嵌入式系统和FPGA的NURBS曲线分段插补方法,具体包括如下步骤:
[0037] 步骤1、如图2所示,由ARM9嵌入式系统在离线阶段根据NURBS曲线几何特性,对NURBS曲线进行分段预处理,实现粗插补功能,然后ARM9嵌入式系统通过总线将分段曲线数据写入到FPGA的FIFO队列中:
[0038] (1)用户选择NC代码文件,读取出NC加工代码,该NC加工代码包含控制点集合{Pi}、权因子集合{wi}、节点矢量和指令速度F的NURBS曲线特征信息;
[0039] (2)采用二阶泰勒展开近似法对NURBS曲线进行预插补,将NURBS曲线参数u对时间t进行二阶泰勒展开,由当前插补点参数ui及进给速度v(ui)得到下一个插补点预插补点参数ui+1:
[0040]
[0041] 其中:
[0042]
[0043] 上述H.O.T为高阶无穷小,可以忽略;
[0044] (3)计算插补点弓高误差,系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合Vm(ui)={v|v(ui)
[0045] 插补误差模型为:
[0046] ρi=1/ki
[0047] ki为曲线在参数ui处的曲率,有:
[0048]
[0049] 根据插补弓高误差和最大弓高误差限制关系,动态调整插补进给速度方程为:
[0050]
[0051] (4)系统根据NURBS曲线曲率变化规律,自动识别曲线上的小曲率半径区,完成小曲率半径区速度特征点的提取:
[0052] 所述的小曲率半径区预插补点速度集合为:
[0053] Vm(ui)={v|v(ui)
[0054] 其中: 为第m个小曲线半径区起始参数;
[0055] 采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点,具体步骤为:
[0056] Step1速度特征点初始化:令特征点进给速度Vf=F,参数Uf=1;
[0057] Step2插补点参数计算:由参数ui,进给速度V(ui)根据二阶泰勒展开式计算参数ui+1;
[0058] Step3敏感点判断:根据圆弧近似插补误差模型计算弦C(ui)C(ui+1)的弓高误差ERi,如果ERi大于最大弓高误差限制δmax,则动态调整进给速度V(ui),此时C(ui)为敏感点,执行Step4;如果ERi小于等于最大弓高误差限制δmax,当曲线扫描结束,执行Step5;否则,执行Step2;
[0059] Step4速度特征点检测:如果Vf>Uf,则当前敏感点为新的速度特征点,令Vf=V(ui),Uf=ui,执行Step2;如果Vf≤Uf,预插补点C(ui)即为小曲率半径区速度特征点,当曲线扫描结束,执行Step5;否则,继续检测下一个小曲率半径区速度特征点,执行Step1;
[0060] Step5算法结束:得到NURBS曲线速度特征点集合:
[0061] Cm(ui)={ui|min(Vm(ui))}
[0062] (5)以小曲率半径区速度特征点对NURBS曲线进行分段:
[0063] 对于n个速度特征点,将曲线划分成n+1段,分段曲线集合为:
[0064] Lm={(Cm(ui),Cm+1(ui+1))};
[0065] (6)采用自适应辛普森方法计算曲线段长度,从点C(u1)到点C(u2)的曲线长度S表示为:
[0066]
[0067] 其中
[0068] (7)NURBS分段曲线数据粗插补完成,得到四元组{us,ue,vi,Si}表示的曲线段数据,该曲线段数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息,ARM9嵌入式系统通过总线将该曲线段数据写入到FPGA的FIFO队列中;
[0069] 步骤2、FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标,在每个插补周期内实时计算出各轴的进给分量,实现精插补功能,外围电路把各进给轴运动分量计算所得以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制:
[0070] (1)NURBS精插补器读取FIFO存储的分段曲线数据;
[0071] (2)根据曲线段长度进行加减速控制:
[0072] 图4揭示了S型曲线加减速各阶段加速度、速度、加加速度和位移的关系,其中Jm为最大加加速度,Am为最大加速度,T1、T2…T7为各阶段持续时间,由图4可知[0073]
[0074] 令Sacc为加速阶段位移,Seven为匀速阶段位移,Sdec为减速阶段位移,由图4可得:
[0075]
[0076] 则最小加减速距离为:
[0077] Smin=sacc+sdc=s1+s2+s3+s5+s6+s7
[0078] 分段曲线加减速处理时,曲线段首尾端点为加减速起始点,根据曲线段弧长Si与最小加减速距离Smin的关系,可以将曲线段分成四种情况,如图3所示:
[0079] a为I型曲线段:当Si>Smin,包含加速、匀速、减速过程的曲线段[0080] b为II型曲线段:当Sacc≤SiVe,只包含减速过程的曲线段
[0083] 其中:Sacc为加速阶段位移,Vs为分段曲线首节点进给速度,Ve为分段曲线尾节点进给速度。
[0084] (3)根据NURBS曲线定义式实时计算下一插补点C(ui+1):
[0085] 一条p次NURBS曲线定义式为:
[0086]
[0087] 这里{pi}是控制点集合,{wi}是权因子集合,{Ni,p(u)}是定义在非周期且非均匀节点矢量U上的p次B样条基函数,其中:
[0088]
[0089]
[0090]
[0091] 由控 制点 {Pi}和 相应 的 权因 子{wi}, 可以 构建 一 组加 权控 制 点用这组控制点可以根据NURBS曲线的定义式在四维空间内求取NURBS曲线:
[0092]w
[0093] 存在一个映射H,将四维空间上的C(u)映射到三维空间C(u),H满足方程:
[0094] 其中C(u)为Cw(u)在w=1超平面上的投影。
[0095] 根据NURBS曲线定义式,由参数ui+1可得四维空间点:
[0096] Cw(ui+1)
[0097] 再将Cw(ui+1)四维空间点进行投影,得到三维数据点C(ui+1),即:
[0098] C(ui+1)={x(ui+1),y(ui+1),z(ui+1)}
[0099] (4)外围电路把各进给轴运动分量计算所得以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
[0100] 以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。