第三章_曲线拟合算法研究_第1页
第三章_曲线拟合算法研究_第2页
第三章_曲线拟合算法研究_第3页
第三章_曲线拟合算法研究_第4页
第三章_曲线拟合算法研究_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 曲线拟合算法的研究3.1 引言随着航空、汽车等现代工业与计算机技术的发展,圆锥曲线与列表点曲线已经成为形状数学描述的常用方法,得到了广泛的应用。为了满足激光切割加工任务的需要,自动编程系统集成了多种曲线拟合算法,这样利用现有的激光切割机,即可实现特殊曲线的插补功能,极大地丰富系统的插补能力,满足复杂的生产要求。3.2 圆锥曲线拟合算法的研究在经济型数控系统中,对于圆锥曲线即平面二次曲线的加工是数控加工中经常遇到的问题,随着数控加工对圆锥曲线插补的需求,近年来有关各种圆锥曲线的插补算法应运而生26。常用的解决方法是先用低次的有理参数曲线拟合或将其离散,再用直线、圆弧逼近,然后才能进行数控

2、加工28。本章从一个新的视角利用双圆弧方法,提出先对圆锥曲线进行标准化处理,再用双圆弧拟合逼近,然后再进行数控加工。这样的优点是:圆弧样条的等距曲线还是圆弧;双圆弧样条能达到C1连续,基本上能满足要求;所有数控系统都具有直线插补和圆弧插补功能,无需增加额外负担。由于工程应用不同,对曲线拟合的要求也不同。有的只要求拟合曲线光滑,有的要求光顺9-10。本章中开发的软件要求是:支持多种常用圆锥曲线的拟合;拟合曲线要求光滑;拟合曲线与函数曲线间的误差应控制在允许的范围之内,且拟合圆弧段数较少。本章提出的对圆锥曲线的插补,是建立在对平面任意二次曲线可以进行分类的基础上,先将二次曲线进行分类,然后对各类曲

3、线分别进行双圆弧拟合,这样就可以直接利用数控系统的圆弧插补功能进行插补。3.2.1 圆锥曲线的一般理论9在平面直角坐标系中,二元二次方程所表示的曲线称为二次曲线。其中系数、为实常数,且、不同时为零。 (3.1)式(3.1)称为圆锥曲线的隐式方程。令 (3.2)称上式为二元二次方程(3.1)的判别式。时,(3.1)式为椭圆型曲线(包括圆、椭圆和虚椭圆);时,(3.1)式为抛物线型曲线(包括两平行直线和虚直线);时,(3.1)式为双曲型曲线(包括两相交直线)。在不同的坐标系下,平面上一点的坐标、一条曲线的方程是不同的。通过利用坐标变换(即坐标轴的平移和旋转),可以将一般二次曲线方程化成最简形式,借

4、以确定曲线的形状和位置。一、坐标轴的平移只改变坐标原点的位置,而不改变坐标轴的方向和长度单位,这样的坐标变换叫做坐标轴的平移,简称平移或移轴。将旧坐标系平移到,那么平面上任一点在旧坐标系与新坐标系的坐标和具有关系: (3.3)其中是新坐标系中的原点在旧坐标系里的坐标。公式(3.3)叫做平移变换公式。二、坐标轴的旋转坐标原点的位置和长度单位都不改变,让坐标轴绕原点按同一方向旋转同一个角度,这种坐标变换叫做坐标轴的旋转,简称旋转或转轴。把旧坐标系绕原点旋转同一个角度到,那么平面上的任一点在旧坐标系与新坐标系下的坐标和之间具有关系: (3.4)公式(3.4)叫做旋转变换公式。适当选择坐标系,二次曲线

5、方程经过坐标系的旋转和平移变换,可简化成几种标准方程。1中心二次曲线方程可以简化成下面5种标准方程之一:a) (椭圆);b) (虚椭圆);c) (点椭圆或称变态椭圆);d) (双曲线);e) (两相交直线,或称变态双曲线)。2无心二次曲线的标准方程为: (抛物线)3线心二次曲线方程可化简成下面3种标准方程之一:a) (两平行直线);b) (两平行共轭虚直线);c) (两重合直线)。由实际的工程应用可知,在实际的加工中只有椭圆、双曲线、抛物线和直线具有工程价值。数控机床具有直线和圆弧的插补功能,所以在本章中只考虑椭圆、双曲线和抛物线的拟合算法。实现椭圆、双曲线、抛物线的拟合算法主要步骤为:1)参

