一种空间椭圆弧插补方法转让专利

申请号 : CN201410339105.X

文献号 : CN104133423B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘强刘焕周胜凯李传军

申请人 : 北京航空航天大学

摘要 :

一种空间椭圆弧插补方法,它有六大步骤:步骤1,定义空间椭圆弧插补代码格式;步骤2,译码获取空间椭圆弧插补数据信息;步骤3,计算插补圆心角;步骤4,插补参数增量计算;步骤5,插补点计算;步骤6,插补终点判断。本发明适用于任意起终点、任意空间平面的椭圆弧插补。椭圆弧的空间位置以及插补方向由椭圆弧的长轴方向向量以及短轴方向向量决定,并规定绕两个方向向量的向量积的逆时针方向插补。本发明无需进行插补象限判断,方法流程清晰简单,易于实现。

权利要求 :

1.一种空间椭圆弧插补方法,其特征在于:该方法具体步骤如下:步骤1,定义空间椭圆弧插补代码格式:采用的空间椭圆弧插补代码格式为:

G03.1X(U)_Y(V)_Z(W)_I_J_K_AL_BL_AX_AY_AZ_BX_BY_BZ_F_X,Y,Z为终点绝对值坐标;

U,V,W为相对于起点的终点相对坐标;

I,J,K为相对于起点的中心相对坐标;

AL,BL为椭圆弧长轴长与短轴长;

AX,AY,AZ为椭圆长轴方向矢量;

BX,BY,BZ为椭圆短轴方向矢量;

F为进给速度;

规定插补方向为绕椭圆弧所在平面法矢(AX,AY,AZ)×(BX,BY,BZ)逆时针插补;

步骤2,译码获取空间椭圆弧插补数据信息:令空间椭圆弧插补的起点为(xs,ys,zs),即前一段代码插补的终点,为已知;

若读取的空间椭圆弧插补代码为:

G03.1Xxe Yye Zze Iic Jjc Kkc ALa BLb AXAx AYAy AZAz BXBx BYBy BZBz Ff则椭圆弧插补的终点为(xe,ye,ze);中心为(xc,yc,zc)=(xs+ic,ys+jc,zs+kc);长轴长为a,短轴长为b;长轴方向向量为 短轴方向向量为最大进给速度为f;

步骤3,计算插补圆心角:

计算起点向量为Vs=(xs-xc,ys-yc,zs-zc),终点向量为Ve=(xe-xc,ye-yc,ze-zc),椭圆弧所在平面法矢计算为 计算圆弧半径为 计算起点向量、终点向量与法矢的混合积为(Vs,Ve,N)=<(Vs×Ve),N>,若(Vs,Ve,N)>0,则圆弧插补圆心角 若(Vs,Ve,N)≤0,则圆弧插补圆心 计算符号“(·,·,·)”为三个向量的混合积计算,计算符号“×”为两个向量的向量积计算,计算符号“<·,·>”表示两个向量的数量积计算;

步骤4,插补参数增量计算:

若第i个插补周期的插补点为Xi=(xi,yi,zi),中心为C=(xc,yc,zc),由指令速度、加速度与加加速度决定的指令插补步长为Li,则插补参数增量为: 其中:R2=||Xi-C||;计算符号“<·,·>”表示两个向量的数量积计算,计算符号“||·||”表示向量的三维欧几里德模长计算;

步骤5,插补点计算:

令当前插补点为(xi,yi,zi),下一个插补点为(xi+1,yi+1,zi+1),按如下计算:系数A0~A8计算:

系数B0~B8计算:

H=(A0A4A8-A0A5A7-A1A3A8+A1A5A6+A2A3A7-A2A4A6)h3+(A1A3-A0A4-A0A8+A2A6-A4A8+A5A7)h2+(A0+A4+A8)h-1插补

点计算:

xi+1=xc+(xi-xc)(B0+A0B0h+A3B1h+A6B2h)+(yi-yc)(B1+A1B0h+A4B1h+A7B2h)+(zi-zc)(B2+A2B0h+A5B1h+A8B2h)yi+1=yc+(xi-xc)(B3+A0B3h+A3B4h+A6B5h)+(yi-yc)(B4+A1B3h+A4B4h+A7B5h)+(zi-zc)(B5+A2B3h+A5B4h+A8B5h)zi+1=zc+(xi-xc)(B6+A0B6h+A3B7h+A6B8h)+(yi-yc)(B7+A1B6h+A4B7h+A7B8h)+(zi-zc)(B8+A2B6h+A5B7h+A8B8h)计算得到的(xi+1,yi+1,zi+1)即为插补点,通过伺服位置控制实现插补,同时也以(xi+1,yi+1,zi+1)按照上述计算方法递推下一个插补点;

