三次B样条曲线插补算法的VC实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三次B样条曲线插补算法的VC实现孔凡国,郝尚华,钟廷志(五邑大学机电系,广东江门529020)摘要:结合三次B样条曲线的数学性质,理论分析了三次B样条曲线的插补过程,推导出了三次B样条曲线的插补运算公式。在对三次B样条曲线进行研究的基础上,介绍三次B样条曲线插补算法实现方法,并在VC环境中对B样条曲线的插补过程进行了实现,实现了数控插补的动态运算。关键词:三次B样条;插补;VCVCImplementoftheCubicB-splinecurveInterpolationKONGFan-guo,HAOShang-hua,ZHONGTing-zhi(DepartmentofMechatronics,WuyiUniversity,Jiangmen529020,China)Abstract:CombinedwithmathematicscharactersofthecubicB-splinecurve,theinterpolationprocessofthecubicB-splinecurveisanalyzedandcalculationinterpolationformulaisdeduced.FinallythecubicB-splinecurveinterpolationoperatorisprogrammedundertheplatformofVCtorealizedynamicsimulation.Keyword:cubicB-spline;interpolation;VC在数控加工中用一小段直线或圆弧去拟合实际曲线,这种拟合方法就是“插补”。它实质上是根据有限的信息完成“数据密化”的工作。插补的计算方法和计算精度影响到整个数控系统的精度和效率,因此插补算法对整个数控系统的性能指标至关重要,可以说插补是整个数控系统控制软件的核心。1三次B样条曲线插补原理B样条曲线是对Bezier曲线的改进,它不仅保留了Bezier曲线的优点,而且具有局部控制的能力,B样条曲线方程可为:给定n+1个控制点iP(i=0,1,……,n),也称为特征多边形的顶点,k次(k+1阶)B样条曲线的表达式是:,0()()niikiPuNuP1kn(1)在上式中当k=3,i=0,1,2,3时,可得三次B样条曲线方程是:3,30()()iiiPuNuP01u(2)用矩阵形式可表示为:013223133136301()101303061410PuuuuuPPPP(3)u为由样条控制点确定的可变系数。本文采用参数化数据采样插补原理来实现插补过程,其基本思想是:按照给定的采样周期将时间轴分成等间隔的小区间。插补过程中根据进给速度、加减速要求和允许误差,在各采样周期产生空间小直线段1L、2L、…、iL、…去逼近被插补曲线,逐步求得所需的各插补直线段端点1P、2P、…、iP、…的坐标值。根据插补的思想可以知道,插补过程实际上是通过参变量u作为直接控制量,从而求得插补点的坐标位置及插补点沿插补轨迹的移动速度等被控量的过程。2三次B样条曲线插补算法设计在插补过程的每一采样周期中,首先根据进给速度要求和允许误差求出轨迹空间中的插补直线段,然后将此直线段映射到参变量空间,得到与其相对应的参变量空间中的小直线段,即参变量的增量值。进一步通过对参变量的积分求出参变量空间中的当前点坐标。最后,求取与参变量空间中当前点相对应的轨迹空间中的映射点,得到插补轨迹上的当前点的坐标值。由于三次B样条曲线的各坐标分量均为参数u的函数可以直接计算。在每个插补周期T内,有相等的微小增量u,即参数u的增量步长恒定,然后由公式计算得下一个插补点。这种插补算法虽然计算简单,速度快,但其存在插补速度不恒速等缺点。要使得样条插补在轨迹空间内匀速,就必须要根据编程进给速度来确定一个插补周期内的轮廓步长,然后将此参数映射到参数空间中,得到与其相对应的参数空间内的增量u。设V是样条曲线的切线速度矢量:()()dPudPuduVdtdudt设V是样条曲线的编程进给速度,则:()dPuduVVdudt可得:()duVdPudtdu222242()()()dPudPuVdudududtdPudu设控制系统的插补周期为T,1iittT,u是关于t的函数,令()iiutu,11()iiutu,用泰勒级数将1()iut在it展开可得:22211121()()()2iiiiiiiittttduduuuttttotdtdt所以,插补递推公式的一阶近似为:1()iiiuuVTuudPudu(4)二阶近似为:222214()()()()2iiiuudPudPuVTduduVTuudPudPududu(5)由于现在的数控系统插补周期T一般都很小,在曲线半径不太小的情况下,一阶近似迭代求解已经可以满足精度要求。如果曲线曲率半径很小,便要采用二阶近似。由于每个插补周期内的参数增量:()iiiuuVTudPudu(6)是由编程进给速度和插补周期决定,在每一个插补周期中生成的轨迹空间的弦长是不变的,所以进给速度是不变的。3程序流程根据上文的理论分析及公式推导,可按照图1所示的流程设计程序。图1三次B样条曲线匀速插补算法流程图4插补算法的VC程序实现该程序主要用于演示在平面坐标系中三次B样条曲线的插补过程,以及速度控制的实现。要求用户输入控制点点数、插补速度和插补周期,并在绘图区选择控制顶点。绘图区采用Windows的默认坐标系,即左上角为原点(0,0),向右方向为X轴正方向,向下为Y轴正方向。程序运行后,首先根据输入的控制定点数,申请内存空间,并进行初始化,用于保存各控制顶点信息,然后将鼠标选取的坐标点信息以此存放到申请的内存空间中,当最后一个点选择完毕后,程序将按照前面输入的插补速度和插补周期,结合公式(3)、(6),计算出每个插补周期的u的增量和小直线段的终点,以插补速度V匀速的绘制出所要求出的三次B样条曲线。(1)参数输入在本程序中需要用户输入三个数据:控制点的数目、曲线的插补周期和插补速度,且控制点数不能小于4,插补速度和插补周期大于0。(2)程序运行完成上述信息输入后,通过鼠标点击在绘图区选取给定个数的控制点的坐标,程序将在最后一个点选取完成后自动按照给定速度,匀速的绘制出相应的三次B样条曲线。以10个控制定点为例,绘制出的三次B样条曲线如图2所示:图2程序运行实例5结论对过对三次B样条曲线的数学性质、三次B样条曲线插补过程的分析和研究,用VC实现了三次B样条曲线插补算法,实现过程中采用动态改变参数u的增量实现了插补的匀速进行,该程序略加改动即可应用于简易数控系统。因此,对于更好地理解插补原理及工程实践都有借鉴意义。参考文献:[1].周凯.PC数控原理、系统及应用[M].北京:机械工业出版社,2006.9.[2].胡自化,张平.三次B样条曲线恒速进给实时插补算法的研究[J].北京:制造技术与机床,2000(8).[3].周凯,陆启建.样条曲线采样插补技术[J].大连:组合机床与自动化加工技术,1998(4).[4].叶伯生,杨叔子.CNC系统中三次B-样条曲线的高速插补方法研究[J].武汉:中国机械工程,1998.9(3).[5].施法中.计算机辅助几何设计与非均匀有理B样条[M].北京:北京航空航天大学出版,1994.

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功