最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種用于生成曲面無(wú)干涉五軸加工軌跡的投影算法的制作方法

文檔序號(hào):11322761閱讀:504來(lái)源:國(guó)知局
一種用于生成曲面無(wú)干涉五軸加工軌跡的投影算法的制造方法與工藝

本發(fā)明屬于數(shù)控銑削加工方法,具體涉及一種用于生成曲面無(wú)干涉五軸加工軌跡的投影算法。



背景技術(shù):

常見(jiàn)的復(fù)雜曲面零件有飛機(jī)機(jī)身、螺旋槳葉片、手機(jī)模具外形曲面、汽輪機(jī)葉片、汽車車身等,廣泛應(yīng)用于航空、航天、航海、模具、能源、交通等領(lǐng)域。相比于三軸數(shù)控加工,五軸數(shù)控加工可保證較好的表面質(zhì)量和較高的加工效率,目前復(fù)雜曲面類零件大多利用五軸數(shù)控加工。

投影算法是規(guī)劃刀具加工軌跡的有效方法之一,如圖1所示,投影算法分為兩個(gè)步驟:①規(guī)劃驅(qū)動(dòng)軌跡,選取驅(qū)動(dòng)點(diǎn);②將選取的驅(qū)動(dòng)點(diǎn)沿一個(gè)投影方向投影到工件曲面上,生成刀具加工軌跡。

為便于理解本發(fā)明,首先結(jié)合圖2對(duì)規(guī)劃刀具加工軌跡中的有關(guān)概念加以解釋:

刀觸點(diǎn),簡(jiǎn)稱cc點(diǎn),是指刀具銑削工件曲面的過(guò)程中,與工件曲面和刀具曲面相切的位置點(diǎn);

刀位點(diǎn),簡(jiǎn)稱cl點(diǎn),是指刀具的定位基準(zhǔn)點(diǎn),對(duì)于各種銑削刀具,一般取刀具軸線與刀具底端的交點(diǎn)。

機(jī)床坐標(biāo)系,為右手笛卡爾坐標(biāo)系,坐標(biāo)系原點(diǎn)是生產(chǎn)調(diào)試完成后機(jī)床上固有的點(diǎn),其具體位置由機(jī)床制造廠家在每個(gè)進(jìn)給軸上用限位開(kāi)關(guān)精確調(diào)整好,坐標(biāo)值已輸入數(shù)控裝置中,在實(shí)際操作中,每次機(jī)床上電后,按下各軸回零按鈕,機(jī)床就自動(dòng)找到機(jī)床原點(diǎn),機(jī)床坐標(biāo)系z(mì)j軸平行于機(jī)床主軸軸線,其正向?yàn)檫h(yuǎn)離工件的方向,xj軸是水平的,其正向?yàn)閺臋C(jī)床主軸向工件看指向右邊的方向,yj軸通過(guò)右手笛卡爾坐標(biāo)系確定。

工件坐標(biāo)系(wcs,workpiececoordinatesystem),為右手笛卡爾坐標(biāo)系,以保證編程與機(jī)床加工的一致性,為了便于描述工件的幾何形狀,工件坐標(biāo)系原點(diǎn)為工件的邊緣處任選的一點(diǎn),xw軸、yw軸和zw軸與機(jī)床坐標(biāo)系的xj軸、yj軸和zj軸一致。

在計(jì)算刀具加工軌跡的過(guò)程中,需要計(jì)算刀具曲面與工件曲面的切點(diǎn)來(lái)確定刀觸點(diǎn)的位置。但是直接求解刀具與工件曲面的切點(diǎn)比較困難,因此通常將工件曲面離散成三角片模型,將確定刀觸點(diǎn)的問(wèn)題轉(zhuǎn)化成求解刀具曲面與工件曲面離散后的三角片的切點(diǎn)。

