潘云龍, 高偉強(qiáng),閻秋生 ,龔國基
(廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院, 廣州 510006)
基于VC++和ANSYS的發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)研究*
潘云龍, 高偉強(qiáng),閻秋生 ,龔國基
(廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院, 廣州 510006)
文中對(duì)基于VC++和ANSYS的發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)進(jìn)行了研究,將VC++編程技術(shù)和有限元分析軟件ANSYS 參數(shù)化設(shè)計(jì)語言APDL相結(jié)合,利用VC++與ANSYS軟件的接口功能與VC++對(duì)APDL文件的封裝技術(shù)實(shí)現(xiàn)了ANSYS的二次開發(fā),開發(fā)了一套發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)。采用有限元法提高了發(fā)動(dòng)機(jī)壓裝過程中接觸力與壓裝力計(jì)算的準(zhǔn)確性。該系統(tǒng)可方便對(duì)APDL文件中參數(shù)進(jìn)行重定義,實(shí)現(xiàn)ANSYS后臺(tái)調(diào)用并對(duì)分析結(jié)果進(jìn)行正確讀取,簡化了整個(gè)有限元分析過程,降低了對(duì)工程技術(shù)人員ANSYS熟悉程度的要求。
VC++;ANSYS;發(fā)動(dòng)機(jī)壓裝;APDL;有限元法
發(fā)動(dòng)機(jī)裝配件的壓裝裝配質(zhì)量是發(fā)動(dòng)機(jī)性能重要影響因素之一。壓裝中壓裝力大小決定著過盈結(jié)合的可靠性,實(shí)際壓裝中以壓裝力位移(F-S)曲線對(duì)壓裝質(zhì)量進(jìn)行評(píng)定[1]。現(xiàn)如今企業(yè)對(duì)于接觸力以及壓裝力的計(jì)算一般是通過理論公式確定的。近年來,隨著自動(dòng)化程度的提高以及計(jì)算機(jī)軟硬件的發(fā)展,有限元分析技術(shù)在裝配過程分析中的應(yīng)用越來越廣泛[2-5]。有限元法在對(duì)壓裝中接觸力計(jì)算時(shí),充分考慮邊緣應(yīng)力集中的影響,因而,比彈性力學(xué)方法真實(shí)可靠[6]。但有限元法同樣存在建模過程中操作步驟過于繁雜,所花時(shí)間較多等缺點(diǎn)。并且有限元通用軟件界面通用性強(qiáng)針對(duì)性不高,操作復(fù)雜,初次接觸者使用難度較大。針對(duì)這些問題,本文提出了基于VC++與ANSYS發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)。該系統(tǒng)運(yùn)用大型通用軟件ANSYS參數(shù)化編程(APDL)實(shí)現(xiàn)整個(gè)壓裝仿真模型建立、載荷施加以及結(jié)果保存,用面向?qū)ο蟮木幊陶Z言VC++編制用戶界面,實(shí)現(xiàn)參數(shù)定義、ANSYS后臺(tái)調(diào)用和結(jié)果讀取。此系統(tǒng)在VC++編制的參數(shù)設(shè)定界面中對(duì)參數(shù)進(jìn)行設(shè)定,就可重定義APDL仿真文件中幾何參數(shù)、物理參數(shù)和工藝參數(shù),在完成參數(shù)定義后點(diǎn)擊ANSYS調(diào)用求解按鈕即可完成分析過程。整個(gè)過程操作簡單方便,用戶無須進(jìn)入ANSYS操作界面,大大減小了對(duì)工作人員的能力要求。
1.1 系統(tǒng)設(shè)計(jì)目標(biāo)及原理
VC++是典型的面向?qū)ο蟛⒕邆涠伍_發(fā)功能的工具。設(shè)計(jì)人員可通過簡潔方便的編程界面以及集成的多種常用工具箱就可以高效地開發(fā)應(yīng)用程序。ANSYS參數(shù)化設(shè)計(jì)語言(APDL)是一種用來完成有限元常規(guī)分析操作或通過參數(shù)化變量方式建立分析模型的腳本語言,它用智能化分析的手段,為用戶提供了白動(dòng)完成有限元分析過程的功能[7]。基于VC++的ANSYS發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)的主要目標(biāo):①構(gòu)建VC++用戶程序與ANSYS通訊;②通過界面設(shè)計(jì),提高人機(jī)交互性,使操作更加方便;③后處理,對(duì)ANSYS分析結(jié)果進(jìn)行讀取。系統(tǒng)可在VC++編輯的界面中對(duì)一些幾何、物理以及工藝參數(shù)進(jìn)行定義,實(shí)現(xiàn)APDL文件中參數(shù)的更新,并通過VC++編程語言實(shí)現(xiàn)ANSYS后臺(tái)運(yùn)行求解,而ANSYS分析結(jié)果可通過VC++對(duì)話框界面進(jìn)行讀取。發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)從參數(shù)重定義到ANSYS分析求解以及最后的結(jié)果讀取,整個(gè)過程無須進(jìn)入ANSYS界面,對(duì)從未使用過ANSYS的工程人員也能做到熟練正確操作。
發(fā)動(dòng)機(jī)壓裝在進(jìn)行每次仿真計(jì)算之前,對(duì)于分析路徑可采用默認(rèn)與重新定義兩種選擇。默認(rèn)分析路徑時(shí),系統(tǒng)將自動(dòng)對(duì)以前的分析結(jié)果進(jìn)行清除,從而不至于影響結(jié)果讀取。在參數(shù)定義模塊,輸入材料物理特性以及物體的幾何參數(shù),實(shí)現(xiàn)對(duì)APDL文件數(shù)據(jù)的更改;輸入完參數(shù)后,進(jìn)入VC++二次處理模塊,完成有限元分析;分析結(jié)束后,由VC++后處理界面實(shí)現(xiàn)對(duì)分析結(jié)果進(jìn)行讀取。具體系統(tǒng)工作原理圖如1所示。

