第三章 曲线拟合算法的研究
3.1 引言
随着航空、汽车等现代工业与计算机技术的发展,圆锥曲线与列表点曲线已经成为形状数学描述的常用方法,得到了广泛的应用。为了满足激光切割加工任务的需要,自动编程系统集成了多种曲线拟合算法,这样利用现有的激光切割机,即可实现特殊曲线的插补功能,极大地丰富系统的插补能力,满足复杂的生产要求。
3.2 圆锥曲线拟合算法的研究
在经济型数控系统中,对于圆锥曲线即平面二次曲线的加工是数控加工中经常遇到的问题,随着数控加工对圆锥曲线插补的需求,近年来有关各种圆锥曲线的插补算法应运而生[26]。常用的解决方法是先用低次的有理参数曲线拟合或将其离散,再用直线、圆弧逼近,然后才能进行数控加工[28]。本章从一个新的视角利用双圆弧方法,提出先对圆锥曲线进行标准化处理,再用双圆弧拟合逼近,然后再进行数控加工。这样的优点是:圆弧样条的等距曲线还是圆弧;双圆弧样条能达到C1连续,基本上能满足要求;所有数控系统都具有直线插补和圆弧插补功能,无需增加额外负担。
由于工程应用不同,对曲线拟合的要求也不同。有的只要求拟合曲线光滑,有的要求光顺[9-10]。本章中开发的软件要求是:支持多种常用圆锥曲线的拟合;拟合曲线要求光滑;拟合曲线与函数曲线间的误差应控制在允许的范围之内,且拟合圆弧段数较少。
本章提出的对圆锥曲线的插补,是建立在对平面任意二次曲线可以进行分类的基础上,先将二次曲线进行分类,然后对各类曲线分别进行双圆弧拟合,这样就可以直接利用数控系统的圆弧插补功能进行插补。
3.2.1 圆锥曲线的一般理论[9]
在平面直角坐标系中,二元二次方程所表示的曲线称为二次曲线。其中系数A、B、
C、D、E、F为实常数,且A、B、C不同时为零。
Ax2?Bxy?Cy2?Dx?Ey?F?0
(3.1)
式(3.1)称为圆锥曲线的隐式方程。令
??B2?4AC (3.2)
称上式为二元二次方程(3.1)的判别式。
??0 时,(3.1)式为椭圆型曲线(包括圆、椭圆和虚椭圆); ??0 时,(3.1)式为抛物线型曲线(包括两平行直线和虚直线);
1
??0 时,(3.1)式为双曲型曲线(包括两相交直线)。
在不同的坐标系下,平面上一点的坐标、一条曲线的方程是不同的。通过利用坐标变换(即坐标轴的平移和旋转),可以将一般二次曲线方程化成最简形式,借以确定曲线的形状和位置。 一、坐标轴的平移
只改变坐标原点的位置,而不改变坐标轴的方向和长度单位,这样的坐标变换叫做坐标轴的平移,简称平移或移轴。
将旧坐标系oxy平移到o?x?y?,那么平面上任一点M在旧坐标系与新坐标系的坐标
(x,y)和(x',y')具有关系:
?x?x??x0 ??y?y?y0? (3.3)
其中(x0,y0)是新坐标系中的原点o?在旧坐标系里的坐标。公式(3.3)叫做平移变换公式。
二、坐标轴的旋转
坐标原点的位置和长度单位都不改变,让坐标轴绕原点按同一方向旋转同一个角度,这种坐标变换叫做坐标轴的旋转,简称旋转或转轴。
把旧坐标系oxy绕原点o旋转同一个角度?到o?x?y?,那么平面上的任一点M在旧坐标系与新坐标系下的坐标(x,y)和(x',y')之间具有关系:
?x?x?cos??y?sin? ????y?xsin??ycos?公式(3.4)叫做旋转变换公式。
(3.4)
适当选择坐标系,二次曲线方程经过坐标系的旋转和平移变换,可简化成几种标准方程。
1.中心二次曲线方程可以简化成下面5种标准方程之一:
x2y2a) 2?2?1(椭圆);
abx2y2b) 2?2??1(虚椭圆);
abx2y2c) 2?2?0(点椭圆或称变态椭圆);
ab
2
x2y2d) 2?2?1(双曲线);
abx2y2e) 2?2?0(两相交直线,或称变态双曲线)。
ab2.无心二次曲线的标准方程为:
y2?2px (抛物线)
3.线心二次曲线方程可化简成下面3种标准方程之一: a) y2?a2(两平行直线); b) y2??a2(两平行共轭虚直线); c) y2?0(两重合直线)。
由实际的工程应用可知,在实际的加工中只有椭圆、双曲线、抛物线和直线具有工程价值。数控机床具有直线和圆弧的插补功能,所以在本章中只考虑椭圆、双曲线和抛物线的拟合算法。实现椭圆、双曲线、抛物线的拟合算法主要步骤为:
1)参数输入
遵照数控NC程序编程规范,以最少输入参数唯一定义曲线为准则,设计了曲线的输入参数,见表1。
曲线类型 抛物线 椭圆
表1 平面圆锥曲线输入参数列表
参数说明
顺逆方向、起点、终点、焦点坐标
顺逆方向、起点、终点、中心坐标、长轴相对于X轴的
转角
顺逆方向、起点、终点、中心坐标、长轴相对于X轴的转角
双曲线 2)曲线标准化
利用坐标系平移、旋转变换,将曲线变换到可以利用最简方程表示的坐标系下,并求解方程,详见附录1。为了便于计算,最后确定采用下列形式作为各曲线的标准方程式。
抛物线:y?ax2?b
?x?acos?椭圆:?
?y?bsin?
3
?x?asec?双曲线:?
y?btg??3)求取曲线的极值点、拐点,对曲线进行分割,建立有序的型值点序列。型值点的排序规则为:
抛物线:以xi?xA为标准,按递增顺序排列; 椭圆:以?i??A为标准,按递增顺序排列; 双曲线:以?i??A为标准,按递增顺序排列;
注:xA为起点横坐标,xi为第i个点横坐标;?A为起点极角,?i第i个极角。 4)取Pi,Pi?1两个型值点,进行双圆弧曲线拟合。
5)如果拟合结果的法向误差满足规定误差,则转6),否则,则转7)。
6)将拟合结果送入输出链表中,如果曲线全部拟合完成,则结束,否则转4)。 7)在Pi,Pi?1之间按照0.618,0.382的比率插入新的型值点,再转4)。 上述,为曲线拟合的主要步骤,下面详细的介绍一下双圆弧拟合算法。
3.2.2 曲线的常用双圆弧拟合算法[17-25]
按平面曲线给定一列有序型值点(节点),每相邻节点之间由两条相切圆弧构成,两圆弧分别通过一个节点,且节点处的切线斜率与曲线在节点处的斜率相等,叫做曲线的双圆弧拟合。双圆弧拟合有六个参数需要确定:两节点Pi,Pi?1;两节点Pi,Pi?1处的切线斜率;双圆弧的切点T;双圆弧切点处的公切线斜率。前四个参数可由曲线的参数方程按给定参数值求得。双圆弧拟合方法主要根据后两个参数的求法而不同,但不难证明两圆弧相切点位置结论:相切点位置有无穷多个;相切点的轨迹是一个圆弧——轨迹弧(过相邻两节点的弧,且在两节点处切线夹角等于曲线在两节点处切线夹角)。
为确保双圆弧的正确拟合,要求:
1) 两拟合圆弧应满足保凸要求,即两相邻节点Pi,Pi?1处切线PiM,Pi?1M需有实交点(沿某切线方向前进时,与另一切线的反向延长线的交点,称为实交点,反之为虚交点);
2) 拟合的圆弧段需要采用劣弧,即两节点连线PiPi?1与两切线PiM,Pi?1M构成的三角形中?????(见图8,图9,图10)。
4
O1 图10 平均转角法拟合双圆弧 P1 α 原曲线 T β P2 O1 图8 垂直平分线法拟合双圆弧 P1 α 原曲线 T β O2 P2 P1 M 原曲线 T α β O2 P2 M
O1 图9 平行弦线法拟合双圆弧
θ/2 θ/2 M O2 3.2.3 公切线确定方法
1.常用的公切线确定方法有以下三种:
1) 垂直平分线法:相邻两节点连线的垂直平分线与轨迹弧的交点作为两拟合圆弧的切点(图8);
2) 平行弦法:两圆弧的公切线平行于相邻两节点连线PiPi?1,两圆弧的公切点T显然是?PiMPi?1的内心(图9);
3) 平均转角法:两圆弧的公切线平行于曲线在相邻两节点处切线交角的平分线(图10);
2.三种方法的特点比较如下: 1) 保凸条件:
a) 垂直平分线法:13????3;
5