申請(qǐng)?zhí)?01611205764x、名稱為“一種用于無(wú)干涉的五軸加工軌跡的投影算法”的發(fā)明專利,利用投影算法計(jì)算工件曲面離散的三角片模型的刀觸點(diǎn)和加工軌跡,如圖4所示,其包括下述步驟:(a)首先將工件曲面離散成三角片模型;(b)如圖1所示,規(guī)劃驅(qū)動(dòng)軌跡,軌跡上共包含m個(gè)驅(qū)動(dòng)點(diǎn);(c)將第i個(gè)驅(qū)動(dòng)點(diǎn)處的刀具沿投影方向向三角片模型投影,投影方向?yàn)轵?qū)動(dòng)點(diǎn)在驅(qū)動(dòng)面上的法向矢量的反方向;(d)如圖3所示,篩選刀具沿上述投影方向覆蓋的n個(gè)三角片;(e)刀具沿上述投影方向向第j個(gè)三角片投影;(f)計(jì)算位于第j個(gè)三角片上的投影點(diǎn)和投影距離,投影點(diǎn)為沿投影方向刀具曲面與三角片相切的點(diǎn),步驟(e)和(f)循環(huán)n次,得到n個(gè)三角片上的投影點(diǎn)和投影距離;(g)選取最短投影距離對(duì)應(yīng)的投影點(diǎn)作為第i個(gè)驅(qū)動(dòng)點(diǎn)處的刀具向三角片模型投影的刀觸點(diǎn),步驟(c)至步驟(f)循環(huán)m次,得到m個(gè)位于三角片模型的刀觸點(diǎn);(h)輸出m個(gè)位于三角片模型的刀觸點(diǎn),最后由刀觸點(diǎn)計(jì)算加工軌跡。

上述發(fā)明專利中的投影算法存在以下問(wèn)題:一是刀觸點(diǎn)的計(jì)算精度和計(jì)算效率之間的矛盾,若三角片的密度不夠,會(huì)導(dǎo)致實(shí)際刀觸點(diǎn)與理想刀觸點(diǎn)有一定的誤差,計(jì)算精度較低;若三角片的密度較大,會(huì)因三角片數(shù)量多,導(dǎo)致計(jì)算效率低。二是位于離散曲面上的刀觸點(diǎn)使得生成的加工軌跡和刀軸方向一階不連續(xù),從而影響加工質(zhì)量。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種用于生成曲面無(wú)干涉五軸加工軌跡的投影算法,針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,采用類似newton-raphson的基于切平面不斷迭代的方法,目的在于保證最終的刀觸點(diǎn)位于原始工件曲面上,提高加工精度并保證較好的加工表面質(zhì)量。

本發(fā)明所提供的一種用于生成曲面無(wú)干涉五軸加工軌跡的投影算法,其包括以下步驟:

(1)設(shè)置迭代次數(shù)變量c1=1,設(shè)置最大迭代次數(shù)m1為20~100,收斂精度ε1為1.0-3~1.0-6,選取刀具投影在三角片上的刀觸點(diǎn)作為初始點(diǎn)p0;所述刀具投影在三角片上的刀觸點(diǎn)為刀具沿投影方向覆蓋的多個(gè)三角片中最短投影距離對(duì)應(yīng)的投影點(diǎn);

(2)在工件坐標(biāo)系wcs下計(jì)算初始點(diǎn)p0到工件曲面的最短距離d0以及在工件曲面上d0的對(duì)應(yīng)點(diǎn)q0的坐標(biāo);

(3)判斷是否d0≤ε1,是則將初始點(diǎn)p0作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(4);

(4)判斷是否c1≥m1,是則將初始點(diǎn)p0作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(5);

(5)在工件坐標(biāo)系下建立通過(guò)點(diǎn)q0的工件曲面的切平面,進(jìn)行步驟(6);

(6)刀具向所述切平面投影,得到刀具在切平面上的投影點(diǎn)p1的坐標(biāo),進(jìn)行步驟(7);

(7)計(jì)算所述切平面上的投影點(diǎn)p1到工件曲面的最短距離d1以及在工件曲面上d1的對(duì)應(yīng)點(diǎn)q1,進(jìn)行步驟(8);

(8)判斷是否d1≤ε1,是則將投影點(diǎn)p1作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(9);

