基于二分法的曲线等误差圆弧拟合算法及其应用_图文(精)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 的最远距离。

相关文档
最新文档