第三章_曲线拟合算法的研究汇总

更新时间:2024-05-31 21:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 曲线拟合算法的研究

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

b) 平行弦法:???0; c) 平均转角法:13????3。 2) 两圆半径比(在保凸条件下): a) 垂直平分线法:R1R2?sin3???3???/sin; 442b) 平行弦法:R1R2??sin(?2)/sin(?2)?; c) 平均转角法:R1R2?sin3???3???/sin。 443.2.4 双圆弧拟合算法[8]

图11,设节点A和B为在第i?1个区间?Pi,Pi?1?上的相邻节点,经坐标变换后AB为横轴,A为原点,垂直于AB为纵轴。有向直线gA和gB为拟合曲线?j在A和B上的

有向切线。设C是直线gA和gB的交点,?和?分别是gA和gB与横轴的夹角,逆时 针方向为正;????,???,T为?ABC的内心。

Y 公切点 gA 轨迹弧 C gB P α> 0 ω-θ θ O2 O1 (a) 同向双圆

B β< 0 X

α> 0 A 公切点 轨迹弧 P θ O1 (b) 反向双圆弧

图11 双圆弧曲线

ω=β-α O2 ω-θ β> 0 X B Y C gA gB A T

如果C在横轴的上方,且gA和gB的方向分别与有向直线AC和CB的方向相同,那么,彼此相切且分别以gA和gB为切线的双圆弧公切点轨迹是过三点A,T,B且?ABC内部的圆弧,图11(a)。

如果gB的方向与CB的方向相反,则双圆弧公切点轨迹是过A点和B点且弧度为(???C/2)在AB下方的圆弧,图11(b)。

在当???0(保凸)时,双圆弧同向,为C形双圆弧。当???0时,双圆弧反向,为S 形双圆弧。在局部坐标系下,双圆弧圆心和半径可以统一地由下式给出:

6

左圆半径:R1?Lsin(???2??)/(2sin?sin), 22?

(3.5) (3.6) (3.7) (3.8) (3.9) (3.10)

圆心坐标:xA??R1sin?, yA?R1cos?。

?????), 右圆半径:R2??Lsin(??)/(2sinsin222圆心坐标:xB?L?R2sin?, yB?R2cos?。 公切点M的坐标:xM?Lsin(

???2??)cos(?2??)/sin?2

yM?Lsin(???2??)sin(??)/sin

22??其中?????;?是左圆弧的圆心角,???是右圆弧的圆心角;逆时针方向为正;正圆对应正圆心角,负圆对应负圆心角,??????,L是AB的长度。

3.2.5 误差分析方法

利用法向误差判断方法,步骤如下:

(1)计算二次曲线在节点Pi,Pi?1间n等分的各分点坐标。

1)对于抛物线y?ax2?b,在节点Pi,Pi?1间将横轴值x等分为n份:

xi?xi0?xi1???xin?1?xin?xi?1,计算出抛物线上各对应分点坐标:Pir(xir,y(xir)) r=1,2,…,n-1。

?x?asec??x?acos?2)对于椭圆?、双曲线?,在节点Pi,Pi?1间将参数?等分为n

?y?btg??y?bsin?份:?i??i0??i1????in?1??in??i?1,计算出椭圆或双曲线上各对应分点坐标:

Pir(x(?ir),y(?ir)) r=1,2,…,n-1

(2)判断分点Pi所对应的圆弧,过两圆心o1(x1,y1),o2(x2,y2)的直线(必过公切点)方程:

F(x,y)?Ax?By?C?0

(3.11)

其中:A?y2?y1;B?x1?x2;C?x2y1?x1y2。 将节点Pi(xi,yi)坐标代入式(3.11)左边,将有

F(xi,yi)?0(或F(xi,yi)?0)

(3.12)

将二次曲线上分点Pir坐标xir,yir代入式(3.11)左边计算值,如果F(xir,yir)?0,则Pir点对应第一段圆弧,否则对应第二段圆弧。

7

(3)计算法向误差

对应第一段圆弧的误差公式是:

?ir(1)?(xir?x1)2?(yir?y1)2?R1 ,r?1,2,?,m(m?n?1)

