摘要:介绍了数控编程时采用等误差直线逼近法模拟非圆曲线刀具轨迹的节点计算方法,并在AutoCAD内嵌的VBA环境下开发了计算程序。 |
图1 非圆曲线的等误差直线逼近 |
1 引言
由于大部分数控机床不具备对非圆曲线刀尖轨迹的插补指令,因此在编制此类曲线刀尖轨迹的数控程序时通常用直线段或圆弧段予以替代。由于直线替代法简单、直观,因此使用较多。用直线段替代非圆曲线的方法如图1所示。在满足精度要求的条件下,可用折线段替代非圆曲线。图中a、b、c、d等称为节点,实现刀尖轨迹数控编程的关键就是确定这些节点。为简化计算,常采用等间距法和等步长法来确定节点。等间距法是在理论曲线与直线的最大偏差小于允许偏差(d最大≤d允)的条件下,令各节点在x轴上的投影的间距x相等。等步长法是在理论曲线与直线的最大偏差小于允许偏差(d最大≤d允)的条件下,令各节点间的直线长度L相等。它们的共同特点是计算较为简单。但当各节点之间曲线的曲率变化较大时,由于x和L为定值,因此会造成被加工零件的表面粗糙度变化较大,从而影响工件的表面加工质量;同时,曲线曲率的变化也使工件的加工误差d发生变化。另一方面,等间距法的间距和等步长法的步长均是根据加工精度由非圆曲线的最小曲率半径确定的,因此这两种方法在整个非圆曲线内会产生很多节点,使计算和编程相当繁琐。如采用等误差直线逼近法则可有效避免上述问题。 2 等误差直线逼近的理论计算
如图1所示,等误差直线逼近法的特点是令各节点间非圆曲线与直线的误差d相等。其具体求解步骤如下: - 以起点a( xa,ya)为圆心、d为半径作圆,确定允许误差的圆方程为
(x-xa)2+(y-ya)2=d2 | (1) |
- 圆与曲线的公切线PT的斜率为
|
K= | yT-yp |
|
xT-xp |
(2) | 式中的xT、yT、xp、yp需通过求解下列联立方程获得: |
{ | yT-yp=f1( xp)( xT-xp) |
yp=f1( xp) |
yT-yp=f2(xT)(xT-xp) |
yT=f2(xT) |
(3) | 式中:f1(x)——误差圆函数 - f2(x)——加工曲线函数
- 可知与PT 平行的弦ab的斜率为K,则弦ab的直线方程为
y-ya=K(x-xa) | (4) |
- 联立曲线方程和弦ab方程,可求得b点坐标为
|
{ | y=f2(x) |
y-ya=k(x-xa) |
(5) | - 重复上述步骤即可顺次求得c、d、e 等各点坐标。
3 等误差直线逼近法的节点计算
在数控加工中,刀尖轨迹的理论曲线一般取为抛物线y=ax2( a>0,x>0),则有y=2ax。根据允差圆方程式(1)可得 |
{ | y=ya-[d2-(x-xa)2]½ |
|
y=- | x-xa |
|
y-ya |
(6) | 因此方程组(3)可改写为 |
{ | |
yT-yp=- | xp-xT | (xT-xp) |
|
yp-yT |
yp=ya-[d2-(xp-xT)2]½ |
yT-yp=2axT(xT-xp) |
yT=axT2 |
(7) | 联立方程组(7)可得 4au3-4au2ya-t3+4aut3+4autxa=0 | (8) |
式中:t=xp-xa u=(d2-t2)½
图2 程序流程图 |
由已知条件可知:0≤t≤d。为求解t值,可在计算机上采用逐步搜索法或二分法等数值解法求根(本文选用逐步搜索法)。由式(8)解出t 值后即可求解方程。 根据式(5)可得 |
{ | y=ax2 |
y-ya=k(x-xa) |
(9) | 式中k=(yT-yp)/(xT-xp) 求解方程组(9),可得第一个节点坐标为 |
x= | k+del |
|
2a |
(10) | 式中del=[k2-4a( kxa-ya)]½ 然后以该节点作为新的起点,反复求解,即可顺次求得所有节点。 4 计算程序的编制
在AutoCAD内嵌的VBA(Visual Basic for Applications)开发环境下开发计算程序,程序流程如图2所示。 数控加工刀尖轨迹的理想曲线为抛物线。按d=0.05求出的节点绘制的折线段模拟曲线轨迹如图3所示。计算出的节点数据保存于“c:/data.txt”文件中,见图4。
图3 模拟曲线轨迹(d=0.05) |
图4 保存节点坐标数据的文件(d=0.01) |
求解方程的子程序如下: //求解方程 For tana=delta To 0 Step -0.0001 u=Sq(r delta ^ 2-tana ^ 2) texpr=4 * a * u ^ 3 + 4 * a * u * tana ^ 2 - 4 * a * u ^ 2 * ya-tana ^ 2 + 4 * a * u * tana * xa If texpr < 0.00001 And texpr > 0 Then Exit For Next xp=xa + tana:yp=ya-u xt=tana /(2 * a * u):yt=a * xt ^ 2 k=(yp-yt)/(xp-xt) del=Sq(r k ^ 2-4 * a *(k * xa-ya)) xb=(k + del)/(2 * a) yb=a * xb ^ 2 //解方程结束 误差值d的设置可通过“变量设置”来完成。 5 其它非圆曲线的等误差直线逼近
对于其它非圆曲线刀尖轨迹的等误差直线逼近,只需改变计算程序中t 的表达式即可实现。以双曲线为例,只需将程序中t 的表达式“texpr=4*a*u^3 + 4*a*u*tana^2-4*a*u^2*ya-tana^2 + 4*a*u*tana*x”改为“texpr=t^2 + t*xa-u*ya-2*sq(r-u*t)”即可。 6 结语
在非圆曲线刀尖轨迹的数控编程中,等误差直线逼近法是节点最少、数控程序段最少的方法,且零件的加工表面精度和尺寸精度较高。但等误差直线逼近法计算比较繁琐,手工求解四元二次方程一般很难求得精确解。本文介绍的在AutoCAD 内嵌的VBA 开发环境下编制的计算程序,可有效实现非圆曲线等误差直线逼近法的节点计算,并具有可移植性,可方便地用于其它非圆曲线的节点计算,也可形象地模拟刀具轨迹线与实际加工曲线的差别,因此具有较高实用价值。