APP下载

B样条曲线拟合技术处理波动代码的研究*

2013-09-12高伟强黄秀文李志才

组合机床与自动化加工技术 2013年7期
关键词:补点曲线拟合样条

章 晶,高伟强,黄秀文,李志才

(广东工业大学机电工程学院,广州 510006)

0 引言

在现代数控加工中,对于表面轮廓形状复杂的零件,一般都是由CAM软件自动生成海量短线段的NC代码处理。在这过程中由于刀路规划、工艺参数设置、后置处理算法等因素的影响,常常会突然产生一条长度很短、运动方向发生变化的异常波动NC代码。在高速情况下,往往会导致机床抖动、过冲或加工的工件表面出现划痕,严重地影响了工件表面加工质量。基于此,张碧陶等[1]提出将有波动嫌疑的代码点进行位置矢量重新修正,从而消除原波动代码点,这种方法虽然取得了较好的效果,但是改变的位置量相对较大,很容易带来附加的形状误差。刘健等[2]提出的基于特征点的B样条曲线轨迹压缩方法,在对刀位点毛刺的处理上也取得了较好的效果,但是这种方法需要先从大量代码中使用迭代筛选特征点,数据量比较大,对硬件要求比较高。文献[3-4]提出使用双圆弧逼近方法虽然能够使波动代码转角变得圆滑光顺,但是对三维空间曲线的处理效果不是很好。为解决波动代码给数控加工带来的不良影响,本文提出使用三次均匀B样条曲线拟合的方法来处理波动代码,针对有波动嫌疑的三条代码重新进行轨迹规划,实现转角圆滑光顺过渡,运动矢量方向无突变,数据量小,经过拟合误差限制可以使表面形状误差控制在允许范围之内,而且也能够处理空间三维波动代码。

(4)从modelA所产生的数据中,挑选治愈概率较小的(Pi<0.5),同时满足将其协变量带入模型B所得治愈概率也较小(Pi<0.5)的患者,或者挑选治愈概率较大的(Pi>0.5),同时满足将其协变量带入模型B所得治愈概率较大(Pi>0.5)的患者,共n/3例,获得数据集dataAB,这些是对处理组A,B都敏感或对处理组A,B都不敏感的亚组,Subgroup=C。产生结局变量Yi=rbinom(1,1,A_Pi)。

1 异常波动NC代码的处理思路

在CNC控制系统中读入NC代码时,首先需要对NC代码进行预处理。在预处理过程中,除了常规的NC语法判断、速度前瞻等处理外,还要判别是否出现异常波动代码。当判别出波动代码后,需将波动代码标志置1,交给DSP运动控制器进行处理。

当CNC控制器处理异常波动代码时,根据设定的拟合误差将异常波动点的前后两段代码做区域三次B样条拟合,由B样条曲线形成新的NC路径以修正波动的奇异路径。当进行插补控制时,由B样条插补替代常规的直线段插补。为此,需解决下面几个问题:①如何判别异常波动代码;②如何通过B样条拟合修正异常波动点;③如何实现B样条实时插补控制。

2 波动代码的判别

在数控加工中,XY平面内工件的理想轨迹一般如图1的A-B-D所示,但自动生成NC代码会突然产生一个不规则的C点,如图1所示的波动代码轨迹图,使CE的长度很短导致X、Y、Z三轴中某一轴有正反向切换,这时加工出来的工件表面会出现一条凹或凸的划痕,造成精度降低,质量下降。而且突然有一条转向的短代码,增加了速度约束,限制了速度的高速运行,严重地降低了加工的效率。在高速运行过程中电机要实现一个快速的反向正向运动过程,运动方向发生突然变化也必然会导致机床产生剧烈的振动。因此,在数控系统中必须对波动代码进行处理。

在图2中,角度θ是两条代码速度矢量的夹角,角度α是代码转角∠ABC的一半,先根据三角函数的关系求出E点坐标,再结合B点坐标和BE线段长度求出BE与X、Y、Z各轴的夹角方向余弦矢量分别为Kx,Ky,Kz:

图1 波动代码示意图

在CNC控制器中对波动代码进行处理首先要判别该代码是否为波动代码。波动代码一般具备以下特征:该段代码的长度很短跟前后轨迹相差较大,或者在有波动嫌疑的转角代码处出现单轴正反向切换且切换的行程较短[1]。通过这种方法对控制器中的每条代码进行一一判别,若有波动嫌疑,则波动标志置1。将波动代码BC、上一条代码AB和下一条代码CD当作一个连续速度规划区域预计算处理,当前运行代码为AB,区域代码终点为D点。

式中,T0为采样插补周期,取T0=1ms,Fi为当前插补点的瞬时速度。

3 B样条曲线拟合

在此次新个税法中,最明显的变化之一就是代扣代缴变成了预扣预缴。此前工资薪金所得个税为按月缴纳,新个税法中变为按年缴纳,这样一来,纳税人在每月缴税时就变为了预扣预缴。

图2 拟合点

