黃彪, 張中杰, 李明廣, 陳加核, 陳錦劍
(1.上海交通大學 船舶海洋與建筑工程學院, 上海 200240;2.上海市城市建設設計研究總院(集團)有限公司, 上海 200215)
我國是世界上最大的大陸淺源強震活動區,隨著城市地下空間的快速開發,越來越多的軌道交通工程被規劃于高地震烈度區。因此,作為國家生命線工程的主體結構之一,軌道交通的抗震驗算是工程設計環節不可或缺的一部分[1-2]。
我國各行業參照的軌道交通抗震規范主要有《城市軌道交通結構抗震設計規范》(GB50909—2014)與《地下鐵道建筑結構抗震設計規范》(DG/TJ08-2064—2009),兩本規范包含的抗震驗算方法主要有反應位移法、反應加速度法、時程分析法及慣性力法[3-9]。值得注意的是,目前市場上尚無軌道交通地下結構抗震分析軟件,設計人員多需手動建模分析,效率低下、水平也參差不齊;此外,規范僅給出各方法的計算簡圖與公式,設計人員在遇到地質情況復雜的工程時,若完全按照勘察資料進行參數取值,易造成計算結果與實際不符[10-11]。因此,研發一款軌道交通地下結構抗震設計的專用軟件,實現計算分析的輸入參數化與輸出自動化,提高計算效率的同時,又規范化設計人員的抗震驗算流程,可為軌道交通設計的進步做貢獻。
對現有設計規范中地下結構抗震計算方法進行梳理與研究,得到該抗震軟件開發所需的技術路線,如圖1所示。

