方文湛 呂彥明 沈子恒
(江南大學江蘇省食品先進制造裝備技術(shù)重點實驗室 無錫 214122)
在航空航天領(lǐng)域,航空葉片作為航空發(fā)動機的重要零件,被形象地比喻成工業(yè)皇冠上的掌上明珠[1]。葉片形狀復雜,其表面是一種復雜曲面,厚度薄,工藝性差,并且長期在高溫、高壓的惡劣工況下高速運動[2],這也對葉片的質(zhì)量提出了較高的要求。葉片的生產(chǎn)經(jīng)歷了純機加工到熱模鍛再到精鍛的發(fā)展過程[3]。
近年來,國內(nèi)外學者對鍛造成形工藝進行了大量研究。D.S.Goryainv 等[4]基于渦輪葉片精鍛模具的復雜性,提出了渦輪葉片精鍛模具的設(shè)計準則和關(guān)鍵問題。Zbigniew等[5]用有限元法對精鍛模具的磨損情況進行了分析,得出坯料與模具的接觸時間與模具的磨損量成正相關(guān)。楊程[6]等通過實驗發(fā)現(xiàn)減少接觸高度可以降低模芯應力,從而提高爪極預鍛模具的壽命。龍朋[7]等研究葉片徑向鍛坯成型過程,發(fā)現(xiàn)適當提高相對壓下率能提高鍛造成形精度。孫紅鐿[8]等分析了航空鋁合金構(gòu)件不同形狀預制坯對填充、載荷等的影響。
在壓力機上生產(chǎn)的復雜類鍛件,為保證成型質(zhì)量,需采用多次變形工步,使毛坯逐漸接近鍛件形狀[9]。而預鍛作為其中一個重要過渡階段,對成形質(zhì)量有十分大的影響。在葉片預鍛體設(shè)計過程中,最為復雜的就是生成葉片預鍛型線,因此提高預鍛型線設(shè)計效率,對提高產(chǎn)品設(shè)計效率有著重要意義。
UG 自身的功能雖然十分強大,但不論是何種先進CAD 軟件,都難以滿足各行各業(yè)形形色色的產(chǎn)品設(shè)計需求。為更好滿足多方面的設(shè)計需求,UG 為用戶提供了UG/Open 二次開發(fā)模塊,主要由UG/Open Grip、UG/Open API、UG/Open UIStyle 以及UG/Open MenuScript 等四大功能模塊組成[10]。其中UG/Open API 是面向高級語言的二次開發(fā)編程接口,支持包括C/C++、C#、JAVA 等在內(nèi)的多種語言,API模塊功能十分強大,擁有2000多個函數(shù)庫,該方法對開發(fā)人員的編程水平要求較高。
在預鍛件設(shè)計過程中,預鍛體葉身曲面是通過多個截面的預鍛型線生成的,因此預鍛型線的快速生成是預鍛件生成的基礎(chǔ)。無錫某葉片廠葉片截面預鍛型線生成過程如下:
1)作某檔葉型中弧線;
2)作該檔型線最大內(nèi)切圓;3)根據(jù)終鍛變形量,計算預鍛型線厚度增量;4)分割終鍛型線中弧線,將中弧線分為進汽側(cè)出氣側(cè),結(jié)果如圖1(a)所示;

圖1 預鍛型線設(shè)計流程示意圖
5)將上步所得的進、出汽側(cè)兩段中弧線等長分段,獲得每段線段的終點;
6)以每段線端點為圓心作內(nèi)切圓,做出內(nèi)背弧半徑連線,結(jié)果如圖1(b)所示;
7)依據(jù)第三步計算方法,計算進出汽側(cè)每個內(nèi)切圓半徑增量,各個直線端點即為預鍛型線特征點;
8)用樣條串聯(lián)各特征點,形成最終預鍛型線。最后結(jié)果如圖1(c)所示。
預鍛型線設(shè)計自動化軟件所需的功能有:
1)中弧線自動生成;
2)最大內(nèi)切圓的定位與進出汽邊劃分;
3)中弧線進出汽邊兩側(cè)自動劃分為若干段;
4)終鍛變形量的交互輸入;
5)設(shè)計過程中,中弧線局部調(diào)整功能。
根據(jù)預鍛型線設(shè)計流程,以及對生成的型線局部調(diào)整的需求,通過UG 自帶的塊UI樣式編輯器生成用戶交互界面,并使用Visual Studio編譯器,使用C++進行預鍛型線自動生成模塊的開發(fā),最后生成可調(diào)用的dll程序,整個流程如圖2所示。