步骤6,插补终点判断:

计算两个向量: 则圆心角

增量为 更新剩余插补圆心角θ=θ-Δθi,若θ>0,则返回步骤4继续插补;否则,插补结束。

说明书 :

一种空间椭圆弧插补方法

技术领域

[0001] 本发明涉及一种空间椭圆弧插补方法,属于数控加工技术领域。

背景技术

[0002] 在数控加工中,经常涉及空间圆弧或椭圆弧的加工问题。空间圆弧插补是空间自由曲线曲面加工的重要方法,许多学者研究使用连续微小圆弧段形成的圆弧样条来逼近空间自由曲线曲面,相比于传统的微小空间直线段逼近,能大大降低代码的数量,提高逼近精度。圆弧是椭圆弧的特殊情况,相对来说空间圆弧插补更容易实现,但是在许多情况下,采用空间椭圆弧逼近空间自由曲线曲面能得到更好的效果,因此有必要研究一种空间椭圆弧的插补方法。而在已有的公开的文献中,大多采用坐标变换及三角函数计算来实现空间椭圆弧的插补,这些方法通常计算量大,过程复杂,难以在数控系统中实现。
[0003] 为了实现空间椭圆弧插补,首先需要重新定义空间椭圆弧插补代码格式以形成一种通用统一的标准。然后,需要一种精确的插补点计算方法使生成的插补点都精确的位于被插补椭圆弧上,同时确保相邻插补点的距离满足指令插补步长要求。最后,需要一种准确的终点判断方法以及时结束插补任务,避免欠插补和过插补现象。

发明内容

