图2-9 直线与圆弧相交
直线方程与圆方程联立,得联立方程组:
?(x?x0)2?(y?y0)2?R2??y?kx?b 经推算后给出标准计算公式如下:
A?1?k
2B?2?k(b?y0)?x0?2C?x0?(b?y0)2?R2
?B?B2?4AC xC?(求xC较大者时取“+”)
2AyC?kxC?b
上式也可用于求解直线与圆相切时的切点坐标。当直线与圆相切时,取B2-4AC=0,此时xc=-B/(2A),其余计算公式不变。
2.圆弧与圆弧相交或相切
如图2-10所示,已知两相交圆的圆心坐标及半径分别为(x1,y1),R1;(x2,y2),
R2,求其交点坐标(xc,yc)。
图2-10 圆弧与圆弧相交
联立两圆方程
11
222??(x?x1)?(y?y1)?R1 ? 222??(x?x2)?(y?y2)?R2经推算可给出标准计算公式如下
?x?x2?x1 ?y?y2?y1
222(x2?y2?R2)?(x12?y12?R12) D?
2??x?A?1????y??
??2???D??xB?2???y1??y???y?x1?
?????D?22C??y??1?y???x1?R1
??2?B?B2?4AC xC? (求xc较大值时取“+”)
2A yC?D??xxC
?y当两圆相切时,B2-4AC=0,因此上式也可用于求两圆相切的切点。
二、非圆曲线节点坐标的计算
当被加工零件轮廓形状与机床的插补功能不一致时,如在只有直线和圆弧插补功能的数控机床上加工双曲线、抛物线、阿基米德螺线或列表曲线时,就要采用逼近法加工,用直线或圆弧去逼近被加工曲线。这时,逼近线段与被加工曲线的交点,称为节点。如图2-11所示,图a为用直线段逼近非圆曲线的情况,图b为用圆弧段逼近非圆曲线的情况。
12
a) b) 图2-11 曲线逼近
编写程序段时,应按节点划分程序段。逼近线段的近似区间愈大,则节点数目愈少,相应的程序段数目也会减少,但逼近线段的误差δ应小于或等于编程允许误差δ允 ,即 δ≤δ允。考虑到工艺系统及计算误差的影响, 一般取零件公差的1/5~1/10。 非圆曲线轮廓零件的数值计算过程,一般可按以下步骤进行:
1)选择插补方式,即采用直线还是圆弧逼近非圆曲线。采用直线段逼近,一般数学处理较简单,但计算的坐标数据较多,且各直线段间连接处存在尖角,由于在尖角处,刀具不能连续地对零件进行切削,零件表面会出现硬点或切痕,使加工质量变差。采用圆弧段逼近的方式,可以大大减少程序段的数目,同时若采用彼此相切的圆弧段来逼近非圆曲线,可以提高零件表面的加工质量。但采用圆弧段逼近,其数学处理过程比直线要复杂一些。
2) 确定编程允许误差,即使δ≤δ允。
3)选择数学模型,确定计算方法。目前生产中采用的算法比较多,在决定采用什么算法时,主要考虑的因素有两条,一是尽可能按等误差的条件,确定节点坐标位置,以便最大程度地减少程序段的数目;二是尽可能寻找一种简便的计算方法,以便于计算机程序的制作,及时得到节点坐标数据。
4) 根据算法,画出计算机处理流程图。
5) 用高级语言编写程序,上机调试,并获得节点坐标数据。 下面简单介绍常用算法。
1.用直线逼近零件轮廓曲线的节点计算
常用的计算方法有:等间距法、等弦长法、等误差法和比较迭代法等。
等间距法就是将某一坐标轴划分成相等的间距。如图2-12(a)所示,沿X轴方向取?X为等间距长,根据已知曲线的方程y=f(x),可由xi 求得yi,xi+1=xi+ x,yi+1=f(xi+?x)。如此求得的一系列点就是节点。将相邻节点联成直线,用这些直线段组成的折线代替原来的轮廓曲线。坐标增量?X取得愈小则δ插愈小,这使得节点增多,程序段也增多,编程费用高,但等间距法计算较简单。
13
a) b) 图2-12 等间距法和等弦长法
a)等间距法 b)等弦长法
等弦长法就是使所有逼近直线段长度相等,如图2-12(b)所示。由于零件轮廓曲线y=f(x)的曲率各处不等,因此首先应求出该曲线的最小曲率半径Rmin,由Rmin及δ允确定允许的步长l,然后从曲线起点a开始,按等步长l依次截取曲线,得b、c、d、?点,则ab=bc= ?=l即为所求各直线段。
总的看来,此种方法比等间距法的程序段数少一些。但当曲线曲率半径变化较大时,所求节点数将增多,所以,此法适用于曲率变化不大的情况。
等误差法是使逼近线段的误差相等,且等于δ允,所以此法较上两种方法合理,特别适合曲率变化较大的复杂曲线轮廓。如图2-13所示。下面介绍用等误差法计算节点坐标的方法。设零件轮廓曲线的数学方程为Y=f(X)。
图2-13 等误差法
(1)以起点a(Xa,Ya)为圆心,以?允为半径作圆。其圆方程为
222 (2-1) ?允?(X?Xa)?(Y?Ya)式中Xa、Ya为已知的a点坐标值。
(2)作δ允圆与曲线Y=f(X)的公切线MN,则可求公切线MN的斜率K K?YN?YM
XN?XM为求YN,YM,XN,XM,需解下面的方程组:
14
?YN?f(XN)?Y?YM?N?f?(XN)?XN?NM ?Y?F(X)M?M?YN?YM?F?(XM)??XN?XM(曲线方程) (曲线切线方程) (允差圆方程) (允差圆切线方程) 式中的允差圆即δ允圆,Y=F(X)表示δ允圆的方程,见(2-1)式。 (3)过a点作斜率为K的直线,则得到直线插补段ab,其方程式为
Y-Ya =K(X-Xa)
(4)求直线插补节点b的坐标。 联立方程组:
?Y?f(X) ??Y?K(X?Xa)?Ya(曲线方程) (直线插补段方程) 求的交点b(Xb, Yb)的坐标值,便是第一个直线插补节点。 (5)按以上步骤顺次求得c,d、? 各节点坐标。
用等误差法,虽然计算较复杂,但可在保证δ允的条件下,得到最少的程序段数目。此种
方法的不足之处是直线插补段的联结处不光滑,使用圆弧插补段逼近,可以避免这一缺点。
2.用圆弧逼近零件轮廓曲线的节点计算
用圆弧逼近非圆曲线,目前常用的算法有曲率圆法、三点圆法和相切圆法等。 (1)曲率圆法圆弧逼近的节点计算
1)基本原理 曲率圆法是用彼此相交的圆弧逼近非圆曲线。
已知轮廓曲线Y=f(X)如图2-14所示,从曲线的起点开始,作与曲线内切的曲率圆,求出曲率圆的中心。以曲率圆中心为圆心,以曲率圆半径加(减)δ允为半径,所作的圆 (偏差圆)与曲线Y=f(X)的交点为下一个节点,并重新计算曲率圆中心,使曲率圆通过相邻的两节点。
图2-14 曲率圆法圆弧段逼近
重复以上计算即可求出所有节点坐标及圆弧的圆心坐标。 2)计算步骤
① 以曲线起点(xn,yn)开始作曲率圆:
15