对基于时间分割法的两种抛物线插补算法在插补精度和插补运算时间两方面进行了比较分析,通过实验证明了数学分析的正确性,并提出了n分步长插补算法,该算法适用于多种曲线,可以有效地提高插补精度。
对于任何一个复杂的零件,其轮廓线都可以由一些简单的几何因素组成,如直线、圆弧、抛物线等。即使一些自由型曲线、曲面体也可以由样条曲线进行拟合,最终还是要用直线、圆弧或抛物线进行二次插值或逼近,实现其数控加工,即完成插补运算的工作。插补的算法很多,但共同特点是必须在保证加工精度要求的前提下确定最大的插补间距,并计算出每一插补段的起止点在被加工零件轮廓线上的坐标值。时间分割法是根据系统设定的采样周期及设定的运动轨迹切向速度,确定每步所走距离,再分别计算每个单元时间两轴进给量,时间分割法广泛应用于现代数控机床中级以上的CNC系统。目前,基于时间分割法的直线和圆弧的插补算法已经被广泛研究,但是对于象抛物线一类的较复杂曲线的插补问题还少有人研究,致使缺乏有效的算法,造成编程复杂,插补精度低等问题,影响数控系统的实用性。32位机处理速度快,运算能力强,便于人们进一步研究复杂曲线的插补问题。
本文通过对基于时间分割法的两种抛物线插补算法的比较分析,从插补精度及插补运算时间两方面进一步研究了抛物线插补问题;并在此基础上,提出了n分步长插补算法,该算法充分发挥32位计算机的性能,同时可以应用于许多曲线插补,有效地提高了插补精度。
1 插补算法
下面首先给出基于时间分割法的两种抛物线插补算法。
1.1 插补算法一
对于抛物线方程y=-ax2+bx,(a>0,b>0)。f=FT,f为进给量,F为进给速度,T为采样时间,A(xi,yi)为本次插补点,B(xi+1,yi+1)为下次插补点,Δxi,Δyi为X、Y轴进给距离。Ki=-2axi+bi xi+1=xi+Δxi yi+1=-ax2i+1+bxi+1 Δyi=yi+1-yi(1)2.2
插补算法二
(1)抛物线方程为y=-ax2+bx(a>0,b>0),A(xi-1,yi-1)、B(xi,yi)为两已知插补点,C(xi+1,yi+1)为下一插补点,f为进给量,F为进给速度,T为插补时间。在抛物线顶点左侧:Δyi-1=Δyi-1-2aΔx2i-1 xi+1=xi+Δxi yi+1=-ax2i+1+bxi+1 Δyi=yi+1-yi
(2) 在抛物线顶点右侧: Δyi-1=Δyi-1-2aΔx2i-1 xi+1=xi+Δxi yi+1=-ax2i+1+bxi+1 Δyi=yi+1-yi
2 两种插补算法比较分析 对于时间分割法插补曲线,关键是弦长代替弧长,而弧长应为合成插补进给量f=F.T。每次插补实际所走弦长与f差值越小,则相应的插补精度就越高。对上面提出的两种算法作如下比较。设抛物线方程为y=-ax2+bx(a>0,b>0),考虑插补点在顶点左侧情况,见图1。
图1 两种插补算法比较分析图
图中A(xi-1,yi-1)、B(xi,yi)为两已知插补点,C为下一理想插补点,AE为过A点所作抛物线切线,其斜率K=tgα1,α1为AE与X轴向夹角,连接AB并延长,交以B为圆心、f为半径的圆于C1点,A、C1均为圆上的点。过C1作y轴平行线,交抛物线于C′点,延长C1C′,交过B点所作X轴平行线于D1点。C2为过B点作抛物线切线交于圆上的点,β1为BC2于X轴向夹角。延长BC′交圆于C3点,β2为BC3与X轴向夹角,过C2、C3、C分别作y轴平行线,交BD1延长线于D2、D3、D点。
可以看出C2点为第一种算法的插补点,其插补量ΔXi=|BD2|,Δyi′=|C2D2|,C3为第二种算法的插补点,其插补量Δyi″=|C3D3|,而C为理想插补点,其插补量Δxi=|BD|,Δyi=|CD|。
下面求BC2与BC3的斜率。先看A点,从假设方程及A点相对顶点位置可知AE斜率必大于AB斜率,即KAE=tgα1>KAB=tgα2。因A、B、C1三点共线,所以BC1斜率KBC1=tgα2,分别考虑A、B点,对A点有:y′i-1=-2axi-1+b;对B点有:yi′=-2axi+b所以有 yi′-y′i-1=-2a(xi-xi-1)=-2aΔx′i-1得: yi′=y′i-1-2aΔx′i-1=KAB-2aΔx′i-1而对于B点,有|C′D1|=y″i-1-2ax″i-12 对上一次插补,可以假设,Δy′i-1=Δy″i-1,Δx′i-1=Δx″i-1,于是有:tgβ1=KBC2=KAE-2aΔx′i-1 tgβ2=KBC3=KAB-2aΔx′i-1 由于KAE>KAB,所以KBC2>KBC3
现在考虑B点局部坐标系,则有B(0,0),圆方程为x′2+y′2=f2。对于过B点且斜率为K的直线交于圆的交点坐标,可求得
则有x′C2
由上述推导可看出,算法二的合成插补实际进给量比算法一的更逼近于合成插补理想进给量,也就是说,算法二的插补精度理论上比算法一的插补精度高。但通过比较两种算法基本思想,可以看出算法二比算法一复杂,即算法二实际运行应较慢。在66MHzPC-486机型上进行实验,两种算法在不同的理想合成插补距离下对每次插补的实际距离作了统计平均。表1列出了两种算法在不同条件下实际合成插补量统计平均值。表1 两种抛物线插补算法实际合成插补量平均值
0.020.040.060.08a=0.01,b=00.0199560.0396690.0596070.0792930.0199550.0396650.0595890.079272a=0.1,b=00.0199870.0396820.0597440.0793450.0199840.0396800.0597420.079339a=1,b=00.0199920.0397100.0598510.0794520.0199860.0397090.0597480.079447
在实验中测出两种算法每次插补运算时间,算法一t1=0.000013s;算法二t2=0.000021s。由以上实验数据可以看出,实验结果同理论分析一致,即算法一的运算速度比算法二的运算速度快。但算法二的匀速性及插补精度比算法一要好。
3 n分步长的改进算法 随着32位微机的广泛使用,提供了高速高效的运算能力,便得CNC插补算法可以适当增加复杂程度,而达到提高插补精度的目的。为此提出了下面的n分步长的改进算法。 以二分步长说明该算法的基本思想,以上面介绍的抛物线插补算法一为例,见图2。
图2 二分步长改进算法示意图
设抛物线方程为y=-ax2+bx(a>0,b>0),A(xi,yi)为已知插补点,f为理论合成插补量,AC′为过A点的抛物线切线,A,C′,B′1三点共线,作AB′1=f,C′,C,D′三点共线,该线平行于y轴,A、D′、D三点共线,平行于x轴。|AC′|=f/2。C点为C′D′与抛物线的交点,CB″为过C点抛物线切线,B″D与抛物线交于B点,|CB″|=f/2。二分步长基本思想与算法一相同,但二分步长每步算两次,每次以f/2为理想合成插补量。两次后算出实际插补点B。
依据前述对算法一、二的比较分析相同方法,可以得出结论,采用二分步长法比整步长法进行插补的精度要高。同样,二分步长可推广至三分步长、四分步长直至n分步长的n分数,相应的插补精度都会提高。但同时也可看出,从n分步长到n+1分步长,插补时间都会增加,通过在66MHz486机型上对算法一和算法二进行n-1到n-10的n分步长算法实验,得出以下的每步实际平均插补时间。图3给出n分步长插补算法流程图。
图3 n分步长插补算法流程图——可采用直线、圆弧、抛物线插补算法公式5
通过本文对两种抛物线插补算法的比较分析,可知算法二比算法一的插补精度要高,但算法一的运算速度较快;同时,根据对n分步长插补算法的研究,可看出通过选择适当n,可以有效地提高插补精度。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