[0004] 本发明针对以上问题,提供了一种空间椭圆弧插补方法。该插补方法能根据给定的椭圆弧起点、终点以及椭圆弧长轴与短轴的方向向量完成任意空间平面内的椭圆弧插补。
[0005] 本发明通过以下技术方案实现,方法流程如图1,具体步骤如下:
[0006] 步骤1,定义空间椭圆弧插补代码格式:
[0007] 本发明采用的空间椭圆弧插补代码格式为:
[0008] G03.1 X(U)_Y(V)_Z(W)_I_J_K_AL_BL_AX_AY_AZ_BX_BY_BZ_F_
[0009] X,Y,Z为终点绝对值坐标;
[0010] U,V,W为终点相对坐标(相对于起点);
[0011] I,J,K为中心相对坐标(相对于起点);
[0012] AL,BL为椭圆弧长轴长与短轴长;
[0013] AX,AY,AZ为椭圆长轴方向矢量;
[0014] BX,BY,BZ为椭圆短轴方向矢量;
[0015] F为进给速度;
[0016] 规定插补方向为绕椭圆弧所在平面法矢(AX,AY,AZ)×(BX,BY,BZ)逆时针插补。
[0017] 步骤2,译码获取空间椭圆弧插补数据信息:
[0018] 令空间椭圆弧插补的起点为(xs,ys,zs),即前一段代码插补的终点,为已知;
[0019] 若读取的空间椭圆弧插补代码为:
[0020] G03.1Xxe Yye Zze Iic Jjc Kkc ALa BLb AXAx AYAy AZAz BXBx BYBy BZBz Ff[0021] 则椭圆弧插补的终点为(xe,ye,ze);中心为(xc,yc,zc)=(xs+ic,ys+jc,zs+kc);长轴长为a,短轴长为b;长轴方向向量为 短轴方向向量为
[0022] 最大进给速度为f;各个数据信息表示如图2中所示。
[0023] 步骤3,计算插补圆心角:
[0024] 计算起点向量为Vs=(xs-xc,ys-yc,zs-zc),终点向量为Ve=(xe-xc,ye-yc,ze-zc),椭圆弧所在平面法矢可以计算为 计算起点向量、终点向量与法矢的混合积为(Vs,Ve,N)=<(Vs×Ve),N>,若(Vs,Ve,N)>0,则圆弧插补圆心角 若(Vs,Ve,N)≤0,则圆弧插补圆心 计算符号“(·,·,·)”为三个向量的混
合积计算,计算符号“×”为两个向量的向量积计算,计算符号“<·,·>”表示两个向量的数量积计算。
[0025] 步骤4,插补参数增量计算:
[0026] 若第i个插补周期的插补点为Xi=(xi,yi,zi),中心为C=(xc,yc,zc),由指令速度、加速度与加加速度决定的指令插补步长为Li,则插补参数增量为: 其中:R2=||Xi-C||。计算符号“<·,·>”表示两个向
量的数量积计算,计算符号“||·||”表示向量的三维欧几里德模长计算。
[0027] 步骤5,插补点计算:
[0028] 令当前插补点为(xi,yi,zi),下一个插补点为(xi+1,yi+1,zi+1),按如下计算:
[0029] 系数A0~A8计算:
[0030]
[0031]
[0032]
[0033] 系数B0~B8计算:
[0034] H=(A0A4A8-A0A5A7-A1A3A8+A1A5A6+A2A3A7-A2A4A6)h3
[0035] +(A1A3-A0A4-A0A8+A2A6-A4A8+A5A7)h2+(A0+A4+A8)h-1
[0036]
[0037]
[0038]插补点计算:
[0039] xi+1=xc+(xi-xc)(B0+A0B0h+A3B1h+A6B2h)
[0040] +(yi-yc)(B1+A1B0h+A4B1h+A7B2h)
[0041] +(zi-zc)(B2+A2B0h+A5B1h+A8B2h)
[0042] yi+1=yc+(xi-xc)(B3+A0B3h+A3B4h+A6B5h)
[0043] +(yi-yc)(B4+A1B3h+A4B4h+A7B5h)
[0044] +(zi-zc)(B5+A2B3h+A5B4h+A8B5h)
[0045] zi+1=zc+(xi-xc)(B6+A0B6h+A3B7h+A6B8h)
[0046] +(yi-yc)(B7+A1B6h+A4B7h+A7B8h)
[0047] +(zi-zc)(B8+A2B6h+A5B7h+A8B8h)
[0048] 计算得到的(xi+1,yi+1,zi+1)即为插补点,通过伺服位置控制实现插补,同时也以(xi+1,yi+1,zi+1)按照上述计算方法递推下一个插补点。
[0049] 步骤6,插补终点判断:
[0050] 计算两个向量: 则圆心角增量为 更新剩余插补圆心角θ=θ-Δθi,若θ>0,则返回步骤4
继续插补;否则,插补结束。
[0051] 根据以上步骤,本发明的一种空间椭圆弧插补方法适用于任意起终点、任意空间平面的椭圆弧插补。椭圆弧的空间位置以及插补方向由椭圆弧的长轴方向向量以及短轴方向向量决定,并规定绕两个方向向量的向量积的逆时针方向插补。本发明具有以下优点:
[0052] 1.通用性。由椭圆弧的长轴方向向量以及短轴方向向量决定了椭圆弧的空间位置以及插补方向,可以完成任意空间椭圆弧的插补。
[0053] 2.高精度。经过理论验证,由步骤5计算出的插补点都能保证精确的位于被插补椭圆弧上,因此插补点的径向误差为0。且通过步骤4计算的插补参数增量能达到0.1%以下的相对速度误差,插补精度高。
[0054] 3.高效性。本发明在计算插补点时仅存在简单的四则运算,避免了三角函数的计算,只在参数增量计算时涉及开方计算,因此插补计算效率高,计算速度快。
[0055] 4.简便性。本发明无需进行插补象限判断,方法流程清晰简单,易于实现。

附图说明

[0056] 图1是本发明方法流程图;
[0057] 图2是本发明椭圆弧插补代码定义的数据信息图。
[0058] 图3是实施示例插补结果图;
[0059] 图4是实施示例插补过程中的速度误差曲线。
[0060] 符号说明:
[0061] 图2中(xs,ys,zs)为椭圆弧插补起点;
[0062] 图2中(xe,ye,ze)为椭圆弧插补终点;
[0063] 图2中(xc,yc,zc)为椭圆弧插补中心;
[0064] 图2中AL、BL分别为椭圆弧长轴长与短轴长;
[0065] 图2中 分别为椭圆弧长轴方向向量与短轴方向向量。

具体实施方式