1.2.3.4 加强病人的住院管理:保持病房清洁、整齐、舒适、安全、安静,避免噪声。工作人员做到走路轻、关门轻、说话轻、操作轻。认真做好病房的晨晚间护理。病房的病床、床头柜、靠椅等放置位置应固定、规范、整齐、安全,不得随意搬动。

再由BG长度和BE夹角方向余弦就可以求出B点的拟合点G的坐标:

目前,有许多学者使用遗传算法[5]和最小二乘法[6]拟合B样条曲线,这些方法的拟合效果好但增加了程序的复杂度,为简便计算,本文提出使用夹角平分线控制曲线拟合误差法拟合B样条曲线。由系统设定曲线拟合误差允许值为δ,在B点作代码转角的平分线BE,取BG=δ,曲线拟合的点G在角平分线上。如图2所示,拟合程度的大小根据参数δ值的改变而改变,当δ=0,拟合经过的点就是原型值点A、B、C、D,当δ≠0,拟合的B样条曲线经过新拟合点A、G、F、D。

图3 B样条曲线拟合图

4 B样条曲线实时插补

在每个插补周期中,插补轨迹都是使用微小直线段去逼近B样条曲线,这样就存在逼近轮廓误差,要将轮廓误差限制在最大允许范围之内就必须限制当前插补步长,插补步长与速度成正比,因此只需要限制当前插补点的瞬时速度即可。设定最大弦高误差为Eri,由弦高误差限制的最大速度F1求解如下:

G=[Gi-1,Gi,Gi+1,Gi+2]为B样条曲线的控制点序列;

M为常系数矩阵[8]。

本文使用高斯消元法通过消元回代,先反求出整条B样条曲线的控制点序列G,再结合M求出矩阵方程中参数u的全部系数,将矩阵方程转换成参数方程形式为:

双材料双单元模型:钢管与混凝土为两个不同单元,分别设置材料本构、截面特性,两单元节点相同,优点是可利用现有通用有限元软件分析,但无法考虑管内混凝土开裂对结构行为的影响,也无法考虑钢管与核心混凝土的相互作用。

对于每一个插补点的参数u值求解一般由一阶泰勒展开式就能很好的满足加工精度的要求[10],使用泰勒公式求解参数u值的公式如下:

对于一辆跑车而言,我们当然无法避开这样一个话题—激情。令人感到欣慰的是,这六辆跑车无论亮相时间长短,它们都散发着诱人的魅力,激发着我们心中的热情。在这个汽车市场逐渐被SUV占据的时代,它们所展现出来的坚持实在是难能可贵。

由于采用B样条曲线实时插补每向前插补一次,需要由泰勒公式计算一次下一插补周期的参数u值,而由公式(7)可知,要求出下一插补点的参数u值就需要求出当前每个插补点的瞬时插补速度Fi,系统设定最大速度为Fmax,系统设定速度Fset,速度单位都为mm/min。

由于三次均匀B样条曲线具有计算简单、快捷,几何外形容易控制等优点[7],本文采用三次均匀B样条实现波动段代码的实时样条曲线插补。三次均匀B样条矩阵形式为:

每个插补段的局部曲率半径ρi计算公式为:

同理可求出C点的拟合点F的坐标,波动代码的新点A、G、F、D组成一条分段的B样条曲线如图3所示。在完成B样条曲线拟合之后就可以进行B样条曲线实时插补计算了。

法向加速度主要影响弦高误差,在曲线插补中,每段插补点之间的曲线可近似为圆弧。速度矢量在不断改变,当圆弧半径较小时会产生较大的加速度,可能会超过设定允许的加速度,因此需要根据圆弧半径和设定允许的加速度来计算出适当的进给速度F2来进行进给切削。

瞬时速度要满足上面4个速度约束条件:系统最大速度、代码设定速度、弦高误差限定速度、法向限定速度,那么取4个速度的最小值即为当前插补点的瞬时速度Fi。

5 实验结果分析

为验证三次均匀B样条曲线拟合对波动代码处理的有效性,本文在以ARM作为主控单元,DSP作为运动控制器的嵌入式调试平台上跑半球加工NC代码进行测试。当代码指针条为21843时出现波动嫌疑代码,首末四个点的坐标为:A(51.093,0.1390,- 0.0100),B(51.4240,0.3590,- 0.0100),C(51.7600,0.6950,- 0.0130),D(52.2040,1.1380,-0.0320)。在调试平台上通过软件截取NC代码中有波动嫌疑的这三条代码的速度、位移、曲率和参数u分别如下图4~图7所示。图4为计算每个插补点参数u值的速度,由于代码长度很小,曲率小,通过速度计算公式算出的弓高误差速度和法向速度都很大,故截取的这三条代码的速度只受设定速度的影响。图5为每个插补点的实时位移。曲率是决定弦高误差限定速度和法向限定速度的主要因素,每个插补段曲率的大小只与B样条曲线的拟合点有关,如图6所示,这三条代码的曲率先增大再减小。如图7所示为参数方程中的参数u,每一段B样条的参数u都是从0到1逐步增大的。

试验路段竣工后,根据《公路工程质量检验评定标准》(JTG F80/1—2004)要求,对试验路段进行钻芯取样,以检测路面厚度和水泥砂浆灌入深度,其具体检测指标如表4所示。

