CN103048954A - 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 - Google Patents
一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 Download PDFInfo
- Publication number
- CN103048954A CN103048954A CN2013100118899A CN201310011889A CN103048954A CN 103048954 A CN103048954 A CN 103048954A CN 2013100118899 A CN2013100118899 A CN 2013100118899A CN 201310011889 A CN201310011889 A CN 201310011889A CN 103048954 A CN103048954 A CN 103048954A
- Authority
- CN
- China
- Prior art keywords
- curve
- interpolation
- nurbs
- curvature radius
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Numerical Control (AREA)
- Image Generation (AREA)
Abstract
本发明一种基于ARM9嵌入式***和FPGA的NURBS曲线分段插补方法,采用ARM9嵌入式***对NURBS曲线进行粗插补,完成对NURBS曲线的分段预处理,采用FPGA对分段曲线进行精插补,最后,***电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制;实现了NURBS曲线描述的复杂曲面零件直接加工技术,在保证加工精度的同时,提高了加工效率。
Description
技术领域
本发明涉及数控技术领域,尤其涉及一种基于ARM9嵌入式***及FPGA(现场可编程门阵列)的NURBS(Non-Uniform RationalB-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个步骤:
1)粗插补
从NC代码文件中提取NURBS曲线描述的工件信息,得到控制点集合{Pi}、权因子集合{wi}及指令速度F;
采用二阶泰勒展开近似法对NURBS曲线进行预插补,得到预插补点集合{(ui,vi,ρi)},***根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合:
以相邻速度特征点对NURBS曲线进行分段,得到分段曲线:
Lm={(Cm(ui),Cm+1(ui+1))}
采用自适应辛普森方法计算分段曲线长度,得到四元组{us,ue,vi,Si}表示的曲线段数据,该数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息;由ARM9嵌入式***通过总线将曲线段数据写入到FPGA的FIFO队列中;
2)精插补
FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标;
***电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
所述的***根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是:
所述的小曲率半径区预插补点速度集合为:
采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点,具体为:
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曲线速度特征点集合
本发明具有如下优点:
(1)采用实时性高的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队列中:
(1)用户选择NC代码文件,读取出NC加工代码,该NC加工代码包含控制点集合{Pi}、权因子集合{wi}、节点矢量和指令速度F的NURBS曲线特征信息;
(2)采用二阶泰勒展开近似法对NURBS曲线进行预插补,将NURBS曲线参数u对时间t进行二阶泰勒展开,由当前插补点参数ui及进给速度v(ui)得到下一个插补点预插补点参数ui+1:
其中:
上述H.O.T为高阶无穷小,可以忽略;
插补误差模型为:
ki为曲线在参数ui处的曲率,有:
根据插补弓高误差和最大弓高误差限制关系,动态调整插补进给速度方程为:
(4)***根据NURBS曲线曲率变化规律,自动识别曲线上的小曲率半径区,完成小曲率半径区速度特征点的提取:
所述的小曲率半径区预插补点速度集合为:
采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点,具体步骤为:
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曲线速度特征点集合:
Cm(ui)={ui|min(Vm(ui))}
(5)以小曲率半径区速度特征点对NURBS曲线进行分段:
对于n个速度特征点,将曲线划分成n+1段,分段曲线集合为:
Lm={(Cm(ui),Cm+1(ui+1))};
(6)采用自适应辛普森方法计算曲线段长度,从点C(u1)到点C(u2)的曲线长度S表示为:
其中
(7)NURBS分段曲线数据粗插补完成,得到四元组{us,ue,vi,Si}表示的曲线段数据,该曲线段数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息,ARM9嵌入式***通过总线将该曲线段数据写入到FPGA的FIFO队列中;
步骤2、FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标,在每个插补周期内实时计算出各轴的进给分量,实现精插补功能,***电路把各进给轴运动分量计算所得以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制:
(1)NURBS精插补器读取FIFO存储的分段曲线数据;
(2)根据曲线段长度进行加减速控制:
图4揭示了S型曲线加减速各阶段加速度、速度、加加速度和位移的关系,其中Jm为最大加加速度,Am为最大加速度,T1、T2…T7为各阶段持续时间,由图4可知
令Sacc为加速阶段位移,Seven为匀速阶段位移,Sdec为减速阶段位移,由图4可得:
则最小加减速距离为:
Smin=sacc+sdec=s1+s2+s3+s5+s6+s7
分段曲线加减速处理时,曲线段首尾端点为加减速起始点,根据曲线段弧长Si与最小加减速距离Smin的关系,可以将曲线段分成四种情况,如图3所示:
a为I型曲线段:当Si>Smin,包含加速、匀速、减速过程的曲线段
b为II型曲线段:当Sacc≤Si<Smin,包含加速、减速过程的曲线段
c为III型曲线段:当Si<Sacc且Vs≤Ve,只包含加速过程的曲线段
d为IV型曲线段:当Si<Sacc且Vs>Ve,只包含减速过程的曲线段
其中:Sacc为加速阶段位移,Vs为分段曲线首节点进给速度,Ve为分段曲线尾节点进给速度。
(3)根据NURBS曲线定义式实时计算下一插补点C(ui+1):
一条p次NURBS曲线定义式为:
这里{Pi}是控制点集合,{wi}是权因子集合,{Ni,p(u)}是定义在非周期且非均匀节点矢量U上的p次B样条基函数,其中:
存在一个映射H,将四维空间上的Cw(u)映射到三维空间C(u),H满足方程:
其中C(u)为Cw(u)在w=1超平面上的投影。
根据NURBS曲线定义式,由参数ui+1可得四维空间点:
Cw(ui+1)
再将Cw(ui+1)四维空间点进行投影,得到三维数据点C(ui+1),即:
C(ui+1)={x(ui+1),y(ui+1),z(ui+1)}
(4)***电路把各进给轴运动分量计算所得以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (2)
1.一种基于ARM9嵌入式***和FPGA的NURBS曲线分段插补方法,其特征在于包括2个步骤:
1)粗插补
从NC代码文件中提取NURBS曲线描述的工件信息,得到控制点集合{Pi}、权因子集合{wi}及指令速度F;
采用二阶泰勒展开近似法对NURBS曲线进行预插补,得到预插补点集合{(ui,vi,ρi)},***根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合:
以相邻速度特征点对NURBS曲线进行分段,得到分段曲线:
Lm={(Cm(ui),Cm+1(ui+1))}
采用自适应辛普森方法计算分段曲线长度,得到四元组{us,ue,vi,Si}表示的曲线段数据,该数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息;由ARM9嵌入式***通过总线将曲线段数据写入到FPGA的FIFO队列中;
2)精插补
FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标;
***电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
2.根据权利要求1所述的一种基于ARM9嵌入式***和FPGA的NURBS曲线分段插补方法,其特征在于***根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是:
所述的小曲率半径区预插补点速度集合为:
采用贪心算法对小曲率半径区进行扫描,提取小曲率半径区的最低速度插补点,具体为:
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曲线速度特征点集合
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100118899A CN103048954A (zh) | 2013-01-11 | 2013-01-11 | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100118899A CN103048954A (zh) | 2013-01-11 | 2013-01-11 | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103048954A true CN103048954A (zh) | 2013-04-17 |
Family
ID=48061633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100118899A Pending CN103048954A (zh) | 2013-01-11 | 2013-01-11 | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103048954A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345201A (zh) * | 2013-07-01 | 2013-10-09 | 浙江工业大学 | Nurbs曲线降阶插补的运动控制*** |
CN103744352A (zh) * | 2013-12-23 | 2014-04-23 | 华中科技大学 | 一种基于fpga的三次b样条曲线的硬件插补器 |
CN111630461A (zh) * | 2018-12-21 | 2020-09-04 | 深圳配天智能技术研究院有限公司 | 数控加工方法及***、具有存储功能的装置 |
CN111740667A (zh) * | 2020-07-21 | 2020-10-02 | 重庆凡越自动化科技有限公司 | 基于永磁同步直线电机的自动门控制方法及*** |
CN115113585A (zh) * | 2022-08-29 | 2022-09-27 | 济南邦德激光股份有限公司 | 基于n阶b样条进行精插补的方法、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103048953A (zh) * | 2013-01-05 | 2013-04-17 | 福建工程学院 | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 |
-
2013
- 2013-01-11 CN CN2013100118899A patent/CN103048954A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103048953A (zh) * | 2013-01-05 | 2013-04-17 | 福建工程学院 | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345201A (zh) * | 2013-07-01 | 2013-10-09 | 浙江工业大学 | Nurbs曲线降阶插补的运动控制*** |
CN103744352A (zh) * | 2013-12-23 | 2014-04-23 | 华中科技大学 | 一种基于fpga的三次b样条曲线的硬件插补器 |
CN111630461A (zh) * | 2018-12-21 | 2020-09-04 | 深圳配天智能技术研究院有限公司 | 数控加工方法及***、具有存储功能的装置 |
CN111630461B (zh) * | 2018-12-21 | 2022-07-12 | 深圳配天智能技术研究院有限公司 | 数控加工方法及***、具有存储功能的装置 |
CN111740667A (zh) * | 2020-07-21 | 2020-10-02 | 重庆凡越自动化科技有限公司 | 基于永磁同步直线电机的自动门控制方法及*** |
CN115113585A (zh) * | 2022-08-29 | 2022-09-27 | 济南邦德激光股份有限公司 | 基于n阶b样条进行精插补的方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103048953B (zh) | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 | |
CN103064344B (zh) | 一种基于nurbs曲线插补的速度平滑控制方法 | |
CN109571473B (zh) | 一种误差可控的小线段轨迹光顺方法 | |
CN101976060B (zh) | 基于机床动力学和曲线特性的nurbs插补方法 | |
CN100517142C (zh) | 用于高速数控加工轨迹拐角的速度平滑方法 | |
CN101493687B (zh) | 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法 | |
CN103048954A (zh) | 一种基于arm9嵌入式***和fpga的nurbs曲线分段插补方法 | |
CN104615084B (zh) | 加工进给速度优化的刀轨曲线轮廓误差补偿方法 | |
CN104281099A (zh) | 一种考虑加工特性的nurbs直接插补方法及装置 | |
CN101907876A (zh) | 适用于数控装置的指令点整形压缩插补方法 | |
CN107291047B (zh) | 一种基于多约束条件的正反双向nurbs曲线插补方法 | |
CN102147600A (zh) | 实时生成曲率连续路径的数控插补*** | |
Liang et al. | An iterative feed rate scheduling method with confined high-order constraints in parametric interpolation | |
CN102608956A (zh) | 一种基于de Boor算法的NURBS曲线自适应插补控制方法 | |
CN108062073A (zh) | 一种用于高质量加工的圆弧平滑压缩插补算法 | |
Xu et al. | Adaptive parametric interpolation scheme with limited acceleration and jerk values for NC machining | |
CN112486101B (zh) | Nurbs曲线自适应前瞻插补方法 | |
CN113759827B (zh) | 一种高速高精的五轴刀具路径拐角平滑方法 | |
CN104020719A (zh) | 速度敏感点分段nurbs曲线的s型加减速控制插补算法 | |
CN105005265A (zh) | 一种基于曲线光滑变形的数控加工进给率规划方法 | |
CN111966047A (zh) | 基于三角函数加减速控制的三轴微线段直接速度过渡方法 | |
CN105045211A (zh) | 一种等弓高误差变步长切线插补方法 | |
CN104155916A (zh) | 一种高精度快速空间圆弧插补方法 | |
Baek et al. | Precision NURBS interpolator based on recursive characteristics of NURBS | |
CN109799792A (zh) | 一种面向高速数控加工微小线段平滑过渡的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130417 |