CN103048953B - 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 - Google Patents
一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 Download PDFInfo
- Publication number
- CN103048953B CN103048953B CN201310003017.8A CN201310003017A CN103048953B CN 103048953 B CN103048953 B CN 103048953B CN 201310003017 A CN201310003017 A CN 201310003017A CN 103048953 B CN103048953 B CN 103048953B
- Authority
- CN
- China
- Prior art keywords
- curve
- interpolation
- nurbs
- curvature radius
- speed
- 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.)
- Expired - Fee Related
Links
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)},系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合:
Vm(ui)={v|v(ui)<F}
系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点:Cm(ui)={uimin(Vm(ui))}
以相邻速度特征点对NURBS曲线进行分段,得到分段曲线:
Lm={(Cm(ui),Cm+1(ui+1))}
采用自适应辛普森方法计算分段曲线长度,得到四元组{us,ue,vi,Si}表示的曲线段数据,该数据包括曲线段首尾端点参数、进给速度、曲线段长度的信息;由ARM9嵌入式系统通过总线将曲线段数据写入到FPGA的FIFO队列中;
2)精插补
FPGA读取FIFO队列中曲线段数据,采用S型加减速方法进行加减速处理,根据NURBS曲线定义式实时生成插补点坐标;
外围电路将各进给轴运动分量以脉冲量形式输出到电动机的信号控制端口,实现电动机伺服控制。
所述的系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是:
所述的小曲率半径区预插补点速度集合为:
Vm(ui)={v|v(ui)<F}
其中:为第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曲线速度特征点集合
Cm(ui)={ui|min(Vm(ui))}
本发明具有如下优点:
(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为高阶无穷小,可以忽略;
(3)计算插补点弓高误差,系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合Vm(ui)={v|v(ui)<F}
插补误差模型为:
ki为曲线在参数ui处的曲率,有:
根据插补弓高误差和最大弓高误差限制关系,动态调整插补进给速度方程为:
(4)系统根据NURBS曲线曲率变化规律,自动识别曲线上的小曲率半径区,完成小曲率半径区速度特征点的提取:
所述的小曲率半径区预插补点速度集合为:
Vm(ui)={v|v(ui)<F}
其中:为第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曲线速度特征点集合:
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+sdc=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样条基函数,其中:
由控制点{Pi}和相应的权因子{wi},可以构建一组加权控制点用这组控制点可以根据NURBS曲线的定义式在四维空间内求取NURBS曲线:
存在一个映射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)},系统根据弓高误差变化情况自动识别曲线小曲率半径区,并动态调整预插补点进给速度,得到调整后的插补点速度集合:
插补误差模型为:
ki为曲线在参数ui处的曲率,有:
根据插补弓高误差和最大弓高误差限制关系,动态调整插补进给速度方程为:
系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点:
以相邻速度特征点对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曲线分段插补方法,其特征在于系统根据小曲率半径区插补点速度集合和曲率变化情况提取出小曲率半径区速度特征点,具体步骤是:
所述的小曲率半径区预插补点速度集合为:
其中:为第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曲线速度特征点集合
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310003017.8A CN103048953B (zh) | 2013-01-05 | 2013-01-05 | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310003017.8A CN103048953B (zh) | 2013-01-05 | 2013-01-05 | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103048953A CN103048953A (zh) | 2013-04-17 |
CN103048953B true CN103048953B (zh) | 2014-11-12 |
Family
ID=48061632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310003017.8A Expired - Fee Related CN103048953B (zh) | 2013-01-05 | 2013-01-05 | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103048953B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103048954A (zh) * | 2013-01-11 | 2013-04-17 | 福建工程学院 | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 |
CN103660361B (zh) * | 2013-12-11 | 2015-07-22 | 南京航空航天大学 | 一种伺服压力机控制系统 |
CN105045210B (zh) * | 2015-07-13 | 2019-10-29 | 苏州谷夫道自动化科技有限公司 | Cnc数控设备自适应控制弓高误差的平滑插补方法 |
CN105500712B (zh) * | 2016-01-08 | 2018-01-30 | 浙江理工大学 | 一种三自由度三维打印机的控制方法 |
CN106970561B (zh) * | 2017-04-11 | 2019-07-02 | 周清睿 | 运动控制系统 |
CN107272597B (zh) * | 2017-07-14 | 2019-08-30 | 福建工程学院 | 一种基于进退法的nurbs曲线插补快速预读处理方法 |
CN107817764B (zh) * | 2017-10-23 | 2019-03-08 | 山东大学 | 一种基于s曲线加减速算法的nurbs曲线双向自适应插补方法 |
CN108233825A (zh) * | 2017-12-08 | 2018-06-29 | 深圳市显控科技股份有限公司 | 一种脉冲控制方法和系统 |
CN110579997A (zh) * | 2019-10-08 | 2019-12-17 | 绵阳市维博电子有限责任公司 | 基于可编程逻辑器件的数字靠模控制系统及方法 |
CN110780642A (zh) * | 2019-10-28 | 2020-02-11 | 南京工程学院 | 一种nurbs插补位置参数优化及其并行计算硬化方法 |
CN113031510B (zh) * | 2019-12-24 | 2022-04-05 | 沈阳智能机器人创新中心有限公司 | 面向复杂多轴系统的b样条曲线计算加速方法 |
CN112764393B (zh) * | 2020-12-28 | 2022-07-12 | 深圳数马电子技术有限公司 | 一种确定速度敏感区间的扫描方法以及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11345014A (ja) * | 1999-05-21 | 1999-12-14 | Mitsubishi Electric Corp | 数値制御装置 |
JP3902353B2 (ja) * | 1999-06-09 | 2007-04-04 | 東芝機械株式会社 | 数値制御装置 |
CN101718969B (zh) * | 2009-12-11 | 2011-07-20 | 郭乙宏 | 无卡旋切机进刀速度伺服控制器 |
CN102729304B (zh) * | 2012-06-18 | 2014-11-05 | 欧瑞传动电气股份有限公司 | 无卡旋切机尾刀整张旋切方法 |
-
2013
- 2013-01-05 CN CN201310003017.8A patent/CN103048953B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103048953A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103048953B (zh) | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 | |
CN103064344B (zh) | 一种基于nurbs曲线插补的速度平滑控制方法 | |
Tajima et al. | Global tool-path smoothing for CNC machine tools with uninterrupted acceleration | |
CN101493687B (zh) | 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法 | |
CN101976060B (zh) | 基于机床动力学和曲线特性的nurbs插补方法 | |
Yau et al. | Fast Bezier interpolator with real-time lookahead function for high-accuracy machining | |
Wang et al. | Real-time NURBS interpolator: application to short linear segments | |
CN106393106A (zh) | 参数自适应密化的机器人nurbs曲线运动插补方法 | |
Xinhua et al. | A novel approach for NURBS interpolation through the integration of acc-jerk-continuous-based control method and look-ahead algorithm | |
Zhang et al. | Curve fitting and optimal interpolation on CNC machines based on quadratic B-splines | |
CN104281099A (zh) | 一种考虑加工特性的nurbs直接插补方法及装置 | |
CN101907876A (zh) | 适用于数控装置的指令点整形压缩插补方法 | |
CN109976262B (zh) | 一种针对微线段加工的全局曲率连续光顺方法 | |
CN103048954A (zh) | 一种基于arm9嵌入式系统和fpga的nurbs曲线分段插补方法 | |
Feng et al. | Design of a real-time adaptive NURBS interpolator with axis acceleration limit | |
CN107291047B (zh) | 一种基于多约束条件的正反双向nurbs曲线插补方法 | |
CN111966047B (zh) | 基于三角函数加减速控制的三轴微线段直接速度过渡方法 | |
Xu et al. | Adaptive parametric interpolation scheme with limited acceleration and jerk values for NC machining | |
Yuan et al. | Time-optimal interpolation for CNC machining along curved tool pathes with confined chord error | |
Liang et al. | An iterative feed rate scheduling method with confined high-order constraints in parametric interpolation | |
CN104155916B (zh) | 一种高精度快速空间圆弧插补方法 | |
CN112486101B (zh) | Nurbs曲线自适应前瞻插补方法 | |
CN104020719A (zh) | 速度敏感点分段nurbs曲线的s型加减速控制插补算法 | |
CN105045211A (zh) | 一种等弓高误差变步长切线插补方法 | |
Baek et al. | Precision NURBS interpolator based on recursive characteristics of NURBS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141112 Termination date: 20190105 |