6、数输入表1 平面圆锥曲线输入参数列表遵照数控NC程序编程规范,以最少输入参数唯一定义曲线为准则,设计了曲线的输入参数,见表1。曲线类型参数说明抛物线顺逆方向、起点、终点、焦点坐标椭圆顺逆方向、起点、终点、中心坐标、长轴相对于X轴的转角双曲线顺逆方向、起点、终点、中心坐标、长轴相对于X轴的转角2)曲线标准化利用坐标系平移、旋转变换,将曲线变换到可以利用最简方程表示的坐标系下,并求解方程,详见附录1。为了便于计算,最后确定采用下列形式作为各曲线的标准方程式。抛物线:椭圆:双曲线:3)求取曲线的极值点、拐点,对曲线进行分割,建立有序的型值点序列。型值点的排序规则为:抛物线:以为标准,按递增顺序排列;

7、椭圆:以为标准,按递增顺序排列;双曲线:以为标准,按递增顺序排列; 注:为起点横坐标,为第i个点横坐标;为起点极角,第i个极角。4)取,两个型值点,进行双圆弧曲线拟合。5)如果拟合结果的法向误差满足规定误差,则转6),否则,则转7)。6)将拟合结果送入输出链表中,如果曲线全部拟合完成,则结束,否则转4)。7)在,之间按照0.618,0.382的比率插入新的型值点,再转4)。上述,为曲线拟合的主要步骤,下面详细的介绍一下双圆弧拟合算法。3.2.2 曲线的常用双圆弧拟合算法17-25按平面曲线给定一列有序型值点(节点),每相邻节点之间由两条相切圆弧构成,两圆弧分别通过一个节点,且节点处的切线斜率与

8、曲线在节点处的斜率相等,叫做曲线的双圆弧拟合。双圆弧拟合有六个参数需要确定:两节点,;两节点,处的切线斜率;双圆弧的切点;双圆弧切点处的公切线斜率。前四个参数可由曲线的参数方程按给定参数值求得。双圆弧拟合方法主要根据后两个参数的求法而不同,但不难证明两圆弧相切点位置结论:相切点位置有无穷多个;相切点的轨迹是一个圆弧轨迹弧(过相邻两节点的弧,且在两节点处切线夹角等于曲线在两节点处切线夹角)。为确保双圆弧的正确拟合,要求:1) 两拟合圆弧应满足保凸要求,即两相邻节点,处切线需有实交点(沿某切线方向前进时,与另一切线的反向延长线的交点,称为实交点,反之为虚交点);2) 拟合的圆弧段需要采用劣弧,即两

9、节点连线与两切线构成的三角形中(见图8,图9,图10)。O1O2P1P2MT图8 垂直平分线法拟合双圆弧原曲线O1O2P1P2MT图9 平行弦线法拟合双圆弧原曲线O2P1P2MT图10 平均转角法拟合双圆弧原曲线/2/2O13.2.3 公切线确定方法1.常用的公切线确定方法有以下三种:1) 垂直平分线法:相邻两节点连线的垂直平分线与轨迹弧的交点作为两拟合圆弧的切点(图8);2) 平行弦法:两圆弧的公切线平行于相邻两节点连线,两圆弧的公切点显然是的内心(图9);3) 平均转角法:两圆弧的公切线平行于曲线在相邻两节点处切线交角的平分线(图10);2.三种方法的特点比较如下:1) 保凸条件:a) 垂

10、直平分线法:;b) 平行弦法:;c) 平均转角法:。2) 两圆半径比(在保凸条件下):a) 垂直平分线法:;b) 平行弦法:;c) 平均转角法:。3.2.4 双圆弧拟合算法8图11,设节点A和B为在第个区间上的相邻节点,经坐标变换后AB为横轴,A为原点,垂直于AB为纵轴。有向直线和为拟合曲线在A和B上的有向切线。设C是直线和的交点,和分别是和与横轴的夹角,逆时 针方向为正;,T为的内心。图11 双圆弧曲线O2AB> 0CP> 0(b) 反向双圆弧公切点轨迹弧O1gAgB-XY=-O2AB> 0CP< 0(a) 同向双圆弧公切点轨迹弧O1gAgB-XYT如果C在横轴的上方

