基于二分法的曲线等误差圆弧拟合算法及其应用_图文(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第32卷第1期
2008年2月
南昌大学学报(理科版
Journa l o f N anchang U n i versity(N a t ura l Sc i ence V o. l 32N o . 1
F eb . 2008
文章编号:1006-0464(2008 01-0100-03
基于二分法的曲线等误差圆弧拟合算法及其应用
周晓铭, 陶俊才, 秦海鸥
(南昌大学信息工程学院, 江西南昌 330031
摘要:根据CN C 的加工特点, 提出一种平面轮廓曲线的拟合算法。该算法基于二分法, 简单可靠且效率相对较高。切削步长具有沿加工方向的曲率适应性, 并且可以灵活的解决拟合圆弧大于机床允许值的问题。最后给出了曲线拟合的算法。
关键词:CNC ; 曲线拟合; 曲线插补
中图分类号:TP301 6 文献标识码:A
目前, 多数机床的数控系统只具备直线插补和圆弧插补两种功能。零件的几何轮廓在加工前需处理成由直线和圆弧组成的曲线, 即圆弧样条曲线。在给定的精度范围内, 用一系列直线或圆弧来逼近零件轮廓曲线, 然后才能加工。所以对零件的几何轮廓曲线有直线插补和圆弧插补两种。二者相比
[1]
较, 圆弧插补具有以下优点:圆弧插补加工时间明显减少, 比例可达1 5; 刀位文
件数量明显压缩; 机床运转平稳; 加工出的零件表面光滑。因此, 圆弧插补是一种高效的插补方法。
对一曲线用圆弧逼近前, 首先要在曲线上获取节点, 再根据这些节点利用双圆弧法等逼近方法确定逼近圆弧。因此, 所取得的节点的多少, 就决定了逼近圆弧段的数量, 逼近圆弧段数多, 所形成的加工数据文件大, 加工时间长, 同时还会加大机床磨[4]
损。采用圆弧样条插值逼近平面参数曲线和列表
[2-9]
点曲线已有很多研究报道。其中圆弧拟合方法
[5, 9]
中使用最多的又分为单圆弧拟合和双圆弧拟[2, 8, 7]合。为达到减少拟合圆弧
数的目的, 人们对圆弧拟合作了广泛的研究:对单圆弧拟合相继出现了
[9][5]
两点拟合法, 参数递增法, 等弦高误差控制[6]
法等; 对双圆弧拟合法出现了变曲率对称双圆弧
[7]
拟合法等。综合参考文献发现人们对于圆弧插补的研究, 大多数集中在圆弧逼近算法本身。而且由于以上这些圆弧拟合方法没有考虑机床的最大切割半径, 一旦拟合圆弧半径大于机床半径时, 机床不能处理。这将导致系统自动编程生成的代码机床无法执行。因此, 本文提出了一种新的节点获取方法:基于二分法的曲线圆弧拟合方法, 该方法继承单圆
[6]
弧等弦高误差控制法和二分法的优点, 并且改变
收稿日期:2007-03-10
基金项目:江西省工业攻关资助项目(200552
(, 传统二分法取中点的习惯, 以最大弦高点为节点分割曲线。以相邻三节点作圆弧拟合曲线。在拟合半径大于数控系统能处理的最大半径时, 用两直线拟合该段圆弧, 方便数控自动编程。
1 基于二分法的曲线圆弧等误差拟合算法思想
在曲线的一个凸凹性一致的闭合区间。用直线段连接曲线的两个端点, 它与曲线形成一个弓形(如图1, 我们称这条直线为曲线的弦。只要曲线上的点到弦的距离小于我们的控制误差, 那么我们就圆弧或者是直线来拟合这段曲线, 而当我们的这里的值大于控制误差时, 就可以通过划分区间的方法将区间细分。一般使用二分法, 简单的二分法取区间的中点, 但这个中点处曲线上的点离弦不一定都是最远, 所以我们改用离弦最远点将区间分为两个子区间, 并将之称为改进的二分法(这样做的目的是为了得到拟合区间最少, 拟合的结果最优。再在各个子区间上重复以上步骤, 直到
满足条件为止, 那么区间将被分为若干个子区间。每个区间内的曲线就可以用直线或圆弧来拟合。我们选择第一用圆弧来拟合曲线, 但有时拟合圆弧的半径大于机床可以处理的范围, 则改用直线来拟合该区间段的曲线。
图1 弓型曲线图
第1期周晓铭等:基于二分法的曲线等误差圆弧拟合算法及其应用! 101!
2 改进二分法区间划分的具体实现
设曲线方程为:y =f (x, x [a, b ],给定的拟合控制误差为。先对曲线进行区间划分, 规则为按曲线二次导数为零处的点划分。目的是找出曲线的拐点, 将曲线的凸凹区间分开。
求解:f (x =0
如有解x 0, 可以得到两个独立的单一凸凹性的两个区间[a, x 0],[x 0, b],如图2
:
个区间重复以上步骤。最后可以得到一系列的分区
间:
[a =a 1, a 2],[a 2, a 3],[a 3, a 4],[a 4, a 5]#, [a n -1, a n =b ]
在每一段区间用圆弧去拟合该曲线段即可。方法如下:
a i-1+a i
在第i 个区间取点x 0=a i-1, x 1=x 2=
2
a i 用三点可以确定一个圆。分别求出圆心, 半径。如果在该区间拟合圆弧的半径大于机床允许的最大值, 则用两条直线拟合这段区间的曲线段。
3 改进二分法的曲线圆弧等误差拟合算法
图2 曲线在拐点处分割区间
对曲线图象在区间[a, x 0]([x 0, b ]区间类似讨论:
做直线L 过曲线的两端点:y =k ! x +B, 其中k f (a -f(x 0 =, B =f (x 0 -k ! x 0, 设为曲线上的
x 0-a
点到直线L 的距离。
m ax (|f (x -kx -B |
求解: =1+k
m ax (|f (x -kx -B | 其中1+k
表示在这一区间上曲线上的点离直线L 的最远距离。