李濤 耿鵬飛 原曉娟 田杜養(yǎng)
摘要:設(shè)計了軟件的主要工作流程和功能,研究了VS與ANSYS的接口技術(shù)、ANSYS宏封裝技術(shù),實現(xiàn)了ANSYS二次開發(fā);通過弦截法完成了仿真聲場與實測聲場的匹配,實現(xiàn)了水聲換能器參數(shù)反演功能,為水聲換能器的設(shè)計與測試提供了理論依據(jù)與技術(shù)支持。
關(guān)鍵詞:ANSYS二次開發(fā);弦截法;水聲換能器;參數(shù)反演
中圖分類號:TB559 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)02-0171-03
0 引言
水聲換能器研究涉及材料、電子、結(jié)構(gòu)、機(jī)械等綜合領(lǐng)域。國內(nèi)外分別從功能材料、幾何機(jī)構(gòu)、制作工藝等方面進(jìn)行研究,以期提高換能器的性能[1]。但是水聲換能器的研制工藝復(fù)雜,建模難度大,分析數(shù)據(jù)量不足,而且在進(jìn)行聲場仿真時,有限元分析軟件ANSYS [2]的熟練掌握也需要長時間的摸索。
在水聲換能器的研制中由于制備工藝、測試技術(shù)等問題,會導(dǎo)致其仿真聲場與實測聲場存在差異。本文以ANSYS的二次開發(fā)為基礎(chǔ)[3-4],設(shè)計了一種換能器參數(shù)反演軟件,給定的水聲換能器的實測聲場為匹配目標(biāo),通過迭代算法的應(yīng)用,不斷調(diào)整換能器的相關(guān)參數(shù),使仿真聲場在一定誤差范圍內(nèi)與實測聲場相匹配[5],分析水聲換能器各個部件參數(shù)與實測聲場之間的內(nèi)在關(guān)聯(lián),以便為水聲換能器及基陣的研制提供支持。
1 軟件設(shè)計
軟件將ANSYS的APDL和VS結(jié)合起來,利用前者參數(shù)化設(shè)計和后者友好交互界面的特點,共同進(jìn)行ANSYS的二次開發(fā)。軟件以給定的水聲換能器的實測聲場參數(shù)為匹配目標(biāo),通過迭代算法不斷調(diào)整換能器自身的相關(guān)參數(shù),達(dá)到仿真聲場在一定誤差范圍內(nèi)與實測聲場相匹配的目的。
1.1 工作流程
水聲換能器參數(shù)反演軟件的工作流程如圖1所示,具體的流程如下:
數(shù)據(jù)輸入:通過軟件數(shù)據(jù)輸入窗口,人工輸入或自動導(dǎo)入有關(guān)水聲換能器的幾何參數(shù)、材料參數(shù)及實測聲場等數(shù)據(jù)。
實體建模:根據(jù)數(shù)據(jù)輸入所提供的參數(shù),調(diào)用有限元軟件建立水聲換能器的三維實體模型,并進(jìn)行網(wǎng)格劃分。
誤差設(shè)置:根據(jù)操作人員的需求,設(shè)置實測聲場與仿真聲場之間的誤差值,用以控制迭代算法的收斂范圍。
數(shù)據(jù)仿真:根據(jù)所建立的模型,軟件與有限元軟件進(jìn)行通訊,自動調(diào)用有限元軟件完成相應(yīng)的數(shù)據(jù)仿真工作,并將相關(guān)數(shù)據(jù)存儲于數(shù)據(jù)庫中。
性能分析:軟件通過相應(yīng)的算法將實測數(shù)據(jù)與仿真數(shù)據(jù)進(jìn)行對比,根據(jù)誤差范圍,確定收斂與否,并將對比結(jié)果存儲于數(shù)據(jù)庫中。
結(jié)果輸出:軟件通過數(shù)據(jù)表格、曲線及動畫等形式將對比數(shù)據(jù)輸出,以供操作人員參考。
1.2 模塊設(shè)計
根據(jù)軟件的主要功能及需求,所設(shè)計的模塊主要包括:
數(shù)據(jù)接口模塊:該模塊主要與數(shù)據(jù)庫、ANSYS軟件及EXCEL軟件進(jìn)行通信,通過數(shù)據(jù)接口可以訪問數(shù)據(jù)庫,提取相應(yīng)的有限元模型與計算結(jié)果等,為參數(shù)的反演提供初始數(shù)據(jù)。
參數(shù)設(shè)置模塊:該模塊從數(shù)據(jù)庫中讀取(人工輸入)各部件的幾何尺寸和材料參數(shù),并調(diào)用有限元程序完成換能器的3D實體建模和網(wǎng)格劃分。
誤差設(shè)置模塊:該模塊主要用于實測聲場與仿真聲場匹配時的誤差控制,以調(diào)整匹配時的精度。
分析求解模塊:該模塊自動加載換能器的工作條件,經(jīng)選定求解環(huán)境后(空氣中、水中),可進(jìn)行模態(tài)分析(振型、諧振頻率計算),據(jù)此確定分析的頻率范圍并進(jìn)行諧響應(yīng)分析(導(dǎo)納計算、發(fā)射電壓響應(yīng)計算)。
結(jié)果顯示模塊:該模塊以曲線、動畫等形式顯示換能器的分析結(jié)果,能與實測數(shù)據(jù)進(jìn)行對比并將計算結(jié)果、動畫以及對比結(jié)果以圖、表等形式輸出。
根據(jù)軟件的功能模塊,設(shè)計了軟件的功能按鈕(如圖2所示),各功能按鈕以樹狀圖的形式呈現(xiàn),共分為三級菜單,每一級菜單對應(yīng)不同的功能。
2 功能實現(xiàn)
2.1 VS與ANSYS的接口
實際應(yīng)用中,Visual Studio調(diào)用的是ANSYS的APDL宏文件,具體實現(xiàn)的關(guān)鍵技術(shù)是VS如何調(diào)用ANSYS的APDL宏文件。本軟件將多個換能器的各種分析一次性進(jìn)行完畢,無需人為進(jìn)行較為繁瑣的操作,在程序設(shè)計方面考慮將兩軟件的接口設(shè)計為子函數(shù)形式,后臺每進(jìn)行一次分析調(diào)用即可,減少無意義的代碼量。子函數(shù)部分代碼如下所示:
//全局函數(shù)
int CTASApp::f(char *y1, CString y2) //全局函數(shù)定義
{ char y4[200];
strcpy(y4, y1);
char* str2 = (LPSTR)y4;
char y3[200];
strcpy(y3, "-p ane3flds -j file14 -s read -l en-us -b -i ");
strcat(y3, y1);strcat(y3, y2);strcat(y3, ".txt? -o ");
strcat(y3, y1);strcat(y3, y2);strcat(y3, "_out.txt");
char* str1 = (LPSTR)y3;
CString cmdline(str1);
CStringm_FluentDir("C:\\ProgramFiles\\ANSYS Inc\\v145\\ansys\\bin\\winx64\\ANSYS145.exe");
此全局函數(shù)需要兩個輸入?yún)?shù),一個是APDL文件所在的文件夾,一個是APDL文件的文件名。通過讀取該APDL文件獲得換能器的參數(shù)和分析指令,接下來后臺調(diào)用ANSYS軟件進(jìn)行指令執(zhí)行,執(zhí)行結(jié)束后可以得到ANSYS軟件生成的各類結(jié)果文件。此全局函數(shù)中包括了ANSYS的exe文件所在路徑,路徑發(fā)生更改時需要及時對其更改,否則將無法調(diào)用ANSYS軟件進(jìn)行分析。
2.2 ANSYS宏的封裝
利用VS軟件對ANSYS軟件進(jìn)行后臺時需要讀寫APDL語言進(jìn)行操作,因此將APDL宏封裝在VS軟件可讀的文件中是很有必要的,以下是VS語言對APDL宏的封裝過程。
根據(jù)現(xiàn)有的分析類別新建一個txt類型的文件用于存儲APDL宏。ANSYS分析軟件在對換能器進(jìn)行分析時,首先需要將換能器參數(shù)輸入,接下來需要進(jìn)行一系列的操作才可以得到分析結(jié)果。與此相對應(yīng),將APDL語言分為數(shù)據(jù)部分和指令部分兩大模塊,這兩個模塊都需要存儲在APDL宏文件中。在進(jìn)行相應(yīng)的分析類型時,分別將換能器的各個參數(shù)與對應(yīng)的變量名相對應(yīng),并寫入APDL宏文件數(shù)據(jù)部分和指令部分兩大模塊中去。部分代碼如下:
CString filename, s, str_analy, test;
double number;
char strnum[500];
char y1[200], y2[200], y3[200];
char yair[200], ywater[200], ysvl[200];
char *str;
int i;
str_analy.Format(_T("%d"), analy_num + 1);//將分析序號轉(zhuǎn)化為字符串
2.3 參數(shù)迭代算法
軟件在進(jìn)行參數(shù)迭代時,選用的是弦截法。弦截法是一種不必進(jìn)行導(dǎo)數(shù)運算的求根方法,在計算機(jī)編程中常用。為避免計算函數(shù)的導(dǎo)數(shù)f(xk),使用(f(xk)-f(x(k-1)))/((xk-x(k-1)))來替代牛頓公式中的導(dǎo)數(shù)f(xk),便得到迭代公式:
xk+1=xk-(xk-xk-1)? (k=1,2,…)
弦截法的思路為:任取兩個數(shù)x0、x1,求得對應(yīng)的函數(shù)值f(x0)、f(x1)。如果兩函數(shù)值同號,則重新取數(shù),直到這兩個函數(shù)值異號為止。連接(x0,f(x0))與(x1,f(x1))這兩點形成的直線與x軸相交于一點x2,求得對應(yīng)的f(x2),判斷其與f(x0)、f(x1)中的哪個值同號。如f(x2)與f(x0)同號,則f(x2)為新的f(x0),將新的f(x0)與f(x1)連接,如此循環(huán)(如圖3所示)。弦截法在迭代過程中不僅用到前一步xk的函數(shù)值,而且還使用x(k-1)處的函數(shù)值來構(gòu)造迭代函數(shù),這樣做能夠提高迭代的收斂速度。
3 仿真計算
打開軟件進(jìn)入計算分析界面(圖4),點擊菜單欄中的開始按鈕,并選擇換能器基本參數(shù)導(dǎo)入中的自動導(dǎo)入。EXCEL文件中的數(shù)據(jù)為發(fā)射電壓相應(yīng)曲線(以表1所示的發(fā)射電壓響應(yīng)為匹配目標(biāo)),數(shù)據(jù)導(dǎo)入成功后,界面中的信息提示區(qū)將會顯示該EXCEL文件的文件名和存儲路徑和相應(yīng)的進(jìn)度提示信息。
數(shù)據(jù)導(dǎo)入成功后,進(jìn)行分析參數(shù)設(shè)置,將分析的中的模態(tài)擴(kuò)展階數(shù)設(shè)為20,頻率范圍為11kHz—20kHz,步長為1kHz,并將此次需要調(diào)整的參數(shù)設(shè)置為換能器的前輻射頭密度,點擊“開始分析”按鈕,軟件將自動完成分析并將結(jié)果顯示在軟件界面中(如圖5所示)。通過軟件界面中的“振形圖階數(shù)”按鈕也可顯示在各個振動模態(tài)下的振速分布云紋圖及形變圖。
4 結(jié)語
本文針對水聲換能器制備與測試過程中的聲場匹配及參數(shù)反演等問題,利用VS完成了對ANSYS的二次開發(fā),設(shè)計并實現(xiàn)了一種水聲換能器參數(shù)反演軟件。在以換能器某個參數(shù)為考察對象的前提下,通過該軟件在一定誤差范圍內(nèi)可快速地完成仿真聲場與實測聲場之間的匹配,并給出換能器參數(shù)的最佳值。軟件界面友好、性能可靠,為水聲換能器的設(shè)計與測試提供了理論依據(jù)和技術(shù)支持。
參考文獻(xiàn)
[1] 代偉.基于有限元仿真的水聲換能器聲學(xué)性能研究[J].艦船電子工程,2018,38(8):170-172.
[2] 周瑜,涂其捷,楊榮耀,唐建生.壓電水聲換能器寬帶匹配特性研究[J].聲學(xué)技術(shù),2018,37(3):286-281.
[3] 汪建新,鄭小偉,吳啟明.基于VB W型輻射管參數(shù)化建模與仿真的ANSYS二次開發(fā)[J].農(nóng)業(yè)開發(fā)與裝備,2014(2):58-59.
[4] 西宇.基于弦截法的NURBS曲線插補(bǔ)參數(shù)計算[J].自動化與儀器儀表,2018,186(4):191-193.
Design of Parameter Inversion Software Based on ANSYS Secondary Development for Underwater Acoustic Transducer
LI Tao,GENG Peng-fei,YUAN Xiao-juan,TIAN Du-yang
(CSIC Xian Dong Yi Science Technology & Industry Group Co., Ltd., Xian Shaanxi? 710072)
Abstract:The work flow and functions of the software are designed, and the secondary development of ANSYS is realized by research of the interface technology between VS and ANSYS and the macro encapsulation technology of ANSYS. The matching of simulated sound field and measured sound field is completed by chord truncation method, and the parameter inversion function of underwater acoustic transducer is realized, which provides theoretical basis and technical support for the design and test of underwater acoustic transducer.
Key words:the secondary development of ANSYS;chord truncation method;acoustic underwater transducer;parameter inversion