周泉吉 許建聰
1. 上海建工集團工程研究總院 上海 201114;2. 同濟大學 上海 200092
“數字化建造”已成為建筑行業的發展趨勢。有限元虛擬仿真分析作為建筑結構“數字化建造”的重要基石之一,近年來在科研工作以及重大工程中得到了普遍的應用。但先進仿真技術的理論性較強,難以為工程人員所普遍掌握及正確使用,這也大大地限制了其在建筑行業中的實質性推廣。利用通用有限元軟件所提供的二次開發工具,對其進行專業化、功能化、標準化、輕量化定制,從而提高軟件工程性,降低學習成本,并有利于軟件的規范正確使用。
ANSYS因其強大的結構力學分析功能而在結構工程領域備受青睞,并提供了較友好、系統的二次開發環境[1]。針對其在專業化定制、工程化應用、跨系統平臺、多版本兼容等方面的需求[2-5],同時為規避因ANSYS版權限制而導致的研究成果發布問題,有必要對其二次開發的新方法、新模式展開研究。
區別于常規在ANSYS平臺直接進行的嵌入式二次開發,采用非嵌入式的Tcl/Tk、APDL混合編程方法所開發的軟件具備獨立性,使得開發人員能夠規避ANSYS版權問題,同時具有跨系統平臺、多ANSYS版本兼容特性。該方法的實現機制如圖1所示。
Tcl/Tk、APDL混合編程開發過程的一般步驟如下:
1)利用APDL的參數化分析功能,實現對某類具體問題整個分析過程的參數化、程序化描述,結合面向對象編程方法,對整個分析過程逐步建立模塊化的分析宏文件,在確保輸入參數(ParsInput list)的工程化特性前提下,最終建立完備的APDL標準程序宏文件庫。宏文件庫的質量以及運行效率是整個二次開發的核心及關鍵。

圖1 Tcl/Tk、APDL混合編程的實現機制
2)采用Tcl/Tk編寫獨立于ANSYS平臺的第三方軟件,通過提供配置選項,保證用戶可自行將其與所購置的ANSYS軟件進行連接。
3)根據步驟1中所形成的輸入參數列表(ParsInput list)設計并開發GUI,將APDL標準程序宏文件庫加密并分布嵌入到軟件內部。
4)用戶通過GUI完成參數輸入,在運行計算過程中逐步釋放APDL宏片段,并在后臺逐步調用ANSYS,對宏片段進行逐個運行并回收,最終完成整個分析過程并將結果同樣以指定數據格式的文件輸出。
5)采用Tcl/Tk建立結果查看GUI,實現對步驟4計算結果的可視化以及列表打印。
多跨梁靜力分析作為結構力學分析中的典型問題,一般可采用手冊所提供的計算公式及圖表進行手工計算[6]。以此為例,采用上述混合編程方法,介紹其實現機制,并驗證其適用性。
根據第1章中步驟1所述,首先對多跨梁結構靜力分析問題進行參數分析,并建立APDL參數化分析程序,形成具有工程化特性的參數輸入列表。
多跨梁結構的參數化描述如圖2所示,參數列表包括:跨數(N)、各跨對應的長度(Li)。

圖2 多跨梁結構的參數化描述
對多跨梁的結構特征及荷載特征加以分析,建立參數化模型。常規建模流程為:全長建立梁模型→指定位置施加支座→逐一添加荷載。本文基于裝配化建模的思想,對各單跨梁逐個進行模型建立,最后進行組裝,從而更有利于程序的標準化實現。
2000年以來,黔東南州積極貫徹國家關于鼓勵民間資本參與水土保持生態建設的相關政策及精神,引導、扶持、鼓勵民間資本參與開發性治理,加速了項目區水土流失、石漠化治理速度及群眾脫貧致富步伐,較好地破解了地方財力不足對水土保持生態建設制約的難題。2000年以來,黔東南州民間投資43 454.13萬元,治理水土流失面積174.67km2,分別占全州水土流失治理總投資和總面積的27.58%、5.80%。
有限元軟件內置的截面簡化模型與實際截面精確模型存在一定的差異,以I20a型鋼截面為例,其截面尺寸參數及有限元模型如圖3所示。

圖3 I20a型鋼截面尺寸參數及有限元模型示意
I20a型鋼截面特性計算值誤差分析如表1所示。采用自定義方式建立精確模型的計算值與理論值誤差完全可以忽略,而內置截面簡化模型所帶來的誤差已相當可觀,尤其是對于弱軸方向慣性矩的誤差高達20.65%,容易導致三維結構受力分析的錯誤結果。

