一种空间圆锥曲线通用插补方法转让专利

申请号 : CN201711045309.2

文献号 : CN107885166B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘强孙鹏鹏王健刘启通

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

摘要 :

本发明公开了一种空间圆锥曲线通用插补方法,包括步骤一:设定空间圆锥曲线插补代码格式;步骤二:译码获取空间圆锥曲线数据信息;步骤三:获取圆锥曲线的常系数微分方程;步骤四:判断插补方向;步骤五:根据插补步长计算插补系数;步骤六:计算预插补点;步骤七:校正插补点;步骤八:终点判断。本发明对于各种圆锥曲线具有通用的NC代码格式,并将各种圆锥曲线转化为统一的常系数微分方程形式,采用相同的插补流程进行插补,完成任意空间平面的任意圆锥曲线弧的插补,本发明具有理论上的零径向插补误差,且通过步骤7参考点校正方式,大大减小了计算累积误差,能达到10‑4%以下的速度误差和极高的插补精度。

权利要求 :

1.一种空间圆锥曲线通用插补方法,包括以下几个步骤:步骤一:设定空间圆锥曲线插补代码格式;

步骤二:译码获取空间圆锥曲线数据信息;

令圆锥曲线的起点为Xs=(xs,ys,zs),即前一段插补指令的终点,为已知;

若读取的圆锥曲线代码如下:

G02.*Xxe Yye Zze Iic Jjc Kkc UXux UYuy UZuz ALa VXvx VYvy VZvz BLb Ff;

则对于椭圆有,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量 长轴长度为a,短轴长度为b,最大进给速度为对于双曲线,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量 长轴长度为a,短轴长度为b,最大进给速度为对于抛物线,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量 通径

2p=b/a,最大进给速度为

步骤三:获取圆锥曲线的常系数微分方程;

用如下的参数化表示方法分别表示椭圆、双曲线和抛物线:X=(acosθ)U+(bsinθ)V+XcX=(achθ)U+(bshθ)V+Xc其中,X为圆锥曲线上的点,θ为圆锥曲线的参数,W为圆锥曲线平面的单位法线并与U、V组成右手坐标系;

由上述参数化形式得到圆锥曲线统一的常系数微分方程表达形式:其中

其中:A为3×3矩阵,微分方程的常系数矩阵;

步骤四:判断插补方向;

设X′s=A(Xs-Xc),X′e=A(Xe-Xc),通过判断(Xe-Xs)与(X′e+X′s)的方向来确定插补方向:当(Xe-Xs)·(X′e+X′s)≥0时插补参数增量为正,记flag=1;

当(Xe-Xs)·(X′e+X′s)<0时插补参数增量为负,记flag=-1;

其中:flag为插补方向的标记,flag=1时沿θ的正向插补,flag=-1时沿θ的负向插补;

Xs为圆锥曲线插补起点,Xe为圆锥曲线插补终点,Xc为圆锥曲线中心;Xs′为圆锥曲线插补起点的切矢,Xe′为圆锥曲线插补终点的切矢;

步骤五:根据插补步长计算插补系数;

步骤六:计算预插补点;

步骤七:校正插补点;

步骤八:终点判断。

2.根据权利要求1所述的一种空间圆锥曲线通用插补方法,所述的步骤一中:设定圆锥曲线代码格式:G02.*X(U)_Y(V)_Z(W)_I_J_K_UX_UY_UZ_AL_VX_VY_VZ_BL_F_;*取值为1,2,3;

其中,G02.1为空间椭圆曲线,G02.2为空间双曲线,G02.3为空间抛物线曲线;X,Y,Z为圆锥曲线终点绝对坐标,X(U),Y(V),Z(W)为圆锥曲线终点相对坐标;I,J,K为圆锥曲线中心的相对坐标;UX,UY,UZ为圆锥曲线平面的第一矢量,VX,VY,VZ为圆锥曲线对称轴矢量;AL为U方向长短轴的长度,BL为V方向长短轴的长度;F为插补进给速度,单位mm/min。