圖1 軟件開發技術路線圖
該抗震軟件集成了常用3種地下結構形式(矩形框架、圓形盾構隧道、礦山法隧道)與4種計算方法(慣性力法、反應位移法、反應加速度法、時程分析法)。軟件分為前處理、計算與后處理開發三部分。前處理模塊采用C#語言進行開發,為計算模型的參數輸入界面,該界面主要用于讀取用戶輸入的計算參數,主要包括抗震算法參數和結構參數,共計12種組合形式;計算模塊采用ANSYS自帶的APDL命令流進行抗震算法的編寫,根據用戶輸入的參數自動完成有限元建模與計算,并輸出所需計算結果文件[12-13];后處理模塊采用C#語言開發,基于已有的抗震報告模板,將ANSYS計算結果一鍵式導入報告模板生成抗震驗算報告。
上述可知,軟件整體分為三個大模塊:前處理模塊、計算模塊、后處理模塊。前處理模塊需要設計用戶交互界面,供用戶輸入計算參數;計算模塊是整個軟件的核心,根據用戶輸入的參數,調用ANSYS自動化建模,計算,并進行結果的提取;后處理模塊需要將前面提取出來的結果素材編制為計算報告。
前處理模塊和計算模塊之間利用“*.sdmp”文件進行銜接,用戶界面中輸入的參數會被寫入一個臨時的“*.sdmp”文檔,供APDL命令文件“*.sdinp”讀入。當程序調用ANSYS計算時,APDL文件通過“*vread/*sread”命令對“*.sdmp”文檔中的數據進行讀取并完成建模。計算模塊與后處理模塊利用“*.sdr”文件進行銜接,APDL命令文件“*.sdinp”通過“*vwrite”命令對ANSYS的計算結果進行整理并輸出,寫入臨時的“*.sdr”文檔,并采用“/show”命令截取結構受力變形圖,供后處理模塊讀入。最后,后處理模塊通過word二次開發將計算結果導入抗震報告模板中。各模塊間的相關聯與工作流程,如圖2所示。

圖2 各模塊關聯圖
由圖2可知整個軟件操作便捷,極大簡化了用戶有限元建模過程,用戶僅需輸入合理參數即可完成相關計算。其中,前處理模塊主要提供結構類型、計算方法及相關計算參數的選取與輸入;計算模塊用于自動調用ANSYS進行建模與計算,并輸出結果文件;后處理模塊用于將計算結果導入抗震驗算報告。
抗震設計軟件的操作流程圖,如圖3所示。
GDI+圖形界面用于顯示用戶設定的框架結構與土層之間的幾何關系。結構參數與土層參數界面,會根據用于選取的地下結構(框架車站、圓形隧道、礦山隧道)與計算方法(慣性力法、反應位移法、反應加速度法、時程分析法)進行改變,共計12種組合。
前處理模塊包含用戶主界面與12個差異化參數模塊開發。在用戶主界面中,主要提供計算模型(框架車站、圓形隧道、礦山隧道)和計算方法(慣性力法、反應位移法、反應加速度法、時程分析法)的選取,如圖3所示。同時,用戶需提供地下結構抗震計算時的一些基本參數,如設防烈度、場地分類、抗震等級、地震作用等,并選擇臨時計算結果存儲的工作文件夾路徑。
根據用戶選擇的計算模型和計算方法,調用相應的建模界面,所以會有12個不同的建模界面。建模界面主要有三部分組成,一部分是采用GDI+的圖形處理手段,在界面左邊的PictureBox里面繪制模型示意圖,使用戶對模型有一個直觀感受;一部分是根據結構形式制定的參數輸入界面;一部分是根據不同算法制定的參數輸入界面。
完成參數輸入后,生成“*.sdmp”參數文件,便進入計算模塊開發。計算模塊開發,首先需獲取電腦中的系統環境變量,然后根據ANSYS的環境變量特征進行匹配,從而獲取電腦中ANSYS的安裝位置,為后續的調用奠定基礎。檢索電腦中的ANSYS程序的代碼如下。
foreach (DictionaryEntry v in machineVars){
string vName = v.Key.ToString();
// 判斷 1:
if (vName.Equals("ANSYS_SYSDIR",StringComparison.OrdinalIgnoreCase)){
ansysSysDir = v.Value.ToString();
continue;}
//判斷 2:

圖3 軟件流程圖
var mat = reg.Match(vName);
if (mat.Success){
versionNum = mat.Groups[1].Value;
ansysDir = v.Value.ToString();}}
確定ANSYS安裝路徑后,采用Batch批處理調用ANSYS 的APDL命令流文件“*.sdinp”,用于自動建模計算與結果導出。ANSYS的批處理是區別于GUI界面執行有限元分析的方式,批處理執行分析不用顯式模型相關情況,僅在后臺運行,避免了用于可視化顯式的相關資源的應用,速度較GUI界面更快。而且批處理更大的好處是可以通過第三方軟件或者編寫的程序自動執行批處理過程,在二次開發中用的比較多,批處理執行關鍵代碼如下。
string cmd = @"@echo offcd /d " + WorkingDir.WorkingDirectory + " ";
cmd += $"”{ansysExe}” -p ane3flds -dir ”{wkDir}” -j ”{jobName}” -s read -l en-us -b " +$"-i ”{inputFile}” -o ”{outputFile}”";
sw.WriteLine(cmd);
Ansys計算完成后,會在指定目錄下依據APDL命令流生成對應的圖片與計算結果,以反應位移法為例,計算后會生成結構軸力圖、彎矩圖與剪力圖,同時還會根據不同報告需求,將相關荷載、位移數據保存至“*.sdr”文件,便于word二次開發時讀取所需數據。
進一步利用word書簽對報告模板進行數據讀取,主要分為3部分內容:(1)先對所需模板及相關計算數據進行導入;(2)將設定路徑下的圖片插入word報告;(3)將最終計算所得的數據插入word報告對應書簽位置。Word報告二次開發的關鍵代碼如下。
//數據導入
var document = application.Documents.Add(@"D:/SDSS/MidFiles/車站慣性力法1.docx");
string std_file_name1 = Path.Combine(WorkingDir.WorkingDirectory, "Result.sdr");
string[] line1 = File.ReadAllLines(std_file_name1);
//圖片寫入
string picFileName = model.ModelName + "-" + split[0] + "-" + split[1] + ".jpg";
Selection s = application.Selection;
s.InlineShapes.AddPicture(workdinDirName + "" + picFileName);
//計算結果寫入
Dictionary〈string, string〉 map = new Dictionary〈string, string〉(){
{"SheFangLieDuADD1WD",SheFangLieDu.ToString(CultureInfo.CurrentCulture)},};
為了驗證抗震設計軟件的可行性,選取某框架結構的反應位移法算例進行計算分析,結構采用混凝土材料,彈性模量為30 000 MPa;頂板截面為0.8 m×1.0 m,中板截面為0.4 m×1.0 m,底板截面為0.9 m×1.0 m,側墻截面為0. 7 m×1.0 m,中柱截面為0.12 m×0.7 m,土體重度為20 kN/m3,土體動剪切模量為30 000 kPa,土層厚度為50 m,泊松比為0.3,設防地震加速度取0.2 g,切向土彈簧剛度kx為1 667 kN/m3,法向土彈簧剛度ky為5 000 kN/m3。輸入參數后進行求解,如圖4所示。
分析圖(a)可知,中柱的軸力一般大于側墻的軸力,中板與底板的軸力大于上頂板。反應位移法中,底板與左側墻體交點處彎矩顯著增大,彎矩水平遠高于其余結構;同時,底板與右側墻連接處的剪力水平也有所增大,但其水平同其余各處結構差別較小。分析圖(d)可知,由于框架結構被強制施加了位移差,且頂板受到向右的剪切力作用,底板受到向左的剪切力,框架結構的變形表現為平行四邊形狀,上下之間的樓板發生錯動,圖中頂板與底板的位移差約為24 mm。該示例所得的計算結果與人工建模的結果相同,計算結果與反應位移法的結構受力變形特性吻合,進一步說明了該抗震軟件計算結果的合理性[14-15]。
設計人員在軌道交通地下結構抗震設計中多采用手動建模分析,存在效率低下、水平參差不齊、建模不規范等問題,本文針對該問題,開發了一款基于ANSYS的軌道交通地下結構抗震設計軟件。該軟件主要分前處理、計算與后處理三個模塊:前處理采用C#語言完成用戶主界面與12種計算模型參數輸入界面的開發,并生成對應的參數文件;計算模塊調用ANSYS的批處理功能,讀取預編譯的APDL命令流,完成建模、計算與結果導出,并生成結果文件;后處理模塊采用C#完成word二次開發,生成最終的抗震計算報告。
本文開發的軟件具有以下特點:操作簡單,輸入便捷,只需完成參數設定即可;易于推廣應用,采用C#語言進行開發,可直接解壓至安裝window系統的計算機平臺;計算效率高,自動調用ANSYS完成建模,并一鍵式得到所需的抗震驗算報告。最后,結合某地鐵車站框架結構的反應位移法進行示例分析,驗證軟件的可行性與合理性。

(a) 軸力圖(反應位移法)

(b) 彎矩圖(反應位移法)

(c) 剪力圖(反應位移法)

(d) 結構變形圖(反應位移法)