基于FLAC3D的地下硐室通道錨網噴支護分析

0 前言

    巖土工程中常用的數值計算方法主要有有限元法、有限差分法和離散元法等,今天我們要用到的FLAC3D軟件采用的就是有限差分法。有限差分法歷史悠久,其最初的使用甚至可以追溯的第一臺電子計算機出現之前。有限差分法并不是為了電腦編程而出現的,而是計算機使用者后來發現有限差分法易于編程實現,使得有限差分法在數值計算領域得到不斷推廣和進一步發展。

    越是彌足珍貴的軟件,外表看上去,往往越是平常無奇,仿真模擬給全身心帶來的幸福,從來也是如此。                                                       --指尖上的仿真

FLAC3D軟件主要用于解決巖土工程問題,由美國的ITASCA公司開發。ITASCA1981年由美國明尼蘇達大學5位教師聯合創辦的巖石力學技術機構,這些創始人當初在北美首創了巖石力學學科,并組織創立了國際巖石力學學會,因此,在業界ITASCA被認為是世界巖石力學學科發源地之一。

接下來介紹一下我們要解決的問題,就是地下硐室或通道結構的錨網噴支護問題。地下硐室或者通道開挖后引起地層內應力的重新分布,面臨穩定性風險,因此需要及時支護,而錨網噴就是常用的方法之一。錨網噴支護方法自上世紀60年代以來,已被廣泛采用。錨桿和噴射混凝土與圍巖共同形成一個承載結構,可有效地限制圍巖變形的自由發展,調整圍巖的應力分布,防止巖體松散墜落。它既可以用作施工過程中的臨時支護,也可以在圍巖穩定性較好情況下,代替永久支護或襯砌。該方法在煤礦巷道、地下硐室和公路隧道中都有廣泛應用。錨網噴支護的實景照片和某設計圖如圖12所示。

002.png

由于支護結構數量多,支護構件間存在復雜的相互作用,對支護有效性的分析多借助數值仿真方法進行。目前絕大多數數值計算軟件并沒有直接的相應內置單元來模擬錨桿,而FLAC3D內置了cable單元用于模擬錨桿或錨索支護結構,同時其強大的Fish語言允許用戶通過編程實現大量錨桿的自動創建、連接的建立、屬性參數的設置等工作,代碼一旦編寫完成只需少量修改即可反復使用,可以分析不同支護參數下的支護效果以便進行參數優化。

本文作者之前在國內兩家著名仿真論壇公布了錨網噴支護的部分代碼,獲得了大量的點擊和關注,當時公布的代碼已經進行了簡化,并未公開其中錨桿與噴層混凝土間連接的相關操作。在本文中,將較詳細的介紹該結構單元節點上的連接的自動刪除和新建方法,并公開相應的核心計算代碼,該部分內容對于在模擬中獲得真實的支護效果非常重要。

本文在接下來的第1節將介紹FLAC3D中結構單元的部分基礎知識,尤其是單元間連接建立的一般方法,然后介紹在需要建立大量連接時,如何利用內置函數實現連接的建立。在第二節將介紹一個實例,在實例中具體演示連接的自動建立。第三節將給出該實例對應的完整代碼。有了前面各節的鋪墊,讀者將更容易理解和掌握第三節的代碼。

1 FLAC3D中連接的建立

1.1 基礎介紹

FLAC3D中的結構單元主要包括:錨桿(錨索)單元(cable)、梁單元(beam)、殼體單元(shell)、襯砌單元(liner)和土工格柵(geogrid)。這些結構單元一般在普通實體單元(zone)表面(圖3)或內部建立(圖4),結構單元在創建時單元節點(node)會自動與鄰近的實體單元建立連接(link)以實現與周圍實體單元的相互作用。結構單元的單元與單元之間也通過節點(node)上的link實現共同作用。因此,link有兩種類型,即:節點-實體單元(node-zone)(圖4)、節點-節點(node-node)。默認情況下不同類型結構單元各自由度的link的類型,如表1所示:

003.png

004.png

其中,freerigid分別表示該自由度上可以自由位移和剛性的,SY代表剪切屈服彈簧,NY代表法向屈服彈簧,PY代表樁屈服,PYDP代表依賴彈簧的樁屈服。

當有新的結構單元被創建時,會有新的節點出現在實體單元表面或內部,新的節點與實體單元間會按照表1中的默認屬性自動建立node-zone連接,進而實現結構單元與實體單元間的相互作用。也就是說,結構單元與實體單元間的相互作用是通過node-zone連接實現的。

1.2 cableliner的連接

在后面的建模中會利用cable單元模擬錨桿,用liner單元模擬含鋼筋網片的混凝土噴層,因此,在此以cableliner的連接,演示結構單元間node-node連接的建立方法。

如圖6所示的cableliner單元,圖中紫色圓圈代表結構單元的node,圓圈內數字表示節點編號,這些編號是結構單元被創建時自動分配的。圖中節點57和節點69被拉開了距離,主要是方便觀察節點編號,實際建模時兩個node是重合的。需要注意的是:結構單元在被創建時,其節點會自動與鄰近的zone按表1的屬性建立連接,兩個結構單元的節點即使重合也不會自動建立連接。

因此,節點69和節點57都與liner后的實體單元(zone)自動建立了連接。在人為建立節點69和節點57間的連接前需要人為的刪除節點與zone自動建立的連接。但連接的刪除需要知道linkID。命令清單提供了連接刪除和建立的方法。

005.png

006.png

從上述代碼可以看出兩個node間的連接就需要多行代碼才能完成,涉及兩個link的刪除,1個新link的建立以及屬性的設置多個過程,尤其是當創建的連接很多時無法每個節點都通過print來人為的觀察確定linkID,這個過程過于繁瑣。所以當需要刪除和創建的link數量多時,必須利用FLAC3D內置的Fish語言,通過內置函數來完成相關操作。

    一個成功的分析師,并不只依賴好的軟件,更仰仗厚重的經驗。

                                                        --指尖上的仿真

一個好的模擬分析,不是所有的操作都依靠鼠標,而更依賴于鍵盤。很多工作,寫好代碼就讓它自己去算吧……

1.3 通過Fish刪除指定坐標處liner節點的link

采用如下代碼完成與cable外端節點重合的節點的定位、link的確定以及link的刪除。

008.png

    代碼片段2中,nd_near(_x0, _y0, _z0)獲得指向位置(_x0, _y0, _z0)處的節點的指針(圖7中指針1), nd_link(_ndLPTR)則是根據節點指針獲得指向該節點的link的指針(圖7中指針2),此處的link是liner與鄰近的zone間自動建立的連接。lk_id(_lkPTR)則根據指針2獲得link的ID。命令:sel delete link range id _linkID 根據link的ID刪除該link。nd_id(_ndLPTR)根據指向位置(_x0, _y0, _z0)處的節點的指針1獲得該節點的ID。

009.png

1.4 刪除靠近liner的錨桿節點的link

    刪除錨桿最外側靠近liner的節點上的link,Fish代碼如下:

010.png

在上述代碼中,由s_near(_x1, _y1, _z1)獲得指向指定坐標位置處的結構單元的指針,即獲得指向cable單元的指針,再由該指針獲得該結構單元的cid,然后按照FLAC3D生成cable單元的編號特征,獲得靠近liner的一個節段的cable單元的cid號,再由該cid號通過s_find函數獲得指向靠近liner處的cable單元的指針,由該指針通過s_node函數獲得單元的第一個節點的指針,由該指針通過nd_id函數獲得節點的ID。整個過程相對比較復雜,可以參考圖8進行理解。從圖8中圍巖內最內側的錨桿節點坐標(_x1, _y1, _z1)開始,沿著箭頭的方向利用適當的fish函數,最終可以獲得錨桿最外側節點的id。之后刪除這個節點創建時自動建立的link(對應命令:sel delete link range id _linkID)。