(3.13)

其中m是对应第一段圆弧的最后一个分点号。 对应第二段圆弧的误差公式是:

?ir(2)?(xir?x2)2?(yir?y2)2?R2 ,r?m?1,m?2,?,n?1

(3.14)

(4)判断最大误差

设?i?max(?ir,?ir(1)(2)),i?1,2,?,n?1.

如果?i??(?为指定的最大的允许误差),则双圆弧拟合结果为所求。如果?i??,则对节点Pi,Pi?1间用0.618法缩小区间,重新进行双圆弧拟合,直到满足误差要求。

3.2.6 双圆弧的最佳逼近算法

如何利用双圆弧样条对平面二次曲线进行逼近呢?简单的办法就是先将曲线插值出型值点,再对型值点进行拟合[27-29],这样做的缺点是:增加了插值误差;型值点过密会增加圆弧的段数。为了很好地解决这个问题,在本章中另外提出的一种方法是先将平面二次曲线进行合适的分割,再用双圆弧拟合,计算逼近误差,如果超过允许误差,再对曲线进行分割、拟合,直至满足要求。这样能够得到在逼近误差允许范围内圆弧段数最少的圆弧样条。

曲线的分割是指在曲线的拐点和奇点处将曲线分成几段,每一段分别处理。另外,为了算法的简捷,要求分割后的曲线两端点的切线角小于90o。如图12所示曲线Г为分割后的平面二次曲线,在两端点P1、P2之间无奇点、无拐点。要求过两点P1、P2分别作圆弧C1、C2,与曲线Г相切于点P1、P2同时公切于P点。

O2 已知P1、P2两点坐标,曲线最佳逼近算法为:

曲线Г

C1 P1 P C2

P2

O1 图12 分割后的平面二次曲线

8

(1)计算 P1、P2两点的切线T1、T2 在直角坐标系下,任意二次曲线的方程为:

F(x,y)?a11x2?2a12xy?a22y2?2a13x?2a23y?a33?0 过二次曲线上点P1(x1,y1)的切线方程为:

a11x1x?a12(x1y?xy1)?a22y1y?a13(x?x1)?a23(y?y1)?a33?0 同理可以得出过P2的切线方程。 (2)确定公切点P

公切点的选择直接影响到双圆弧逼近曲线的光顺性和逼近效果,可以证明双圆弧公切点轨迹是一圆弧,考虑到双圆弧样条与平面二次曲线要取得最好的逼近效果,将公切点取作公切点圆弧与平面二次曲线的交点,这样双圆弧与被逼近的二次曲线段有5个交点(端点相切算两个交点),因而基本上是最佳的双圆弧逼近。

如图13所示,过P1S1P2,1、P2作切线T1、T2交点为S,夹角为?。作等腰三角形P使?P,则公切点圆弧必然与直线P1S1、P2S1相切。 1S1P2??P1SP2

Γ

P1 θ1 α1 P T1 S θ S1 C0 α2 θ2 P2 T2 O 图13 确定公切点

[25]

可以证明公切点P的轨迹为过P,其圆心及半径分别为: 1、P2的圆弧C0x0?y0?x1?x2y2?y1??ctg 222y1?y2x2?x1??ctg 222R?1?(x2?x1)2?(y2?y1)2csc 22

9

其中:ctg?2?‘’'2'21?yy?(1?y)(1?y1212)'y2?y1' ,当

y1'?1y?1'2时成立。

求公切点转化为求公切点圆弧轨迹C0与二次曲线Γ的交点,设交点坐标为(x,y),则有:

222??(x?x0)?(y?y0)?R ?22??a11x?2a12xy?a22y?2a13x?2a23y?a33?0解此二元二次方程组,即可求出交点P坐标(x,y)。

下面证明公切点圆弧轨迹C0与二次曲线Γ在P从图13可1、P2之间只有一个交点。以看出?1??2??1??2,因此存在三种情况:

a) ?1??1,?2??2,则P2S1与曲线Γ有一个交点,而P1S1与曲线Γ无交点; b) ?1??1,?2??2,则P1S1与曲线Γ有交点,而P2S1与曲线Γ无交点; c) ?1??1,?2??2。