(9)將工件曲面上的對(duì)應(yīng)點(diǎn)q0的坐標(biāo)和最短距離d1分別放入點(diǎn)容器pnt和距離容器dis中,判斷是否兩個(gè)容器中元素的個(gè)數(shù)均等于2,是則進(jìn)行步驟(10),否則將對(duì)應(yīng)點(diǎn)q1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

所述點(diǎn)容器pnt和距離容器dis均為能夠容納2個(gè)元素的順序存儲(chǔ)器,點(diǎn)容器pnt先后存入的元素分別為第一點(diǎn)元素pnt[0]和第二點(diǎn)元素pnt[1],距離容器dis先后存入的元素分別為第一距離元素dis[0]和第二距離元素dis[1];

(10)判斷是否dis[1]>dis[0],是則進(jìn)行步驟(11);否則分別從點(diǎn)容器pnt和距離容器dis中取出pnt[0]和dis[0],將對(duì)應(yīng)點(diǎn)q1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

(11)對(duì)于第一點(diǎn)元素pnt[0]和第二點(diǎn)元素pnt[1],采用調(diào)整搜索步長(zhǎng)算法,得到位于工件曲面上的無(wú)收斂震蕩的點(diǎn)qnew,分別從點(diǎn)容器pnt和距離容器dis中取出pnt[0]和dis[0],將點(diǎn)qnew的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

上述各步驟中,將某點(diǎn)作為刀觸點(diǎn)輸出的含義為將某點(diǎn)的坐標(biāo)作為刀觸點(diǎn)坐標(biāo)輸出;計(jì)算或得到某點(diǎn)的含義為計(jì)算或得到某點(diǎn)的坐標(biāo)。

所述步驟(2)中,當(dāng)工件曲面由s個(gè)曲面組合構(gòu)成時(shí),計(jì)算初始點(diǎn)p0到工件曲面的最短距離d0時(shí),分別求出初始點(diǎn)p0到s個(gè)曲面的最短距離lk以及在工件曲面上lk的對(duì)應(yīng)點(diǎn)rk的坐標(biāo),其中k=1,2,...s,初始點(diǎn)p0到工件曲面的最短距離d0=min{lk},在工件曲面上d0的對(duì)應(yīng)點(diǎn)為q0。

所述步驟(6)刀具向切平面投影,包括以下子步驟:

(6.1)建立刀具坐標(biāo)系(ccs,cuttercoordinatesystem),為右手笛卡爾坐標(biāo)系,坐標(biāo)原點(diǎn)為刀位點(diǎn)cl0(0,0,0),刀具的刀軸方向ta為z軸,過(guò)點(diǎn)q0的工件曲面上的切平面的法向矢量與z軸決定xoz平面,x軸位于xoz平面內(nèi)且垂直于z軸,y軸與x軸和z軸正交;

(6.2)將工件坐標(biāo)系wcs下通過(guò)點(diǎn)q0的工件曲面的切平面的法向矢量nt轉(zhuǎn)化到刀具坐標(biāo)系下;

(6.3)計(jì)算切平面的法向矢量nt與刀具曲面的交點(diǎn),作為刀觸點(diǎn)cc0,得到刀具偏置矢量o,其為從刀位點(diǎn)cl0(0,0,0)指向刀觸點(diǎn)cc0的向量;

(6.4)計(jì)算沿投影方向過(guò)刀觸點(diǎn)cc0的直線與通過(guò)點(diǎn)q0的工件曲面的切平面的交點(diǎn)坐標(biāo),得到刀具坐標(biāo)系下位于切平面上投影點(diǎn)p1的坐標(biāo);

(6.5)將刀具坐標(biāo)系ccs下位于切平面上投影點(diǎn)p1的坐標(biāo)轉(zhuǎn)化為工件坐標(biāo)系wcs下的坐標(biāo)。

所述步驟(8)輸出的刀觸點(diǎn)為刀具在切平面上的投影點(diǎn)p1而不是位于曲面上的點(diǎn)q1,一方面是為了保證刀具投影前后的刀位點(diǎn)連線與投影方向平行,從而避免刀具在切削工件曲面過(guò)程中的刀軸波動(dòng),另一方面為了保證刀具和工件曲面無(wú)過(guò)切或欠切,從而避免引起刀具與工件曲面間的干涉。