圖1 工作原理圖
1.2 發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)實(shí)現(xiàn)方法
發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)能夠?qū)?zhí)行發(fā)動(dòng)機(jī)壓裝的命令流APDL文件進(jìn)行封裝。APDL文件包含了有限元分析過程中的模型建立、網(wǎng)格劃分、接觸對(duì)設(shè)置、載荷施加以及分析結(jié)果文件生成的命令操作。有限元分析結(jié)果文件包括:接觸力云圖、最大壓裝力以及壓裝整個(gè)過程中壓裝力與位移的數(shù)據(jù)。VC++通過可視化界面對(duì)APDL文件分析中涉及到一些幾何參數(shù)和物理參數(shù)進(jìn)行重新設(shè)定,實(shí)現(xiàn)ANSYS的后臺(tái)調(diào)用求解,并最終對(duì)分析結(jié)果進(jìn)行讀取。
ANSYS軟件自身沒有提供面向?qū)ο蟮亩伍_發(fā)接口,但提供了對(duì)APDL命令流文件調(diào)用的接口。VC++正式通過這個(gè)接口實(shí)現(xiàn)與ANSYS之間進(jìn)行數(shù)據(jù)的通訊。VC++通過WinExec函數(shù)對(duì)ANSYS進(jìn)行調(diào)用,調(diào)用程序段如下:
WinExec("D:Program FilesANSYS Incv130ansysinintelANSYS130.exe -b -p ane3fl -i input_file -o output_file ",SW_HIDE);
說明:其中“D:Program FilesANSYS Incv130ansysinintelANSYS130.exe”為ANSYS路徑,ane3fl為ANSYS產(chǎn)品特征代碼,input_file為用APDL語言編寫的ANSYS輸入文件,output_file輸出的數(shù)據(jù)文件。
VC程序用WinExec()函數(shù)調(diào)用另一程序時(shí)是創(chuàng)建一個(gè)同等優(yōu)先級(jí)的進(jìn)程去執(zhí)行該程序,因此VC程序執(zhí)行WinExec()指令后會(huì)馬上執(zhí)行下一條指令,而不會(huì)等待調(diào)用的另一個(gè)程序執(zhí)行完成,所以程序無法自動(dòng)判斷ANSYS是否求解完成。本系統(tǒng)ANSYS求解是否完成的判斷是通過APDL命令流結(jié)合程序代碼組成。其原理是:在調(diào)用 ANSYS前通過VC程序創(chuàng)建一個(gè)名為panduan.txt的文件并寫入字符0,通過APDL命令使ANSYS求解完畢后自動(dòng)將panduan.txt文件的字符0改為1。這樣就可以通過判斷該字符的值來判斷ANSYS的運(yùn)行情況。核心的命令流和程序代碼如下:
創(chuàng)建1個(gè)宏文件名為pandu1.mac,其命令流是:
*DIm,pandu,,1
pandu(1)=1
*cfopen,'panduan',txt
*vwrite,pandu(1,1) !將VC生成的panduan.txt中字符0改成1
%2.0F
*cfclos
/exit
判斷ANSYS求解是否完成的關(guān)鍵代碼是:
char SYMBOL=48;
char *num=new char[1];
for(;SYMBOL==48;)///48是字符0的ASCⅡ碼,若字符為0則循環(huán)
{
fp=fopen(strPath,"rb");///strPath存放panduan.txt文件的路徑
fread(&num[0],sizeof(char),1,fp);///讀字符值
fclose(fp);
SYMBOL=num[0];
Sleep(2000); ////暫停程序
}
通過以上程序可以避免系統(tǒng)運(yùn)行過程中,造成 “假死”的現(xiàn)象。在ANSYS運(yùn)行過程中通過窗口提示系統(tǒng)運(yùn)行狀態(tài)如圖2所示,當(dāng)運(yùn)行結(jié)束彈出結(jié)束對(duì)話框。

