李濤 耿鵬飛 原曉娟 田杜養



摘要:設計了軟件的主要工作流程和功能,研究了VS與ANSYS的接口技術、ANSYS宏封裝技術,實現了ANSYS二次開發;通過弦截法完成了仿真聲場與實測聲場的匹配,實現了水聲換能器參數反演功能,為水聲換能器的設計與測試提供了理論依據與技術支持。
關鍵詞:ANSYS二次開發;弦截法;水聲換能器;參數反演
中圖分類號:TB559 文獻標識碼:A 文章編號:1007-9416(2019)02-0171-03
0 引言
水聲換能器研究涉及材料、電子、結構、機械等綜合領域。國內外分別從功能材料、幾何機構、制作工藝等方面進行研究,以期提高換能器的性能[1]。但是水聲換能器的研制工藝復雜,建模難度大,分析數據量不足,而且在進行聲場仿真時,有限元分析軟件ANSYS [2]的熟練掌握也需要長時間的摸索。
在水聲換能器的研制中由于制備工藝、測試技術等問題,會導致其仿真聲場與實測聲場存在差異。本文以ANSYS的二次開發為基礎[3-4],設計了一種換能器參數反演軟件,給定的水聲換能器的實測聲場為匹配目標,通過迭代算法的應用,不斷調整換能器的相關參數,使仿真聲場在一定誤差范圍內與實測聲場相匹配[5],分析水聲換能器各個部件參數與實測聲場之間的內在關聯,以便為水聲換能器及基陣的研制提供支持。
1 軟件設計
軟件將ANSYS的APDL和VS結合起來,利用前者參數化設計和后者友好交互界面的特點,共同進行ANSYS的二次開發。軟件以給定的水聲換能器的實測聲場參數為匹配目標,通過迭代算法不斷調整換能器自身的相關參數,達到仿真聲場在一定誤差范圍內與實測聲場相匹配的目的。
1.1 工作流程
水聲換能器參數反演軟件的工作流程如圖1所示,具體的流程如下:
數據輸入:通過軟件數據輸入窗口,人工輸入或自動導入有關水聲換能器的幾何參數、材料參數及實測聲場等數據。
實體建模:根據數據輸入所提供的參數,調用有限元軟件建立水聲換能器的三維實體模型,并進行網格劃分。
誤差設置:根據操作人員的需求,設置實測聲場與仿真聲場之間的誤差值,用以控制迭代算法的收斂范圍。
數據仿真:根據所建立的模型,軟件與有限元軟件進行通訊,自動調用有限元軟件完成相應的數據仿真工作,并將相關數據存儲于數據庫中。
性能分析:軟件通過相應的算法將實測數據與仿真數據進行對比,根據誤差范圍,確定收斂與否,并將對比結果存儲于數據庫中。
結果輸出:軟件通過數據表格、曲線及動畫等形式將對比數據輸出,以供操作人員參考。
1.2 模塊設計
根據軟件的主要功能及需求,所設計的模塊主要包括:
數據接口模塊:該模塊主要與數據庫、ANSYS軟件及EXCEL軟件進行通信,通過數據接口可以訪問數據庫,提取相應的有限元模型與計算結果等,為參數的反演提供初始數據。
參數設置模塊:該模塊從數據庫中讀取(人工輸入)各部件的幾何尺寸和材料參數,并調用有限元程序完成換能器的3D實體建模和網格劃分。
誤差設置模塊:該模塊主要用于實測聲場與仿真聲場匹配時的誤差控制,以調整匹配時的精度。
分析求解模塊:該模塊自動加載換能器的工作條件,經選定求解環境后(空氣中、水中),可進行模態分析(振型、諧振頻率計算),據此確定分析的頻率范圍并進行諧響應分析(導納計算、發射電壓響應計算)。
結果顯示模塊:該模塊以曲線、動畫等形式顯示換能器的分析結果,能與實測數據進行對比并將計算結果、動畫以及對比結果以圖、表等形式輸出。
根據軟件的功能模塊,設計了軟件的功能按鈕(如圖2所示),各功能按鈕以樹狀圖的形式呈現,共分為三級菜單,每一級菜單對應不同的功能。
2 功能實現
2.1 VS與ANSYS的接口
實際應用中,Visual Studio調用的是ANSYS的APDL宏文件,具體實現的關鍵技術是VS如何調用ANSYS的APDL宏文件。本軟件將多個換能器的各種分析一次性進行完畢,無需人為進行較為繁瑣的操作,在程序設計方面考慮將兩軟件的接口設計為子函數形式,后臺每進行一次分析調用即可,減少無意義的代碼量。子函數部分代碼如下所示:
//全局函數
int CTASApp::f(char *y1, CString y2) //全局函數定義
{ 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");
此全局函數需要兩個輸入參數,一個是APDL文件所在的文件夾,一個是APDL文件的文件名。通過讀取該APDL文件獲得換能器的參數和分析指令,接下來后臺調用ANSYS軟件進行指令執行,執行結束后可以得到ANSYS軟件生成的各類結果文件。此全局函數中包括了ANSYS的exe文件所在路徑,路徑發生更改時需要及時對其更改,否則將無法調用ANSYS軟件進行分析。
2.2 ANSYS宏的封裝
利用VS軟件對ANSYS軟件進行后臺時需要讀寫APDL語言進行操作,因此將APDL宏封裝在VS軟件可讀的文件中是很有必要的,以下是VS語言對APDL宏的封裝過程。
根據現有的分析類別新建一個txt類型的文件用于存儲APDL宏。ANSYS分析軟件在對換能器進行分析時,首先需要將換能器參數輸入,接下來需要進行一系列的操作才可以得到分析結果。與此相對應,將APDL語言分為數據部分和指令部分兩大模塊,這兩個模塊都需要存儲在APDL宏文件中。在進行相應的分析類型時,分別將換能器的各個參數與對應的變量名相對應,并寫入APDL宏文件數據部分和指令部分兩大模塊中去。部分代碼如下:
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);//將分析序號轉化為字符串
2.3 參數迭代算法
軟件在進行參數迭代時,選用的是弦截法。弦截法是一種不必進行導數運算的求根方法,在計算機編程中常用。為避免計算函數的導數f(xk),使用(f(xk)-f(x(k-1)))/((xk-x(k-1)))來替代牛頓公式中的導數f(xk),便得到迭代公式:
xk+1=xk-(xk-xk-1)? (k=1,2,…)
弦截法的思路為:任取兩個數x0、x1,求得對應的函數值f(x0)、f(x1)。如果兩函數值同號,則重新取數,直到這兩個函數值異號為止。連接(x0,f(x0))與(x1,f(x1))這兩點形成的直線與x軸相交于一點x2,求得對應的f(x2),判斷其與f(x0)、f(x1)中的哪個值同號。如f(x2)與f(x0)同號,則f(x2)為新的f(x0),將新的f(x0)與f(x1)連接,如此循環(如圖3所示)。弦截法在迭代過程中不僅用到前一步xk的函數值,而且還使用x(k-1)處的函數值來構造迭代函數,這樣做能夠提高迭代的收斂速度。
3 仿真計算
打開軟件進入計算分析界面(圖4),點擊菜單欄中的開始按鈕,并選擇換能器基本參數導入中的自動導入。EXCEL文件中的數據為發射電壓相應曲線(以表1所示的發射電壓響應為匹配目標),數據導入成功后,界面中的信息提示區將會顯示該EXCEL文件的文件名和存儲路徑和相應的進度提示信息。
數據導入成功后,進行分析參數設置,將分析的中的模態擴展階數設為20,頻率范圍為11kHz—20kHz,步長為1kHz,并將此次需要調整的參數設置為換能器的前輻射頭密度,點擊“開始分析”按鈕,軟件將自動完成分析并將結果顯示在軟件界面中(如圖5所示)。通過軟件界面中的“振形圖階數”按鈕也可顯示在各個振動模態下的振速分布云紋圖及形變圖。
4 結語
本文針對水聲換能器制備與測試過程中的聲場匹配及參數反演等問題,利用VS完成了對ANSYS的二次開發,設計并實現了一種水聲換能器參數反演軟件。在以換能器某個參數為考察對象的前提下,通過該軟件在一定誤差范圍內可快速地完成仿真聲場與實測聲場之間的匹配,并給出換能器參數的最佳值。軟件界面友好、性能可靠,為水聲換能器的設計與測試提供了理論依據和技術支持。
參考文獻
[1] 代偉.基于有限元仿真的水聲換能器聲學性能研究[J].艦船電子工程,2018,38(8):170-172.
[2] 周瑜,涂其捷,楊榮耀,唐建生.壓電水聲換能器寬帶匹配特性研究[J].聲學技術,2018,37(3):286-281.
[3] 汪建新,鄭小偉,吳啟明.基于VB W型輻射管參數化建模與仿真的ANSYS二次開發[J].農業開發與裝備,2014(2):58-59.
[4] 西宇.基于弦截法的NURBS曲線插補參數計算[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