王 旭, 顧 勝, 張麗妮, 巫江祥, 何志偉, 劉 營(yíng), 蘆 帥, 錢(qián) 華
(1.上海船舶工藝研究所,上 海200032;2.大連船舶重工集團(tuán)設(shè)計(jì)研究院有限公司,遼寧 大連 116005;3.上海中船臨港船舶裝備有限公司,上海201306;4.上海外高橋造船海洋工程有限公司,上海201306)
船體、甲板所受的彎曲力會(huì)傳遞至肋骨上,承載能力取決于肋骨和船體之間的焊接情況,這就要求肋骨的線型需盡可能貼合船體外形。在數(shù)控肋骨冷彎?rùn)C(jī)的幫助下,能夠按照船廠要求的肋骨線型彎制高精度的肋骨[1]。肋骨冷彎工藝一般分為4步:①船廠提供肋骨線型數(shù)據(jù)文本,其中包含肋骨需要經(jīng)過(guò)的點(diǎn)以及各點(diǎn)的曲率半徑,每根肋骨的點(diǎn)數(shù)一般在十多個(gè)或者數(shù)十個(gè);②將肋骨線型數(shù)據(jù)文本輸入前處理軟件中,擬合一條完整的肋骨線型;③根據(jù)檢測(cè)距離S0、甩頭(荒料)長(zhǎng)度以及分割數(shù)n,利用弦線法[2]求解該肋骨的理論加工控制量L與θ(L為肋骨彎制點(diǎn)的弦長(zhǎng),θ為角度);④將L與θ輸入上位機(jī),作為傳感器的參考量,進(jìn)行肋骨自動(dòng)冷彎工作[3]。其中,第2步的線型擬合工作至關(guān)重要,高精度的擬合結(jié)果會(huì)產(chǎn)生高精度的L與θ,從而提高肋骨數(shù)控冷彎的精度。
傳統(tǒng)的線型擬合方法:假設(shè)整根肋骨線型是一條三次曲線Y=aX3+bX2+cX+d,其中,a、b、c、d是待求解的參數(shù);根據(jù)船廠給出的點(diǎn),利用最小二乘法求解a、b、c、d的最優(yōu)值。該方法的主要缺陷:①已知條件的數(shù)量(十多個(gè)或者數(shù)十個(gè))遠(yuǎn)大于待求解參數(shù)的數(shù)量(4個(gè)),因此最終擬合的三次曲線無(wú)法嚴(yán)格經(jīng)過(guò)全部的給定點(diǎn);②由于①的緣故,需要額外的誤差分析,但誤差的許可范圍一直沒(méi)有理論依據(jù);③在擬合過(guò)程中,未考慮船廠給定的曲率半徑,這會(huì)降低擬合結(jié)果的可靠性。
提出一種新型的肋骨線型擬合方法:將整根肋骨線型看成多段的分段三次函數(shù),每一段肋骨的已知條件數(shù)目為4個(gè)(兩端點(diǎn)的位置和兩端點(diǎn)的曲率半徑),正好等于三次曲線的系數(shù)數(shù)量,使參數(shù)解靜定。由于考慮曲率半徑,因此會(huì)使方程組非線性,提出將參數(shù)降維以及坐標(biāo)系局部化,可解決非線性方程的高精度求解問(wèn)題。
由廠方提供肋骨線型數(shù)據(jù)的ASCII文本文件和與之對(duì)應(yīng)的肋骨加工參數(shù)的ASCII文本文件,后者包含該肋骨的關(guān)鍵數(shù)據(jù),其構(gòu)成如圖1所示,其中,點(diǎn)數(shù)為該肋骨上給定點(diǎn)的數(shù)量。由圖1可知:數(shù)據(jù)文本不僅給出每個(gè)點(diǎn)需要經(jīng)過(guò)的坐標(biāo)X和Y,而且給出每個(gè)點(diǎn)對(duì)應(yīng)的曲率半徑。
圖1 肋骨線型數(shù)據(jù)文本內(nèi)容構(gòu)成
根據(jù)已知條件,船舶肋骨線型擬合需解決的基本問(wèn)題:已知平面內(nèi)點(diǎn)Pi(Xi,Yi,R)和與其相鄰的點(diǎn)Pi+1(Xi+1,Yi+1,Ri+1),其中,i=1,2,…,N-1;擬合一條平面曲線Y=fi(X),其中,fi的下標(biāo)“i”表示該曲線在Pi與Pi+1之間。該曲線需滿足下式:
(1)
式中:ri為fi的曲率半徑。
ri表達(dá)式[4]為
(2)
式中:d和d2分別為對(duì)fi的一次微分和二次微分。
由式(1)可知:Pi與Pi+1總共提供4個(gè)已知條件,因此fi中待求解的參數(shù)也設(shè)置為4個(gè),這樣可使方程組的解靜定。為使fi可二次微分(如此,曲率半徑才有意義),指定fi為三次曲線,即fi滿足下式的形式:
fi(X)=aiX3+biX2+ciX+di
(3)
一般來(lái)說(shuō),數(shù)值優(yōu)化均需要事先指定初始搜索值,如果指定的初值不合適,則易陷入局部最優(yōu)解[5],甚至錯(cuò)誤最優(yōu)解。對(duì)于設(shè)計(jì)人員來(lái)說(shuō),ai、bi、ci和di的取值范圍過(guò)于寬泛,均在(-∞,+∞)之間,如何指定合適的初值沒(méi)有準(zhǔn)則,因此不建議直接對(duì)ai、bi、ci和di進(jìn)行求解,可利用坐標(biāo)系轉(zhuǎn)換進(jìn)行降維處理。
肋骨曲線數(shù)值擬合模型如圖2所示,其中,Pi、Pi+1和Pi+2均為已知條件中的給定點(diǎn),其坐標(biāo)值均在全局坐標(biāo)系OXY下表示。如果直接在OXY下進(jìn)行曲線fi的擬合,缺點(diǎn)如下:①如第1.3節(jié)所述,無(wú)法指定合適的ai、bi、ci和di的初值,優(yōu)化結(jié)果不可靠,甚至錯(cuò)誤;②在OXY下,Pi、Pi+1和Pi+2的坐標(biāo)值一般均較大,數(shù)量級(jí)一般為“千”或者“萬(wàn)”,影響求解精度。
圖2 肋骨曲線數(shù)值擬合模型
基于上述缺點(diǎn),建立以Pi為原點(diǎn)、PiPi+1為x方向的局部坐標(biāo)系Pixy,其中,y方向是x繞著Pi旋轉(zhuǎn)90°所得(旋轉(zhuǎn)方向?yàn)榧埫嫦蛲?。在Pixy下,Pi坐標(biāo)為(0,0),Pi+1坐標(biāo)為(L,0),其中,Li為Pi與Pi+1之間的距離,一般數(shù)量級(jí)為“百”。在Pixy下,肋骨曲線不再是Y=fi(X),而是y=gi(x),如圖3所示。只要求解出g,肋骨曲線即可確定。
圖3 在局部坐標(biāo)系下擬合肋骨曲線
曲線gi是三次曲線,按下式計(jì)算:
gi(x)=pix3+qix2+six+ti
(4)
(5)
當(dāng)hi,1和hi,2確定之后,代入式(5)可解出pi、qi、si和ti,曲線gi可確定[6],即可計(jì)算gi在Pi與Pi+1處的曲率半徑。對(duì)于同一條曲線,曲率半徑的值與坐標(biāo)系無(wú)關(guān)[7](曲率半徑的幾何性質(zhì)),因此,在OXY下,Y=fi(X)在Pi與Pi+1處的曲率半徑即可求得,將結(jié)果與要求的曲率半徑Ri、Ri+1計(jì)算差值,作為優(yōu)化的目標(biāo)函數(shù)。
綜上所述,將肋骨線型的優(yōu)化問(wèn)題從優(yōu)化ai、bi、ci和di這4個(gè)參數(shù)轉(zhuǎn)換為優(yōu)化hi,1和hi,2這2個(gè)參數(shù),實(shí)現(xiàn)降維。接下來(lái)的關(guān)鍵問(wèn)題在于hi,1和hi,2的初值如何選取,需要結(jié)合船舶肋骨曲線曲率半徑大的特點(diǎn)。
由圖3可知:當(dāng)hi,1和hi,2均為0時(shí),gi為一條直線,曲率半徑為無(wú)窮大;當(dāng)hi,1和hi,2逐漸從0變大時(shí)(+y方向變大或者-y方向變大),gi為一條有彎度的曲線,此時(shí)gi在Pi與Pi+1處的曲率半徑逐漸由大變小??紤]船舶肋骨曲線曲率半徑大的特點(diǎn),可將hi,1和hi,2的初值定義為±0.01,具體的正負(fù)號(hào)根據(jù)表1確定,其中,Ri與Ri+1的正負(fù)號(hào)符合右手螺旋定則(繞著紙面向外)。
表1 hi,1和hi,2的初值定義
根據(jù)表1,可總結(jié)hi,1和hi,2的初值選取公式:
(6)
式中:sign為求正負(fù)號(hào)。以此初值,代入相關(guān)優(yōu)化算法,求出符合要求的hi,1和hi,2,即可求出肋骨曲線在局部坐標(biāo)系Pixy下的表達(dá)式。
下一步需要將坐標(biāo)系Pixy下的表達(dá)式轉(zhuǎn)換回原始坐標(biāo)系下,即全局坐標(biāo)系OXY下。
坐標(biāo)轉(zhuǎn)換如圖4所示。
圖4 坐標(biāo)轉(zhuǎn)換示例
假設(shè)在經(jīng)過(guò)第1節(jié)的操作之后,獲取坐標(biāo)系
Pixy下Pi與Pi+1之間的曲線方程gi,則在gi上任取一點(diǎn)(xm,ym)∈g,則該點(diǎn)在全局坐標(biāo)系OXY下的坐標(biāo)值(Xm,Ym)計(jì)算公式[8]為
(7)
式中:Rθi,z為繞z軸(即紙面向外)旋轉(zhuǎn)θi角度對(duì)應(yīng)的旋轉(zhuǎn)矩陣是2×2維。
(8)
式中:θi為X繞z軸(即紙面向外)旋轉(zhuǎn)θi角度后到達(dá)x。
θi的表達(dá)式為
(9)
式中:X=[1,0];x=[Xi+1-Xi,Yi+1-Yi];“·”為向量?jī)?nèi)積;“‖‖”為向量模長(zhǎng)。
將第1節(jié)與第2節(jié)的算法整合,可得到Pi與Pi+1之間的肋骨曲線擬合算法,流程如圖5所示,其中,優(yōu)化算法一般分為置信域方法[9](Trust-region Methods)和最小二乘(Levenberg-Marquardt)法[10]。該流程最終輸出的是在全局坐標(biāo)系OXY下擬合的Pi與Pi+1之間的肋骨曲線離散點(diǎn)數(shù)據(jù)(Xm,Ym)∈fi。
圖5 肋骨曲線擬合算法流程
以此類(lèi)推,其余相鄰點(diǎn)之間的肋骨曲線的離散點(diǎn)數(shù)據(jù)均可獲得,最后得到的肋骨曲線滿足兩個(gè)條件:①?lài)?yán)格經(jīng)過(guò)已知條件中給定的所有X、Y值;②曲率半徑以高精度逼近已知條件中給定的所有R值。
指定4個(gè)點(diǎn)P1、P2、P3和P4,具體數(shù)值如表2所示。根據(jù)所提出的算法,可解出相鄰兩點(diǎn)之間的肋骨曲線的參數(shù)hi,1和hi,2,并求出P1、P2、P3和P4處的實(shí)際曲率半徑及其誤差。由表2可知:曲率半徑誤差數(shù)量級(jí)為10-5,精度較高。
表2 相鄰點(diǎn)之間的曲線擬合算例結(jié)果匯總
在全局坐標(biāo)系OXY下,用擬合后的離散點(diǎn)數(shù)據(jù)繪制P1、P2、P3和P4之間的肋骨曲線,如圖6所示。由圖6可知:共3段肋骨曲線,每段肋骨均平滑,且段與段之間銜接處也光滑。整條曲線看似直線,原因在于X、Y軸是等比例繪制,且曲率半徑較大。
圖6 擬合后的P1、P2、P3和P4之間的肋骨曲線
通常在廠方提供的肋骨線型數(shù)據(jù)文本中點(diǎn)數(shù)均為十多個(gè)甚至數(shù)十個(gè),為顯示所提出算法的有效性,選取4根肋骨的線型數(shù)據(jù)文本,分別擬合,得到在全局坐標(biāo)系下的曲線結(jié)果,如圖7~圖10所示。所提出的算法可以處理各種類(lèi)型的肋骨數(shù)據(jù),包括單向曲率和雙向曲率(即S型),且擬合后的曲線處平滑,曲率半徑誤差較小(數(shù)量級(jí)為10-5),接近零值。
圖7 右舷朝艏(單向曲率)肋骨擬合結(jié)果
圖8 右舷朝艉(單向曲率)肋骨擬合結(jié)果
圖9 右舷朝上(單向曲率)肋骨擬合結(jié)果
圖10 右舷朝艏(雙向曲率S型)肋骨擬合結(jié)果
隨著船舶行業(yè)的結(jié)構(gòu)調(diào)整轉(zhuǎn)型,造船技術(shù)向自動(dòng)化、智能化水平發(fā)展,目前各大船廠現(xiàn)存的程控肋骨冷彎?rùn)C(jī)迫切需要升級(jí)改造成數(shù)控肋骨冷彎?rùn)C(jī),而目前數(shù)控肋骨冷彎?rùn)C(jī)上位機(jī)程序匹配的硬件已停產(chǎn),因此開(kāi)發(fā)新的數(shù)控系統(tǒng)可以為擴(kuò)大數(shù)控冷彎?rùn)C(jī)市場(chǎng)并持續(xù)發(fā)展提供支撐。在數(shù)控系統(tǒng)中,針對(duì)船舶肋骨線型的高精度擬合是關(guān)鍵步驟。對(duì)舊的擬合算法進(jìn)行改進(jìn),使數(shù)控系統(tǒng)獲得更高精度的輸入(即理論加工控制量L與θ),以期提高肋骨自動(dòng)冷彎的質(zhì)量。主要研究工作如下:
(1)將整根船舶肋骨看成多個(gè)分段,每個(gè)分段是獨(dú)立的三次曲線。
(2)在每個(gè)分段建立局部坐標(biāo)系,在局部坐標(biāo)系下,將三次曲線需要求解的4個(gè)參數(shù)減少為2個(gè)。
(3)在局部坐標(biāo)系下,根據(jù)肋骨曲率半徑大的特點(diǎn),給出參數(shù)初始解選取方法。
(4)利用置信域方法或最小二乘法求解參數(shù),使曲率半徑的誤差數(shù)量級(jí)達(dá)10-5。
(5)利用坐標(biāo)變換將局部坐標(biāo)系下的結(jié)果轉(zhuǎn)換回全局坐標(biāo)系,獲得最終的高精度擬合曲線。