3.根据权利要求1所述的一种空间圆锥曲线通用插补方法,所述的步骤五中:对于第i个插补周期,根据规划的插补速度计算得到插补步长Li;

利用二阶泰勒展开估计插补参数增量:

X′i+1≈X′i+X″iΔθi+X″′i(Δθi)2=X′i+AX′iΔθi+A2X′i(Δθi)2其中,Δθi为第i个周期里参数θ的增量估计,Xi为第i个插补周期的起点,Xi+1为第i个周期的插补点,Xi+1′为曲线在Xi+1处的切矢,Xi′,Xi″,Xi″′为曲线在Xi处的一阶、二阶和三阶切矢;

令第i个周期的插补系数

4.根据权利要求1所述的一种空间圆锥曲线通用插补方法,所述的步骤六中:对第i个周期,当前插补点和下一插补点有如下关系:(E-hiA)(Xi+1-Xc)=(E+hiA)(Xi-Xc),其中E为单位矩阵;

当(E-hiA)可逆时有 其中 为预插补点。

5.根据权利要求1所述的一种空间圆锥曲线通用插补方法,所述的步骤七中:预设插补参考点XR=Xs;

根据步骤六求得的预插补点 和参考点XR计算参考插补系数利用方程Xi+1=(E-hRA)-1(E+hRA)(XR-Xc)+Xc,计算最终插补点Xi+1;

当|hR|>0.9时,更新XR=Xi+1。

6.根据权利要求1所述的一种空间圆锥曲线通用插补方法,所述的步骤八中:求剩余插补投影距离 若 则认为插补结束;否则,继续向前插补;

其中,Li为插补步长,Xe′为圆锥曲线插补终点的切矢。

说明书 :

一种空间圆锥曲线通用插补方法

技术领域

[0001] 本发明涉及一种高精度空间圆锥曲线通用插补方法,属于数控加工技术领域。

背景技术

[0002] 现有的数控系统一般只具备G01空间直线插补与G02/03平面圆弧插补,且插补圆弧时必须同时指定圆弧插补平面,即G17代码指定的XY平面、G18代码指定的XZ平面或G19代码指定的YZ平面。因此,空间自由曲线在加工之前一般都被离散成大量微小的空间直线段,形成大量连续的G01代码,数控系统根据G01代码使用空间直线插补方法完成空间自由曲线的加工。实际上,使用空间圆锥曲线(圆弧、椭圆、抛物线和双曲线)逼近空间自由曲线不仅能大量降低代码的数量、提高曲线逼近精度,同时能使得机床运动更加平稳,避免了直线段连接处的拐角突变。另外,空间圆锥曲线在光学元器件和椭圆齿轮等领域有重要应用,其直接插补算法能够很大程度上提高其加工质量。因此,需要开发一种插补精度高、计算速度快的空间圆锥曲线通用插补方法来实现各种形式的圆锥曲线的直接插补加工方式。

发明内容

[0003] 本发明的目的是为了解决上述问题,提出了一种高精度空间圆锥曲线通用插补方法。该插补方法能根据给定的圆锥曲线的平面方向轴矢量和标准几何参数完成任意空间平面内的圆锥曲线插补。
[0004] 一种空间圆锥曲线通用插补方法,包括以下几个步骤:
[0005] 步骤一:设定空间圆锥曲线插补代码格式;
[0006] 步骤二:译码获取空间圆锥曲线数据信息;
[0007] 步骤三:获取圆锥曲线的常系数微分方程;
[0008] 步骤四:判断插补方向;
[0009] 步骤五:根据插补步长Li计算插补系数hi;
[0010] 步骤六:计算预插补点;
[0011] 步骤七:校正插补点;
[0012] 步骤八:终点判断。
[0013] 本发明的优点在于:
[0014] (1)通用性。对于各种圆锥曲线具有通用的NC代码格式,并将各种圆锥曲线转化为统一的常系数微分方程形式,采用相同的插补流程进行插补,完成任意空间平面的任意圆锥曲线弧的插补;
[0015] (2)高精度。该方法具有理论上的零径向插补误差,且通过步骤7参考点校正方式,大大减小了计算累积误差,能达到10-4%以下的速度误差和极高的插补精度;
[0016] (3)高效率。本发明在计算插补增量和插补点时除了5次开方计算外均为简单四则运算,避免了三角函数、双曲函数和坐标变换的计算,插补计算效率高;(4)简明性。本发明规定的G代码格式是标准的圆锥曲线几何表达方式,具有很强的几何意义,便于编程设计。

