周泉吉 許建聰
1. 上海建工集團(tuán)工程研究總院 上海 201114;2. 同濟(jì)大學(xué) 上海 200092
“數(shù)字化建造”已成為建筑行業(yè)的發(fā)展趨勢(shì)。有限元虛擬仿真分析作為建筑結(jié)構(gòu)“數(shù)字化建造”的重要基石之一,近年來在科研工作以及重大工程中得到了普遍的應(yīng)用。但先進(jìn)仿真技術(shù)的理論性較強(qiáng),難以為工程人員所普遍掌握及正確使用,這也大大地限制了其在建筑行業(yè)中的實(shí)質(zhì)性推廣。利用通用有限元軟件所提供的二次開發(fā)工具,對(duì)其進(jìn)行專業(yè)化、功能化、標(biāo)準(zhǔn)化、輕量化定制,從而提高軟件工程性,降低學(xué)習(xí)成本,并有利于軟件的規(guī)范正確使用。
ANSYS因其強(qiáng)大的結(jié)構(gòu)力學(xué)分析功能而在結(jié)構(gòu)工程領(lǐng)域備受青睞,并提供了較友好、系統(tǒng)的二次開發(fā)環(huán)境[1]。針對(duì)其在專業(yè)化定制、工程化應(yīng)用、跨系統(tǒng)平臺(tái)、多版本兼容等方面的需求[2-5],同時(shí)為規(guī)避因ANSYS版權(quán)限制而導(dǎo)致的研究成果發(fā)布問題,有必要對(duì)其二次開發(fā)的新方法、新模式展開研究。
區(qū)別于常規(guī)在ANSYS平臺(tái)直接進(jìn)行的嵌入式二次開發(fā),采用非嵌入式的Tcl/Tk、APDL混合編程方法所開發(fā)的軟件具備獨(dú)立性,使得開發(fā)人員能夠規(guī)避ANSYS版權(quán)問題,同時(shí)具有跨系統(tǒng)平臺(tái)、多ANSYS版本兼容特性。該方法的實(shí)現(xiàn)機(jī)制如圖1所示。
Tcl/Tk、APDL混合編程開發(fā)過程的一般步驟如下:
1)利用APDL的參數(shù)化分析功能,實(shí)現(xiàn)對(duì)某類具體問題整個(gè)分析過程的參數(shù)化、程序化描述,結(jié)合面向?qū)ο缶幊谭椒ǎ瑢?duì)整個(gè)分析過程逐步建立模塊化的分析宏文件,在確保輸入?yún)?shù)(ParsInput list)的工程化特性前提下,最終建立完備的APDL標(biāo)準(zhǔn)程序宏文件庫。宏文件庫的質(zhì)量以及運(yùn)行效率是整個(gè)二次開發(fā)的核心及關(guān)鍵。
圖1 Tcl/Tk、APDL混合編程的實(shí)現(xiàn)機(jī)制
2)采用Tcl/Tk編寫?yīng)毩⒂贏NSYS平臺(tái)的第三方軟件,通過提供配置選項(xiàng),保證用戶可自行將其與所購置的ANSYS軟件進(jìn)行連接。
3)根據(jù)步驟1中所形成的輸入?yún)?shù)列表(ParsInput list)設(shè)計(jì)并開發(fā)GUI,將APDL標(biāo)準(zhǔn)程序宏文件庫加密并分布嵌入到軟件內(nèi)部。
4)用戶通過GUI完成參數(shù)輸入,在運(yùn)行計(jì)算過程中逐步釋放APDL宏片段,并在后臺(tái)逐步調(diào)用ANSYS,對(duì)宏片段進(jìn)行逐個(gè)運(yùn)行并回收,最終完成整個(gè)分析過程并將結(jié)果同樣以指定數(shù)據(jù)格式的文件輸出。
5)采用Tcl/Tk建立結(jié)果查看GUI,實(shí)現(xiàn)對(duì)步驟4計(jì)算結(jié)果的可視化以及列表打印。
多跨梁靜力分析作為結(jié)構(gòu)力學(xué)分析中的典型問題,一般可采用手冊(cè)所提供的計(jì)算公式及圖表進(jìn)行手工計(jì)算[6]。以此為例,采用上述混合編程方法,介紹其實(shí)現(xiàn)機(jī)制,并驗(yàn)證其適用性。
根據(jù)第1章中步驟1所述,首先對(duì)多跨梁結(jié)構(gòu)靜力分析問題進(jìn)行參數(shù)分析,并建立APDL參數(shù)化分析程序,形成具有工程化特性的參數(shù)輸入列表。
多跨梁結(jié)構(gòu)的參數(shù)化描述如圖2所示,參數(shù)列表包括:跨數(shù)(N)、各跨對(duì)應(yīng)的長(zhǎng)度(Li)。
圖2 多跨梁結(jié)構(gòu)的參數(shù)化描述
對(duì)多跨梁的結(jié)構(gòu)特征及荷載特征加以分析,建立參數(shù)化模型。常規(guī)建模流程為:全長(zhǎng)建立梁模型→指定位置施加支座→逐一添加荷載。本文基于裝配化建模的思想,對(duì)各單跨梁逐個(gè)進(jìn)行模型建立,最后進(jìn)行組裝,從而更有利于程序的標(biāo)準(zhǔn)化實(shí)現(xiàn)。
2000年以來,黔東南州積極貫徹國家關(guān)于鼓勵(lì)民間資本參與水土保持生態(tài)建設(shè)的相關(guān)政策及精神,引導(dǎo)、扶持、鼓勵(lì)民間資本參與開發(fā)性治理,加速了項(xiàng)目區(qū)水土流失、石漠化治理速度及群眾脫貧致富步伐,較好地破解了地方財(cái)力不足對(duì)水土保持生態(tài)建設(shè)制約的難題。2000年以來,黔東南州民間投資43 454.13萬元,治理水土流失面積174.67km2,分別占全州水土流失治理總投資和總面積的27.58%、5.80%。
有限元軟件內(nèi)置的截面簡(jiǎn)化模型與實(shí)際截面精確模型存在一定的差異,以I20a型鋼截面為例,其截面尺寸參數(shù)及有限元模型如圖3所示。
圖3 I20a型鋼截面尺寸參數(shù)及有限元模型示意
I20a型鋼截面特性計(jì)算值誤差分析如表1所示。采用自定義方式建立精確模型的計(jì)算值與理論值誤差完全可以忽略,而內(nèi)置截面簡(jiǎn)化模型所帶來的誤差已相當(dāng)可觀,尤其是對(duì)于弱軸方向慣性矩的誤差高達(dá)20.65%,容易導(dǎo)致三維結(jié)構(gòu)受力分析的錯(cuò)誤結(jié)果。
表1 I20a型鋼截面特性計(jì)算值誤差分析
混凝土結(jié)構(gòu)的截面形式簡(jiǎn)單,通常為矩形;而型鋼截面形式復(fù)雜,參數(shù)較多,手動(dòng)輸入相對(duì)繁瑣,且易出錯(cuò)。根據(jù)我國現(xiàn)行鋼結(jié)構(gòu)設(shè)計(jì)相關(guān)手冊(cè)及規(guī)范[7],對(duì)其中典型的截面形式編制精細(xì)化模型自動(dòng)化生成的APDL程序,用戶只需指定截面型號(hào)程序,即可自動(dòng)生成精細(xì)化截面模型數(shù)據(jù)文件。典型截面形式及其參數(shù)如表2所示。
表2 常規(guī)鋼材的規(guī)格及截面尺寸參數(shù)
結(jié)構(gòu)分析中常見的荷載模式有集中荷載、均布荷載、三角形荷載、梯形荷載等幾種。各種模式的參數(shù)化描述如圖4所示。
圖4 常見荷載模式及其參數(shù)化
對(duì)于分布荷載,可以統(tǒng)一采用函數(shù)表達(dá)形式,如圖5所示。本文采用最為一般的荷載函數(shù)描述對(duì)3種分布荷載進(jìn)行參數(shù)化實(shí)現(xiàn),部分提高了程序?qū)崿F(xiàn)上的難度,但程序?qū)⒁虼硕麧?、?guī)范,調(diào)試方便且更具通用性。
圖5 梯形荷載采用荷載函數(shù)描述
根據(jù)第1章中步驟3所述方法,基于上述多跨梁參數(shù)化分析模型,設(shè)計(jì)開發(fā)圖形交互界面(GUI),將APDL標(biāo)準(zhǔn)程序宏文件庫進(jìn)行加密并分布嵌入到源碼內(nèi)部進(jìn)行編譯。Multi-Span Beam Cal v1.0主界面如圖6所示,分別包括Settings(設(shè)置)、Run(運(yùn)行)、RstViewer(結(jié)果查看)、Exit(退出)四個(gè)選項(xiàng)。
圖6 Multi-Span Beam Cal v1.0主界面
進(jìn)入Settings界面,如圖7所示。用戶首先需對(duì)連續(xù)梁跨數(shù)(Span Count)進(jìn)行指定,點(diǎn)擊右側(cè)的Apply后下方表單欄,即根據(jù)跨數(shù)進(jìn)行自動(dòng)更新。右側(cè)提示窗口提供了一些有關(guān)當(dāng)前設(shè)置的信息。隨后用戶對(duì)各跨梁的跨度(Span)進(jìn)行輸入,并對(duì)各跨所用材料(MatProps)進(jìn)行選擇(Steel/Concrete)。
圖7 參數(shù)設(shè)定窗口
用戶還需對(duì)各跨梁截面型號(hào)(SectProps)從截面特性庫中進(jìn)行選擇,如圖8所示。指定截面具體型號(hào)后點(diǎn)擊Apply,程序?qū)⒆詣?dòng)生成該型號(hào)截面的精確模型數(shù)據(jù)文件(.sect)以供后續(xù)分析使用。左下側(cè)提示窗實(shí)時(shí)給出了一些輸出提示信息以及當(dāng)前選中的截面特性參數(shù),右側(cè)圖形框給出了截面型號(hào)的典型尺寸圖。
圖8 截面選取窗口
用戶需事先對(duì)各跨梁上存在的荷載模式進(jìn)行分解,并對(duì)各荷載分解項(xiàng)的分布位置及大小進(jìn)行指定,如圖9所示。程序還提供了任意自定義的荷載函數(shù)qx施加。
圖9 荷載定義窗口
回到主界面點(diǎn)擊Run等待計(jì)算完成后,用戶可以通過RstViewer界面對(duì)結(jié)構(gòu)的內(nèi)力、應(yīng)力及變形云圖進(jìn)行查看,如圖10所示。同時(shí)對(duì)連續(xù)梁的主要內(nèi)力、撓度計(jì)算結(jié)果進(jìn)行完整的列表輸出,便于用戶查看和編輯。
圖10 結(jié)果查看界面
采用建筑結(jié)構(gòu)靜力計(jì)算實(shí)用手冊(cè)[7]中的多跨梁計(jì)算公式,分別對(duì)集中力、分布力兩類荷載模式下的程序操作性能以及結(jié)果的準(zhǔn)確性進(jìn)行測(cè)試,2個(gè)算例的具體參數(shù)如圖11所示。
圖11 多跨梁測(cè)試算例計(jì)算參數(shù)示意
分別采用手冊(cè)方法計(jì)算以及程序自動(dòng)計(jì)算,對(duì)其相關(guān)計(jì)算結(jié)果進(jìn)行比較,如表3所示。
表3 算例計(jì)算結(jié)果對(duì)比
由表3可以得出,兩者有關(guān)內(nèi)力的計(jì)算結(jié)果均相差不大,而撓度計(jì)算結(jié)果卻存在較大偏差。分析其原因在于本程序采用了Timoshenko梁?jiǎn)卧搯卧軌蚩紤]桿件橫向剪切變形的影響,同時(shí)工字鋼梁屬于薄壁結(jié)構(gòu),其截面翹曲變形不可忽略,而手冊(cè)計(jì)算公式是基于經(jīng)典梁理論的,對(duì)剪切變形、翹曲變形均未作考慮。因此,如果采用一般Euler-Bernoulli梁?jiǎn)卧瑢?duì)截面特性參數(shù)進(jìn)行直接指定而非定義其實(shí)際幾何形狀,則此時(shí)的撓度計(jì)算結(jié)果必然與手冊(cè)方法的計(jì)算結(jié)果完全符合。
本文研究了一種非嵌入式的Tcl/Tk、APDL混合編程的實(shí)現(xiàn)方法。通過非嵌入式開發(fā),軟件開發(fā)人員可以規(guī)避ANSYS版權(quán)問題,而軟件用戶則需承擔(dān)相應(yīng)的ANSYS版權(quán)費(fèi)用;通過混合編程中的代碼加密內(nèi)嵌、分段釋放回收等機(jī)制,可有效保護(hù)開發(fā)人員的知識(shí)產(chǎn)權(quán);軟件自身將滿足多系統(tǒng)平臺(tái)、多ANSYS版本兼容等需求。本文的研究可推動(dòng)ANSYS二次開發(fā)社區(qū)的活躍度提升以及有限元軟件的實(shí)質(zhì)性推廣。
采用上述非嵌入式的混合編程方法,結(jié)合多跨梁這一典型結(jié)構(gòu)靜力分析問題,實(shí)現(xiàn)了Multi-Span Beam Cal v1.0的設(shè)計(jì)開發(fā),對(duì)所提出的混合編程方法的可行性、一般性及實(shí)際應(yīng)用效果進(jìn)行了驗(yàn)證,為后續(xù)復(fù)雜軟件的開發(fā)積累了經(jīng)驗(yàn)。