011.png

上面的代碼看得頭暈,有木有?這個可以有。慢慢理解吧,話說我在寫這個代碼時也是犧牲了很多腦細胞的。為什么這么繞呢?是因為linernodecablenode在錨桿的最外側節點(_x0, _y0, _z0)處重合了。通過nd_near(_x0, _y0, _z0)函數只能獲得重合位置處一個節點的指針,無法同時獲得另外一個節點的指針。nd_near()函數在重合的2node處是返回哪個node的指針,主要根據node的創建順序,同一位置處的多個node,哪個先創建的,nd_near()返回指向它的指針。在本文的分析中,liner始終先于cable創建,所以可以利用nd_near()獲得處liner的節點的指針。而同一位置處cable節點的指針則需要如圖8中那樣,通過最內側的錨桿結構單元利用fish函數向外找到最外側的節點。

1.5 建立cable節點與liner節點間的link

建立cable節點與liner節點間的link并設置link屬性,代碼如下:

012.png

到此,我們就完成了錨桿與襯砌結構單元間在重疊的節點處刪除各自原有連接、新建node-node連接并設置相應屬性這一最困難的工作。

2 應用實例

接下來將以一個煤礦巷道錨網噴支護的實例來演示上述結構單元link相應操作的實現。某煤礦巷道,其斷面形式為直墻半圓拱型,混凝土噴層和錨桿的布置方式與圖9中接近。錨桿加固的作用是提供局部抵抗巖塊滑動及裂縫開展的剛度。錨桿借助于水泥漿或樹脂藥卷沿其長度方向提供了抗剪能力。錨桿及錨索采用cable單元進行模擬。

013.png

計算模型的邊界條件主要采用位移邊界條件:在模型底邊施加豎向位移約束,在模型左右豎向邊界面施加水平位移約束,在模型的前后豎向邊界面施加前后的水平位移約束。在FLAC3D中,位移邊界的實現是通過約束指定范圍內網格節點(gridpoint)的速度實現的。

地應力主要包括自重應力和構造應力在巖體上產生的初始應力狀態。結合淮南地區深部地應力的特點,取豎向應力和水平應力相等,數值按巖體自重應力換算而來。初始應力如圖10所示。

014.png

模擬考慮了具體的施工過程,即先進行圍巖的開挖,接下來進行混凝土噴層及網片的施工,再進行錨桿的安裝施工。分節段先前推進,每個節段的進深為2.4m。在FLAC3D中模擬施工開挖比較方便,只需要賦予應該開挖部分的圍巖null模型,該部分圍巖的剛度等材料屬性就被設置為極小的數值,相當于從模型中被挖去。本次模擬出于演示的目的,共有5個開挖步,每步開挖2.4m,直至開挖貫通整個模型的縱向。

開挖完每一段巷道巖體后,圍巖的應力發生釋放,圍巖產生變形。之后馬上進行錨網噴施工。混凝土噴層厚25mm,錨桿間排距800mm,錨桿長度2.5m。混凝土噴層采用liner單元模擬,錨桿采用cable單元模擬。一個開挖完畢節段內安裝的噴層和錨桿情況如下圖所示。

p007.jpg

圖11 第一節段開挖結束后錨桿和噴層布置圖

支護結構安裝完畢后,繼續進行下一個節段的開挖。開挖后進行噴層和錨桿的支護施工。以此類推。圖12為開挖完成三個節段后的噴層和錨桿布置圖。

p008.jpg

圖12 第三個節段噴層和錨桿布置圖

重復以上過程直至整個巷道縱深都開挖完畢。每一次開挖都回引起新的不平衡力,再不斷的迭代計算過程中,不平衡力逐漸減小直至比率達到1×10-5,計算基本達到平衡。