11、,且和的方向分别与有向直线AC和CB的方向相同,那么,彼此相切且分别以和为切线的双圆弧公切点轨迹是过三点A,T,B且内部的圆弧,图11(a)。如果的方向与CB的方向相反,则双圆弧公切点轨迹是过A点和B点且弧度为()在AB下方的圆弧,图11(b)。在当(保凸)时,双圆弧同向,为C形双圆弧。当时,双圆弧反向,为S 形双圆弧。在局部坐标系下,双圆弧圆心和半径可以统一地由下式给出:左圆半径:, (3.5)圆心坐标:, 。 (3.6)右圆半径:, (3.7)圆心坐标:, 。 (3.8)公切点的坐标: (3.9) (3.10)其中;是左圆弧的圆心角,是右圆弧的圆心角;逆时针方向为正;正圆对应正圆

12、心角,负圆对应负圆心角,是AB的长度。3.2.5 误差分析方法利用法向误差判断方法,步骤如下:(1)计算二次曲线在节点,间n等分的各分点坐标。1)对于抛物线,在节点,间将横轴值x等分为n份:,计算出抛物线上各对应分点坐标: r=1,2,n-1。2)对于椭圆、双曲线,在节点,间将参数等分为n份:,计算出椭圆或双曲线上各对应分点坐标: r=1,2,n-1(2)判断分点所对应的圆弧,过两圆心的直线(必过公切点)方程: (3.11)其中:;。将节点坐标代入式(3.11)左边,将有(或) (3.12)将二次曲线上分点坐标代入式(3.11)左边计算值,如果,则点对应第一段圆弧,否则对应第二段圆弧。(3)计

13、算法向误差对应第一段圆弧的误差公式是: , (3.13)其中是对应第一段圆弧的最后一个分点号。对应第二段圆弧的误差公式是: , (3.14)(4)判断最大误差设如果(为指定的最大的允许误差),则双圆弧拟合结果为所求。如果,则对节点间用0.618法缩小区间,重新进行双圆弧拟合,直到满足误差要求。3.2.6 双圆弧的最佳逼近算法如何利用双圆弧样条对平面二次曲线进行逼近呢?简单的办法就是先将曲线插值出型值点,再对型值点进行拟合27-29,这样做的缺点是:增加了插值误差;型值点过密会增加圆弧的段数。为了很好地解决这个问题,在本章中另外提出的一种方法是先将平面二次曲线进行合适的分割,再用双圆弧拟合,计算

14、逼近误差,如果超过允许误差,再对曲线进行分割、拟合,直至满足要求。这样能够得到在逼近误差允许范围内圆弧段数最少的圆弧样条。O1O2P1P2PC1C2图12 分割后的平面二次曲线曲线曲线的分割是指在曲线的拐点和奇点处将曲线分成几段,每一段分别处理。另外,为了算法的简捷,要求分割后的曲线两端点的切线角小于90º。如图12所示曲线为分割后的平面二次曲线,在两端点、之间无奇点、无拐点。要求过两点、分别作圆弧、,与曲线相切于点、同时公切于点。已知P1、P2两点坐标,曲线最佳逼近算法为:(1)计算 、两点的切线、在直角坐标系下,任意二次曲线的方程为:过二次曲线上点的切线方程为:同理可以得出过的切

15、线方程。(2)确定公切点公切点的选择直接影响到双圆弧逼近曲线的光顺性和逼近效果,可以证明双圆弧公切点轨迹是一圆弧,考虑到双圆弧样条与平面二次曲线要取得最好的逼近效果,将公切点取作公切点圆弧与平面二次曲线的交点,这样双圆弧与被逼近的二次曲线段有5个交点(端点相切算两个交点),因而基本上是最佳的双圆弧逼近。11P1P2PST1T2S122C0图13 确定公切点O如图13所示,过、作切线、交点为,夹角为。作等腰三角形,使,则公切点圆弧必然与直线、相切。可以证明公切点的轨迹为过、的圆弧25,其圆心及半径分别为: 其中: ,当 时成立。求公切点转化为求公切点圆弧轨迹与二次曲线的交点,设交点坐标为,则有:

16、解此二元二次方程组,即可求出交点P坐标。下面证明公切点圆弧轨迹与二次曲线在、之间只有一个交点。从图13可以看出,因此存在三种情况:a) ,则与曲线有一个交点,而与曲线无交点;b) ,则与曲线有交点,而与曲线无交点;c) 。由于对曲线进行了分割,分割后的曲线段与圆弧应是同向凸的,假设为上凸,如图13所示,属情况b),在附近位于曲线的下方,在附近位于曲线的上方,因此与曲线必有唯一的交点。情况a)同理可证。情况c)是一种特殊情况,即为所求的双圆弧。(3)求双圆弧 、已知两端点、及其斜率,另外又已知两圆弧的公共切点,很容易找到两圆弧的圆心及半径-、。(4)误差估计逼近的双圆弧与原曲线的误差计算,是算法

17、的重要组成部分。按曲线C的法线误差计算,可以得出双圆弧 、与原曲线的误差、: 点在和之间 点在和之间如何找到、的最大值呢?直接求导很复杂,本章中提出一种区域逼近的方法求最大值。首先将区域十等分,求每点的误差及其最大值,由于曲线是单峰的,所以真正的误差一定在附近,将区域缩小至的邻近区域,重复以上过程,直至两次所得max的很接近,已经逼近最大值。如果、超过允许误差,则在点处将原曲线进行分割,对超差段重新进行双圆弧逼近,直至满足要求。3.2.7 圆锥曲线拟合算法处理流程 根据实际开发的要求,分别对三种曲线应用上述的原理进行了双圆弧拟合处理,其实现方案图14所示。图14 圆锥曲线拟合算法流程图3.2.

18、8 应用实例 例如对于椭圆曲线的加工,由用户输入:G91 G02.2 X30 Y20 I0 J20 A0;XY图15 椭圆的双圆弧拟合后曲线3020该G代码表示的含义是顺时针加工椭圆,以椭圆的起点坐标作为椭圆加工的相对坐标系的原心,椭圆中心相对于起点的矢量坐标为(0,20),椭圆加工的终点相对于起点的坐标为(30,20),椭圆加工的长轴与横轴的角度为0。通过椭圆的双圆弧拟合,拟合后的曲线如图15所示。拟合后的数据为:18%ellipse.GN0 M54 M50 M20 N5 G91 F100.000N10 S50 M3N15 G02 X-6.204 Y0.430 I0.000 J44.990N

19、20 G02 X-5.803 Y1.242 I5.649 J40.575N25 G02 X-1.407 Y0.439 I10.812 J37.135N30 G02 X-1.354 Y0.481 I11.607 J34.857N35 G02 X-1.664 Y0.676 I12.553 J33.294N40 G02 X-1.565 Y0.731 I13.144 J30.155N45 G02 X-1.897 Y1.031 I14.011 J28.028N50 G02 X-1.715 Y1.097 I14.150 J24.014N55 G02 X-1.627 Y1.223 I14.895 J21.5

20、16N60 G02 X-1.427 Y1.264 I14.494 J17.803N65 G02 X-0.340 Y0.334 I15.274 J15.866N70 G02 X-0.327 Y0.336 I15.099 J15.020N75 G02 X-1.228 Y1.414 I14.783 J14.072N80 G02 X-1.020 Y1.428 I14.061 J11.116N85 G02 X-0.233 Y0.373 I14.520 J9.327N90 G02 X-0.220 Y0.373 I14.320 J8.693N95 G02 X-0.261 Y0.474 I14.305 J8.

21、185N100 G02 X-0.241 Y0.474 I14.071 J7.449N105 G02 X-1.107 Y3.096 I13.447 J6.554N110 G02 X-0.361 Y3.084 I12.982 J3.084N115 G02 X0.611 Y3.995 I13.362 J-0.000N120 G02 X1.897 Y4.010 I15.366 J-4.814N125 G02 X0.647 Y0.923 I14.955 J-9.797N130 G02 X0.732 Y0.918 I15.533 J-11.638N135 G02 X0.989 Y1.085 I15.523

