同濟大學軟件學院 吳 瀚
計算機的誕生改變了世界的各行各業(yè),計算機強大的計算能力無疑大量減少了人工的勞動力。在建筑行業(yè)中,隨著力學理論的發(fā)展,很多的結構體的形變都可以通過數(shù)學公式求解出來,而計算機程序相比人工計算提高了極大的效率,并能將數(shù)據(jù)通過圖形學展現(xiàn)在人們的眼前,使之更加的直觀。向量式有限元(VFIFE)分析理論是近些年由美國普渡大學丁承先教授等人提出的一個創(chuàng)新概念,它是一個為解決大形變、大變位、碰撞、倒塌等力學行為而誕生的理論,在處理這些特殊問題上,不像傳統(tǒng)理論的千變萬化,向量式有限元的控制方程就是基于牛頓第二定律,對于一些擁有簡單力學知識的人來說,就可以學會對這樣的理論加以運用[1]。本文主要研究了空間桁架結構模型的向量式有限元分析,試圖得到解決這類問題的一般性步驟以及程序計算的代碼,為以后軟件的行為分析模塊奠定基礎。
空間桁架結構(t r uss st r uct ur e)是建筑工程領域常見的一種格構化梁式結構。常用于大跨度的廠房、展覽館、體育館和橋梁等公共建筑中。在空間桁架這類的結構體模型中,部件都是一根根剛性桿件或者柔性桿件,它們由鉸接點或者剛接點連接組成。結點信息主要包括它們在空間坐標系中的坐標以及它們的類型(鉸接點還是剛接點),桿件信息包括桿件兩端的坐標以及材料性質,由于柔性桿件是可以劃分成一個個剛性桿件組成,所以這里做一般性考慮就只做剛性桿件的定義。除了模型本身的數(shù)據(jù)之外,還有加載在模型上力的信息需要定義,力的定義包括力的三要素,即力的大小、方向和作用點。
對于結點信息,文件中的定義包括編號i d,結點類型t ype,位置信息posit ion.x,posit ion.y,posit ion.z。對于桿件信息,在文件中的定義包括編號i d,第一個端點的結點編號nodei d1,第二個端點的結點編號nodeid2,楊氏模量Young,截面積ar ea,密度densit y。對于力的信息,在文件中的定義包括編號id,作用點信息posi t i on.x、posi t i on.y、posi t i on.z,方向信息dir ect ion.x,dir ect ion.y,dir ect ion.z,力直接作用的桿件編號bar id。
由于力可以是不斷變化的,所以需要在文件中定義力的變化信息,這里用另外一個文件去單獨描述這樣的信息。其中在val ue中定義的編號為3的力,在0.0-10.0時間段中,力的函數(shù)表達式就是t/10.0*10.0,在10.0之后的時間段中大小都是10.0,-1表示無窮大,編號為1的力就是一個大小不變的力,大小一直是1.0。dir ect ion中的定義也是一樣的道理,最后三項是三個坐標的表達式。posi t ion中定義的最后一項代表力作用點距離力所作用桿件第二個端點的距離的隨時間變化函數(shù)表達式。
程序計算主要依據(jù)就是模型中的數(shù)學公式,所以在編寫程序的過程中,程序的通用化是需要解決的問題,程序采用面向對象的編程思想,將桿件、節(jié)點、力都抽象成一個類,由于程序目前以實現(xiàn)功能為主,所以并沒有過多的繼承層次,后面會展開說明程序將來的類圖結構,在讀入模型文件的數(shù)據(jù)之后,各個桿件、節(jié)點、力的數(shù)據(jù)實例化之后分別保存在一個數(shù)組中。
它主要是通過不斷地循環(huán)迭代計算出各個時間點的幀數(shù)據(jù),所以程序的框架也就是一個大循環(huán),在循環(huán)之前需要求出n=0的時候點的坐標。循環(huán)的間隔就是時間步長,時間步長可以通過時間步長計算程序計算得到。由于這個公式適用于鉸接點,符合牛頓第二定律的,所以在使用這個公式的時候需要判斷節(jié)點類型,有的節(jié)點還有額外的約束,比如有的節(jié)點規(guī)定y坐標不變,那么這個公式就不能適用于它的y坐標計算。由公式可以得知,循環(huán)中的主要工作就是求出內力和外力的合力,在下一個迭代中帶入差分公式中求解。在每個時刻的時候都需要將求出的點位置保存下來[3]~[5]。
程序中主要根據(jù)公式分為兩大步,第一步是求解出節(jié)點數(shù)據(jù)初始值,然后在大循環(huán)中迭代求出每個時刻的值,其中h是根據(jù)步長公式求解得到。大循環(huán)中主要工作是求解每個節(jié)點內力和節(jié)點外力,然后代入差分公式得到結果。內力求解需要根據(jù)當前桿件的變形量得到桿件內力,再通過將內力沿桿件方向和垂直桿件方向分解,得到兩端內力的向量值,將每個節(jié)點的向量值累加,最終得到當前時刻的內力合力。外力是通過解析加載公式得到,找到當前時刻對應分段函數(shù)中的某一段函數(shù),然后將時間代入函數(shù),解析表達式,從而得到當前時刻加載力的三要素。在計算出外力合力和內力合力之后,將每個節(jié)點對應的值代入公式,計算出當前時刻的位置數(shù)據(jù)。并且更新位置數(shù)據(jù),在保存數(shù)據(jù)的時候只需保存nowpos數(shù)組即可。
后處理軟件是項目組已經完成的一個可實際應用的產品,本軟件開發(fā)是為土木工程設計工作者進行結構力學行為分析后處理之用,對向量式結構力學前處理生成的海量數(shù)據(jù)進行解析,結合OpenGL技術對三維模型進行動態(tài)再現(xiàn),主要用于對結構和行為進行準確的分析和預測,如高樓和橋梁受外力后的空間運動,大變位、大變形等行為進行準確預測。
將本文程序計算得到的node文件和el ement文件導入后處理軟件中,得到的圖像結果進行比較可以看出,程序計算的結果符合實際情況,向量式有限元理論的程序代碼實現(xiàn)解決了結構體模型在傳統(tǒng)理論上很棘手的大形變問題,本文的程序計算還停留在試驗階段,對于一些參數(shù)的設置還需要更加合理化,但是計算過程是沒有問題的。本文通過對向量式有限元的程序計算實現(xiàn),說明了這個理論的實施步驟,同時驗證了理論的可實施性,在對解決空間桿件形變問題上找出了一般的程序步驟,將抽象的物理模型具體化到文件中,實現(xiàn)了從理論到實踐的一個轉換。
本文通過簡單模型的建立,說明了向量式有限元的計算步驟,程序可以遵循這樣一個步驟去實現(xiàn),最后將輸出結果作為后處理的輸入,通過后處理軟件展示計算結果生成的模擬動畫,驗證了程序的可靠性。
向量式有限元理論目前還沒有實現(xiàn)該理論的軟件,所以需要我們不斷地探索,這將是一個很有意義的課題,它能夠提供給結構工程師們一個模擬仿真的平臺。本文作為探索性地實現(xiàn)了剛性桿件的程序計算,這只是一個開始,向量式有限元中還有針對更多的模型進行探討。
[1]丁承先,段元峰,吳東岳.向量式結構力學[M].上海:科學出版社,2012,09.
[2]盧哲剛,姚諫.向量式有限元——一種新型的數(shù)值方法[J].空間結構,2012,18(001):85-89.
[3]Ting E C,Shih C,Wang Y K.Fundamentals of a vector form intrinsic finite element:PartI. basic procedure and a plane frame element[J].Journal of Mechanics,2004,20(2):113-122.
[4]Ting E C,Shih C,Wang Y K.Fundamentals of a vector form intrinsic finite element:Part II.plane solid elements[J].Journal of Mechanics,2004,20(02):123-132.
[5]Shih C,Wang Y K,Ting E C.Fundamentals of a vector form intrinsic finite element:Part III.Convected material frame and examples[J].Journal of Mechanics,2004, 20(02):133-143.