圖2 功能模塊示意圖
葉型中弧線為葉片型線內(nèi)切圓圓心的連線,在前后緣圓心處按切線方向延伸到與前后緣相交的線。目前求解葉片中弧線的方法主要有內(nèi)切圓法和等距線法兩種求解方式。
內(nèi)切圓法指的是在進行曲線擬合時,可以得出各節(jié)點的坐標和擬合曲線在此點的一階導數(shù),以此為基礎(chǔ),使用兩條相切的圓弧逼近擬合樣條曲線,最后可得一系列弧,由此將求內(nèi)切圓的問題轉(zhuǎn)化為過節(jié)點處做葉盆和葉背相應節(jié)點處兩圓弧的公切圓[11~12]。
但對于利用內(nèi)切圓法求解曲線模型的內(nèi)切圓來講,計算量大且使用二次開發(fā)實現(xiàn)較為困難,故從中弧線的定義出發(fā),探索一條新的思路。內(nèi)切圓即同時與葉背曲線和葉盆曲線相切,那么其內(nèi)切圓圓心到兩條曲線的交點即切點的距離應該相等,基于此思想,張力寧等[13]提出等距離曲線偏置的方法求中弧線,使用不同的偏置距離偏置曲線,使得葉背和葉盆曲線從沒有交點到交點增加,一直到等距線沒有交點為止,最后對所求得的交點進行篩選、排序和曲線插值等,從而求得中弧線。等距偏置法求中弧線的過程如圖3所示。

圖3 等距偏置法生成中弧線過程
中弧線自動生成功能依據(jù)等距偏置法進行開發(fā),因此首先需同時將葉盆葉背曲線相向偏置相同距離,并獲取兩條曲線的交點,并重復以上步驟,生成若干特征點,連接特征點,產(chǎn)生一條光順的樣條曲線,以此作為葉片中弧線。在UG/Open API 提供的函數(shù)中,UF_CURVE_create_offset_curve 函數(shù)可以用于生成某條曲線的偏置曲線,首先根據(jù)該函數(shù)所要求的參數(shù)列表,輸入需偏置的曲線的標簽值與偏置的距離,即可實現(xiàn)曲線的偏置。同時可以通過UF_MODL_intersect_curve_to_curve 即可快速判斷兩條偏置曲線交點個數(shù)以及交點坐標。結(jié)合以上兩個函數(shù),即可實現(xiàn)本功能的開發(fā)。
根據(jù)偏置的距離r的不同,偏置得到的葉背葉盆曲線的交點個數(shù)也不盡相同:
1)當r從零開始逐漸增加,值偏小時,曲線的交點為零;
2)當r=r+Δ 時,利用等步長或者變步長的方式增加r的取值。隨著迭代次數(shù)的增加,等距線的交點也隨著增加,根據(jù)葉背葉盆曲線的特性分析可以得出,其交點的個數(shù)基本為1、2和3,最高不會超過3個交點;
3)當r增大到一定范圍,也就是前后緣的曲率半徑,偏置的等距線的相互交點個數(shù)會出現(xiàn)大于3個的現(xiàn)象。最為理想的狀態(tài)是兩條曲線的交點交于前后緣的某個圓心處,但是由于某些因素的影響,例如曲線光順等會造成交點個數(shù)過多的現(xiàn)象,此時的交點由于不確定性,所以不保留這些交點;
4)當r增大到等距線超出截面曲線的范圍時,交點應該為零,或者其交點的坐標值特別異常,很明顯這些點不屬于中弧線上的點。
由此可以確定中弧線生成中,葉盆葉背曲線偏置結(jié)束的條件為若本次產(chǎn)生交點數(shù)比上一次產(chǎn)生交點結(jié)果少,那說明以后的偏置不會再有交點,即可結(jié)束曲線偏置,實現(xiàn)邏輯如圖4所示,圖中fast表示本次偏置交點個數(shù),slow表示上次偏置交點個數(shù),r表示偏置距離。

