MATLAB是由美國MathWorks公司于 1984年發(fā)布的、面向科學(xué)計算、數(shù)據(jù)可視化以及交互程序設(shè)計的高級計算機語言。MATLAB軟件開發(fā)的初衷是方便地進行矩陣運算,如今的MATLAB已經(jīng)把功能延伸到了科學(xué)研究和工程應(yīng)用的諸多領(lǐng)域。在國外,MATLAB已經(jīng)成為數(shù)值分析、數(shù)理統(tǒng)計、系統(tǒng)識別、信號處理、動態(tài)仿真等領(lǐng)域的基本工具。同傳統(tǒng)的土木工程計算機語言FORTRAN和C相比,MATLAB 更具有以下幾大優(yōu)勢:
a)功能強大。除了數(shù)值計算上的絕對優(yōu)勢外,MATLAB5.2以上版本中還開發(fā)了自己的符號計算功能。用戶只要擁有一個MAT ,就可以方便的處理諸如矩陣運算,線性與非線性方程求解,特征值問題,統(tǒng)計及優(yōu)化問題了。
b)語言簡單。MATLAB允許用戶以數(shù)學(xué)形式的語言編寫程序,比FORTRAN和C更接近計算公式的書寫思維方式。它的操作和功能函數(shù)指令就是常用計算機和數(shù)學(xué)上一些簡單的英文單詞。
c)擴充能力強、可開發(fā)性強。MATLAB本身的函數(shù)就是以源代碼形式出現(xiàn),用戶可以仿照其寫法,創(chuàng)建自己的程序“庫”。另外,MATLAB可以方便的與FORTRAN 或C語言接口,充分利用現(xiàn)有資源。
d)編程易,效率高。MATLAB程序文件是純文本文件,用任何字處理文件都可以對它進行編寫和修改。因此程序易調(diào)試,人機交互性強。另外,MATLAB自己也擁有視窗環(huán)境下的調(diào)試系統(tǒng),程序調(diào)試簡單、方便。隨著科研水平的不斷提高,科研領(lǐng)域的不斷擴展,多學(xué)科并行、交叉發(fā)展已成必然,認識到MATLAB的強大功能,使得MATLAB在土木工程領(lǐng)域中得到充分應(yīng)用,達到利用MATLAB來快速實現(xiàn)科研構(gòu)想和提高工作效率的效果。
1 MATLAB在結(jié)構(gòu)分析中的應(yīng)用
土木工程中的結(jié)構(gòu)分析主要是指結(jié)構(gòu)在靜力和動力荷載作用時結(jié)構(gòu)內(nèi)力和位移的求解問題。由于結(jié)構(gòu)的復(fù)雜多變和對求解精度的嚴格要求,采用有限元法(finite element method)程序是常用的分析手段。有限元程序中非線性方程組的求解和解的收斂問題,是困擾許多科研人員的基本問題之一,采用FORTRAN或C不但需要很多語句,而且需要研究者有較高的計算機理論和實際操作水平,程序的編制與調(diào)試又要占用近一半的研究時間。MATLAB的出現(xiàn),可以在用簡單的語句完成基本算法程序后,方程組的求解利用MATLAB自身的命令實現(xiàn),整個程序不但小巧、便于調(diào)試與操作,而且解的收斂問題易于解決。例如,經(jīng)典的非線性方程組Newton解法MATLAB求解程序僅有l(wèi)4行,而用C語言編寫的Newton法子函數(shù)程序接近30行,而且在每個迭代步當Newton方程建立后,還要再調(diào)用其他子函數(shù)程序求解線性方程組,較MATLAB程序要繁瑣許多。再有,對圖1所示的為整體坐標系中二維一次四結(jié)點單元,單元可以是任意形狀的四邊形。這種單元比較容易滿足結(jié)構(gòu)實際分析的需要,該單元在整體坐標系下(x0y坐標系)的形函數(shù)表達式非常復(fù)雜,用FORTRAN或C語言將其表達出來,是非常困難的。而用MATLAB語言就可以很容易的將其寫出。如二維一次四結(jié)點單元的MATLAB程序命令如下:
clear
v:sym(’[1,X,Y,X Y]’);
m=sym(’【1,xl,yl,xl yl;x2,y2,x2 y2;1,
x3,y3,x3 y3;1,x4,y4,x4 y4]’);
mm=inv(m);
d=v mm
simplify(factor(d));
這些成果充分證明了MATLAB語言在現(xiàn)代有限元分析中會發(fā)揮越來越重要的作用。
基于MATLAB在數(shù)值計算和圖形處理方面的優(yōu)勢,一些研究者開始利用MATLAB解決復(fù)雜的結(jié)構(gòu)動力分析問題,并取得了一定的成果結(jié)成果,可以看出:在MATLAB中更容易實現(xiàn)結(jié)構(gòu)動力分析的可視化,是結(jié)構(gòu)動力分析的一條新的途徑和方法;可以極大提高編程效率,從而大大加快結(jié)構(gòu)動力分析軟件的開發(fā)應(yīng)用。
2 MATLAB在結(jié)構(gòu)優(yōu)化方面的應(yīng)用
在土木工程領(lǐng)域,優(yōu)化設(shè)計越來越受到關(guān)注,因為好的優(yōu)化設(shè)計可以降低工程造價,更好的發(fā)揮投資效益。而遺傳算法作為一種人工智能性算法被廣泛的應(yīng)用在優(yōu)化分析中,但是在采用遺傳算法時,進化的每一代種群成員必須要進行結(jié)構(gòu)分析,需要同時完成優(yōu)化計算和結(jié)構(gòu)分析。采用FORTRAN或C編制結(jié)構(gòu)分析程序還問題不大,但是要編制優(yōu)化計算程序則相當困難。MATLAB的優(yōu)化工具箱提供了對各種優(yōu)化問題的完整的解決方案,其內(nèi)容涵蓋了包括規(guī)劃、決策、最大最小問題等多個領(lǐng)域。由于其具有優(yōu)化函數(shù)的形式簡潔以及用戶能對算法、參數(shù)的選擇設(shè)置的功能,還能方便的與FORTRAN或C接口。因此在土木工程領(lǐng)域,已經(jīng)有研究者應(yīng)用MATLAB優(yōu)化工具箱來解決具體的優(yōu)化問題。應(yīng)用范圍也從最初的簡單桁架發(fā)展到復(fù)雜的實際工程。此外,在結(jié)構(gòu)可靠度理論分析方面,MATLAB也有出色的表現(xiàn)。
3 MATLAB在結(jié)構(gòu)智能控制和仿真方面的應(yīng)用
智能控制是一門新興的學(xué)科,目前已在航空航天、環(huán)境保護等領(lǐng)域得到了長足的發(fā)展,國內(nèi)學(xué)者也正致力于在結(jié)構(gòu)工程中引入智能控制。
智能控制離不開人工神經(jīng)網(wǎng)絡(luò)的建立,而MATLAB在神經(jīng)網(wǎng)絡(luò)方面有其獨特的優(yōu)勢,基于MATLAB神經(jīng)網(wǎng)絡(luò)技術(shù)在錨桿支護、隧道工程、結(jié)構(gòu)基礎(chǔ)選型、材料強度預(yù)測和樁基承載力預(yù)測等方面已開始應(yīng)用。雖然基于MATLAB的人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)還沒有在結(jié)構(gòu)的損傷測試、診斷中應(yīng)用,但相信,不遠的將來一定會得以實現(xiàn)。結(jié)構(gòu)仿真分析,是在某些情況下可以替代試驗研究的一種手段。如果利用好這項技術(shù),將會大大節(jié)省科研費用和時間。MATLAB中的SIMULINK工具箱是一個集建模、仿真、分析于一體的軟件包,在動態(tài)系統(tǒng)仿真方面獨具優(yōu)勢,比較適合于對地震作用下結(jié)構(gòu)振動的仿真模擬,如可以利用MATLAB獨有的動態(tài)系統(tǒng)仿真功能,在結(jié)構(gòu)仿真方面作了有益的探索,取得了一定的成果和經(jīng)驗。
4 MATLAB在試驗數(shù)據(jù)處理方面的應(yīng)用
眾所周知,實驗研究是結(jié)構(gòu)分析的重要手段之一。試驗后需要做大量數(shù)據(jù)的處理、誤差分析以及數(shù)據(jù)回歸等工作。MATLAB擁有數(shù)理統(tǒng)計工具箱statistic Toolbox,其功能函數(shù)多達200多個,功能足以趕超其他專用統(tǒng)計軟件。而且在應(yīng)用上,MATLAB還具有其它軟件不可比擬的操作簡單、接口方便、擴充能力強等優(yōu)勢,使得試驗者對試驗數(shù)據(jù)的采集和處理就會更加得心應(yīng)手。