圖2 ANSYS運(yùn)行狀態(tài)
實(shí)現(xiàn)ANSYS的后臺(tái)調(diào)用求解之后,系統(tǒng)需要對(duì)APDL文件生成的分析結(jié)果進(jìn)行讀取。APDL命令流編程可以輸出JPEG圖片格式的接觸力云圖和壓裝力與位移的數(shù)據(jù)txt文件。圖片輸出APDL程序如下:
esel,s,ename,,174 !選擇接觸單元
/SHOW,JPEG,,0
JPEG,QUAL,75,
JPEG,ORIENT,HORIZ
JPEG,COLOR,2
JPEG,TMOD,1
/GFILE,1024,
PLNSOL, CONT,PRES,0,1.0 !接觸壓力
/SHOW,TERM
/CMAP,_TEMPCMAP_,CMP,,SAVE !保存圖片,默認(rèn)為ANSYS工作目錄
實(shí)現(xiàn)壓裝力與位移的數(shù)據(jù)輸出的宏文件如圖3所示。完成了APDL結(jié)果文件輸出后,需要通過VC++程序?qū)崿F(xiàn)對(duì)結(jié)果的調(diào)用讀取,主要包括接觸力圖片與壓裝力位移曲線的讀取。其中壓裝力位移曲線需根據(jù)APDL輸出的壓裝力與位移數(shù)據(jù)結(jié)果,利用OpenGL繪制曲線。

圖3 壓裝力、位移數(shù)據(jù)生成宏文件
1.3 人機(jī)交互界面設(shè)計(jì)
發(fā)動(dòng)機(jī)壓裝類型具有多樣性如碗型塞、氣門導(dǎo)管、連桿襯套壓裝等。這一系列的壓裝類型在模型建立中均采用組合厚壁圓筒簡化模型,但對(duì)被壓件模型建立中存在中通孔與不通圓筒的區(qū)別例如碗型塞與襯套的區(qū)別。根據(jù)模型建立的區(qū)別,此模型將發(fā)動(dòng)機(jī)壓裝類型歸為兩類:碗型塞與連桿襯套類。利用對(duì)話框作為人機(jī)交互界面,對(duì)分析類型進(jìn)行選擇并進(jìn)入相應(yīng)的系統(tǒng)界面,類型選擇界面如圖4所示。

