本發(fā)明屬于數(shù)控銑削加工方法,具體涉及一種用于生成曲面無干涉五軸加工軌跡的投影算法。
背景技術(shù):
常見的復(fù)雜曲面零件有飛機(jī)機(jī)身、螺旋槳葉片、手機(jī)模具外形曲面、汽輪機(jī)葉片、汽車車身等,廣泛應(yīng)用于航空、航天、航海、模具、能源、交通等領(lǐng)域。相比于三軸數(shù)控加工,五軸數(shù)控加工可保證較好的表面質(zhì)量和較高的加工效率,目前復(fù)雜曲面類零件大多利用五軸數(shù)控加工。
投影算法是規(guī)劃刀具加工軌跡的有效方法之一,如圖1所示,投影算法分為兩個步驟:①規(guī)劃驅(qū)動軌跡,選取驅(qū)動點;②將選取的驅(qū)動點沿一個投影方向投影到工件曲面上,生成刀具加工軌跡。
為便于理解本發(fā)明,首先結(jié)合圖2對規(guī)劃刀具加工軌跡中的有關(guān)概念加以解釋:
刀觸點,簡稱cc點,是指刀具銑削工件曲面的過程中,與工件曲面和刀具曲面相切的位置點;
刀位點,簡稱cl點,是指刀具的定位基準(zhǔn)點,對于各種銑削刀具,一般取刀具軸線與刀具底端的交點。
機(jī)床坐標(biāo)系,為右手笛卡爾坐標(biāo)系,坐標(biāo)系原點是生產(chǎn)調(diào)試完成后機(jī)床上固有的點,其具體位置由機(jī)床制造廠家在每個進(jìn)給軸上用限位開關(guān)精確調(diào)整好,坐標(biāo)值已輸入數(shù)控裝置中,在實際操作中,每次機(jī)床上電后,按下各軸回零按鈕,機(jī)床就自動找到機(jī)床原點,機(jī)床坐標(biāo)系zj軸平行于機(jī)床主軸軸線,其正向為遠(yuǎn)離工件的方向,xj軸是水平的,其正向為從機(jī)床主軸向工件看指向右邊的方向,yj軸通過右手笛卡爾坐標(biāo)系確定。
工件坐標(biāo)系(wcs,workpiececoordinatesystem),為右手笛卡爾坐標(biāo)系,以保證編程與機(jī)床加工的一致性,為了便于描述工件的幾何形狀,工件坐標(biāo)系原點為工件的邊緣處任選的一點,xw軸、yw軸和zw軸與機(jī)床坐標(biāo)系的xj軸、yj軸和zj軸一致。
在計算刀具加工軌跡的過程中,需要計算刀具曲面與工件曲面的切點來確定刀觸點的位置。但是直接求解刀具與工件曲面的切點比較困難,因此通常將工件曲面離散成三角片模型,將確定刀觸點的問題轉(zhuǎn)化成求解刀具曲面與工件曲面離散后的三角片的切點。
申請?zhí)?01611205764x、名稱為“一種用于無干涉的五軸加工軌跡的投影算法”的發(fā)明專利,利用投影算法計算工件曲面離散的三角片模型的刀觸點和加工軌跡,如圖4所示,其包括下述步驟:(a)首先將工件曲面離散成三角片模型;(b)如圖1所示,規(guī)劃驅(qū)動軌跡,軌跡上共包含m個驅(qū)動點;(c)將第i個驅(qū)動點處的刀具沿投影方向向三角片模型投影,投影方向為驅(qū)動點在驅(qū)動面上的法向矢量的反方向;(d)如圖3所示,篩選刀具沿上述投影方向覆蓋的n個三角片;(e)刀具沿上述投影方向向第j個三角片投影;(f)計算位于第j個三角片上的投影點和投影距離,投影點為沿投影方向刀具曲面與三角片相切的點,步驟(e)和(f)循環(huán)n次,得到n個三角片上的投影點和投影距離;(g)選取最短投影距離對應(yīng)的投影點作為第i個驅(qū)動點處的刀具向三角片模型投影的刀觸點,步驟(c)至步驟(f)循環(huán)m次,得到m個位于三角片模型的刀觸點;(h)輸出m個位于三角片模型的刀觸點,最后由刀觸點計算加工軌跡。
上述發(fā)明專利中的投影算法存在以下問題:一是刀觸點的計算精度和計算效率之間的矛盾,若三角片的密度不夠,會導(dǎo)致實際刀觸點與理想刀觸點有一定的誤差,計算精度較低;若三角片的密度較大,會因三角片數(shù)量多,導(dǎo)致計算效率低。二是位于離散曲面上的刀觸點使得生成的加工軌跡和刀軸方向一階不連續(xù),從而影響加工質(zhì)量。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種用于生成曲面無干涉五軸加工軌跡的投影算法,針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,采用類似newton-raphson的基于切平面不斷迭代的方法,目的在于保證最終的刀觸點位于原始工件曲面上,提高加工精度并保證較好的加工表面質(zhì)量。
本發(fā)明所提供的一種用于生成曲面無干涉五軸加工軌跡的投影算法,其包括以下步驟:
(1)設(shè)置迭代次數(shù)變量c1=1,設(shè)置最大迭代次數(shù)m1為20~100,收斂精度ε1為1.0-3~1.0-6,選取刀具投影在三角片上的刀觸點作為初始點p0;所述刀具投影在三角片上的刀觸點為刀具沿投影方向覆蓋的多個三角片中最短投影距離對應(yīng)的投影點;
(2)在工件坐標(biāo)系wcs下計算初始點p0到工件曲面的最短距離d0以及在工件曲面上d0的對應(yīng)點q0的坐標(biāo);
(3)判斷是否d0≤ε1,是則將初始點p0作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(4);
(4)判斷是否c1≥m1,是則將初始點p0作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(5);
(5)在工件坐標(biāo)系下建立通過點q0的工件曲面的切平面,進(jìn)行步驟(6);
(6)刀具向所述切平面投影,得到刀具在切平面上的投影點p1的坐標(biāo),進(jìn)行步驟(7);
(7)計算所述切平面上的投影點p1到工件曲面的最短距離d1以及在工件曲面上d1的對應(yīng)點q1,進(jìn)行步驟(8);
(8)判斷是否d1≤ε1,是則將投影點p1作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(9);
(9)將工件曲面上的對應(yīng)點q0的坐標(biāo)和最短距離d1分別放入點容器pnt和距離容器dis中,判斷是否兩個容器中元素的個數(shù)均等于2,是則進(jìn)行步驟(10),否則將對應(yīng)點q1的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
所述點容器pnt和距離容器dis均為能夠容納2個元素的順序存儲器,點容器pnt先后存入的元素分別為第一點元素pnt[0]和第二點元素pnt[1],距離容器dis先后存入的元素分別為第一距離元素dis[0]和第二距離元素dis[1];
(10)判斷是否dis[1]>dis[0],是則進(jìn)行步驟(11);否則分別從點容器pnt和距離容器dis中取出pnt[0]和dis[0],將對應(yīng)點q1的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
(11)對于第一點元素pnt[0]和第二點元素pnt[1],采用調(diào)整搜索步長算法,得到位于工件曲面上的無收斂震蕩的點qnew,分別從點容器pnt和距離容器dis中取出pnt[0]和dis[0],將點qnew的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
上述各步驟中,將某點作為刀觸點輸出的含義為將某點的坐標(biāo)作為刀觸點坐標(biāo)輸出;計算或得到某點的含義為計算或得到某點的坐標(biāo)。
所述步驟(2)中,當(dāng)工件曲面由s個曲面組合構(gòu)成時,計算初始點p0到工件曲面的最短距離d0時,分別求出初始點p0到s個曲面的最短距離lk以及在工件曲面上lk的對應(yīng)點rk的坐標(biāo),其中k=1,2,...s,初始點p0到工件曲面的最短距離d0=min{lk},在工件曲面上d0的對應(yīng)點為q0。
所述步驟(6)刀具向切平面投影,包括以下子步驟:
(6.1)建立刀具坐標(biāo)系(ccs,cuttercoordinatesystem),為右手笛卡爾坐標(biāo)系,坐標(biāo)原點為刀位點cl0(0,0,0),刀具的刀軸方向ta為z軸,過點q0的工件曲面上的切平面的法向矢量與z軸決定xoz平面,x軸位于xoz平面內(nèi)且垂直于z軸,y軸與x軸和z軸正交;
(6.2)將工件坐標(biāo)系wcs下通過點q0的工件曲面的切平面的法向矢量nt轉(zhuǎn)化到刀具坐標(biāo)系下;
(6.3)計算切平面的法向矢量nt與刀具曲面的交點,作為刀觸點cc0,得到刀具偏置矢量o,其為從刀位點cl0(0,0,0)指向刀觸點cc0的向量;
(6.4)計算沿投影方向過刀觸點cc0的直線與通過點q0的工件曲面的切平面的交點坐標(biāo),得到刀具坐標(biāo)系下位于切平面上投影點p1的坐標(biāo);
(6.5)將刀具坐標(biāo)系ccs下位于切平面上投影點p1的坐標(biāo)轉(zhuǎn)化為工件坐標(biāo)系wcs下的坐標(biāo)。
所述步驟(8)輸出的刀觸點為刀具在切平面上的投影點p1而不是位于曲面上的點q1,一方面是為了保證刀具投影前后的刀位點連線與投影方向平行,從而避免刀具在切削工件曲面過程中的刀軸波動,另一方面為了保證刀具和工件曲面無過切或欠切,從而避免引起刀具與工件曲面間的干涉。
所述步驟(10),當(dāng)dis[1]>dis[0]時,表明采用基于切平面的方法搜索刀觸點時,在點pnt[0]和pnt[1]之間產(chǎn)生了類似newton-raphson求根時的收斂震蕩現(xiàn)象,調(diào)用調(diào)整搜索步長算法,可以避免由于收斂震蕩而搜索不到最優(yōu)刀觸點的情況發(fā)生。
所述步驟(11)包括以下子步驟:
(11.1)設(shè)置循環(huán)次數(shù)變量c2=1,設(shè)置最大循環(huán)次數(shù)m2為20~100,終止精度ε2為1.0-3~1.0-6,以符號qa表示pnt[0],符號qb表示pnt[1];
將工件坐標(biāo)系中的點qa和qb轉(zhuǎn)換為參數(shù)空間中的對應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);
(11.2)計算qpa(ua,va)和qpb(ub,vb)之間的兩個參數(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)系空間中的對應(yīng)點qa1和qa2,并計算da1=f(qa1)和da2=f(qa2);
da1=f(qa1)表示將點qa1的坐標(biāo)賦予對應(yīng)點q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da1;
da2=f(qa2)表示將點qa2的坐標(biāo)賦予對應(yīng)點q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da2;
(11.4)判斷是否c2≥m2,是則將點qa1的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.5);
(11.5)判斷是否da1≥da2,是則進(jìn)行子步驟(11.6),否則轉(zhuǎn)子步驟(11.9);
(11.6)判斷是否da2≤ε2,是則將點qa2的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.7);
(11.7)將點qa1的坐標(biāo)賦予qa,點qa2的坐標(biāo)賦予qa1,距離da2的值賦予da1,計算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)系中的對應(yīng)點qa2,計算da2=f(qa2),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4);
(11.9)判斷是否da1≤ε2,是則將點qa1的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.10);
(11.10)將點qa2的坐標(biāo)賦予qb,點qa1的坐標(biāo)賦予qa2,距離da1的值賦予da2,計算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)系中的對應(yīng)點qa1,計算da1=f(qa1),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4)。
上述調(diào)整搜索步長算法,類似黃金分割法找極值,為了更清楚的表示在兩個收斂震蕩點pnt[0]和pnt[1]之間不斷搜索調(diào)整搜索步長的過程,以符號qa表示pnt[0],符號qb表示pnt[1]。調(diào)整搜索步長時,需要計算點qa和點qb之間的兩點qa1和qa2,以找到無收斂震蕩的點。在工件坐標(biāo)系中線性計算的qa1和qa2不在工件曲面上,為了保證qa1和qa2在工件曲面上,利用工件坐標(biāo)系中的點與參數(shù)空間中的參數(shù)一一對應(yīng)的關(guān)系,首先將工件坐標(biāo)系中的點qa和qb轉(zhuǎn)化為參數(shù)空間中的對應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);然后在參數(shù)空間中,計算出兩個參數(shù)qpa1和qpa2;最后將qpa1和qpa2轉(zhuǎn)化到工件坐標(biāo)系中,得到點qa1和qa2。
以參數(shù)u和v組成的二維直角坐標(biāo)系為參數(shù)空間,工件曲面矢量參數(shù)方程為
工件曲面矢量參數(shù)方程用b樣條曲面矢量參數(shù)方程表示為:
式中,di,j(i=0,1,…m;j=0,1,…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ù)空間中工件曲面上的任意一個參數(shù)qp(u,v),可直接代入上述b樣條曲面矢量參數(shù)方程,并利用德布爾算法求得參數(shù)qp(u,v)在工件坐標(biāo)系中的對應(yīng)點q(x,y,z),具體計算過程見施法中著《計算機(jī)輔助幾何設(shè)計與非均勻有理b樣條》(高等教育出版社,2013年9月)253-255頁中的b樣條曲面一節(jié)。該計算過程在軟件中實現(xiàn)時,可直接利用opencascade中提供的函數(shù)接口geom_surafce:+gp_pntvalue(u,v)將參數(shù)空間中的任意參數(shù)qp(u,v)轉(zhuǎn)化為工件坐標(biāo)系空間中的對應(yīng)點q(x,y,z);
當(dāng)給定工件坐標(biāo)系中的任意一點q(x,y,z),轉(zhuǎn)化為參數(shù)空間中的對應(yīng)點qp(u,v)時,目標(biāo)函數(shù)為:
min{q(x,y,z)-qp(u,v)}2
利用迭代算法求解上述目標(biāo)函數(shù)對應(yīng)的參數(shù)qpmin(umin,vmin),參數(shù)qpmin即為點q(x,y,z)在參數(shù)空間中的對應(yīng)參數(shù)qp(u,v),具體計算過程見施法中著《計算機(jī)輔助幾何設(shè)計與非均勻有理b樣條》493-494頁中的由曲線、曲面上點反求參數(shù)一節(jié)。該計算過程在軟件中實現(xiàn)時,可直接利用opencascade中提供的函數(shù)接口geomlib_tool:+parameter(surface)將工件坐標(biāo)系空間中的任意一點q(x,y,z)轉(zhuǎn)化為參數(shù)空間中對應(yīng)的參數(shù)qp(u,v);
如圖5所示,newton-raphson法求一元函數(shù)f(x)=0的根,首先任取一點f0作為初始點,作點f0到曲線f(x)的垂線,得到點g0,并過點g0作f(x)的切線,交x軸于f1點,點f1沿垂直于x軸的方向投影到曲線f(x),得到點g1,并過點g1作f(x)的切線得到點f2,如此反復(fù),最終可趨近于方程f(x)=0的根。刀具向曲面精確投影算法,如圖6所示,首先利用刀具向三角片投影確定初始點p0,然后計算點p0到工件曲面的最短距離,得到點q0,建立點q0在工件曲面上的切平面,然后將刀具沿投影方向向切平面投影,得到在切平面上的投影點p1,計算投影點p1到工件曲面的最短距離,得到在工件曲面上的投影點q1,對投影點q1建立切平面,執(zhí)行刀具向切平面投影,得到投影點p2。如此反復(fù),最終找到刀具與曲面相切的投影點,作為刀觸點。
本發(fā)明是在201611205764x、名稱為“一種用于無干涉的五軸加工軌跡的投影算法”的發(fā)明專利基礎(chǔ)上,對其進(jìn)一步改進(jìn),可以加載于所述發(fā)明專利的步驟(g)之后。
本發(fā)明受到newton-raphson迭代求根的啟發(fā),利用刀具向三角片模型投影所得的刀觸點作為初始點,采用建立切平面并實施刀具向切平面投影的方法,利用調(diào)整搜索步長算法解決了類似newton-raphson求根時出現(xiàn)的收斂震蕩問題,與現(xiàn)有技術(shù)相比,可以保證刀觸點在原始工件曲面上,提高了刀觸點的計算精度。
附圖說明
圖1是投影算法原理的示意圖;
圖2是坐標(biāo)系、刀觸點和刀位點參數(shù)的定義示意圖;
圖3是刀具向工件曲面離散的三角片模型投影示意圖;
圖4是現(xiàn)有刀具向工件曲面離散的三角片模型投影算法流程示意圖;
圖5是newton-raphson迭代求根算法示意圖;
圖6為本發(fā)明基于切平面不斷迭代的投影算法示意圖;
圖7是本發(fā)明實施例流程示意圖;
圖8是刀具向切平面投影算法示意圖。
圖9是調(diào)整搜索步長算法流程圖。
圖10是工件坐標(biāo)系空間與參數(shù)空間的映射關(guān)系示意圖。
圖11是利用本發(fā)明改進(jìn)的刀具向工件曲面精確投影算法流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)一步說明。
本發(fā)明的實施例如圖7所示,包括以下步驟:
步驟(1),設(shè)置迭代次數(shù)變量c1=1,設(shè)置最大迭代次數(shù)m1為30,收斂精度ε1為1.0-6,選取刀具投影在三角片上的刀觸點作為初始點p0;所述刀具投影在三角片上的刀觸點為刀具沿投影方向覆蓋的多個三角片中最短投影距離對應(yīng)的投影點;
步驟(2),在工件坐標(biāo)系wcs下計算初始點p0到工件曲面的最短距離d0以及在工件曲面上d0的對應(yīng)點q0的坐標(biāo):
當(dāng)工件曲面由4個曲面組合構(gòu)成時,計算初始點p0到工件曲面的最短距離d0時,分別求出初始點p0到4個曲面的最短距離lk以及在工件曲面上lk的對應(yīng)點rk的坐標(biāo),其中k=1,2,...4,初始點p0到工件曲面的最短距離d0=min{lk},在工件曲面上d0的對應(yīng)點為q0;
步驟(3),判斷是否d0≤ε1,是則將初始點p0作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(4);
步驟(4),判斷是否c1≥m1,是則將初始點p0作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(5);
步驟(5),在工件坐標(biāo)系下建立通過點q0的工件曲面的切平面,進(jìn)行步驟(6);
(5.1)找到點q0在工件曲面上的法向矢量n0;
(5.2)利用點q0及其法向矢量n0建立通過點q0的工件曲面的切平面;
步驟(6),如圖8所示,刀具向切平面投影,得到切平面上的投影點p1,轉(zhuǎn)至步驟(7);
(6.1)建立刀具坐標(biāo)系(ccs,cuttercoordinatesystem),為右手笛卡爾坐標(biāo)系,坐標(biāo)原點為刀位點cl0(0,0,0),刀具的刀軸方向ta為z軸,過點q0的工件曲面上的切平面的法向矢量與z軸決定xoz平面,x軸位于xoz平面內(nèi)且垂直于z軸,y軸與x軸和z軸正交;
(6.2)將工件坐標(biāo)系wcs下通過點q0的工件曲面的切平面的法向矢量nt轉(zhuǎn)化到刀具坐標(biāo)系下;
(6.3)計算切平面的法向矢量nt與刀具曲面的交點,作為刀觸點cc0,得到刀具偏置矢量o,其為從刀位點cl0(0,0,0)指向刀觸點cc0的向量;
(6.4)計算沿投影方向過刀觸點cc0的直線與通過點q0的工件曲面的切平面的交點坐標(biāo),得到刀具坐標(biāo)系下位于切平面上投影點p1的坐標(biāo);
(6.5)將刀具坐標(biāo)系ccs下位于切平面上投影點p1的坐標(biāo)轉(zhuǎn)化為工件坐標(biāo)系wcs下的坐標(biāo)。
步驟(7),計算所述切平面上的投影點p1到工件曲面的最短距離d1以及在工件曲面上d1的對應(yīng)點q1,進(jìn)行步驟(8);
步驟(8),判斷是否d1≤ε1,是則將投影點p1作為刀觸點輸出,結(jié)束;否則進(jìn)行步驟(9);
步驟(9),將工件曲面上的對應(yīng)點q0的坐標(biāo)和最短距離d1分別放入點容器pnt和距離容器dis中,判斷是否兩個容器中元素的個數(shù)均等于2,是則進(jìn)行步驟(10),否則將對應(yīng)點q1的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
所述點容器pnt和距離容器dis均為能夠容納2個元素的順序存儲器,點容器pnt先后存入的元素分別為第一點元素pnt[0]和第二點元素pnt[1],距離容器dis先后存入的元素分別為第一距離元素dis[0]和第二距離元素dis[1];
步驟(10),判斷是否dis[1]>dis[0],是則進(jìn)行步驟(11);否則分別從點容器pnt和距離容器dis中取出pnt[0]和dis[0],將對應(yīng)點q1的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
步驟(11),對于第一點元素pnt[0]和第二點元素pnt[1],采用調(diào)整搜索步長算法,得到位于工件曲面上的無收斂震蕩的點qnew,分別從點容器pnt和距離容器dis中取出pnt[0]和dis[0],將點qnew的坐標(biāo)賦予對應(yīng)點q0,將c1+1的值賦予c1,轉(zhuǎn)步驟(4);
如圖9所示,調(diào)整搜索步長算法具體包括如下步驟:
(11.1)設(shè)置循環(huán)次數(shù)變量c2=1,設(shè)置最大循環(huán)次數(shù)m2為20,終止精度ε2為1.0-6,以符號qa表示pnt[0],符號qb表示pnt[1];
如圖10所示,將工件坐標(biāo)系中的點qa和點qb轉(zhuǎn)換為參數(shù)空間中的對應(yīng)參數(shù)qpa(ua,va)和qpb(ub,vb);
(11.2)計算qpa(ua,va)和qpb(ub,vb)之間的兩個參數(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)系中的對應(yīng)點qa1和qa2,并計算da1=f(qa1)和da2=f(qa2);
da1=f(qa1)表示將點qa1的坐標(biāo)賦予對應(yīng)點q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da1;
da2=f(qa2)表示將點qa2的坐標(biāo)賦予對應(yīng)點q0,再進(jìn)行步驟(5)、步驟(6)和步驟(7)后,得到最短距離d1,將其值賦予da2;
(11.4)判斷是否c2≥m2,是則將點qa1的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.5);
(11.5)判斷是否da1≥da2,是則進(jìn)行子步驟(11.6),否則轉(zhuǎn)子步驟(11.9);
(11.6)判斷是否da2≤ε2,是則將點qa2的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.7);
(11.7)將點qa1的坐標(biāo)賦予qa,點qa2的坐標(biāo)賦予qa1,距離da2的值賦予da1,計算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)系中的對應(yīng)點qa2,計算da2=f(qa2),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4);
(11.9)判斷是否da1≤ε2,是則將點qa1的坐標(biāo)賦予點qnew,輸出qnew,結(jié)束;否則進(jìn)行子步驟(11.10);
(11.10)將點qa2的坐標(biāo)賦予qb,點qa1的坐標(biāo)賦予qa2,距離da1的值賦予da2,計算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)系中的對應(yīng)點qa1,計算da1=f(qa1),將c2+1的值賦予c2,轉(zhuǎn)子步驟(11.4)。
本實施例是在201611205764x、名稱為“一種用于無干涉的五軸加工軌跡的投影算法”的發(fā)明專利基礎(chǔ)上,對其進(jìn)一步改進(jìn),可以加載于圖4所示步驟(g)之后,構(gòu)成圖11所示流程的步驟(h)、(i)、(j)。