由于对曲线进行了分割,分割后的曲线段与圆弧应是同向凸的,假设为上凸,如图13所示,属情况b),在P1附近C0位于曲线Γ的下方,在P2附近C0位于曲线Γ的上方,因此C0与曲线Γ必有唯一的交点。情况a)同理可证。情况c)是一种特殊情况,C0即为所求的双圆弧。

(3)求双圆弧C1 、C2

已知两端点P另外又已知两圆弧的公共切点,很容易找到两圆弧的1、P2及其斜率,圆心及半径---(x1,y1)、R1、(x2,y2)、R2。

(4)误差估计

逼近的双圆弧与原曲线的误差计算,是算法的重要组成部分。按曲线C的法线误差计算,可以得出双圆弧C1 、C2与原曲线Γ的误差?1、?2:

2?1?|(y?y1)2?(x?x1)?R1| 点(x,y)在P1和P之间 2?2?|(y?y2)2?(x?x2)?R2| 点(x,y)在P和P2之间

如何找到?1、?2的最大值呢?直接求导很复杂,本章中提出一种区域逼近的方法求

'最大值。首先将区域十等分,求每点的误差及其最大值?max,由于曲线是单峰的,所以

''真正的误差?max一定在?max附近,将区域缩小至?max的邻近区域,重复以上过程,直至

10

'两次所得δ’max?max的很接近,已经逼近最大值?max。

如果?1max、?2max超过允许误差,则在P点处将原曲线Γ进行分割,对超差段重新进行双圆弧逼近,直至满足要求。

3.2.7 圆锥曲线拟合算法处理流程

根据实际开发的要求,分别对三种曲线应用上述的原理进行了双圆弧拟合处理,其实现方案图14所示。

开始抛物线拟合N椭圆拟合N双曲线拟合YYY曲线参数输入曲线标准化输入数据有效Y建立型值点列表N报错拟合完成N双圆弧拟合Y返回插入新型值点误差判断N满足精度要求Y数据输出处理 图14 圆锥曲线拟合算法流程图

3.2.8 应用实例

例如对于椭圆曲线的加工,由用户输入: G91 G02.2 X30 Y20 I0 J20 A0;

11

该G代码表示的含义是顺时针加工椭圆,以椭圆的起点坐标作为椭圆加工的相对坐标系的原心,椭圆中心相对于起点的矢量坐标为(0,20),椭圆加工的终点相对于起点的坐标为(30,20),椭圆加工的长轴与横轴的角度为0。通过椭圆的双圆弧拟合,拟合后的曲线如图15所示。

20 Y

拟合后的数据为: %ellipse.G

30 X

图15 椭圆的双圆弧拟合后曲线

N105 G02 X-1.107 Y3.096 I13.447 J6.554 N110 G02 X-0.361 Y3.084 I12.982 J3.084 N115 G02 X0.611 Y3.995 I13.362 J-0.000 N120 G02 X1.897 Y4.010 I15.366 J-4.814 N125 G02 X0.647 Y0.923 I14.955 J-9.797 N130 G02 X0.732 Y0.918 I15.533 J-11.638 N135 G02 X0.989 Y1.085 I15.523 J-13.169 N140 G02 X1.122 Y1.068 I16.175 J-15.863 N145 G02 X1.498 Y1.227 I15.984 J-17.978 N150 G02 X1.694 Y1.180 I16.474 J-21.842 N155 G02 X1.777 Y1.054 I15.714 J-24.476 N160 G02 X1.952 Y0.982 I15.598 J-28.573 N165 G02 X0.498 Y0.225 I14.094 J-30.526 N170 G02 X0.508 Y0.220 I13.937 J-31.523 N175 G02 X2.589 Y0.979 I13.919 J-32.900 N180 G02 X2.793 Y0.821 I12.531 J-37.469 N185 G02 X0.706 Y0.173 I9.988 J-39.273 N190 G02 X0.716 Y0.162 I9.456 J-40.190 N195 G02 X4.546 Y0.730 I9.019 J-41.637 N200 G02 X4.725 Y0.249 I4.725 J-44.748 N205 G02 X6.204 Y-0.430 I0.000 J-44.990 N210 G02 X5.803 Y-1.242 I-5.649 J-40.575