圖4 類型選擇界面
發(fā)動(dòng)機(jī)壓裝仿真計(jì)算系統(tǒng)是結(jié)合ANSYS軟件二次開發(fā)模塊,利用面向?qū)ο笮缘拈_發(fā)設(shè)計(jì)語言VC++,開發(fā)的人機(jī)交互性強(qiáng)并具備數(shù)據(jù)后處理功能的模擬分析系統(tǒng)。該系統(tǒng)適用于大多數(shù)類型的發(fā)動(dòng)機(jī)壓裝如碗型塞、氣門導(dǎo)管、連桿襯套等壓裝模擬仿真的計(jì)算。
2.1 參數(shù)設(shè)定
在人機(jī)交互界面選擇相應(yīng)的分析類型之后,首先確定壓裝的APDL文件存儲(chǔ)位置、ANSYS安裝路徑以及分析結(jié)果存儲(chǔ)路徑。完成設(shè)定后,模型的參數(shù)化建模分析需要對(duì)APDL文件中相關(guān)的幾何參數(shù)、物理參數(shù)以及工藝參數(shù)進(jìn)行定義。工藝參數(shù)包括:過盈量、摩擦系數(shù)和結(jié)合長度。進(jìn)行計(jì)算之前可以對(duì)輸入的數(shù)據(jù)進(jìn)行再次修改、添加和刪除操作,以保證輸入正確的參數(shù)。參數(shù)設(shè)定如圖5所示。

圖5 參數(shù)設(shè)定界面
2.2 運(yùn)行求解及后處理
工程技術(shù)人員在完成分析結(jié)果存儲(chǔ)位置以及參數(shù)設(shè)定之后,系統(tǒng)自動(dòng)進(jìn)行后臺(tái)的建模和分析計(jì)算。最后得到計(jì)算結(jié)果文件,供用戶進(jìn)行后處理和結(jié)果分析。該系統(tǒng)的開發(fā)主要是為得到發(fā)動(dòng)機(jī)壓裝中所需的最大壓裝力大小和壓裝過程中壓裝力與位移的曲線。因此,后處理界面主要包括包括接觸壓力云圖、壓裝力以及F-S曲線顯示界面。另外,后處理部分還具有校核的功能,在F-S曲線顯示界面中存在著理論計(jì)算壓裝力,用于對(duì)仿真結(jié)果進(jìn)行驗(yàn)證。該系統(tǒng)還具有良好的可移植性,不依賴于特定的硬件設(shè)備,只要能安裝ANSYS和VC++6.0的硬件環(huán)境都能使用,保證程序使用的廣泛性。
3.1 有限元分析
為了驗(yàn)證此系統(tǒng)可靠性,以發(fā)動(dòng)機(jī)連桿襯套壓裝為例,對(duì)系統(tǒng)分析計(jì)算結(jié)果從理論上進(jìn)行驗(yàn)證。研究中連桿小頭襯套的幾何參數(shù)、物理參數(shù)與工藝參數(shù)如表1所示,其中結(jié)合長度是仿真中對(duì)被壓件施加位移載荷[8]。系統(tǒng)對(duì)連桿襯套壓裝APDL文件路徑定義之后,在參數(shù)設(shè)定界面如圖5設(shè)置相應(yīng)的參數(shù),對(duì)APDL文件中參數(shù)重定義。
完成相關(guān)設(shè)置后,系統(tǒng)后臺(tái)調(diào)用運(yùn)行ANSYS求解。圖6,7是壓裝模擬分析后的接觸力云圖與壓力與位移曲線。

表1 參數(shù)設(shè)置

圖6 接觸力云圖