所述步驟(10),當(dāng)dis[1]>dis[0]時(shí),表明采用基于切平面的方法搜索刀觸點(diǎn)時(shí),在點(diǎn)pnt[0]和pnt[1]之間產(chǎn)生了類似newton-raphson求根時(shí)的收斂震蕩現(xiàn)象,調(diào)用調(diào)整搜索步長(zhǎng)算法,可以避免由于收斂震蕩而搜索不到最優(yōu)刀觸點(diǎn)的情況發(fā)生。

所述步驟(11)包括以下子步驟:

(11.1)設(shè)置循環(huán)次數(shù)變量c2=1,設(shè)置最大循環(huán)次數(shù)m2為20~100,終止精度ε2為1.0-3~1.0-6,以符號(hào)qa表示pnt[0],符號(hào)qb表示pnt[1];

將工件坐標(biāo)系中的點(diǎn)qa和qb轉(zhuǎn)換為參數(shù)空間中的對(duì)應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);

(11.2)計(jì)算qpa(ua,va)和qpb(ub,vb)之間的兩個(gè)參數(shù)qpa1(ua1,va1)和qpa2(ua2,va2):

qpa1(ua1,va1)=qpb(ua,vb)-λ(qpb(ua,vb)-qpa(ua,va)),

qpa2(ua2,va2)=qpa(ua,va)+λ(qpb(ua,vb)-qpa(ua,va));

式中,常數(shù)λ=0.618;

(11.3)將參數(shù)空間中的參數(shù)qpa1(ua1,va1)和qpa2(ua2,va2)轉(zhuǎn)換為工件坐標(biāo)系空間中的對(duì)應(yīng)點(diǎn)qa1和qa2,并計(jì)算da1=f(qa1)和da2=f(qa2);

da1=f(qa1)表示將點(diǎn)qa1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da1;

da2=f(qa2)表示將點(diǎn)qa2的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da2;

(11.4)判斷是否c2≥m2,是則將點(diǎn)qa1的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.5);

(11.5)判斷是否da1≥da2,是則進(jìn)行子步驟(11.6),否則轉(zhuǎn)子步驟(11.9);

(11.6)判斷是否da2≤ε2,是則將點(diǎn)qa2的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.7);

(11.7)將點(diǎn)qa1的坐標(biāo)賦予qa,點(diǎn)qa2的坐標(biāo)賦予qa1,距離da2的值賦予da1,計(jì)算qpa(ua,va)和qpb(ub,vb)之間的參數(shù)qpa2(ua2,va2):

qpa2(ua2,va2)=qpa(ua,va)+λ(qpb(ua,vb)-qpa(ua,va)):進(jìn)行子步驟(11.8);

(11.8)將參數(shù)空間中的參數(shù)qpa2(ua2,va2)轉(zhuǎn)換為工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)qa2,計(jì)算da2=f(qa2),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4);

(11.9)判斷是否da1≤ε2,是則將點(diǎn)qa1的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.10);

(11.10)將點(diǎn)qa2的坐標(biāo)賦予qb,點(diǎn)qa1的坐標(biāo)賦予qa2,距離da1的值賦予da2,計(jì)算qpa(ua,va)和qpb(ub,vb)之間的參數(shù)qpa1(ua1,va1):

qpa1(ua1,va1)=qpb(ub,vb)-λ(qpb(ua,vb)-qpa(ua,va));進(jìn)行子步驟(11.11);

(11.11)將參數(shù)空間中的參數(shù)qpa1(ua1,va1)轉(zhuǎn)換為工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)qa1,計(jì)算da1=f(qa1),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4)。

