黃彪, 張中杰, 李明廣, 陳加核, 陳錦劍
(1.上海交通大學(xué) 船舶海洋與建筑工程學(xué)院, 上海 200240;2.上海市城市建設(shè)設(shè)計(jì)研究總院(集團(tuán))有限公司, 上海 200215)
我國(guó)是世界上最大的大陸淺源強(qiáng)震活動(dòng)區(qū),隨著城市地下空間的快速開(kāi)發(fā),越來(lái)越多的軌道交通工程被規(guī)劃于高地震烈度區(qū)。因此,作為國(guó)家生命線(xiàn)工程的主體結(jié)構(gòu)之一,軌道交通的抗震驗(yàn)算是工程設(shè)計(jì)環(huán)節(jié)不可或缺的一部分[1-2]。
我國(guó)各行業(yè)參照的軌道交通抗震規(guī)范主要有《城市軌道交通結(jié)構(gòu)抗震設(shè)計(jì)規(guī)范》(GB50909—2014)與《地下鐵道建筑結(jié)構(gòu)抗震設(shè)計(jì)規(guī)范》(DG/TJ08-2064—2009),兩本規(guī)范包含的抗震驗(yàn)算方法主要有反應(yīng)位移法、反應(yīng)加速度法、時(shí)程分析法及慣性力法[3-9]。值得注意的是,目前市場(chǎng)上尚無(wú)軌道交通地下結(jié)構(gòu)抗震分析軟件,設(shè)計(jì)人員多需手動(dòng)建模分析,效率低下、水平也參差不齊;此外,規(guī)范僅給出各方法的計(jì)算簡(jiǎn)圖與公式,設(shè)計(jì)人員在遇到地質(zhì)情況復(fù)雜的工程時(shí),若完全按照勘察資料進(jìn)行參數(shù)取值,易造成計(jì)算結(jié)果與實(shí)際不符[10-11]。因此,研發(fā)一款軌道交通地下結(jié)構(gòu)抗震設(shè)計(jì)的專(zhuān)用軟件,實(shí)現(xiàn)計(jì)算分析的輸入?yún)?shù)化與輸出自動(dòng)化,提高計(jì)算效率的同時(shí),又規(guī)范化設(shè)計(jì)人員的抗震驗(yàn)算流程,可為軌道交通設(shè)計(jì)的進(jìn)步做貢獻(xiàn)。
對(duì)現(xiàn)有設(shè)計(jì)規(guī)范中地下結(jié)構(gòu)抗震計(jì)算方法進(jìn)行梳理與研究,得到該抗震軟件開(kāi)發(fā)所需的技術(shù)路線(xiàn),如圖1所示。
圖1 軟件開(kāi)發(fā)技術(shù)路線(xiàn)圖
該抗震軟件集成了常用3種地下結(jié)構(gòu)形式(矩形框架、圓形盾構(gòu)隧道、礦山法隧道)與4種計(jì)算方法(慣性力法、反應(yīng)位移法、反應(yīng)加速度法、時(shí)程分析法)。軟件分為前處理、計(jì)算與后處理開(kāi)發(fā)三部分。前處理模塊采用C#語(yǔ)言進(jìn)行開(kāi)發(fā),為計(jì)算模型的參數(shù)輸入界面,該界面主要用于讀取用戶(hù)輸入的計(jì)算參數(shù),主要包括抗震算法參數(shù)和結(jié)構(gòu)參數(shù),共計(jì)12種組合形式;計(jì)算模塊采用ANSYS自帶的APDL命令流進(jìn)行抗震算法的編寫(xiě),根據(jù)用戶(hù)輸入的參數(shù)自動(dòng)完成有限元建模與計(jì)算,并輸出所需計(jì)算結(jié)果文件[12-13];后處理模塊采用C#語(yǔ)言開(kāi)發(fā),基于已有的抗震報(bào)告模板,將ANSYS計(jì)算結(jié)果一鍵式導(dǎo)入報(bào)告模板生成抗震驗(yàn)算報(bào)告。
上述可知,軟件整體分為三個(gè)大模塊:前處理模塊、計(jì)算模塊、后處理模塊。前處理模塊需要設(shè)計(jì)用戶(hù)交互界面,供用戶(hù)輸入計(jì)算參數(shù);計(jì)算模塊是整個(gè)軟件的核心,根據(jù)用戶(hù)輸入的參數(shù),調(diào)用ANSYS自動(dòng)化建模,計(jì)算,并進(jìn)行結(jié)果的提??;后處理模塊需要將前面提取出來(lái)的結(jié)果素材編制為計(jì)算報(bào)告。
前處理模塊和計(jì)算模塊之間利用“*.sdmp”文件進(jìn)行銜接,用戶(hù)界面中輸入的參數(shù)會(huì)被寫(xiě)入一個(gè)臨時(shí)的“*.sdmp”文檔,供APDL命令文件“*.sdinp”讀入。當(dāng)程序調(diào)用ANSYS計(jì)算時(shí),APDL文件通過(guò)“*vread/*sread”命令對(duì)“*.sdmp”文檔中的數(shù)據(jù)進(jìn)行讀取并完成建模。計(jì)算模塊與后處理模塊利用“*.sdr”文件進(jìn)行銜接,APDL命令文件“*.sdinp”通過(guò)“*vwrite”命令對(duì)ANSYS的計(jì)算結(jié)果進(jìn)行整理并輸出,寫(xiě)入臨時(shí)的“*.sdr”文檔,并采用“/show”命令截取結(jié)構(gòu)受力變形圖,供后處理模塊讀入。最后,后處理模塊通過(guò)word二次開(kāi)發(fā)將計(jì)算結(jié)果導(dǎo)入抗震報(bào)告模板中。各模塊間的相關(guān)聯(lián)與工作流程,如圖2所示。
圖2 各模塊關(guān)聯(lián)圖
由圖2可知整個(gè)軟件操作便捷,極大簡(jiǎn)化了用戶(hù)有限元建模過(guò)程,用戶(hù)僅需輸入合理參數(shù)即可完成相關(guān)計(jì)算。其中,前處理模塊主要提供結(jié)構(gòu)類(lèi)型、計(jì)算方法及相關(guān)計(jì)算參數(shù)的選取與輸入;計(jì)算模塊用于自動(dòng)調(diào)用ANSYS進(jìn)行建模與計(jì)算,并輸出結(jié)果文件;后處理模塊用于將計(jì)算結(jié)果導(dǎo)入抗震驗(yàn)算報(bào)告。
抗震設(shè)計(jì)軟件的操作流程圖,如圖3所示。
GDI+圖形界面用于顯示用戶(hù)設(shè)定的框架結(jié)構(gòu)與土層之間的幾何關(guān)系。結(jié)構(gòu)參數(shù)與土層參數(shù)界面,會(huì)根據(jù)用于選取的地下結(jié)構(gòu)(框架車(chē)站、圓形隧道、礦山隧道)與計(jì)算方法(慣性力法、反應(yīng)位移法、反應(yīng)加速度法、時(shí)程分析法)進(jìn)行改變,共計(jì)12種組合。
前處理模塊包含用戶(hù)主界面與12個(gè)差異化參數(shù)模塊開(kāi)發(fā)。在用戶(hù)主界面中,主要提供計(jì)算模型(框架車(chē)站、圓形隧道、礦山隧道)和計(jì)算方法(慣性力法、反應(yīng)位移法、反應(yīng)加速度法、時(shí)程分析法)的選取,如圖3所示。同時(shí),用戶(hù)需提供地下結(jié)構(gòu)抗震計(jì)算時(shí)的一些基本參數(shù),如設(shè)防烈度、場(chǎng)地分類(lèi)、抗震等級(jí)、地震作用等,并選擇臨時(shí)計(jì)算結(jié)果存儲(chǔ)的工作文件夾路徑。
根據(jù)用戶(hù)選擇的計(jì)算模型和計(jì)算方法,調(diào)用相應(yīng)的建模界面,所以會(huì)有12個(gè)不同的建模界面。建模界面主要有三部分組成,一部分是采用GDI+的圖形處理手段,在界面左邊的PictureBox里面繪制模型示意圖,使用戶(hù)對(duì)模型有一個(gè)直觀感受;一部分是根據(jù)結(jié)構(gòu)形式制定的參數(shù)輸入界面;一部分是根據(jù)不同算法制定的參數(shù)輸入界面。
完成參數(shù)輸入后,生成“*.sdmp”參數(shù)文件,便進(jìn)入計(jì)算模塊開(kāi)發(fā)。計(jì)算模塊開(kāi)發(fā),首先需獲取電腦中的系統(tǒng)環(huán)境變量,然后根據(jù)ANSYS的環(huán)境變量特征進(jìn)行匹配,從而獲取電腦中ANSYS的安裝位置,為后續(xù)的調(diào)用奠定基礎(chǔ)。檢索電腦中的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批處理調(diào)用ANSYS 的APDL命令流文件“*.sdinp”,用于自動(dòng)建模計(jì)算與結(jié)果導(dǎo)出。ANSYS的批處理是區(qū)別于GUI界面執(zhí)行有限元分析的方式,批處理執(zhí)行分析不用顯式模型相關(guān)情況,僅在后臺(tái)運(yùn)行,避免了用于可視化顯式的相關(guān)資源的應(yīng)用,速度較GUI界面更快。而且批處理更大的好處是可以通過(guò)第三方軟件或者編寫(xiě)的程序自動(dòng)執(zhí)行批處理過(guò)程,在二次開(kāi)發(fā)中用的比較多,批處理執(zhí)行關(guān)鍵代碼如下。
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計(jì)算完成后,會(huì)在指定目錄下依據(jù)APDL命令流生成對(duì)應(yīng)的圖片與計(jì)算結(jié)果,以反應(yīng)位移法為例,計(jì)算后會(huì)生成結(jié)構(gòu)軸力圖、彎矩圖與剪力圖,同時(shí)還會(huì)根據(jù)不同報(bào)告需求,將相關(guān)荷載、位移數(shù)據(jù)保存至“*.sdr”文件,便于word二次開(kāi)發(fā)時(shí)讀取所需數(shù)據(jù)。
進(jìn)一步利用word書(shū)簽對(duì)報(bào)告模板進(jìn)行數(shù)據(jù)讀取,主要分為3部分內(nèi)容:(1)先對(duì)所需模板及相關(guān)計(jì)算數(shù)據(jù)進(jìn)行導(dǎo)入;(2)將設(shè)定路徑下的圖片插入word報(bào)告;(3)將最終計(jì)算所得的數(shù)據(jù)插入word報(bào)告對(duì)應(yīng)書(shū)簽位置。Word報(bào)告二次開(kāi)發(fā)的關(guān)鍵代碼如下。
//數(shù)據(jù)導(dǎo)入
var document = application.Documents.Add(@"D:/SDSS/MidFiles/車(chē)站慣性力法1.docx");
string std_file_name1 = Path.Combine(WorkingDir.WorkingDirectory, "Result.sdr");
string[] line1 = File.ReadAllLines(std_file_name1);
//圖片寫(xiě)入
string picFileName = model.ModelName + "-" + split[0] + "-" + split[1] + ".jpg";
Selection s = application.Selection;
s.InlineShapes.AddPicture(workdinDirName + "" + picFileName);
//計(jì)算結(jié)果寫(xiě)入
Dictionary〈string, string〉 map = new Dictionary〈string, string〉(){
{"SheFangLieDuADD1WD",SheFangLieDu.ToString(CultureInfo.CurrentCulture)},};
為了驗(yàn)證抗震設(shè)計(jì)軟件的可行性,選取某框架結(jié)構(gòu)的反應(yīng)位移法算例進(jìn)行計(jì)算分析,結(jié)構(gòu)采用混凝土材料,彈性模量為30 000 MPa;頂板截面為0.8 m×1.0 m,中板截面為0.4 m×1.0 m,底板截面為0.9 m×1.0 m,側(cè)墻截面為0. 7 m×1.0 m,中柱截面為0.12 m×0.7 m,土體重度為20 kN/m3,土體動(dòng)剪切模量為30 000 kPa,土層厚度為50 m,泊松比為0.3,設(shè)防地震加速度取0.2 g,切向土彈簧剛度kx為1 667 kN/m3,法向土彈簧剛度ky為5 000 kN/m3。輸入?yún)?shù)后進(jìn)行求解,如圖4所示。
分析圖(a)可知,中柱的軸力一般大于側(cè)墻的軸力,中板與底板的軸力大于上頂板。反應(yīng)位移法中,底板與左側(cè)墻體交點(diǎn)處彎矩顯著增大,彎矩水平遠(yuǎn)高于其余結(jié)構(gòu);同時(shí),底板與右側(cè)墻連接處的剪力水平也有所增大,但其水平同其余各處結(jié)構(gòu)差別較小。分析圖(d)可知,由于框架結(jié)構(gòu)被強(qiáng)制施加了位移差,且頂板受到向右的剪切力作用,底板受到向左的剪切力,框架結(jié)構(gòu)的變形表現(xiàn)為平行四邊形狀,上下之間的樓板發(fā)生錯(cuò)動(dòng),圖中頂板與底板的位移差約為24 mm。該示例所得的計(jì)算結(jié)果與人工建模的結(jié)果相同,計(jì)算結(jié)果與反應(yīng)位移法的結(jié)構(gòu)受力變形特性吻合,進(jìn)一步說(shuō)明了該抗震軟件計(jì)算結(jié)果的合理性[14-15]。
設(shè)計(jì)人員在軌道交通地下結(jié)構(gòu)抗震設(shè)計(jì)中多采用手動(dòng)建模分析,存在效率低下、水平參差不齊、建模不規(guī)范等問(wèn)題,本文針對(duì)該問(wèn)題,開(kāi)發(fā)了一款基于ANSYS的軌道交通地下結(jié)構(gòu)抗震設(shè)計(jì)軟件。該軟件主要分前處理、計(jì)算與后處理三個(gè)模塊:前處理采用C#語(yǔ)言完成用戶(hù)主界面與12種計(jì)算模型參數(shù)輸入界面的開(kāi)發(fā),并生成對(duì)應(yīng)的參數(shù)文件;計(jì)算模塊調(diào)用ANSYS的批處理功能,讀取預(yù)編譯的APDL命令流,完成建模、計(jì)算與結(jié)果導(dǎo)出,并生成結(jié)果文件;后處理模塊采用C#完成word二次開(kāi)發(fā),生成最終的抗震計(jì)算報(bào)告。
本文開(kāi)發(fā)的軟件具有以下特點(diǎn):操作簡(jiǎn)單,輸入便捷,只需完成參數(shù)設(shè)定即可;易于推廣應(yīng)用,采用C#語(yǔ)言進(jìn)行開(kāi)發(fā),可直接解壓至安裝window系統(tǒng)的計(jì)算機(jī)平臺(tái);計(jì)算效率高,自動(dòng)調(diào)用ANSYS完成建模,并一鍵式得到所需的抗震驗(yàn)算報(bào)告。最后,結(jié)合某地鐵車(chē)站框架結(jié)構(gòu)的反應(yīng)位移法進(jìn)行示例分析,驗(yàn)證軟件的可行性與合理性。
(a) 軸力圖(反應(yīng)位移法)
(b) 彎矩圖(反應(yīng)位移法)
(c) 剪力圖(反應(yīng)位移法)
(d) 結(jié)構(gòu)變形圖(反應(yīng)位移法)