程 亮,李 寧,鄭守國,王 青
(浙江大學 浙江省先進制造技術重點研究實驗室,浙江 杭州 310027)
碳纖維復合材料因其具備比重小、比強度高和比模量大等優(yōu)異特點而被大量應用于航空航天等領域[1]。以空客為例,飛機結構中復合材料質(zhì)量分數(shù)從A310-300的5%,上升到A380的25%,再到A400M的35%,甚至在A350中高達52%,且碳纖維復合材料的應用場景由最初的次承力結構逐漸變成主承力結構[2],對復合材料構件的制造要求越來越高,而自動鋪絲技術作為生產(chǎn)復雜型面復合材料構件的關鍵技術,受到國內(nèi)外的廣泛關注[3-4],其中,當鋪絲機床在連續(xù)短線段軌跡上運動時,會在拐點處發(fā)生切向和曲率變化不連續(xù)的問題,極大地影響機床的控制精度和鋪放效率[5],這早已引起國內(nèi)外學者和工業(yè)界廠商的重視。
為實現(xiàn)拐點光順過渡,許多研究學者進行了相關研究,采用不同的曲線(圓弧、Bézier曲線、B樣條曲線等)對短線段路徑進行光順。吳文江等[6]根據(jù)擬合誤差將連續(xù)短線段區(qū)域的控制點轉化為二次Bézier曲線,并識別出圓弧段從而進行圓弧插補,但該算法存在曲率不連續(xù)的情況;為保證加工機床更加平穩(wěn)和連續(xù)地運動,Sencer等[7]提出了在轉角誤差的控制下使用單個五次Bézier曲線確保曲率連續(xù)的幾何角平滑算法,Zhang等[8]在加工路徑上采用7個控制點控制的五次B樣條曲線保證路徑拐角光順過渡,但是在控制機床末端執(zhí)行器運動過程中,不僅要保證其滿足位置路徑平滑過渡,還要保證矢量方向平滑過渡,而上述算法中均未描述如何控制末端執(zhí)行器矢量方向平滑過渡;Bi等[9]提出三次Bézier曲線分別用于平滑五軸機床的位置路徑和路徑方向,Zhao等[10]提出雙四次B樣條曲線近似插補方法,為五軸數(shù)控機床生成平滑的刀尖位置路徑和方向路徑,但是對于五軸以上的鋪絲機來說,鋪絲機頭的控制包括位置控制和兩個方向控制,文獻[9-10]中的算法均不能完成指定的平滑要求。
本文針對七軸龍門式自動鋪絲機的拐點過渡方法進行研究,提出一種基于三次Bernstein-Bézier曲線的插補算法,該算法在相鄰線段拐點處采用三次Bernstein-Bézier曲線對鋪絲頭位置和矢量方向進行局部過渡,并在柔性加減速控制方法的基礎上對“直線段+過渡曲線段”的鋪放路徑進行插補運算,保證七軸自動鋪絲機在路徑控制點控制的目標路徑上平穩(wěn)連續(xù)運動。
通常給定4個頂點Qi(i=0,1,2,3),可以定義一段三次Bernstein-Bézier曲線Q(u)[11]:
Q(u)=(1-u)3Q0+3(1-u)2uQ1+
3(1-u)u2Q2+u3Q3,u∈[0,1]。
(1)
由于鋪絲機的末端執(zhí)行器為柔性壓輥,軌跡誤差相對于剛性加工機床要求低,為了簡化計算并提高曲線的可操作性,調(diào)整控制點,使得Q2=Q1,這樣可以通過3個頂點控制一段三次過渡曲線,如圖1所示。改進后的三次Bernstein-Bézier過渡曲線參數(shù)方程為:
Q(u)=(1-u)3Q0+3(1-u)uQ1+
u3Q2,u∈[0,1]。
(2)
式中Q0、Q1、Q2為該三次曲線的3個控制頂點。
過渡曲線的作用是保證相鄰直線段切向連續(xù)、曲率連續(xù),因此過渡曲線起點和終點的切向方向應分別與兩直線段方向相同,且起點和終點的曲率為0,就能夠保證鋪絲機從直線段到過渡曲線段的運動過程中,速度與加速度連續(xù)。
為求出過渡曲線起點和終點的切線方向,對式(2)進行求導,得到該過渡曲線的導函數(shù)為:
Q′(u)=-3(1-u)2Q0+3(1-2u)
Q1+3u2Q2,u∈[0,1]。
(3)
Q(u)在Q0、Q1處的導數(shù)為:Q′(0)=3(Q1-Q0),Q′(1)=3(Q2-Q1),為了保證該過渡曲線分別與需要過渡的兩相鄰直線段相切,調(diào)整控制點,Q1=P2,即令拐點為該過渡曲線控制頂點,就能夠保證鋪絲機從直線段運動到過渡曲線段時切向變化連續(xù)。
根據(jù)曲線曲率定義,三次Bernstein-Bézier過渡曲線上對應的曲率
(4)
對式(3)進行求導,得到該過渡曲線的二次導函數(shù):
Q″(u)=6(1-u)Q0-6Q1+6uQ2,u∈[0,1]。
(5)
1.2節(jié)根據(jù)切向變化連續(xù)的要求,調(diào)整控制點Q1=P2,而Q0和Q2控制過渡曲線與相鄰直線段之間的偏差大小,因此它們的位置與軌跡誤差εmax有關。
由過渡曲線對稱性和凸包性可知,Q(0.5)與拐點P2/Q1之間的距離為過渡曲線與目標軌跡產(chǎn)生的最大誤差,因此各控制頂點的計算過程如下:
(2)因為|Q1Q0.5|=εmax,所以|Q1O|=4εmax。
(4)為了提高路徑插補算法的協(xié)調(diào)性和穩(wěn)定性,將過渡曲線的控制頂點近似成靠近拐點一側的插補點。
在對“直線段+過渡曲線段”鋪放路徑進行插補運算之前,應根據(jù)機床約束以及過渡曲線限制速度等條件建立合適的加減速控制方法。
數(shù)控機床常用的加減速控制方法主要有直線加減速控制方法、S曲線加減速控制方法和多項式加減速控制方法[12],為鋪絲機選擇合適的加減速控制方法,需要考慮加速過渡時間、柔性、計算量等因素。
由于五次以上的加減速控制方法的計算階次比較高,計算量非常大,因此主要就五次及五次以下的加減速控制方法進行對比分析。
除了加速過渡時間外,還需要考慮分段數(shù)、柔性、計算量等因素,具體對比情況如表1所示。
表1 加減速控制方法對比
經(jīng)過綜合對比分析,決定采用三次多項式加減速控制方法作為七軸龍門式自動鋪絲機的速度控制方法,并采用等效加速度的方法簡化其計算量。
三次多項式加減速控制方法主要包括加速段、勻速段、減速段3部分,如圖4所示,三次多項式加減速的分段數(shù)量少,但是階次較高,為了降低計算難度,采用等效加速度簡化三次多項式加減速控制方法的計算。
在三次多項式加減速控制方法中,設Ti(i=1,2,3)是多項式加減速控制方法中的各個時間段,即加速段0~T1,勻速段T1~T2,減速段T2~T3。
三次多項式加減速控制方法的速度函數(shù):
V(t)=
(6)
利用積分方法計算出三次多項式加減速控制方法的位移函數(shù):
S(t)=
(7)
在七軸鋪絲機床插補運算過程中,需要對各軸變量和鋪絲頭位姿進行轉換,因此根據(jù)七軸龍門式鋪絲機的運動學模型[13],計算出位姿變換矩陣。
七軸龍門式鋪絲機床屬于七自由度串聯(lián)型機床,由3個移動軸(X、Y、Z)、4個旋轉軸(C1、B、A、C2)以及鋪絲頭組成。本文采用D-H(Denavit-Hartenberg)法[14]建立七軸鋪絲機的位姿變換矩陣,但是D-H法有一個比較大的缺點:機床關節(jié)越多,需要建立的桿件坐標系就越多,位姿矩陣的計算就越復雜,而七軸龍門式鋪絲機結構關節(jié)區(qū)域分明,移動軸和旋轉軸可以分別進行建系,在一個直角坐標系中表示3個移動軸的運動變量,利用D-H法建立旋轉軸的桿件坐標系,如圖5所示,旋轉軸桿件坐標系原點位于不同的位置,它們之間存在偏移參數(shù),這樣有利于修正裝配制造偏差,根據(jù)D-H參數(shù)表計算出相鄰坐標系之間的變換矩陣,最后按照運動鏈順序相乘計算出鋪絲機位姿變換矩陣T。
七軸龍門式鋪絲機的位姿信息包括位置矢量P,切向矢量t,接近矢量a(垂直于鋪放表面),法向矢量n(垂直于切向矢量和接近矢量所在平面),各關節(jié)變量為dx,dy,dz,θ4,θ5,θ6,θ7,已知鋪絲機的D-H參數(shù)表(如表2),表中:d5、d6、d7、a4、a5、a6為常量。
計算出的位姿變換矩陣如式(8):
(8)
其中,利用位姿信息求各關節(jié)變量,即進行運動學反向求解時,有無窮多解,解決方法是:暫且將一個旋轉軸變量看作常量,利用分離變量(矩陣求逆)的方法,計算出用該常量軸和其他關節(jié)參數(shù)表示的其他關節(jié)變量,然后根據(jù)各軸約束條件,按照最小位移法求出該常量軸中的最優(yōu)解,最后求出其他關節(jié)變量。
表2 鋪絲機的D-H參數(shù)
七軸龍門式鋪絲機床中存在3個移動軸和4個旋轉軸,通過七軸鋪絲機的運動學分析,其末端執(zhí)行器的位置是由移動軸和旋轉軸同時控制的,方向主要由旋轉軸控制。過渡曲線插補方法需要同時對末端執(zhí)行器的方向和位置進行插補,插補計算過程如圖6所示,具體步驟如下:
(1)已知路徑控制點的位姿信息(位置矢量和方向矢量),插補周期τ,加減速控制曲線,為保證加減速各階段插補次數(shù)為整數(shù),修正各階段時間、加速度、位移量,并根據(jù)修正后的加速度曲線計算出對應的插補長度:
L=
(9)
其中:L為該路徑段長度;NA、NC、ND為加工路徑的加速段、勻速段、減速段的插補次數(shù);A、D為加減速控制曲線修正后的等效加速度,為向上取整。
對應的插補長度為:
Loi=Voiτ。
(10)
式中:Vi-1,Vi,Voi,Loi分別為第i插補段的開始速度、結束速度、平均速度和插補長度。
(2)直線段插補過程中,根據(jù)路徑分配比確定插補點的位姿信息:
noi=cross(toi,aoi)。
(11)
式中:P1、P2為相鄰的路徑控制點;Poi、aoi、toi、noi為該路徑段中插補點的位姿信息;cross是求兩個向量的叉積。
(3)過渡曲線段的插補過程中,根據(jù)軌跡誤差εmax大小,路徑控制點位置矢量Pi(i=1,2,3),求出位置過渡曲線的3個控制頂點Q0、Q1、Q2,其中過渡曲線起點和終點近似成相鄰線段上的插補點(靠近拐點),確定位置過渡曲線參數(shù)方程為:
P(u)=(1-u)3Q0+3(1-u)uQ1+
u3Q2,u∈[0,1]。
(12)
(4)根據(jù)速度曲線計算出過渡曲線起點和終點的速度Vg1,Vg2以及總的過渡時間Tg,推導出過渡曲線段的長度Sg以及各插補段的長度Ssi:
Sg=Sk+S2k+…+S1,
(13)
其中:k為過渡曲線階段選取的采樣時間,且k≤τ,采用小線段逼近的方法求過渡曲線對的長度;Vi為加減速控制的速度,Li為過渡曲線階段速度計算的插補段長度,Lg為過渡區(qū)域內(nèi)的直線段路徑長度;Ssi是將速度規(guī)劃中的位移等比例換算成過渡曲線中的位移。
(5)根據(jù)修正后插補段的長度Ssi、過渡曲線函數(shù)方程,計算出下一個過渡曲線段插補點位置坐標。
(6)根據(jù)過渡起點、過渡終點和拐點信息推導出接近矢量a的過渡曲線方程,并按照插補段長度確定過渡階段插補點的接近矢量。同理,計算出過渡階段的切向矢量t的過渡曲線方程,進而確定插補點處的切向矢量,插補點處的法向矢量n根據(jù)該點確定的接近矢量和切向矢量的叉積計算得出:
a(u)=(1-u)3R0+3(1-u)uR1+u3R2,
u∈[0,1],
t(u)=(1-u)3O0+3(1-u)uO1+u3O2,
u∈[0,1]}。
(14)
式中R0,R1,R2,O0,O1,O2分別為位置坐標Q0,Q1,Q2對應的接近矢量以及切向矢量。
(7)根據(jù)過渡階段插補點的位姿信息,通過七軸龍門式鋪絲機床的運動學矩陣計算出旋轉軸和移動軸的變化量。
(8)根據(jù)各軸在插補周期內(nèi)的變化量確定各軸的速度曲線,用于觀察各軸速度是否在預期計算范圍內(nèi),檢驗過渡曲線插補算法是否可行,然后進行循環(huán),最后機床各軸同時運動完成路徑的鋪放。
過渡曲線插補方法采用改進的三次Bernstein-Bézier曲線作為拐點過渡曲線,能夠保證軌跡切向和曲率連續(xù),以及速度和加速度連續(xù);通過三次曲線的參數(shù)方程來確定過渡階段插補點的位姿信息,具有曲線階次較低、計算簡單等優(yōu)勢。
當七軸龍門式鋪絲機在連續(xù)短線段的鋪放路徑上運動時,除了對拐點軌跡進行光順外,還需要考慮不同插補運算階段速度協(xié)調(diào)的問題,本文提出基于明顯、平穩(wěn)的位置點或速度點作為前后兩插補運算階段的協(xié)調(diào)點,保證插補運算連續(xù)平穩(wěn)進行。
協(xié)調(diào)點選擇方法思路如下:當下一個拐點過渡范圍起點在減速段范圍內(nèi)時,以勻速段中間點或者速度最大點(無勻速段)為協(xié)調(diào)點,否則以下一個拐點過渡范圍起點為協(xié)調(diào)點。
連續(xù)短線段插補運算過程如下:
(1)開始階段,在插補運算框內(nèi),獲取開始兩個拐點相鄰的4個控制點(包括兩個拐點)的位姿信息,根據(jù)過渡曲線插補方法對前兩段進行插補,插補到協(xié)調(diào)點處,并記錄該協(xié)調(diào)點的位姿及其插補次數(shù)、速度信息,如圖7a所示。
(2)中間階段,從第2個拐點開始,插補運算框每次獲取拐點后3個控制點(包括拐點)的位姿信息,從協(xié)調(diào)點開始進行插補運算,一直插補到下一個協(xié)調(diào)點處,如圖7b所示。
(3)最后階段,在最后一個拐點處,插補運算框獲取該拐點后的兩個控制點信息(包括拐點),從協(xié)調(diào)點開始進行插補運算,一直插補到鋪放路徑結束,如圖7c所示。
利用三次加減速控制方法中的勻速段中間點、最大速度點(無勻速段)以及拐點過渡插補算法中的過渡起點等比較特殊的位置作為協(xié)調(diào)點的選擇,其優(yōu)勢為:①協(xié)調(diào)簡單、計算方便,勻速段的規(guī)劃是在加速段和減速段之后確定的,能夠消除一些計算誤差,且勻速段的速度基本上為指令鋪放速度;②平穩(wěn)性高,最高速度以及過渡范圍的起點作為協(xié)調(diào)點時,主要是由路徑控制點決定的,受影響的因素少。
為了分析基于三次Bernstein-Bézier曲線插補算法的可行性,利用MATLAB軟件分別編寫基于等效加速度的三次多項式加減速控制算法、插補運算算法、插補循環(huán)算法,并進行空間曲線路徑的仿真運算。
已知指令鋪放速度、插補周期、系統(tǒng)最大加速度、路徑控制點信息等約束條件,當鋪絲機在由連續(xù)短線段組成的鋪放路徑上運動時,為了解拐點處存在的速度不連續(xù)問題,首先通過MATLAB軟件對相鄰直線路徑進行仿真,相鄰直線路徑控制點信息如表3所示,得到拐點進行處理之前的各軸速度圖像,如圖8所示。其中,七軸龍門式鋪絲機床是通過優(yōu)化其中一個軸而對其他軸進行控制。本文是對C2軸進行優(yōu)化的,因此在研究各軸速度時,只對其余6個軸的速度進行計算。
表3 路徑信息
可以看出,在相鄰線段拐點處,由于線段方向不同,各軸的直線分配比不同,導致各軸速度在拐點處產(chǎn)生間斷跳躍,造成機床產(chǎn)生超程、振蕩等問題,降低了機床的加工性能。
曲線形路徑是七軸鋪絲機中常見的鋪放路徑,或者是鋪放路徑的組成部分,因此以曲線形路徑為例,進行連續(xù)短線段插補過程的仿真計算分析。利用浙江大學邢紀鵬[15]優(yōu)化后的目標路徑進行插補研究,該路徑由10個控制點控制,路徑控制點信息如表4所示,路徑控制點信息包括位置坐標、接近矢量、切向矢量、法向矢量,各控制點之間采用連續(xù)短線段的軌跡描述方式,如圖9所示。
表4 曲線形路徑控制點
通過MATLAB仿真計算出過渡曲線插補算法在曲線形路徑上的運動速度和加速度情況,如圖10和圖11所示,過渡曲線插補算法是在柔性加減速控制方法的基礎上,對“直線段+過渡曲線段”鋪放路徑進行插補,并通過標注協(xié)調(diào)點的方法保證各插補運算段之間速度和加速度連續(xù)。仿真結果表明,基于三次Bernstein-Bézier曲線過渡的連續(xù)短線段插補算法能夠很好地完成曲線形路徑鋪放。
在插補方法中,采用改進的三次Bernstein-Bézier曲線進行過渡,通過速度和加速度圖像可以看出,該方法能夠保證機床平滑的運動,與其他方法相比,本身也具有一定的優(yōu)勢,如表5所示。
表5 三種插補過渡方法比較
其中,點到點插補方法是將機床在拐點處的速度設為零,從一個控制點運動到另一個控制點,機床頻繁起停,對機床本身具有相當大的損害,且效率大大降低;插補前加減速(Acc/Dec before Interpolation, ADBI)和插補后加減速(Acc/Dec after Interpolation, ADAI)方法是通過保證各軸速度連續(xù)的方法保證拐點光順過渡,但最后的過渡路徑形狀不固定,且在三維空間內(nèi)波動;本文提出的方法,相對運行時間較短,且最后的過渡路徑固定在相鄰線段間的平面上,具有一定的實用價值。
根據(jù)加速時間、計算量、柔性等方面綜合分析多種加減速控制方法,確定基于等效加速度的三次多項式加減速作為七軸龍門式鋪絲機的速度控制方法。三次多項式加減速控制方法具有較高的柔性,且可以利用等效加速度簡化計算,能夠保證七軸鋪絲機以較好的性能達到指令鋪放速度,從而提高加工效率。
改進三次Bernstein-Bézier曲線,僅通過3個控制頂點定義一段曲線,利用曲線性質(zhì)和軌跡誤差計算出曲線控制頂點的位置,該曲線能夠保證相鄰直線段切向和曲率連續(xù)過渡;提出基于改進的三次Bernstein-Bézier曲線插補算法,首先分別利用三次Bernstein-Bézier曲線對位置向量、姿態(tài)向量進行過渡;然后在柔性加減速控制方法的基礎上,對“直線段+過渡曲線段”鋪放路徑進行插補運算;最后在連續(xù)插補過程中,提出采用標注協(xié)調(diào)點的方法保證前后段速度連續(xù),經(jīng)過拐點光順、速度協(xié)調(diào)之后,機床能夠平穩(wěn)準確地完成路徑鋪放。
本文的研究工作主要基于理論分析、算法設計和仿真計算,今后的研究將考慮實際鋪放過程中出現(xiàn)的多種情況,以期實現(xiàn)更加完備的運動控制方法。