圖4 中弧線自動生成模塊邏輯圖
根據(jù)以上代碼運行結(jié)果可產(chǎn)生一系列內(nèi)切圓圓心的點集,結(jié)果如圖5所示。

圖5 生成內(nèi)切圓圓心點集
最后調(diào)UF_CURVE_create_spline_thru_pts 函數(shù)即可根據(jù)以上點集創(chuàng)建光順樣條曲線,從而實現(xiàn)葉片中弧線的創(chuàng)建,最后結(jié)果如圖6所示。

圖6 根據(jù)內(nèi)切圓圓心點集創(chuàng)建中弧線
在葉片生產(chǎn)加工過程中,通過獲取最大厚度圓的信息可以確定葉型截面的最大厚度,用于保證葉片的厚度[14],同時最大厚度圓也是中弧線劃分進氣側(cè)出氣側(cè)的劃分依據(jù)。
根據(jù)中弧線的定義,可以得知最大內(nèi)切圓圓心必定在中弧線上,在曲線偏置求交點的過程中,程序最后結(jié)束時只有兩種情況,即兩條偏置曲線無交點或者只有一個交點,如果有且僅有一個交點,說明這就是最大厚度圓圓心,如果無交點,說明最大厚度圓圓心在上一次的兩個交點之間。同時在軟件設(shè)計時,為了提高搜索的效率,我們需要將葉型曲線生成過程中,各交點所代表的內(nèi)切圓半徑記錄下來,在實際生產(chǎn)中,由于葉片截面與xoy平面平行,同時中弧線滿足y=f(x)的形式,因此采用了C++標準模板庫中的map 容器用于收集交點與其所代表的內(nèi)切圓半徑的信息。
map 是C++中的一種關(guān)聯(lián)容器,其中存儲的數(shù)據(jù)均按照key-value 的鍵值對形式存放,鍵值唯一,并且遍歷時會按照key 值的大小順序由小到大進行遍歷[15]。在葉型曲線偏置時,如果存在交點,便將交點的x坐標以及此時的曲線偏置距離存入到map 中,最后曲線偏置結(jié)束,重新遍歷一遍容器獲取內(nèi)切圓半徑最大的交點信息。
當最后交點為兩個時,采用分而治之的思路解決兩點間最大內(nèi)切圓問題,即將求解中弧線在兩點內(nèi)的最大厚度圓的問題,轉(zhuǎn)化為求解這個區(qū)間內(nèi)若干小區(qū)間最大厚度圓并比較得最優(yōu)解得問題。將Q(x1,x2)記為求解兩點間最大內(nèi)切圓問題,若x1與x2之間的距離未達到足夠小,則取兩點之間的中點m1,該問題可以分解為求解x1到m1間與m1到x2兩個區(qū)間內(nèi)最大內(nèi)切圓的求解的過程,其中兩個子問題又可以繼續(xù)往下劃分,直至兩點間的距離足夠小才可進行求解。問題求解后,即可進行問題的合并,將R(x1,m2)記作x1到m1之間的最大內(nèi)切圓的解,問題的合并即比較兩個子解間問題的最優(yōu)解,最優(yōu)解作為該問題的解,最后合并所有子問題,求得最終的結(jié)果。分治算法求解思路如圖7所示。

圖7 根據(jù)內(nèi)切圓圓心點集創(chuàng)建中弧線
當內(nèi)切圓位置以及半徑確定之后,調(diào)用NXOpen::Features::DivideCurveBuilder 類,以中弧線為輸入曲線,最大厚度圓圓心為分割點,實現(xiàn)曲線的分割。從而獲取最大內(nèi)切圓位置以及半徑。最后運行結(jié)果如圖8所示。