在代碼中一個截面的錨桿的施工被集成到一個函數中,該函數通過循環語句實現了多個單根錨桿的安裝,而每一根錨桿的安裝都包括原有連接的刪除、新連接的建立、連接屬性的設置等一些列的操作。因此代碼是高度集成和簡化的。在后面的每一節段的開挖支護施工中,只需要指定開挖截面的位置,然后調用開挖函數、錨桿支護函數就可以完成相應的任務。

開挖和支護全部完成后的錨桿和噴層支護情況如圖13所示:

017.png

14--1.png

15--1.png

從圖14中可以看出,在錨桿與噴層間具有節點連接的部位,存在明顯的相互作用,由于錨桿拉力的存在,對噴層所受的法向壓力起到了抵消作用。只有建立混凝土噴層與錨桿間的連接,模擬的支護效果才與真實的現場情況接近,分析才更具實踐意義。混凝土噴層所受法向應力情況如圖15所示。

仿真分析的目的是通過數值計算掌握圍巖位移分布特征,判斷支護參數的有效性,為支護的優化提供依據。在計算中,在圍巖內部關鍵位置布置位移和應力監測點,監測整個計算過程中關鍵位置處位移和應力隨開挖和支護的發展情況。

16--1.png

17--1.png

變化錨桿的長度以及錨桿布置的間排距,可以獲得不同的支護效果,分別分析不同支護參數小的支護效果,主要是比較圍巖位移(圖16)、表面最大收斂位移和錨桿最大軸力(圖17)。在確保圍巖發生的位移變形在允許范圍內,錨桿軸力不超過錨桿抗拉強度條件下,可以確定合理的錨桿長度和間排距。

上述問題由于存在圍巖與結構的相互作用,支護結構多且復雜,同時還需考慮施工順序的影響,因此還沒有接近的理論分析方法可以應用。現場監測受現場條件和經費等影響只能提供某幾個斷面的監測結果,同時監測結果可能受到施工過程中各種人為因素的影響。而數值仿真分析能夠為復雜工程提供滿足精度要求的、純理論分析和物理實驗無法實現的詳細的分析結果,易于快速實現不同參數的分析,為優化設計提供可靠依據,能夠降低工程成本,合理指導工程實踐。

目前數值仿真方法已成為工程實踐中各種創新的重要支撐。

3 實例完整代碼

    與上面介紹的工程實例對應的完整演示代碼在下面的代碼列表中,該代碼可以完成包括幾何模型建立,在指定位置自動進行圍巖開挖、混凝土噴層施工、錨桿的安裝、連接的自動刪除和建立以及結構單元屬性的設置等相關工作。真正做到一勞永逸,實現無人值守式自動計算和保存。如果計算時間很長,可以去掉代碼最后一行的注釋,則軟件會在計算結束后自動關機。

020c.png

021c.png

022c.png

023c.png

024c.png

025c.png

026c.png

027c.png

4 其他應用

上面介紹到的錨網噴支護技術可以應用到更加復雜的模型中,如在某大型地下硐室結構支護中的應用(圖18-圖21)。在其他復合支護結構中,如基坑開挖施工中的地下連續墻、擋土墻等工程模擬分析中都可能涉及兩種不同結構單元的連接,這些情況下都可以利用本文介紹的通過fish函數在不同結構單元節點處連接的自動刪除和新建的方法來完成相關模擬分析工作。

18--1.png

19--1.png


20--1.png

21--1.png

5 結語

真實的世界使我感興趣,因為它是可塑的。——法國作家紀德

仿真世界是另一個有趣的世界,因為你能發揮自己的想象力和創造力把一些東西從無到有的在那個虛擬世界中創造出來,再賦予它們以屬性,建立它們間的關聯,觀察它們的發展…… 那不是很有趣嗎?

一去技術路,天涯若比鄰。希望每一位CAE愛好者,都能從仿真中獲得樂趣!

    最后祝CAE聯盟十周年生日快樂!祝CAE聯盟越辦越好!



附件為演示實例對應的完整代碼:

基于FLAC3D的地下硐室通道錨網噴支護分析的圖32rockboltmeshsupports.txt



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

41
48
32