[0066] 下面结合附图对本发明实施示例作详细说明。以一个整椭圆为插补对象,实施流程图如图1所示,有以下具体步骤:
[0067] 步骤1,定义空间椭圆弧插补代码格式:
[0068] 以一个长轴长为50,短轴长为30,长轴方向方向量为(3,4,0),短轴方向向量为(-4,3,0),椭圆中心在原点(0,0,0)的椭圆为插补对象。定义椭圆弧插补起点与终点均为(30,
40,0),即长轴的一个端点,插补进给速度为100mm/s,G代码格式为:
[0069] G03.1 X30 Y40 Z0 I-30 J-40 K0 AL50 BL30 AX3 AY4 AZ0 BX-4 BY3 BZ0 F100[0070] 步骤2,译码获取空间椭圆弧插补数据信息:
[0071] 由G代码译码获得圆弧插补数据信息为:
[0072] 椭圆弧终点:(xe,ye,ze)=(30,40,0)
[0073] 椭圆弧中心:(xc,yc,zc)=(0,0,0)
[0074] 椭圆弧长轴长:a=50
[0075] 椭圆弧短轴长:b=30
[0076] 椭圆弧长轴方向向量:
[0077] 椭圆弧短轴方向向量:
[0078] 插补最大进给速度:f=100mm/s
[0079] 各信息代表如图2所示。
[0080] 步骤3,计算插补圆心角:
[0081] 计算起点向量为Vs=(30,40,0),终点向量为Ve=(30,40,0),椭圆弧所在平面法矢可以计算为 计算起点向量、终点向量与法矢的混合积为(Vs,Ve,N)=<(Vs×Ve),N>=0,则圆弧插补圆心 计算符号“(·,·,·)”为
三个向量的混合积计算,计算符号×为两个向量的向量积计算,计算符号“<·,·>”表示两个向量的数量积计算。
[0082] 步骤4,插补参数增量计算:
[0083] 若第i个插补周期的插补点为Xi=(xi,yi,zi),中心为C=(xc,yc,zc),令由指令速度、加速度与加加速度决定的指令插补步长为Li=0.1mm,即以恒速插补,则插补参数增量为:
[0084] 其中: R2=||Xi-C||。计算符号“<·,·>”表示两个向量的点积计算,计算符号“||·||”表示向量的三维欧几里德模长计算。
[0085] 步骤5,插补点计算:
[0086] 令当前插补点为(xi,yi,zi),下一个插补点为(xi+1,yi+1,zi+1),按如下计算:
[0087] 系数A0~A8计算:
[0088]
[0089]
[0090]
[0091] 系数B0~B8计算:
[0092] H=(A0A4A8-A0A5A7-A1A3A8+A1A5A6+A2A3A7-A2A4A6)h3
[0093] +(A1A3-A0A4-A0A8+A2A6-A4A8+A5A7)h2+(A0+A4+A8)h-1
[0094]
[0095]
[0096]插补点
计算:
[0097] xi+1=xc+(xi-xc)(B0+A0B0h+A3B1h+A6B2h)
[0098] +(yi-yc)(B1+A1B0h+A4B1h+A7B2h)
[0099] +(zi-zc)(B2+A2B0h+A5B1h+A8B2h)
[0100] yi+1=yc+(xi-xc)(B3+A0B3h+A3B4h+A6B5h)
[0101] +(yi-yc)(B4+A1B3h+A4B4h+A7B5h)
[0102] +(zi-zc)(B5+A2B3h+A5B4h+A8B5h)
[0103] zi+1=zc+(xi-xc)(B6+A0B6h+A3B7h+A6B8h)
[0104] +(yi-yc)(B7+A1B6h+A4B7h+A7B8h)
[0105] +(zi-zc)(B8+A2B6h+A5B7h+A8B8h)
[0106] 令i=0时,插补点为椭圆弧起点(30,40,0),通过步骤4与步骤5计算得到的插补点如下:
[0107]i x y z
0 30 40 0
1 29.91983352 40.05977764 0
2 29.83933539 40.11910959 0
3 29.75850812 40.17799404 0
4 29.67735424 40.23642924 0
5 29.59587631 40.29441345 0
6 29.51407692 40.351945 0
7 29.4319587 40.40902224 0
8 29.34952427 40.46564358 0
9 29.26677631 40.52180748 0
10 29.18371751 40.57751241 0
11 29.10035058 40.6327569 0
12 29.01667827 40.68753955 0
13 28.93270334 40.74185896 0
14 28.84842857 40.79571381 0
15 28.76385676 40.8491028 0
16 28.67899074 40.90202469 0
17 28.59383335 40.95447827 0
18 28.50838746 41.0064624 0
19 28.42265593 41.05797596 0
...... ...... ...... ......
[0108] 上表中i表示第i个插补周期;(x,y,z)表示每个插补周期生成的插补点。
[0109] 步骤6,插补终点判断:
[0110] 计算两个向量: 则圆心角增量为 更新剩余插补圆心角θ=θ-Δθi,若θ>0,则返回步骤4
继续插补;否则,插补结束。图3所示为插补结果,可以看出,本实例为一个在XY平面内的椭圆,经过理论验证,生成的插补点都精确的位于椭圆上。图4所示为插补过程中产生的相对速度误差曲线,可以看出,本发明方法产生的速度误差在0.075%以下,完全符合要求。