圖8 確定最大厚度圓并分割中弧線
在完成中弧線的分割后,須將中弧線進氣側(cè),出氣側(cè)進行等長的劃分,并以這些等分點為圓心,分別作內(nèi)切圓。
首先,通過UF_CURVE_ask_arc_ length 函數(shù),輸入兩條曲線的標簽值,并采用公制單位,求得兩段曲線的長度。一般情況下,每段曲線長度取10mm,計算得每條曲線應分多少段。最后調(diào)用UF_MODL_ask_curve_props 函數(shù),該函數(shù)可以求得某條曲線上,某一參數(shù)(即曲線起點到該點與曲線總長的比值)所在的點的坐標等信息。
采用以上方法,對進氣側(cè)、出氣側(cè)中弧線進行遍歷,實現(xiàn)自動等長分段功能,并作出以該點為圓心的內(nèi)切圓。最后實現(xiàn)效果如圖9 所示,圖中中弧線上的圓心即為等分點。

圖9 進出汽兩側(cè)中弧線自動劃分
本文最后采取以上方法作為核心模塊的算法,以UG10.0軟件為測試環(huán)境,采用Visual Studio 2013作為編譯器,使用C++語言進行開發(fā)。在UG 軟件自帶的塊UI 樣式編輯器中設(shè)計出自動化設(shè)計軟件的人機交互界面,界面最終效果如圖10所示。

圖10 預鍛型線自動設(shè)計軟件交互界面
打開軟件后,首先選取葉背曲線,葉盆曲線,作為中弧線等距偏置法生成的輸入,生成中弧線后,選擇中弧線,點擊第二個按鈕,程序自動計算最大厚度圓的位置以及半徑,并分割中弧線。該界面滿足調(diào)整進出汽側(cè)中弧線長度的要求,并可以手動加密分段,并且支持終鍛變形量的交互。
中弧線分割完之后,由于不同材料,不同結(jié)構(gòu)的葉片預鍛型線弦寬要求不同,所以需預留調(diào)整進、出汽兩側(cè)中弧線長度的窗口,方法為由兩側(cè)向內(nèi)縮減長度。確定調(diào)整策略后,程序自動計算進、出汽兩側(cè)中弧線分段數(shù)并顯示在界面上,界面變化如圖11所示。

圖11 交互界面動態(tài)變化
最后,根據(jù)實際需求,輸入終端變形量,分別生成延長線以及預鍛型線,點擊確定,獲得最終的結(jié)果,在MV030GW 型葉片的葉身某截面程序執(zhí)行結(jié)果如圖12所示。

圖12 預鍛型線自動設(shè)計結(jié)果
該預鍛型線若采用人工方式需花費約兩小時,且由于圓心較為密集,特別容易出錯,而采用自動生成軟件只需要一分多鐘,極大提高了預鍛型線生成效率,提高預鍛模體的設(shè)計效率。
本文基于無錫某葉片廠預鍛線生成流程,在該葉片廠常用的UG10.0 軟件中使用二次開發(fā)技術(shù)開發(fā)預鍛型線自動設(shè)計軟件,主要內(nèi)容有:
1)根據(jù)葉片中弧線定義,采用等距偏置法作為理論基礎(chǔ),設(shè)計中弧線自動生成模塊實現(xiàn)了中弧線的準確快速生成。
2)將存儲在map 中的交點-內(nèi)切圓半徑信息進行遍歷,實現(xiàn)最大厚度圓的粗略定位,并采取分治法,將最大厚度圓圓心可能在的區(qū)域分為若干子區(qū)域,比較不同區(qū)域內(nèi)的內(nèi)切圓半徑,實現(xiàn)最大厚度圓圓心定位與半徑值。
3)在UG 塊UI 樣式編輯器中設(shè)計友好的用戶交互界面,用戶可在其中選擇程序運行所需的曲線以及終端變形量等參數(shù),并提供了動態(tài)調(diào)整選項,用于滿足不同產(chǎn)品設(shè)計的需求。