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