附图说明

[0017] 图1是本发明中涉及到的圆锥曲线的定义;
[0018] 图2是本发明插补方法的流程图;
[0019] 图3是实施示例的插补结果图;
[0020] 图4是实施示例插补过程中的径向相对误差图;
[0021] 图5是实施示例插补过程中的速度相对误差曲线图。
[0022] 缺少图2、图5的解释说明,请在具体实施方式中进行添加说明。另外,图2引用的时候,需要把其中的字母含义添加到相应地方。

具体实施方式

[0023] 下面将结合附图和实施例对本发明作进一步的详细说明。
[0024] 如图1所示,为表示一段圆锥曲线弧,需要其中心、起点、终点和方向矢量的信息:
[0025] 其中Xs为圆锥曲线插补起点,Xe为圆锥曲线插补终点,Xc为圆锥曲线中心;
[0026] a,b分别为圆锥曲线长轴长与短轴长,U,V分别为圆锥曲线长轴方向向量与短轴方向向量;
[0027] Xs′为圆锥曲线插补起点的切矢,Xe′为圆锥曲线插补终点的切矢。
[0028] Xi,Xj为圆锥曲线上任意两点,Xi′,Xj′为对应的切矢。
[0029] 下面对此种圆锥曲线弧的插补算法进行说明。
[0030] 本发明是一种空间圆锥曲线通用插补方法流程如图2所示,包括以下几个步骤:
[0031] 步骤一:设定空间圆锥曲线插补代码格式;
[0032] 设定圆锥曲线代码格式:G02.*X(U)_Y(V)_Z(W)_I_J_K_UX_UY_UZ_AL_VX_VY_VZ_BL_F_
[0033] 其中,G02.1为空间椭圆曲线(圆弧),G02.2为空间双曲线,G02.3为空间抛物线曲线;X,Y,Z为圆锥曲线终点绝对坐标,U,V,W为圆锥曲线终点相对坐标(相对于起点);I,J,K为圆锥曲线中心的相对坐标(相对于起点);UX,UY,UZ为圆锥曲线平面的第一矢量,VX,VY,VZ为圆锥曲线对称轴矢量;AL为U方向长短轴的长度,BL为V方向长短轴的长度;F为插补进给速度,单位mm/min。
[0034] 步骤二:译码获取空间圆锥曲线数据信息;
[0035] 令圆锥曲线的起点为Xs=(xs,ys,zs),即前一段插补指令的终点,为已知;
[0036] 若读取的圆锥曲线代码如下:
[0037] G02.*Xxe Yye Zze Iic Jjc Kkc UXux UYuy UZuz ALa VXvx VYvy VZvz BLb Ff,其中xe,ye,ze,ic,jc,kc,ux,uy为步骤一中定义的插补代码格式里的数值。
[0038] 则对于椭圆有,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量长轴长度为a,短轴长度为b,最大进给速度为
[0039] 对于双曲线,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量长轴长度为a,短轴长度为b,最大进给速度为
[0040] 对于抛物线,终点Xe=(xe,ye,ze),中心Xc=(xc,yc,zc)=(xs+ic,ys+jc,zs+kc),长轴方向单位矢量 短轴方向单位矢量通径2p=b/a,最大进给速度为
[0041] 步骤三:获取圆锥曲线的常系数微分方程;
[0042] 用如下的参数化表示方法分别表示椭圆、双曲线和抛物线:
[0043] X=(acosθ)U+(bsinθ)V+Xc
[0044] X=(achθ)U+(bshθ)V+Xc
[0045]
[0046] 其中,X为圆锥曲线上的点,θ为圆锥曲线的参数,W为圆锥曲线平面的单位法线并与U、V组成右手坐标系。
[0047] 由上述参数化形式可以得到圆锥曲线统一的常系数微分方程表达形式:
[0048]
[0049] 其中:A为3×3矩阵,微分方程的常系数矩阵。
[0050] 步骤四:判断插补方向;
[0051] 设X′s=A(Xs-Xc),X′e=A(Xe-Xc),通过判断(Xe-Xs)与(X′e+X′s)的方向来确定插补方向:
[0052] 当(Xe-Xs)·(X′e+X′s)≥0时插补参数增量为正,记flag=1;
[0053] 当(Xe-Xs)·(X′e+X′s)<0时插补参数增量为负,记flag=-1;
[0054] 其中,flag为插补方向的标记,flag=1时沿θ的正向插补,flag=-1时沿θ的负向插补。
[0055] 步骤五:根据插补步长计算插补系数;
[0056] 对于第i个插补周期,根据规划的插补速度计算得到插补步长Li。
[0057] 利用二阶泰勒展开估计圆锥曲线的参数θ的增量
[0058]
[0059] X′i+1≈X′i+X″iθi+X″′i(Δθi)2=X′i+AX′iΔθi+A2X′i(Δθi)2[0060] 其中,Δθi为第i个周期里参数θ的增量估计,Xi为第i个插补周期的起点,Xi+1为第i个周期的插补点,Xi+1′为曲线在Xi+1处的切矢,Xi′,Xi″,Xi″′为曲线在Xi处的一阶、二阶和三阶切矢。
[0061] 可以证明,在步骤二给定的参数化下,三种圆锥曲线均有Xi+1-Xi//X′i+1+X′i,令第i个周期的插补系数 则有Xi+1-Xi=hi(X′i+1+X′i)。
[0062] 步骤六:计算预插补点;
[0063] 对第i个周期,根据步骤五中当前插补点和下一插补点的递增关系和步骤中的微分表达形式,得到
[0064] (E-hiA)(Xi+1-Xc)=(E+hiA)(Xi-Xc),其中E为单位矩阵
[0065] 当(E-hiA)可逆时有
[0066] 其中 为预插补点。
[0067] 步骤七:校正插补点;
[0068] 预设插补参考点XR=Xs;
[0069] 根据步骤六求得的预插补点 和参考点XR计算参考插补系数利用方程Xi+1=(E-hRA)-1(E+hRA)(XR-Xc)+Xc,计算最终插补点Xi+1;
[0070] 当|hR|>0.9时,更新XR=Xi+1,以保证(E-hiA)可逆和方程求解的数值稳定。
[0071] 步骤八:终点判断;
[0072] 求剩余插补投影距离 若 则认为插补结束;否则,继续向前插补。
[0073] 根据以上步骤,本发明的一种空间圆锥曲线插补方法适用于任意起终点、任意空间平面的连续圆锥曲线段的插补。插补方向由起终点位置得出,对于椭圆弧和圆弧为劣弧方向,双曲线和抛物线为起点至终点方向。
[0074] 实施例:
[0075] 以一个半椭圆弧为插补对象,实施流程图如图1所示,有以下具体步骤:
[0076] 以一个长轴长为200,短轴长为100,长轴方向方向量为(3,4,0),短轴方向向量为(-4,3,0),椭圆中心在原点(0,0,0)的椭圆弧为插补对象。定义椭圆弧插补起点为(120,160,0),即长轴的一个端点,终点为(-143.9230,-108.5641,0),椭圆的标准表达式为进给速度为6000mm/min。
[0077] 步骤一:定义空间圆锥曲线插补代码格式:
[0078] 定义圆锥曲线(椭圆弧)代码格式:G02.1 X-143.9230 Y-108.5641 Z0 I-120 J-160 K0 UX3 UY4 UZ0 AL200 VX-4 VY3 VZ0 BL100 F6000
[0079] 步骤二:译码获取空间圆锥曲线数据信息:
[0080] 起点为Xs=(120,160,0);
[0081] 椭圆插补时,终点为Xe=(-143.9230,-108.5641,0),中心为Xc=(0,0,0),长轴方向单位矢量U=(0.6,0.8,0),短轴方向单位矢量V=(-0.8,0.6,)0,长轴长度为a=200,短轴长度为b=100,最大进给速度为100mm/min;
[0082] 步骤三:圆锥曲线的常系数微分方程表示:
[0083] 圆锥曲线统一的常系数微分方程表达形式:
[0084] 其中
[0085] 步骤四:判断插补方向:
[0086] X′s=A(Xs-Xc)=(-80,60,0),X′e=A(Xe-Xc)=(9.2820,-131.9615,0)[0087] (Xe-Xs)·(X′e+X′s)=(-263.9230,-268.5641,0)·(-70.7180,-71.9615,0)=37990>0,故插补参数增量为正,记flag=1;
[0088] 步骤五:根据插补步长计算插补系数:
[0089] 设插补周期Ts=0.001s,则插补步长Li=0.1mm
[0090] 利用二阶泰勒展开估计第1个插补参数增量,当前点为起点,则
[0091] X1=Xs=(120,160,0)
[0092] X′1=A(X1-Xc)=(-80,60,0)
[0093] X″1=AX′1=(-120,-160,0)
[0094] X″′1=AX″1=(80,-60,0)
[0095]
[0096] X′2≈X′1+X″1Δθ1+X″′1(Δθ1)2=(-80.1199,59.8399,0)
[0097]
[0098] 步骤六:计算预插补点:
[0099] 对第1个周期
[0100] 步骤七:校正终插补点:
[0101] 预设插补参考点XR=Xs;
[0102] 根据步骤6求得的 和参考点XR计算利用方程X2=(E-hRA)-1(E+hRA)(XR-Xc)+Xc
计算得到X2=(119.9199,160.0599,0)作为新的插补点;
[0103] 因|hR|<0.9时,故不更新XR。
[0104] 步骤八:终点判断:
[0105] 求当前插补点距终点的距离 继续向前插补。
[0106] 反复执行步骤5至步骤8,直至插补到终点,得到的插补点如下:
[0107]插补周期i X Y Z
0 120 160 0
1 119.919940040045 160.059919970060 0
2 119.839760400957 160.119679701282 0
3 119.759461405061 160.179278956798 0
4 119.679043376215 160.238717501838 0
5 119.598506639798 160.297995103740 0
6 119.517851522699 160.357111531961 0
7 119.437078353299 160.416066558082 0
8 119.356187461461 160.474859955821 0
9 119.275179178518 160.533491501036 0
10 119.194053837253 160.591960971742 0
11 119.112811771893 160.650268148109 0
12 119.031453318090 160.708412812478 0
13 118.949978812910 160.766394749368 0
14 118.868388594817 160.824213745479 0
15 118.786683003659 160.881869589705 0
16 118.704862380657 160.939362073138 0
17 118.622927068386 160.996690989077 0
…… …… …… ……
[0108] 上表中(x,y,z)表示第i个插补周期生成的插补点。
[0109] 图3所示为插补结果,可以看出,本实例为一个在XY平面内的椭圆;图4为插补点的径向相对误差,均在10-13%量级;图5所示为插补过程中产生的相对速度误差曲线,可以看出,本发明方法产生的速度误差在0.075%以下。由插补结果可以得出,本发明提出的插补算法符合插补要求。