NURBS曲线修正插补算法的研究
2011-07-07邬再新张万军胡赤兵
邬再新,张万军,胡赤兵,张 峰
(1. 兰州理工大学 数字制造技术与应用省部共建教育部重点实验室,兰州 730050;2. 兰州理工大学 机电工程学院,兰州 730050;3. 兰州瑞丰工贸有限公司,兰州 730050)
0 引言
目前只有极少数FANUC、Siemens、三菱等数控系统支持NURBS插补,而绝大多数数控系统支持直线、圆弧或抛物线等插补[1]。于是研究NURBS插补方法在开放的CNC系统中就显得十分必要,CNC系统中添加NURBS曲线插补[2],通常使用参数递推方法插补。对NURBS曲线插补参数递推一阶、两阶求解(导数)比较麻烦,加工误差较大。本文给出一种NURBS曲线修正的插补算法,该算法可以提高加工精度、实现高效率的加工。
1 NURBS曲线的数学定义[3,7]
NURBS曲线一分段的矢值有理多项式函数,其表达式为:
式中wi为权因子(i=0, 1, …, n),vi分别控制顶点相联系(i=1, …, n),Bi, k(u)为k次样条基函数。一条NURBS曲线由它的几何三要素定义控制顶点、权因子和节点矢量等构成。
2 NURBS曲线插补修正
NURBS曲线用控制点、权因子和节点矢量来表达曲线信息。减少了精度损失,可用CNC原理上的最小步长(由系统插补周期确定的进给弦长)来逼近轮廓,获得最高的逼近NURBS曲线插补的精度。参数作为NC系统程序的一部分,由CNC系统内部进行实时计算生成NURBS曲线[5],就可以满足NURBS实时性。
2.1 NURBS插补预处理
为减少NURBS曲线插补中实时计算的工作量,可把不需要在实时插补中进行的所有操作(如控制顶点、权因子、节点矢量等)放在插补预处理中完成,降低实时插补的计算复杂程度,提高插补计算的速度[4]。
2.2 插补方法
本算法采用快速递推的近似算法来预估新插补点。以对时间的二阶差分代替微分[6],即:
代入二阶泰勒级数展开式
然后将估计参数u′i+1代入曲线方程可得预估插补点 p′i+1及预估插补点对应的进给步长 Δl′i=p (ui+1)-p (ui) 得到该插补周期增量值,但是由求解比较麻烦,故而采用修正法对其改进。
2.3 插补修正
2.3.1 满足插补前修正各轴控制的关系式[8]
利用样条曲线构造方法,产生一条空间n阶导数连续的自由曲线。该空间自由曲线第i段为:
满足如下条件:
2.3.2 参数插补过程中满足的算法条件
利用式(1)求方程pi(u)得一阶导数、两阶导数建立关于参数u 的方程。令V0=p0,Vn+2=pn:
式中“×、空格”,分别表示有数值、零。通过曲线参数化求解(同样可建立两阶参数方程可求出解)、改变“×”的值(含参数u)、反算控制点,完成整过插补。
笔者提出的NURBS曲线修正算法插补流程图如图1所示。
图1 NURBS曲线修正算法流程图
2.4 插补算法实现
在NURBS曲线插补的过程中,首先设置插补实时满足的条件参数递推和NURBS曲线求导(一阶、两阶),判断在插补中是否从在常量进行预处理,从而实现插补。同时,在插补的过程中要使误差(弓高)在一定范围内,完成插补。笔者给出的插补算法实现简图,如图2所示。
图2 NURBS曲线插补算法实现简图
2.5 误差(弓高)计算和分析
在插补中为了保证插补精度,要使插补曲线与NURBS曲线的弓高误差在规定的精度范围之内,如图3所示。
图3 NURBS曲线误差分析
圆弧插补时的逼近误差e与插补周期T、进给速度F以及该曲线在逼近处的的曲率半径ρ的关系为:
因为△l=FT,代入上式有:
当 e= eh,Δli= Δl时,由式(3)得:
可见在整个插补的过程中,若T越长,或F越大,或ρ越小,则插补误差越大。在实际的数控系统中,通过对F进行限制来保证e在允许的范围内。NURBS曲线模拟(近似)误差e与实际误差MN如图4所示:
图4 NURBS曲线近似误差与实际误差
根据计算由图4列出eh的关系式:
弓高误差和实际误差相比较小,只在曲线拐点的地方有较小的影响。因此在一般情况下可忽略,说明曲线实际控制与模拟控制相吻合。
3 验证
上述算法在matlab7.0上进行验证,利用不同控制点的坐标(x, y),节点、权因子、次数等,以X轴的控制位置和Y轴的控制位置作出实际轮廓控制位置和插补控制位置的NURBS曲线插补运算仿真图。验证曲线实际控制与模拟控制,如图5所示。
4 结论
图5 曲线实际控制与模拟曲线插补
本文建立的NURBS曲线插补修正算法通过在matlab7.0上,模拟曲线实际控制与模拟控制相吻合,从而验证该算法是正确的,达到参数修正的目的。该算法不仅满足加工精度方面的要求,同时满足了加工实时性要求。
[1] 张林驿, 杨涛, 肖田园, 等. 网络化制造环境下的资源发现研究[J]. 计算机集成制造系统—CIMS2003,9(1):47-51.
[2] 王永红. NURBS曲线数控插补算法研究[J]. 机械制造与研究, 2010. 39(4): 55-56.
[3] 施法中. 计算机辅助几何设计与非均匀有理B样条[M].北京: 高等教育出版社, 2001.
[4] 高成秀, 刘在德. NURBS曲线插补算法的研究[J]. 制造业自动化, 2006, 28(8): 27-28.
[5] 邬再新, 王佳, 唐翠萍. NURBS曲线的平滑自适应插补算法研究[J]. 科学技术与工程, 2010(2): 1054-1056.
[6] 谢黎明, 郑威, 靳岚, 沈浩. 基于NURBS插补算法的嵌入式数控系统的研究与开发[J]. 制造技术与机床, 2008(7): 152-154.
[7] Jingchun Feng,Yuhao Li,Yuhan Wang,et al.Design of a realtime adaptive NURBS interpolator with axis acceleration limit[J] . Int J Adv Manuf Technol, 2009,09:327-341.
[8] MY Cheng,MC Tsai,JC Kuo. Real-time NURBS command generators for CNC servo controllers[J]. International journal of Machine Tools and Manufacture, 2002,42: 801-813.