上述調(diào)整搜索步長(zhǎng)算法,類似黃金分割法找極值,為了更清楚的表示在兩個(gè)收斂震蕩點(diǎn)pnt[0]和pnt[1]之間不斷搜索調(diào)整搜索步長(zhǎng)的過(guò)程,以符號(hào)qa表示pnt[0],符號(hào)qb表示pnt[1]。調(diào)整搜索步長(zhǎng)時(shí),需要計(jì)算點(diǎn)qa和點(diǎn)qb之間的兩點(diǎn)qa1和qa2,以找到無(wú)收斂震蕩的點(diǎn)。在工件坐標(biāo)系中線性計(jì)算的qa1和qa2不在工件曲面上,為了保證qa1和qa2在工件曲面上,利用工件坐標(biāo)系中的點(diǎn)與參數(shù)空間中的參數(shù)一一對(duì)應(yīng)的關(guān)系,首先將工件坐標(biāo)系中的點(diǎn)qa和qb轉(zhuǎn)化為參數(shù)空間中的對(duì)應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);然后在參數(shù)空間中,計(jì)算出兩個(gè)參數(shù)qpa1和qpa2;最后將qpa1和qpa2轉(zhuǎn)化到工件坐標(biāo)系中,得到點(diǎn)qa1和qa2。

以參數(shù)u和v組成的二維直角坐標(biāo)系為參數(shù)空間,工件曲面矢量參數(shù)方程為分別對(duì)應(yīng)工件坐標(biāo)系空間中的點(diǎn)q(x,y,z)的x、y、z坐標(biāo),工件坐標(biāo)系空間中的點(diǎn)q(x,y,z)與參數(shù)空間中的參數(shù)的映射關(guān)系為q(x,y,z)=qp(u,v);

工件曲面矢量參數(shù)方程用b樣條曲面矢量參數(shù)方程表示為:

式中,di,j(i=0,1,…m;j=0,1,…n)為控制點(diǎn),參數(shù)u和v的次數(shù)分別為k和l,ni,k(u)(i=0,1,…m)與nj,1(v)(j=0,1,…n)均為b樣條基;k、l、m、n分別為正整數(shù);

b樣條基ni,k(u)(i=0,1,…m)可表示為:

b樣條基nj,i(v)(j=0,1,…n)可表示為:

當(dāng)給定參數(shù)空間中工件曲面上的任意一個(gè)參數(shù)qp(u,v),可直接代入上述b樣條曲面矢量參數(shù)方程,并利用德布爾算法求得參數(shù)qp(u,v)在工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)q(x,y,z),具體計(jì)算過(guò)程見(jiàn)施法中著《計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理b樣條》(高等教育出版社,2013年9月)253-255頁(yè)中的b樣條曲面一節(jié)。該計(jì)算過(guò)程在軟件中實(shí)現(xiàn)時(shí),可直接利用opencascade中提供的函數(shù)接口geom_surafce:+gp_pntvalue(u,v)將參數(shù)空間中的任意參數(shù)qp(u,v)轉(zhuǎn)化為工件坐標(biāo)系空間中的對(duì)應(yīng)點(diǎn)q(x,y,z);

當(dāng)給定工件坐標(biāo)系中的任意一點(diǎn)q(x,y,z),轉(zhuǎn)化為參數(shù)空間中的對(duì)應(yīng)點(diǎn)qp(u,v)時(shí),目標(biāo)函數(shù)為:

min{q(x,y,z)-qp(u,v)}2

利用迭代算法求解上述目標(biāo)函數(shù)對(duì)應(yīng)的參數(shù)qpmin(umin,vmin),參數(shù)qpmin即為點(diǎn)q(x,y,z)在參數(shù)空間中的對(duì)應(yīng)參數(shù)qp(u,v),具體計(jì)算過(guò)程見(jiàn)施法中著《計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理b樣條》493-494頁(yè)中的由曲線、曲面上點(diǎn)反求參數(shù)一節(jié)。該計(jì)算過(guò)程在軟件中實(shí)現(xiàn)時(shí),可直接利用opencascade中提供的函數(shù)接口geomlib_tool:+parameter(surface)將工件坐標(biāo)系空間中的任意一點(diǎn)q(x,y,z)轉(zhuǎn)化為參數(shù)空間中對(duì)應(yīng)的參數(shù)qp(u,v);

