[摘要]通過介紹MATLAB語言在頂推施工預應力混凝土連續橋施工過程內力動態分析程序設計中的應用,說明基于MATLAB語言開發結構分析軟件的可行性和優越性。
關鍵詞 MATLAB語言 頂推施工 連續梁橋 結構分析 程序設計
一、引言
目前,常見的結構分析軟件(程序)一般采用FORTRAN、C及可視化類語言中的一種或多種進行開發。其開發周期一般較長、程序編制量大、程序的調試和測試較難實現,從而開發費用較高,而且在針對大型的數據處理和動態圖形處理方面編程較復雜,尤其是采用多種語言進行混合或復合編程時,程序本身的調試和接口問題較為突出。當然,這些語言有它們各自的優點,尤其表現在多語言的復合編程上,可將各語言的長處集于一身,并在一定程度上避免了使用它們有局限的方面。在開發一個能對頂推法施工的連續梁橋進行施工全過程內力動態分析的軟件時,盡管可采用FDRTRAN語言設計結構分析計算的基本模塊,同時采用可視化類語言設計整個系統的基本控制模塊這種優化方案,但它在結構的動態分析程序設計方面仍有兩個大的難題:
(1)大批量數據進行復雜的數值運算時程序較難設計和測試;
(2)最終的計算結果進行可視化處理后形成實時動畫較困難。
但用MATLAB進行整個程序的設計,上述兩個問題即可迎刃而解。
二、MATLAB簡介
MATLAB是MathWorks公司于1982年推出的一套高性能的數值計算和可視化軟件,它集數值分析、矩陣運算、信號處理和圖形顯示于一體,構成了一個方便且界面友好的用戶環境。在此環境下,對所要解決的許多問題,用戶只需簡單地列出數學表達式,其結果便會以數值和圖形方式顯示出來;對于大型問題,只需建立相應的數學模型,同樣可以得到快速準確的解答。其主要特點概括起來有以下幾點:
(l)MATLAB語言自帶數值運算、矩陣運算方面的常規算法函數6000余條,并且具有自身的矩陣運算語法,使得一般的小型數據處理顯得極為簡單。
(2)MATLAB語言具有常規語言的特性,和一般語言一樣能進行算法設計;再加上功能強大的內部函數,使得它的語句功能非常強大。
(3)MATIrtB語言支持 WINDOWS標準的 API接口(DLL、DDE)、OLE及 OLE Au-tomation。
(4)MATLAB語言具有自己的圖形處理特殊語法,借助于它可方便地實現復雜圖形(圖像)的動態生成及顯示。
(5)MATLAB的所有內部函數對外開放,用戶可自行擴展內部函數。
三、程序設計
1.結構分析基本原理
(1)有限元素法的基本原理
結構分析即計算結構在特定荷載作用下結構特定截面(節點)上產生的內力和變形。計算時,一般采用有限元素法的平面桿系理論將整個結構離散成多個基本單元,然后對各個單元逐個進行分析,并將各個單元的分析結果集成,從而形成整個結構的分析結果。有限元分析的基本步驟如下:
(2)頂推法施工內力分析基本原理
頂推法即將梁作沿橋縱軸線方向預制好,待其強度達到一定要求時,將梁體從一側橋合向另一側橋合逐節段推進的施工方法。計算時,以每一節段頂推完畢時所得結構體系為對象,計算其在自重荷載作用下各個截面的內力和變位,如此循環計算出所有頂推階段結構的恒載內力和變位;取所有工況下各截面內力和變位的極值序列作為整個施工過程的包絡圖,從而為結構配筋和強度驗算提供依據。
2.程序設計
程序設計以求解連續梁橋頂推施工法恒載內力為目的,采用MATLAB語言編寫,以平面桿系有限元素法為理論基礎,程序主要邏輯流程圖見圖1。
(1)結構交承條件的確定
當結構頂推出 i段時,梁體長度區間為L=[0,iX LO],其中 LO為節段長度。設結構各交承點坐標為COD(n),則可按以下程序確定當前結構的支承個數及被支承的節點號。
IT=[0,i*L0];
PZ=(COD>=IT(1)&COD<=IT(2));
Con=i+1-Pz'/L0;
(2)控制內力的確定
為生成結構最終的內力包絡圖,要通過比較法取出整個頂推過程的最大最小內力序列,其程序如下所列;
MAX(MAX<out)=out(MAX<out);
MIN(MIN>out)= out(MIN>out);
其中MAX-一整個過程中的最大內力序列;
MIN-一整個過程中的最小內力序列;
out--當前結構的內力輸出序列。
(3)單元剛度矩陣的形成
function K=dy(EA,EI,L)
K=[ EA/L,0, 0,-EA/L,0, 0;…
0,12*EI/L^3,一6*EI/L^2,0,一12*EI/L^3,一6*EI/L^2;…
0,一6*EI/L^2,4*EI/L,0,6*EI/L^2,2*EI/L;…
一EA/L,0,0,EA/L.0,0;…
0,-12*EI/L^3,6*EI/L^2,0,12*EI/L^3,6*EI/L^2;…
0,一6*EI/L^2,2*EI/L,0,6*EI/L^2,4*EI/L;];
(4)單剛集成
K=dy(EA,EI,L);
r=(3*i-2∶3*i+3);
KK(r,r)=KK(r,r)+T'*K*T;
(5)荷載列陣形式
t=-T'*[0,-q*L/2,q*L^2/12,0,-q*L/2,-q*L^2/12]':
r=(3*i-2∶3*i+3);
P(r)=P(P)+t;
(6)約束處理
采用劃0置1法完成
for i=1∶Nb
for j=2∶4
if bb(i,j)-= 1
pt=3*bb(i,j)-2;
ps=pt+j-2;
KK(PS,:)=0,KK(:,PS)=0;KK(PS,PS)=l;
p(ps)=bb(i,j);
end
end
end
(7)力法方程求解
采用稀疏矩陣法求解線性方程組Kδ=P,程序如下:
dispp=full(sparse(KK)\sparse(P));
(8)動態內力圖輸出
out=pmgx1(dat);
v=i*L;-L:0;
plot(V,out(:,[3 4]);
title(['頂推第',num2str(i,DL(3)),'段時的內力圖']);
pause(0.2);
(9)內力數據輸出
f= fopen(files,'wt');
fprintf( f',X Qmax Mmax Qmin Mmin Vmax Vmin\n');
r=l∶STN+1;
ss=[MAX(r,1)';MAX(r,3:4)';MIN(R,3:4)';MXA(r,6)';MIN(r,6)'];
ss一fiplr(ss);
fprintf(f,'%5d%15.5f%15.5f%15.5f%15.5f%15.5f%15.5f\n',ss);
fclose(f);
四、算例
1.算例簡介
一等截面連續梁橋,跨徑布置為 40m+ 7 X 50m+ 40m。 430m,施工時每次頂推節段長5m。主梁單元劃分 86 X5m,主梁 EA= 249550000kN,EI= 31210o9000KN·平方米, q=178.25kN/m。導梁長35m,單元劃分7X5m,其 EA= 20798534kN, EI= 26009085kN·平方米,q=43kN/m。采用本程序進行計算分析。全橋結構離散圖見圖2。
2.程序計算結果
頂推出第14,70節段時的恒載內力圖見圖3圖4,頂推全過程的恒載內力包絡圖及撓度包絡圖分別見圖5、圖6。
3.計算結果比較
程序在PⅢ450型微機上運行15.05s完成了整個施工階段恒載內力計算。其中頂推第20節段時的恒載內力計算結果與SAP84計算結果比較見表1。
通過表1可以看出,程序的計算結果精度很高,而且計算速度也相當快。
五、結論
(1)本文介紹的程序用于計算采用單向(雙向)單點(多點)頂推法施工的等截面連續梁橋的施工內力及變位。具體計算內容有各施工階段的恒載內力、變位以及整個頂推過程的恒載內力、變位包絡數據,為結構配筋及驗算提供依據;另外,它也適用于設有導梁及輔助墩的頂推施工。程序的優點主要表現在大批量數據運算和圖形處理上,歸納起來有以下幾點:
①程序計算結果可視化程度高,能實時地反映頂推過程梁體的內力及變位情況;
②程序簡潔,使用方便,功能強大;
②MATLAB語言計算基于矩陣,程序運算速度較采用常規語言計算快10倍,且計算精度很高(達0.000,000,01以上);
③計算結果穩定性好。
(2)從本文的MATLAB語言程序設計實例,可以看到它的數值計算和圖形處理等功能的確很強大,而這些功能正是在設計和開發結構分析類軟件時所必需的。如果在以后的軟件開發中能將這些好的功能加以引進,那么,軟件在功能上將會取得長足的進展。尤其對于一般問題,只要能建立出數學模型,然后就可以讓MATLAB完成剩余的操作。
參考文獻
[l]范立礎.橋梁工程.北京:人民交通出版社,1990
[2] 楊炳成.有限元素法.西安:西工大出版社,1996
[3]廣東省公路工程總公司.廣東佛開高速公路九江大橋施工.北京:人民交通出版社,1996
[4]樓順天.MATLAB程序設計語言.西安:西安電子科技出版社,1997
[5]J. N.Littie一Getting Started with MATLAB-Natick:MathWorks.Inc,1995
[6] Rob Schreiber-Mastering MATLAB 5.x-Natick:MathWorks.Inc,1997