成语“三生有幸”,就从这故事来的。投胎转世,八戒原本天蓬元帅,那是作者编的,咱不会当真。但如说某人与某地与某人有些特殊的缘分,倒也不虚。比如我与天津古文化街旁的“水阁医院”有缘:在那之前我家在东北,母亲生二男孩皆因难产不活。后举家迁津门,举目无亲,东一头西一头,偏偏就落在东门里,距水阁医院很近。而水阁医院是当时有名的现代医学妇产院,往下母亲生我又难产,但“水阁”保我们母子平安。前年在水阁医院旧址做电视访谈节目,夜里做梦——出生时我哇哇啼叫,其实我是在喊“我三生有幸呀!哇哇哇”,只可惜大人听不懂。没有新社会,没有“水阁”,对我来说一切免谈,如此怎能说缘分不重?不三生有幸?!

图4 速度Vnow

图5 三段代码的Snow

图6 曲率K

图7 参数u

下面以上面同一个NC代码在雕铣机上做两个半球的加工对比实验。一个程序中使用了三次均匀B样条拟合处理波动代码算法,另一个没有,两者使用的加减速控制算法、前瞻控制算法、自适应算法等其他算法都相同,控制器软硬件系统相同,采用安川ΣV伺服系统,MECHATROLINK-II现场总线伺服系统传输。半球上半部分采用zig-zag行铣,下半部分是层铣。半球加工的实验参数如表1所示。

表1 半球加工的实验参数

图8 半球加工对比图

在图8中,左边a图半球是没有使用B样条处理波动代码程序之前加工的工件,经客户反映,半球的上半部分采用的是zig-zag行铣,但是留有一圈圈的刀纹。在检验机床、刀具、工艺及参数等都符合标准之后反复加工还是有轻微的纹路,最后发现是NC代码中的含有波动代码造成的。此半球加工NC代码含有波动嫌疑代码已在上文调试平台上验证过。图8右边b图是在运动控制器中使用了B样条曲线拟合技术处理波动代码之后加工的工件,半球整体表面比较光滑,与a图比较表面质量效果明显提高。经分析这是B样条曲线拟合有效减少了波动转角,实现了代码轨迹圆滑过渡、速度无转角矢量变化的结果。在整个半球加工过程中机床几乎没有抖动,说明了使用B样条拟合技术处理波动代码使工件表面质量和机床的稳定性都得到了明显的改善,整体提高了数控系统的加工性能。

6 结论

本文提出的使用B样条曲线拟合技术处理波动代码的研究,运行B样条的进给速度随样条曲线弯曲程度自适应变化,不受转角大小的限制,可以有效地改善轴的运动速度和提高加工的效率。这项研究不但不会改变加工工件的形状,而且B样条曲线插补弓高误差小,加工出来的工件表面更光滑,表面质量得到很好地改善。B样条曲线是一条圆滑光顺的曲线,没有单轴的正反向运动突变,不会给机床带来抖动、过冲的现象,提高了机床加工过程的稳定性。通过实验表明使用B样条曲线拟合技术处理波动代码的效果非常明显,对数控系统的性能有较大的改善。目前,这种算法已应用于某高性能多轴数控系统的中,并取得了很好的加工效果。

[1]张碧陶.高性能数控系统运动控制算法的研究[D].广东工业大学,2009.

[2]刘健.数控加工刀位轨迹压缩技术[D].华中科技大学,2009.

[3]王国兵,侯增选,卢建彪,等.二次均匀B样条曲线的双圆弧逼近方法[J].计算机应用研究,2008,25(4):1087-1089.

[4]张莉彦,邱辉,陈虎,等.平面曲线的双圆弧最佳逼近[J].组合机床与自动化加工技术,2002(12):34-36.

[5]孙越泓,魏建香,夏德深.基于自适应遗传算法的B样条曲线拟合的参数优化[J].计算机应用,2010,30(7):1878-1882.

[6]皮佑过,范德和.数控加工中连续微线段轨迹的B样条曲线拟合术[J].华南理工大学学报,2012,40(1):53-57.

[7]赵彤,吕强,张辉,等.三次均匀B样条曲线高速实时插补研究[J].计算机集成制造系统,2008,14(9):1830-1836.

[8]苏步青,刘鼎元.计算几何[M].上海:上海科学技术出版社,1980.

[9]李红.数值分析[M].武汉:华中科技大学出版社,2003.

[10]浦艳敏.基于B样条曲线实时插补的研究及其误差分析[J].科学技术与工程,2010,10(8):2019-2021.

猜你喜欢

补点曲线拟合样条
等弦分割采样的球面插补算法研究
心房颤动射频消融术中肺静脉电隔离后补点消融位置及其补点消融数量分析
一元五次B样条拟插值研究
一种战时人力资源补充分析方法
增强型地面数字电视补点器的探讨和研究
三次参数样条在机床高速高精加工中的应用
曲线拟合的方法
基于曲线拟合的投弃式剖面仪电感量算法
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于样条函数的高精度电子秤设计