表1 I20a型鋼截面特性計算值誤差分析
混凝土結構的截面形式簡單,通常為矩形;而型鋼截面形式復雜,參數較多,手動輸入相對繁瑣,且易出錯。根據我國現行鋼結構設計相關手冊及規范[7],對其中典型的截面形式編制精細化模型自動化生成的APDL程序,用戶只需指定截面型號程序,即可自動生成精細化截面模型數據文件。典型截面形式及其參數如表2所示。

表2 常規鋼材的規格及截面尺寸參數
結構分析中常見的荷載模式有集中荷載、均布荷載、三角形荷載、梯形荷載等幾種。各種模式的參數化描述如圖4所示。

圖4 常見荷載模式及其參數化
對于分布荷載,可以統一采用函數表達形式,如圖5所示。本文采用最為一般的荷載函數描述對3種分布荷載進行參數化實現,部分提高了程序實現上的難度,但程序將因此而整潔、規范,調試方便且更具通用性。

圖5 梯形荷載采用荷載函數描述
根據第1章中步驟3所述方法,基于上述多跨梁參數化分析模型,設計開發圖形交互界面(GUI),將APDL標準程序宏文件庫進行加密并分布嵌入到源碼內部進行編譯。Multi-Span Beam Cal v1.0主界面如圖6所示,分別包括Settings(設置)、Run(運行)、RstViewer(結果查看)、Exit(退出)四個選項。

圖6 Multi-Span Beam Cal v1.0主界面
進入Settings界面,如圖7所示。用戶首先需對連續梁跨數(Span Count)進行指定,點擊右側的Apply后下方表單欄,即根據跨數進行自動更新。右側提示窗口提供了一些有關當前設置的信息。隨后用戶對各跨梁的跨度(Span)進行輸入,并對各跨所用材料(MatProps)進行選擇(Steel/Concrete)。

圖7 參數設定窗口
用戶還需對各跨梁截面型號(SectProps)從截面特性庫中進行選擇,如圖8所示。指定截面具體型號后點擊Apply,程序將自動生成該型號截面的精確模型數據文件(.sect)以供后續分析使用。左下側提示窗實時給出了一些輸出提示信息以及當前選中的截面特性參數,右側圖形框給出了截面型號的典型尺寸圖。

圖8 截面選取窗口
用戶需事先對各跨梁上存在的荷載模式進行分解,并對各荷載分解項的分布位置及大小進行指定,如圖9所示。程序還提供了任意自定義的荷載函數qx施加。

圖9 荷載定義窗口
回到主界面點擊Run等待計算完成后,用戶可以通過RstViewer界面對結構的內力、應力及變形云圖進行查看,如圖10所示。同時對連續梁的主要內力、撓度計算結果進行完整的列表輸出,便于用戶查看和編輯。

圖10 結果查看界面
采用建筑結構靜力計算實用手冊[7]中的多跨梁計算公式,分別對集中力、分布力兩類荷載模式下的程序操作性能以及結果的準確性進行測試,2個算例的具體參數如圖11所示。

圖11 多跨梁測試算例計算參數示意
分別采用手冊方法計算以及程序自動計算,對其相關計算結果進行比較,如表3所示。

表3 算例計算結果對比
由表3可以得出,兩者有關內力的計算結果均相差不大,而撓度計算結果卻存在較大偏差。分析其原因在于本程序采用了Timoshenko梁單元,該單元能夠考慮桿件橫向剪切變形的影響,同時工字鋼梁屬于薄壁結構,其截面翹曲變形不可忽略,而手冊計算公式是基于經典梁理論的,對剪切變形、翹曲變形均未作考慮。因此,如果采用一般Euler-Bernoulli梁單元,對截面特性參數進行直接指定而非定義其實際幾何形狀,則此時的撓度計算結果必然與手冊方法的計算結果完全符合。
本文研究了一種非嵌入式的Tcl/Tk、APDL混合編程的實現方法。通過非嵌入式開發,軟件開發人員可以規避ANSYS版權問題,而軟件用戶則需承擔相應的ANSYS版權費用;通過混合編程中的代碼加密內嵌、分段釋放回收等機制,可有效保護開發人員的知識產權;軟件自身將滿足多系統平臺、多ANSYS版本兼容等需求。本文的研究可推動ANSYS二次開發社區的活躍度提升以及有限元軟件的實質性推廣。
采用上述非嵌入式的混合編程方法,結合多跨梁這一典型結構靜力分析問題,實現了Multi-Span Beam Cal v1.0的設計開發,對所提出的混合編程方法的可行性、一般性及實際應用效果進行了驗證,為后續復雜軟件的開發積累了經驗。