12

N0 M54 M50 M20 N5 G91 F100.000 N10 S50 M3

N15 G02 X-6.204 Y0.430 I0.000 J44.990 N20 G02 X-5.803 Y1.242 I5.649 J40.575 N25 G02 X-1.407 Y0.439 I10.812 J37.135 N30 G02 X-1.354 Y0.481 I11.607 J34.857 N35 G02 X-1.664 Y0.676 I12.553 J33.294 N40 G02 X-1.565 Y0.731 I13.144 J30.155 N45 G02 X-1.897 Y1.031 I14.011 J28.028 N50 G02 X-1.715 Y1.097 I14.150 J24.014 N55 G02 X-1.627 Y1.223 I14.895 J21.516 N60 G02 X-1.427 Y1.264 I14.494 J17.803 N65 G02 X-0.340 Y0.334 I15.274 J15.866 N70 G02 X-0.327 Y0.336 I15.099 J15.020 N75 G02 X-1.228 Y1.414 I14.783 J14.072 N80 G02 X-1.020 Y1.428 I14.061 J11.116 N85 G02 X-0.233 Y0.373 I14.520 J9.327 N90 G02 X-0.220 Y0.373 I14.320 J8.693 N95 G02 X-0.261 Y0.474 I14.305 J8.185 N100 G02 X-0.241 Y0.474 I14.071 J7.449

N215G02 X1.407 Y-0.439 I-10.812 J-37.135 N220G02 X1.354 Y-0.481 I-11.607 J-34.857 N225G02 X1.664 Y-0.676 I-12.553 J-33.294 N230G02 X1.565 Y-0.731 I-13.144 J-30.155 N235G02 X1.897 Y-1.031 I-14.011 J-28.028 N240G02 X1.715 Y-1.097 I-14.150 J-24.014 N245G02 X1.627 Y-1.223 I-14.895 J-21.516 N250G02 X1.427 Y-1.264 I-14.494 J-17.803 N255G02 X0.340 Y-0.334 I-15.274 J-15.866 N260G02 X0.327 Y-0.336 I-15.099 J-15.020 N265G02 X1.228 Y-1.414 I-14.783 J-14.072 N270G02 X1.020 Y-1.428 I-14.061 J-11.116 N275 G02 X0.233 Y-0.373 I-14.520 J-9.327 N280 G02 X0.220 Y-0.373 I-14.320 J-8.693 N285 G02 X0.261 Y-0.474 I-14.305 J-8.185 N290 G02 X0.241 Y-0.474 I-14.071 J-7.449 N295 G02 X1.107 Y-3.096 I-13.447 J-6.554 N300 G02 X0.361 Y-3.084 I-12.982 J-3.084 N305 S0 M3 N310 M51 M21 N315 M30

13

3.3 列表点曲线拟合算法的研究

除了圆锥曲线以外,列表点曲线也是形状数学描述的标准形式。其中,最常用的列表点描述方法有:

1. 贝齐尔(Bezier)曲线; 2. B样条曲线;

通过对这两种方法的比较,找出适合列表曲线拟合的方法。

3.3.1 贝齐尔曲线[11]

给定一组有序的数据点P,i(i?0,1,n),这些点可以是从某个形状上测量得

到,也可以是设计员给出。要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。这些数据点若原来位于某曲线上,则称该曲线为被插曲线。在某种情况下,测量所得或者设计员给出的数据点本身就很粗糙,要求构造一条曲线严格通过给定的一组数据点就没有什么意义。更合理的提法应是,构造一条曲线使之在某种意义下最为接近给定的数据点,称之为对这些数据点进行逼近,所构造的曲线称为逼近曲线。插值和逼近统称为拟合。

贝齐尔(Bezier)曲线以数据点bj表示,其伯恩斯坦(Bernstein)基表示式为:

p(t)??bjBj,n(t), 0?t?1

j?1n

(3.15)

tj其中,基函数 Bj,n(t)?Cnt(1?t)n?j,j?0,1,?,n,称为伯恩斯坦基函数。