圖7 F-S曲線
3.2 理論分析
連桿小頭襯套可以簡化為組合厚壁圓筒進(jìn)行分析[9],則其理論分析模型如圖8所示。圖中d為襯套內(nèi)徑,d1為襯套外徑,d2為小頭外徑。由于兩者屬于過盈裝配,襯套在裝配過程中產(chǎn)生一個(gè)收縮量δ1,小頭孔內(nèi)徑產(chǎn)生一個(gè)膨脹量δ2。

圖8 理論分析模型
由文獻(xiàn)[10]中圓柱面過盈連接計(jì)算得壓入力F=Pf·π·d1·h·μ式中h壓入量,μ為摩擦系數(shù)。代入已知量為h=17mm,得壓入力為F=7185.97N。
3.3 結(jié)果分析
實(shí)際壓裝,裝配狀態(tài)是從不接觸到接觸的過程。仿真中為便于過盈量設(shè)置,將連桿與襯套設(shè)置初始接觸長度設(shè)置為2mm。由圖6可知接觸壓力介于22.535-26.1813MPa之間,與理論計(jì)算值20.92MPa相差不大,說明結(jié)果是可靠的。但從圖6中可以看出接觸力大小沿著軸向存在一定變化,在邊緣處達(dá)到最大,這是由于長度不相等的過盈聯(lián)接存在邊緣效應(yīng)。邊緣應(yīng)力的數(shù)值大大地高于彈性力學(xué)的解,邊緣應(yīng)力集中直接影響聯(lián)接的強(qiáng)度和壽命[6]。從圖7中得到壓裝力為2006N,由于仿真所用模型為實(shí)際模型的1/4,所以實(shí)際壓裝力應(yīng)是所求的4倍即為8024.073N,與理論計(jì)算7185.97近似。綜上可知有限元方法進(jìn)行連桿襯套壓裝仿真計(jì)算結(jié)果可靠,而對(duì)于接觸壓力計(jì)算,更充分考慮邊緣應(yīng)力集中的影響,比彈性力學(xué)方法更優(yōu)越。
由于非標(biāo)件壓裝機(jī)生產(chǎn)商,在進(jìn)行壓裝機(jī)設(shè)計(jì)生產(chǎn)時(shí),對(duì)壓裝過程中所需的壓裝力的確定一般是經(jīng)驗(yàn)確定,往往出現(xiàn)壓裝力估算過小情況的發(fā)生,直接導(dǎo)致壓裝執(zhí)行件選型過小,而影響正常壓裝的完成。而該系統(tǒng)可以對(duì)壓裝中的壓裝力進(jìn)行相關(guān)計(jì)算,為設(shè)計(jì)與執(zhí)行件選型提供一定參考,避免了因壓裝力估算太小導(dǎo)致的返工更改以及執(zhí)行件重新選型安裝,而造成成本和勞動(dòng)量的增大。
本文研究了基于VC++的ANSYS二次開發(fā),實(shí)現(xiàn)了對(duì)ANSYS發(fā)動(dòng)機(jī)壓裝仿真參數(shù)化設(shè)計(jì)語言APDL的封裝。利用APDL編程語言,實(shí)現(xiàn)了發(fā)動(dòng)機(jī)壓裝仿真中模型建立、網(wǎng)格劃分、接觸對(duì)設(shè)置、載荷施加以及分析結(jié)果輸出的功能。結(jié)合VC++面向?qū)ο笤O(shè)計(jì)的對(duì)話框編程技術(shù),實(shí)現(xiàn)了仿真分析中參數(shù)重定義、ANSYS后臺(tái)調(diào)用、求解結(jié)束提醒以及結(jié)果讀取的功能。此系統(tǒng)適用于非標(biāo)件壓裝機(jī)生產(chǎn)商,在壓裝機(jī)設(shè)計(jì)中對(duì)壓裝力進(jìn)行計(jì)算,實(shí)現(xiàn)設(shè)計(jì)效率的提高和勞動(dòng)量的減小,方便了不熟悉ANSYS和有限元軟件的工程技術(shù)人員的正確使用。
[1] 盧連生.影響制動(dòng)盤壓裝曲線的因素及壓裝曲線對(duì)最終連接力的影響[J]. 鐵道機(jī)車車輛, 2002,(S1):85-87,107.
[2] 馮偉, 周新聰, 嚴(yán)新平, 等. 基于有限元方法的襯套裝配仿真實(shí)現(xiàn)[J]. 機(jī)械制造, 2004(7): 17-18.
[3] Sogalad I, Udupa N G S. A comparative study of stress distribution in interference fitted assemblies[J]. INDIAN JOURNAL OF ENGINEERING AND MATERIALS SCIENCES, 2006, 13(5): 397.
[4] Jia D, Li T. Simulation and experiment on interference fit between small head of connecting rod and bush[C]//Consumer Electronics, Communications and Networks (CECNet), 2011 International Conference on. IEEE, 2011: 706-709.
[5] 陳緯, 趙霞. 輥道裝配過盈配合有限元分析[J]. 機(jī)械工程與自動(dòng)化, 2011(2): 93-95.
[6] 魏延剛. 軸轂過盈聯(lián)接的應(yīng)力分析和接觸邊緣效應(yīng)[J].機(jī)械設(shè)計(jì), 2004, 21(1): 36-39.
[7] 博弈創(chuàng)作室.APDL參數(shù)化有限元分析技術(shù)及其應(yīng)用實(shí)例[M].北京:中國水利水電出版社,2004.
[8] 魏延剛, 宋亞昕. 機(jī)車輪對(duì)壓裝過程彈塑性模擬[J]. 機(jī)械設(shè)計(jì), 2004, 21(9): 46-48.
[9] 徐秉業(yè),劉信聲.應(yīng)用彈塑性力學(xué)[M]. 北京:清華大學(xué)出版社,1995.
[10] 閻邦椿.機(jī)械設(shè)計(jì)手冊(cè) (第五版)[M]. 北京:機(jī)械工業(yè)出版社, 2010.
(編輯 趙蓉)
The Simulation System of Engine Press-fit Based on VC++ and ANSYS
PAN Yun-long,GAO Wei-qiang,YAN Qiu-sheng,GONG Guo-ji
(School of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510006,China)
In this paper, the simulation system of engine press-fit based on VC++ and ANSYS was studied, the VC++ programming techniques and the parametric design language APDL of the finite element analysis software ANSYS were combined, the ANSYS secondary development was done by using VC++ and ANSYS software interface functions and VC++ files on APDL packaging technology. Finally the simulation systems of engine press-fit was developed. The finite element method was used to improve accuracy of the calculation of the contact force and press fitting force of the engine press-fit. It is facilitate to redefine the parameters in the APDL file in the system and it can realize the ANSYS Background call and the correct reading of the analysis results, the entire process of finite element analysis is simplified. The requirement that engineering and technical personnel should be familiar with ANSYS is reduced.
VC++;ANSYS;pressure mounted engine;APDL;finite element method
1001-2265(2014)04-0097-04
10.13462/j.cnki.mmtamt.2014.04.026
2013-08-19;
2013-09-10
廣東省部產(chǎn)學(xué)研結(jié)合項(xiàng)目重點(diǎn)項(xiàng)目(2011A090200026);廣東省數(shù)控一代項(xiàng)目 (2012B011300046);廣東省教育部產(chǎn)學(xué)研結(jié)合項(xiàng)目 (2012B091100023)
潘云龍(1988—),男,安徽舒城人,廣東工業(yè)大學(xué)碩士研究生,主要研究方向?yàn)镃AD/CAE/CAM技術(shù);(E-mail)IFLYTOBLUESKY@163.com; 閻秋生(1962—),男,山西臨汾人,廣東工業(yè)大學(xué)教授,博士生導(dǎo)師,主要研究方向先進(jìn)加工技術(shù)及自動(dòng)化。
TH166;TG65
A