姜秉秉,劉 高,羅澤華(蘭州大學土木工程與力學學院,甘肅蘭州730000)
?
巖體空間結構體的計算機識別
姜秉秉,劉高,羅澤華
(蘭州大學土木工程與力學學院,甘肅蘭州730000)
摘要:在巖體的開挖過程中,巖體的結構面與開挖臨空面極易構成威脅工程的不穩(wěn)定塊體,影響邊坡、隧道、地下洞室等工程的穩(wěn)定性,因此如何根據(jù)開挖面上結構面出露特征快速確定這些不穩(wěn)定塊體,對工程設計、施工及支護都具有重要意義。本文在得知結構面參數(shù)(結構面的傾角α、其傾向β以及結構面上任意點的坐標P(X0,Y0,Z0)或平面上不在同一條直線上三個點坐標)情況下,采用計算幾何理論,解決了塊體的快速搜索與識別問題,運用C++語言編程,實現(xiàn)了四面體、五面體、六面體和七面體四種常見可能滑動塊體的快速搜索與識別,計算出面積和體積,并利用OpenGl實現(xiàn)塊體可視化,為關鍵塊體穩(wěn)定性分析以及支護參數(shù)的確定奠定基礎。
關鍵詞:結構面;結構體;塊體識別
近多年來,隨著巖石工程規(guī)模擴大、數(shù)量增多,邊坡、壩基、地下洞室穩(wěn)定性研究已越來越受到重視。在施工過程中如何利用所測得的裂隙相關參數(shù)快速對工程中可能遇到的塊體進行識別及巖石塊體的形狀、規(guī)模、數(shù)量進行預測、關鍵塊體的可動性判別以及通過穩(wěn)定性分析判斷是否失穩(wěn),最終確定支護工程的工作量(所需錨桿錨索的長度、數(shù)量等)一直是水電、礦山、隧道等大規(guī)模巖體工程中的難題之一。
20世紀70年代后期,塊體的識別和穩(wěn)定性分析主要利用塊體理論來實現(xiàn)的,塊體理論最先由石根華提出[1,2],劉錦華(1988)[3]系統(tǒng)介紹了塊體理論,它一般采用矢量法和全空間赤平投影圖解法來對塊體進行識別,然后利用剛體的極限平衡法確定關鍵塊體。Hoek E等(1998)[4]應用塊體理論開發(fā)了地下工程和邊坡工程的分析程序Unwedge和Swedge,該程序中只考慮了切割塊體的結構面產(chǎn)狀而沒有考慮結構面的位置,所以無法確定塊體的真實位置、體積及滑面的位置、面積,且該程序只能對四面體識別,不能對五面體、六面體識別;Warburton (1981)[5]運用矢量方法總結出了計算任意形狀塊體的方法,前提是假設塊體形狀已知,但仍未解決由裂隙面和自由面計算三維塊體形狀的拓撲幾何問題。盧波、陳劍平(2002)[6]等實現(xiàn)了對復雜有限塊體的自動搜索及確定其空間幾何形態(tài),并給出了其空間定位參數(shù)和尺寸;于青春等[7,8]提出了“一般塊體理論理論”,王述紅(2010)等[9]采用先半空間切割,再結合實際未斷開的塊體的方法,開發(fā)了GeoSMA-3D程序,但在搜索效率和搜索有效性上存在不足。張淑華(2012)[10]編制的塊體識別計算機程序BlockSeek,也只對四面體、五面體識別。
基于上述研究的不足之處,筆者采用計算幾何理論,運用C++語言及OpenGL軟件編程實現(xiàn)四面體、五面體和六面體三種常見可能滑動塊體的快速搜索與識別及幾何特征的計算,并對塊體做了分類,以提高搜索效率。
在巖體工程中,由多個結構面相互切割構成的多面體塊體常見有四面體、五面體、六面體和七面體(詳見圖2),對于七面體以上的塊體,在工程中很難見到,所以這里就不做討論。塊體識別流程圖如圖1所示。
2.1結構面的確定
首先要根據(jù)提供的數(shù)據(jù)計算出平面的方程,設某平面其傾角為α,其傾向為β,P(X0,Y0,Z0)為該平面上的任意一點,則該平面的方程系數(shù)為:
單位法線矢量為:
該平面的方程為:
圖1 結構體識別流程圖
2.2結構體的確定
1)判斷結構面i和j是否相交。
通過式(2)式可以確定平面單位法線矢量,由(4)式可以計算出兩平面單位法線矢量夾角的余弦值cosθ:
如果cosθ=1或cosθ=-1,表示兩平面法線平行,即兩平面平行;反之,兩平面相交。
2)計算頂點個數(shù)。
每個頂點至少由三個結構面組成,在求出的結構面中任選三條結構面,根據(jù)克拉默法則求出頂點坐標,利用程序遍歷所有的面;但有些頂點并非只有三條結構面組成,而是由多條結構面組成,因此還要合并坐標相同的點。但有些滿足上述條件的交點位于結構體之外,不能作為塊體的頂點,應予刪除,最后統(tǒng)計出頂點的個數(shù)V。
3)計算棱個數(shù)。
對于棱的統(tǒng)計是逐條結構面進行的,每個結構面上有幾個頂點,則有幾條棱。把各結構面得到的棱相加,除以2,則可以得到棱的數(shù)量E。
4)結構體的判斷。
確定結構面頂點的個數(shù)V、側面?zhèn)€數(shù)F和棱的條數(shù)E之后,帶入到Euler公式(式5),若滿足公式,說明此組結構面能夠構成塊體,若不能滿足公式,應予排除。
2.3結構體內(nèi)點的順序固定排列
為了提高搜索效率及計算效率及對塊體的認識更為明確,將四面體、五面體、六面體及七面體總結為以下10種類型,每種類型有各自點的順序及計算方法(圖2)。其中,(a)為四面體,(b)、(c)為五面體,(d)、(e)、(f)為六面體,(g)、(h)、(i)、(j)為七面體。
2.4結構體幾何特征的計算
塊體的描述主要是對塊體面積和體積的計算,塊體各面面積尤其是潛在滑動面的面積計算及體積計算是塊體穩(wěn)定性評價的前提。
1)各側面面積的計算。
組成四面體、五面體、六面體及七面體的各個側面只有四種類型:三角形、四邊形、五邊形及六邊形。若三角形的三個頂點坐標分別為:P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)
三角形的面積A為:
根據(jù)塊體理論的基本假定,每個多邊形均為凸多邊形,在計算塊體的多邊形面積時,可以把多邊形分解成三角形,然后對三角型面積求和,得到多邊形面積。
圖2 不同類型結構體點固定排列
2)體積的計算。
在四面體體積計算中,設其頂點坐標分別為:P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),P4(x4,y4,z4),則:
在計算多面體體積時,可將多面體分解成四面體,然后對所有的四面體進行體積求和,便可得到多面體的體積。
2.5塊體可視化
通過上述的方法及步驟確定塊體點、面、及幾何特征數(shù)據(jù)之后,利用OpenGL編程函數(shù)庫,實現(xiàn)塊體的可視化,并可對可視化的塊體進行立體旋轉,多方位觀測塊體。
拓撲關系的建立是塊體識別的關鍵所在,也是塊體面積計算和體積計算的基礎;而拓撲關系的建立主要是點、面、體之間關系的建立。在塊體識別參數(shù)建立的過程中就建立起拓撲關系為塊體的識別奠定基礎。
3.1點的數(shù)據(jù)結構
class Point
{
public:
double x;//x坐標
double y;//y坐標
double z;//z坐標
int *jb;//存儲組成該點的面的編號
int iptx;//點在全局編號(初始賦值為-1)
int ipty;//點在塊體內(nèi)編號(初始賦值為-1)
//構造函數(shù)
Point (double a,double b,double c,int *jb,int iptx, int ipty);
Point();
};
3.2面的數(shù)據(jù)結構
class Plane
{
public:
int ipl;//面的編號
int prop_pl;面的屬性(0-結構面;1-臨空面;2-潛在滑面;3-其他)
//平面的第1種表示方式
Point pt0;
double m;//表示傾角α;
double n; //表示傾向β;
//平面的第2種表示方式
double a;//x的系數(shù)
double b;//y的系數(shù)
double c;//z的系數(shù)
double d;//常數(shù)
//平面的第3種表示方式
int n_pt;//組成該平面的點數(shù)
Point*pt;//組成該平面的點
//3種構造方法
Plane (Point pt0,double m,double n,int ipl,int prop_pl);
Plane (doublea,doubleb,doublec,doubled,int ipl, int prop_pl);
Plane(Point *pt,int n_pt,int ipl, int prop_pl);
Plane();
};
3.3結構體的數(shù)據(jù)結構
class Block
{
public: int ibl; //塊體編號
int n_pl; //面數(shù)
Plane*pl; //組成塊體的面
int total_pt; //總點數(shù)
Point*pt; //組成塊體的點
//構造函數(shù)
Block (int ibl, Plane *pl, Point *pt, int n_pl, int total_pt);
Block();
};
表1 是某水電站調壓井所測數(shù)據(jù),以此為例來驗證程序的運行情況。將以上數(shù)據(jù)輸入到程序之后運行的結果為圖3、圖4。
對運行結果進行整理,得到表2、表3、表4結果。從結果中可以看出:在得知表1數(shù)據(jù)的情況下首先計算出了平面的方程(表2),然后進行判斷是否夠成塊體,并對塊體的類型做出了判斷(含有六個頂點,屬于圖2(c)類型),接著求出了塊體點的坐標,并對點進行排序(表3),求出塊體的體積以及各面的面積(表4)。并依據(jù)所求點的坐標將塊體可視化,為了更清晰的認識塊體,對塊體做了相應的旋轉得到圖4,塊體陰影面為開挖面。為了檢驗結構體幾何數(shù)據(jù)的計算結果是否正確,將所得到的點坐標輸入打CAD中進行三維繪圖,在CAD三維繪圖空間中,對塊體的各個面的面積做了計算得到表4的第二行數(shù)據(jù),通過對表中由程序計算的面積數(shù)據(jù)與CAD計算的面積數(shù)據(jù)比較可以看出程序的正確性。
圖3 程序計算結果
圖4 OpenGl可視化結果
5.1結論
依據(jù)工程中巖體開挖面、結構面傾向、傾角以及點坐標,運用空間解析幾何學的方法提出了對塊體的快速搜索與識別,以C++為工具,將其編制出計算機程序,并將程序應用于水利水電工程塊體的識別中來驗證程序的可行性,通過運行分析,首先得到平面方程,然后得到各面的交點坐標,再進行判斷能否構成塊體,最后計算出了所構成塊體的體積的大小以及各面面積,并運用OpenGL實現(xiàn)可視化,得到了所需要的結果,這些說明所提出的塊體搜索、識別算法以及所編制的程序的正確性。
表2 五條結構面方程系數(shù)
表3 排列之后點坐標
表4 程序計算結果與CAD三維計算結果對比體積
5.2進一步工作的方向
巖體開挖過程中塊體很多,有的是穩(wěn)定的,稱之為穩(wěn)定塊體;有的具有潛在滑動的趨勢,這些塊體稱之為可能失穩(wěn)塊體;而對于有些塊體在工程作用力和自重作用下,由于滑動面上的抗剪強度不足于抵抗滑動力,若不施加工程錨固措施,必將失穩(wěn),這類塊體稱之為關鍵塊體。在確定平面組合能否構成塊體以及確定塊體的體積和各面面積之后,接下來是關鍵塊體的識別,主要是用力學平衡方程進行判斷,最后提出支護的方案。
參考文獻:
[1]石根華.巖體穩(wěn)定分析的赤平投影方法[J].中國科學: 1977(3):260-270.
[2]石根華.巖體穩(wěn)定分析的幾何方法[J].中國科學,1981(4): 487-495.
[3]劉錦華,呂祖布.塊體理論在工程巖體穩(wěn)定性分析中的應用[M].北京:水利水電出生版社,1988.
[4]Warburton PM.Vector stability analysis of anarbitrary polyhedral rock block with any number of freefaces[J].Int. J.Rock Mech.Min.Geomech.Abstr.1981,18:415-427.
[5]Unwedge User's guide,3D visualization of potentially unstable wedges in the rock surrounding underground excavation and calculation of factors of safety and support requirements for these wedges,1992-1999.
[6]盧波,陳劍平,王良奎.基于三維網(wǎng)絡模擬基礎的復雜有限塊體的自動搜索及其空間幾何形態(tài)的判定[J].巖體力學與工程學報,2002(8):1232-1238.
[7]于青春,薛果夫,陳德基.裂隙巖體一般塊體理論[M].北京:中國水利水電出版社,2007.
[8]于青春,陳德基,薛果夫.裂隙巖體一般塊體理論初步[J].水文地質工程地質,2005(6):42-48.
[9]王述紅,楊勇,王洋.裂隙巖體隧道施工關鍵塊體識別數(shù)值方法[J].地下空間與工程學報,2009(5):976-979.
[10]王述紅,穆檄江,張航,張世超,.巖體結構面精細化空間模型及塊體失穩(wěn)分析[J].東北大學學報(自然科學版), 2012(8):1186-1189.
中圖分類號:TU45