数值分析论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析论文

授课教师:王永丽

题目:基于VC的B样条曲线插补算法在数控中的应用

姓名:

班级:硕研09级4班

学号:

摘要:在数控加工中用一小段直线或圆弧去拟合实际曲线,即是“插补”。它实质上是根据有限的信息完成“数据密化”的工作。插补的计算方法和计算精度影响到整个数控系统的精度和效率,因此插补算法对整个数控系统的性能指标至关重要,插补是整个数控系统控制软件的核心。

关键词:样条曲线插补,数控技术,vc设计

1 三次B样条曲线定义

B样条曲线是对Bezier曲线的改进,它不仅保留了Bezier曲线的优点,而且具有局部控制的能力。在B样条曲线中,给定n+1个控制点P(ii=0,1,……,n),也称为特征多边形的顶点,k次(k+1阶)B样条曲线的表达式是:

其中Ni,k(u)是调和函数,也称为基函数,可由下面的递推关系得到:

式中ti是节点值,且为非减序列,T=[t0,t1,..,tn+k+1]构成了k次(k+1阶)B样条基函数的节点矢量,每一基函数由对应的k+2个节点决定。上式也表明,高次B样条函数可用低次的B样条函数来表示,由此式可得其递推计算方法。由基函数可知B样条基函数具有局部支撑特性,即

节点矢量所含节点数目由控制顶点Pi(i=0,1,……,n)和曲线次数k所确定(节点数=n+k+2),显然,基函数个数与控制点数相等。在上文B样条曲线的方程式(1)中当k=3,i=0,1,2,3时,所对应的基函数分别为:

因此三次B样条曲线方程是:

用矩阵形式可表示为:

2 三次B样条曲线插补算法设计

根据数据采样插补的原理,插补的目的就是要求在一个插补周期T内,刀具沿曲线所截取的轮廓步长运动。由于三次B样条曲线的各坐标分量均为参数的函数可以直接计算,在每个插补周期T内,有相等的微小增量△u,即参数u的增量步长恒定,然后由公式计算得下一个插补点。这种插补算法虽然计算简单,速度快,但其存在插补速度不恒速等缺点。

要使得样条插补在轨迹空间内匀速,就必须要根据编程进给速度来确定一个插补周期内的轮廓步长,然后将此参数映射到参数空间中,得到与其相对应的参数空间内的增量△u。

设V是样条曲线的切线速度矢量:

设V是样条曲线的编程进给速度,则:

设控制系统的插补周期为T,ti+1-ti=T,u是关于t的函数,令u(ti)=ui,u(ti+1)=ui+1,用泰勒级数将u(ti+1)在ti展开可得:

所以,插补递推公式的一阶近似为:

二阶近似为:

由于现在的数控系统插补周期T一般都很小,在曲线半径不太小的情况下,一阶近似迭代求解已经可以满足精度要求。如果曲线曲率半径很小,便要采用二阶近似。由于每个插补周期内的参数增量:

是由编程进给速度和插补周期决定,在每一个插补周期中生成的轨迹空间的弦长是不变的,所以进给速度是不变的。

3插补算法的VC程序实现

该程序主要用于演示在平面坐标系中三次B样条曲线的插补过程,以及速度控制

的实现。要求用户输入控制点点数、插补速度和插补周期,并在绘图区选择控制顶点。绘图区采用Windows的默认坐标系,即左上角为原点(0,0),向右方向为X轴正方向,向下为Y轴正方向。程序运行后,首先根据输入的控制定点数,申请内存空间,并进行初始化,用于保存各控制顶点信息,然后将鼠标选取的坐标点信息以此存放到申请的内存空间中,当最后一个点选择完毕后,程序将按照前面输入的插补速度和插补周期,结合公式(5)、(8),计算出每个插补周期的的增量和小直线段的终点,以插补速度V匀速的绘制出所要求出的三次B样条曲线。参数输入。在本程序中需要用户输入三个数据:控制点的数目、曲线的插补周期和插补速度,且控制点数不能小于4,插补速度和插补周期大于0。程序运行。完成上述信息输入后,通过鼠标点击在绘图区选取给定个数的控制点的坐标,程序将在最后一个点选取完成后自动按照给定速度,匀速的绘制出相应的三次B 样条曲线。以10个控制定点为例,绘制出的三次B样条曲线如图2所示:

通过对三次B样条曲线的数学性质、三次B样条曲线插补过程的分析和研究,用VC实现了三次B样条曲线插补算法,实现过程中采用动态改变参数的增量实现了插补的匀速进行,该程序略加改动即可应用于简易数控系统。因此,对于更好地理解插补原理及工程实践都有借鉴意义。

相关文档
最新文档