用控制顶点bj定义的伯恩斯坦(Bernstein)基表示的贝齐尔曲线是一种独特的参数样条曲线,它不仅具有优良的控制性质,而且几何直观,又惊人的简单,使它特别适合于交互地设计形状,但它不具有局部修改性质且不能解决在描述复杂形状时带来的连接问题。

14

3.3.2 B样条曲线[11]

B样条理论早在1946年由舍恩伯格(Schoenberg)提出,但论文直到1967年才发表。1972年,德布尔(de Boor)与考克斯(Cox)分别独立地给出B样条计算的标准算法。但作为CAGD中的一个形状数学描述的基本方法,是由戈登(Gordon)与里森费尔德(Rriesenfeld,1974)在研究贝齐尔方法的基础上引入的。

B样条方法是在保留贝齐尔方法的优点,同时克服其由于整体表示带来的不具有局部性质的缺点,及解决在描述复杂形状时带来的连接问题下提出来的,具有表示与设计自由型曲线曲面的强大功能,是最广泛流行的形状数学描述的主流方法之一。并且,B样条方法目前已成为关于工业产品几何定义国际标准的有理B样条方法的基础。

B样条曲线方程可定为:

p(u)??diNi,k(u),0?u?1

i?0n

(3.16)

其中,di(i?0,1,?,n)为控制顶点。顺序连成折线称为B样条控制多边形。

Ni,k(u)(i?0,1,?,n)称为k次B样条基函数,其形式如下:

??1,若ui?u?ui?1?Ni,0(u)???0,其它??u?ui?Ni,k(u)?Ni,k(u)??ui?k?ui? ui?k?1?u?Ni?1,k?1(u)? u?ui?k?1i?1??0规定?0?0?

(3.17)

其中,Ni,k(u)中,k表示次数,i表示序号,第i个k次B样条Ni,k(u)具有支承区间?ui,ui?k?1?。

利用德布尔递推算法拟合B样条曲线:

15

给定控制顶点di(i?0,1,?,n)、次数k及确定节点矢量U??u0,u1,?,un?k?1?,则定义域为u??uk,un?1?。若给定一参数值u??ui,ui?1???uk,un?1?,则曲线上的对应点p(u)可求。

??k?p(u)?di?k?lll?1ll?1?dj?(1??j)dj??jdj?1 ???l?u?uj?l?juj?k?1?uj?l?

(3.18)

其中,l?1,2,?,k?1;j?0,1,?,i?l。

按照B样条曲线的节点矢量中节点的分布情况不同,可分为4种类型:

均匀B样条 准均匀B样条 分段贝齐尔 非均匀B样条

图16为相同控制顶点的四种B样条曲线图。均匀B样条曲线的首末端点不再是控制多边形的首末顶点,而其它三种曲线的首末端点即是控制多边形的顶点。

准均匀B样条曲线分段贝齐尔曲线非均匀B样条曲线均匀B样条曲线图16 四种三次B样条曲线对比图

与贝齐尔曲线相比,B样条方法在表示与设计自由型曲线形状时显示了更加

16

强大的威力,得到了更加广泛的应用,所以确定采用B样条方法作为列表点曲线的描述方法。

3.4 本章小结

圆锥曲线与列表点曲线是形状数学描述的主要方法。本章首先针对圆锥曲线的特点对圆锥曲线进行了分类处理,在保证精度的条件下,采用双圆弧拟合的方法用较少的数据点去拟合原始圆锥曲线,总的编程量较少。双圆弧曲线是一阶连续的,数控加工后的零件的表面光滑度好。然后,通过比较确定采用B样条曲线作为列表点曲线的描述方法。在对曲线进行分类的基础上,利用德布尔递推算法计算曲线上的点,利用小直线段拟合曲线。

利用上述算法,可以有效地实现圆锥曲线与列表点曲线的数控加工,对于扩大激光切割的应用范围有很重大的意义,满足了实际生产的需求。另外,对于其他的解析曲线(如正弦线、余弦线)也可以应用本章提出的双圆弧拟合方法进行相关的处理,从而证明了算法的通用性与可扩展性。

17

本文来源:https://www.bwwdw.com/article/gds6.html

Top