如圖5所示,newton-raphson法求一元函數(shù)f(x)=0的根,首先任取一點(diǎn)f0作為初始點(diǎn),作點(diǎn)f0到曲線f(x)的垂線,得到點(diǎn)g0,并過(guò)點(diǎn)g0作f(x)的切線,交x軸于f1點(diǎn),點(diǎn)f1沿垂直于x軸的方向投影到曲線f(x),得到點(diǎn)g1,并過(guò)點(diǎn)g1作f(x)的切線得到點(diǎn)f2,如此反復(fù),最終可趨近于方程f(x)=0的根。刀具向曲面精確投影算法,如圖6所示,首先利用刀具向三角片投影確定初始點(diǎn)p0,然后計(jì)算點(diǎn)p0到工件曲面的最短距離,得到點(diǎn)q0,建立點(diǎn)q0在工件曲面上的切平面,然后將刀具沿投影方向向切平面投影,得到在切平面上的投影點(diǎn)p1,計(jì)算投影點(diǎn)p1到工件曲面的最短距離,得到在工件曲面上的投影點(diǎn)q1,對(duì)投影點(diǎn)q1建立切平面,執(zhí)行刀具向切平面投影,得到投影點(diǎn)p2。如此反復(fù),最終找到刀具與曲面相切的投影點(diǎn),作為刀觸點(diǎn)。

本發(fā)明是在201611205764x、名稱為“一種用于無(wú)干涉的五軸加工軌跡的投影算法”的發(fā)明專利基礎(chǔ)上,對(duì)其進(jìn)一步改進(jìn),可以加載于所述發(fā)明專利的步驟(g)之后。

本發(fā)明受到newton-raphson迭代求根的啟發(fā),利用刀具向三角片模型投影所得的刀觸點(diǎn)作為初始點(diǎn),采用建立切平面并實(shí)施刀具向切平面投影的方法,利用調(diào)整搜索步長(zhǎng)算法解決了類似newton-raphson求根時(shí)出現(xiàn)的收斂震蕩問(wèn)題,與現(xiàn)有技術(shù)相比,可以保證刀觸點(diǎn)在原始工件曲面上,提高了刀觸點(diǎn)的計(jì)算精度。

附圖說(shuō)明

圖1是投影算法原理的示意圖;

圖2是坐標(biāo)系、刀觸點(diǎn)和刀位點(diǎn)參數(shù)的定義示意圖;

圖3是刀具向工件曲面離散的三角片模型投影示意圖;

圖4是現(xiàn)有刀具向工件曲面離散的三角片模型投影算法流程示意圖;

圖5是newton-raphson迭代求根算法示意圖;

圖6為本發(fā)明基于切平面不斷迭代的投影算法示意圖;

圖7是本發(fā)明實(shí)施例流程示意圖;

圖8是刀具向切平面投影算法示意圖。

圖9是調(diào)整搜索步長(zhǎng)算法流程圖。

圖10是工件坐標(biāo)系空間與參數(shù)空間的映射關(guān)系示意圖。

圖11是利用本發(fā)明改進(jìn)的刀具向工件曲面精確投影算法流程圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)一步說(shuō)明。

本發(fā)明的實(shí)施例如圖7所示,包括以下步驟:

步驟(1),設(shè)置迭代次數(shù)變量c1=1,設(shè)置最大迭代次數(shù)m1為30,收斂精度ε1為1.0-6,選取刀具投影在三角片上的刀觸點(diǎn)作為初始點(diǎn)p0;所述刀具投影在三角片上的刀觸點(diǎn)為刀具沿投影方向覆蓋的多個(gè)三角片中最短投影距離對(duì)應(yīng)的投影點(diǎn);

步驟(2),在工件坐標(biāo)系wcs下計(jì)算初始點(diǎn)p0到工件曲面的最短距離d0以及在工件曲面上d0的對(duì)應(yīng)點(diǎn)q0的坐標(biāo):