22、 J-13.169N140 G02 X1.122 Y1.068 I16.175 J-15.863N145 G02 X1.498 Y1.227 I15.984 J-17.978N150 G02 X1.694 Y1.180 I16.474 J-21.842N155 G02 X1.777 Y1.054 I15.714 J-24.476N160 G02 X1.952 Y0.982 I15.598 J-28.573N165 G02 X0.498 Y0.225 I14.094 J-30.526N170 G02 X0.508 Y0.220 I13.937 J-31.523N175 G02 X2.589 Y0

23、.979 I13.919 J-32.900N180 G02 X2.793 Y0.821 I12.531 J-37.469N185 G02 X0.706 Y0.173 I9.988 J-39.273N190 G02 X0.716 Y0.162 I9.456 J-40.190N195 G02 X4.546 Y0.730 I9.019 J-41.637N200 G02 X4.725 Y0.249 I4.725 J-44.748N205 G02 X6.204 Y-0.430 I0.000 J-44.990N210 G02 X5.803 Y-1.242 I-5.649 J-40.575N215G02 X

24、1.407 Y-0.439 I-10.812 J-37.135N220G02 X1.354 Y-0.481 I-11.607 J-34.857N225G02 X1.664 Y-0.676 I-12.553 J-33.294N230G02 X1.565 Y-0.731 I-13.144 J-30.155N235G02 X1.897 Y-1.031 I-14.011 J-28.028N240G02 X1.715 Y-1.097 I-14.150 J-24.014N245G02 X1.627 Y-1.223 I-14.895 J-21.516N250G02 X1.427 Y-1.264 I-14.4

25、94 J-17.803N255G02 X0.340 Y-0.334 I-15.274 J-15.866N260G02 X0.327 Y-0.336 I-15.099 J-15.020N265G02 X1.228 Y-1.414 I-14.783 J-14.072N270G02 X1.020 Y-1.428 I-14.061 J-11.116N275 G02 X0.233 Y-0.373 I-14.520 J-9.327N280 G02 X0.220 Y-0.373 I-14.320 J-8.693N285 G02 X0.261 Y-0.474 I-14.305 J-8.185N290 G02

26、X0.241 Y-0.474 I-14.071 J-7.449N295 G02 X1.107 Y-3.096 I-13.447 J-6.554N300 G02 X0.361 Y-3.084 I-12.982 J-3.084N305 S0 M3N310 M51 M21N315 M303.3 列表点曲线拟合算法的研究除了圆锥曲线以外,列表点曲线也是形状数学描述的标准形式。其中,最常用的列表点描述方法有:1. 贝齐尔(Bezier)曲线;2. B样条曲线;通过对这两种方法的比较,找出适合列表曲线拟合的方法。3.3.1 贝齐尔曲线11 给定一组有序的数据点,这些点可以是从某个形状上测量得到,也可以是设

27、计员给出。要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。这些数据点若原来位于某曲线上,则称该曲线为被插曲线。在某种情况下,测量所得或者设计员给出的数据点本身就很粗糙,要求构造一条曲线严格通过给定的一组数据点就没有什么意义。更合理的提法应是,构造一条曲线使之在某种意义下最为接近给定的数据点,称之为对这些数据点进行逼近,所构造的曲线称为逼近曲线。插值和逼近统称为拟合。贝齐尔(Bezier)曲线以数据点表示,其伯恩斯坦(Bernstein)基表示式为:, (3.15)其中,基函数 ,称为伯恩斯坦基函数。用控制顶点定义的伯恩斯坦(Bernstein)基表示的贝齐尔曲线是一种独特的参数样条曲线,它不仅具有优良的控制性质,而且几何直观,又惊人的简单,使它特别适合于交互地设计形状,但它不具有局部修改性质且不能解决在描述复杂形状时带来的连接问题。3.3.2 B样条曲线11B样条理论早在1946年由舍恩伯格(Schoenberg)提出,但论文直到1967年才发表。1972年,德布尔(de Boor)与考克斯(Cox)分别独立地给出B样条计算的标准算法。但作为CAGD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论