當(dāng)工件曲面由4個(gè)曲面組合構(gòu)成時(shí),計(jì)算初始點(diǎn)p0到工件曲面的最短距離d0時(shí),分別求出初始點(diǎn)p0到4個(gè)曲面的最短距離lk以及在工件曲面上lk的對(duì)應(yīng)點(diǎn)rk的坐標(biāo),其中k=1,2,...4,初始點(diǎn)p0到工件曲面的最短距離d0=min{lk},在工件曲面上d0的對(duì)應(yīng)點(diǎn)為q0;

步驟(3),判斷是否d0≤ε1,是則將初始點(diǎn)p0作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(4);

步驟(4),判斷是否c1≥m1,是則將初始點(diǎn)p0作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(5);

步驟(5),在工件坐標(biāo)系下建立通過(guò)點(diǎn)q0的工件曲面的切平面,進(jìn)行步驟(6);

(5.1)找到點(diǎn)q0在工件曲面上的法向矢量n0;

(5.2)利用點(diǎn)q0及其法向矢量n0建立通過(guò)點(diǎn)q0的工件曲面的切平面;

步驟(6),如圖8所示,刀具向切平面投影,得到切平面上的投影點(diǎn)p1,轉(zhuǎn)至步驟(7);

(6.1)建立刀具坐標(biāo)系(ccs,cuttercoordinatesystem),為右手笛卡爾坐標(biāo)系,坐標(biāo)原點(diǎn)為刀位點(diǎn)cl0(0,0,0),刀具的刀軸方向ta為z軸,過(guò)點(diǎn)q0的工件曲面上的切平面的法向矢量與z軸決定xoz平面,x軸位于xoz平面內(nèi)且垂直于z軸,y軸與x軸和z軸正交;

(6.2)將工件坐標(biāo)系wcs下通過(guò)點(diǎn)q0的工件曲面的切平面的法向矢量nt轉(zhuǎn)化到刀具坐標(biāo)系下;

(6.3)計(jì)算切平面的法向矢量nt與刀具曲面的交點(diǎn),作為刀觸點(diǎn)cc0,得到刀具偏置矢量o,其為從刀位點(diǎn)cl0(0,0,0)指向刀觸點(diǎn)cc0的向量;

(6.4)計(jì)算沿投影方向過(guò)刀觸點(diǎn)cc0的直線與通過(guò)點(diǎn)q0的工件曲面的切平面的交點(diǎn)坐標(biāo),得到刀具坐標(biāo)系下位于切平面上投影點(diǎn)p1的坐標(biāo);

(6.5)將刀具坐標(biāo)系ccs下位于切平面上投影點(diǎn)p1的坐標(biāo)轉(zhuǎn)化為工件坐標(biāo)系wcs下的坐標(biāo)。

步驟(7),計(jì)算所述切平面上的投影點(diǎn)p1到工件曲面的最短距離d1以及在工件曲面上d1的對(duì)應(yīng)點(diǎn)q1,進(jìn)行步驟(8);

步驟(8),判斷是否d1≤ε1,是則將投影點(diǎn)p1作為刀觸點(diǎn)輸出,結(jié)束;否則進(jìn)行步驟(9);

步驟(9),將工件曲面上的對(duì)應(yīng)點(diǎn)q0的坐標(biāo)和最短距離d1分別放入點(diǎn)容器pnt和距離容器dis中,判斷是否兩個(gè)容器中元素的個(gè)數(shù)均等于2,是則進(jìn)行步驟(10),否則將對(duì)應(yīng)點(diǎn)q1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

所述點(diǎn)容器pnt和距離容器dis均為能夠容納2個(gè)元素的順序存儲(chǔ)器,點(diǎn)容器pnt先后存入的元素分別為第一點(diǎn)元素pnt[0]和第二點(diǎn)元素pnt[1],距離容器dis先后存入的元素分別為第一距離元素dis[0]和第二距離元素dis[1];

步驟(10),判斷是否dis[1]>dis[0],是則進(jìn)行步驟(11);否則分別從點(diǎn)容器pnt和距離容器dis中取出pnt[0]和dis[0],將對(duì)應(yīng)點(diǎn)q1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

步驟(11),對(duì)于第一點(diǎn)元素pnt[0]和第二點(diǎn)元素pnt[1],采用調(diào)整搜索步長(zhǎng)算法,得到位于工件曲面上的無(wú)收斂震蕩的點(diǎn)qnew,分別從點(diǎn)容器pnt和距離容器dis中取出pnt[0]和dis[0],將點(diǎn)qnew的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);

如圖9所示,調(diào)整搜索步長(zhǎng)算法具體包括如下步驟:

(11.1)設(shè)置循環(huán)次數(shù)變量c2=1,設(shè)置最大循環(huán)次數(shù)m2為20,終止精度ε2為1.0-6,以符號(hào)qa表示pnt[0],符號(hào)qb表示pnt[1];

如圖10所示,將工件坐標(biāo)系中的點(diǎn)qa和點(diǎn)qb轉(zhuǎn)換為參數(shù)空間中的對(duì)應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);

(11.2)計(jì)算qpa(ua,va)和qpb(ub,vb)之間的兩個(gè)參數(shù)qpa1(ua1,va1)和qpa2(ua2,va2):

qpa1(ua1,va1)=qpb(ua,vb)-λ(qpb(ua,vb)-qpa(ua,va)),

qpa2(ua2,va2)=qpa(ua,va)+λ(qpb(ua,vb)-qpa(ua,va));

式中,常數(shù)λ=0.618;

(11.3)將參數(shù)空間中的參數(shù)qpa1(ua1,va1)和qpa2(ua2,va2)轉(zhuǎn)換為工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)qa1和qa2,并計(jì)算da1=f(qa1)和da2=f(qa2);

da1=f(qa1)表示將點(diǎn)qa1的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da1;

da2=f(qa2)表示將點(diǎn)qa2的坐標(biāo)賦予對(duì)應(yīng)點(diǎn)q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da2;

(11.4)判斷是否c2≥m2,是則將點(diǎn)qa1的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.5);

(11.5)判斷是否da1≥da2,是則進(jìn)行子步驟(11.6),否則轉(zhuǎn)子步驟(11.9);

(11.6)判斷是否da2≤ε2,是則將點(diǎn)qa2的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.7);

(11.7)將點(diǎn)qa1的坐標(biāo)賦予qa,點(diǎn)qa2的坐標(biāo)賦予qa1,距離da2的值賦予da1,計(jì)算qpa(ua,va)和qpb(ub,vb)之間的參數(shù)qpa2(ua2,va2):

qpa2(ua2,va2)=qpa(ua,va)+λ(qpb(ua,vb)-qpa(ua,va)):進(jìn)行子步驟(11.8);

(11.8)將參數(shù)空間中的參數(shù)qpa2(ua2,va2)轉(zhuǎn)換為工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)qa2,計(jì)算da2=f(qa2),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4);

(11.9)判斷是否da1≤ε2,是則將點(diǎn)qa1的坐標(biāo)賦予點(diǎn)qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.10);

(11.10)將點(diǎn)qa2的坐標(biāo)賦予qb,點(diǎn)qa1的坐標(biāo)賦予qa2,距離da1的值賦予da2,計(jì)算qpa(ua,va)和qpb(ub,vb)之間的參數(shù)qpa1(ua1,va1):

qpa1(ua1,va1)=qpb(ub,vb)-λ(qpb(ua,vb)-qpa(ua,va));進(jìn)行子步驟(11.11);

(11.11)將參數(shù)空間中的參數(shù)qpa1(ua1,va1)轉(zhuǎn)換為工件坐標(biāo)系中的對(duì)應(yīng)點(diǎn)qa1,計(jì)算da1=f(qa1),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4)。

本實(shí)施例是在201611205764x、名稱為“一種用于無(wú)干涉的五軸加工軌跡的投影算法”的發(fā)明專利基礎(chǔ)上,對(duì)其進(jìn)一步改進(jìn),可以加載于圖4所示步驟(g)之后,構(gòu)成圖11所示流程的步驟(h)、(i)、(j)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1