資源描述:
《基于matlab有限元法結(jié)構(gòu)研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、基于MATLAB有限元法結(jié)構(gòu)研究 摘要:本文結(jié)合平面梁單元實例,簡單分析了用MATLAB進(jìn)行有限元法分析結(jié)構(gòu)的過程,有效證明了該方法的可行性和實用性。關(guān)鍵詞:MATLAB有限元法平面梁單元結(jié)構(gòu)分析中圖分類號:O723文獻(xiàn)標(biāo)識碼:A文章編號:1概述MATLAB是一門計算機(jī)編程語言,專門以矩陣的方式來處理計算機(jī)數(shù)據(jù)。它將高性能的數(shù)值計算和可視化集成在一起,功能強(qiáng)大,適合多學(xué)科、多部門的要求,已廣泛地應(yīng)用于數(shù)值計算、圖形處理、符號計算、數(shù)學(xué)建模、小波分析、系統(tǒng)辨識、實時控制和動態(tài)仿真等研究領(lǐng)域,是科學(xué)研究、工程設(shè)計和運(yùn)算的得力助手。而在結(jié)構(gòu)力學(xué)中常用的有限元法也可以用MATLAB軟件快速準(zhǔn)確的計算
2、出結(jié)果。本文簡單介紹了用MATLAB進(jìn)行有限元分析的方法,并以較為常見的平面梁元為例近一步分析MATLAB的編程方法。2用MATLAB進(jìn)行有限元法分析過程概述結(jié)構(gòu)的離散化:將要分析的結(jié)構(gòu)物分割成有限個單元體,并在單元體的指定點設(shè)置結(jié)點,使相鄰單元的有關(guān)參數(shù)具有一定的連續(xù)性,并構(gòu)成一個單元的集合體,以它代替原來的結(jié)構(gòu)。[2]5寫出單元剛度矩陣:用MATLAB寫出域內(nèi)每個單元的單元剛度矩陣。[1]集成整體剛度矩陣:用直接剛度法寫出整體剛度矩陣。引入邊界條件:引入支座、外加荷載、位移等邊界條件。求解方程:分解整體剛度矩陣并用高斯法求解方程組。后處理:根據(jù)求得的結(jié)構(gòu)節(jié)點位移矢量,求解支座反力、單元節(jié)點
3、力和單元應(yīng)力。3MATLAB有限元分析編程方法借助MATLAB的編程功能,可以寫出三個M函數(shù)文件。BeamNode_Stiffness(E,I,A,L)——計算單元的剛度矩陣,輸入彈性模量E,橫截面積A,慣性矩I,長度L,輸出單元剛度矩陣k;BeamNode_Assemble(KK,k,i,j)——進(jìn)行單元剛度矩陣的組裝,輸入單元剛度矩陣k,單元的節(jié)點編號i、j,輸出整體剛度矩陣KK;BeamNode_Forces(k,u)——計算單元的應(yīng)力,輸入單元剛度矩陣k,節(jié)點位移u,輸出單元節(jié)點力forces。使用上述M函數(shù)時首先要給出參數(shù)(E,I,A,L,i,j)的值才可計算,而各M函數(shù)的具體編程代
4、碼可參考文獻(xiàn)[2]。4實例分析如圖所示的框架結(jié)構(gòu),其頂端受均布力作用,用有限元方法分析該結(jié)構(gòu)的位移。結(jié)構(gòu)中各個截面的參數(shù)都為:,,。5對該問題的解答過程如下:4.1結(jié)構(gòu)的離散化將該結(jié)構(gòu)離散為三個單元,有關(guān)節(jié)點和單元的信息見表1。4.2寫出單元剛度矩陣首先在MATLAB環(huán)境下,輸入彈性模量E、橫截面積A、慣性矩I、長度L,然后針對單元1和單元2單元3,分別二次調(diào)用函數(shù)BeamNode_Stiffness,就可以得到單元的剛度矩陣k1(6×6)和k2(6×6),且單元2和單元3的剛度矩陣相同。>>E=3E11;>>I=6.5E-7;>>A=6.8E-4;>>L1=1.44;>>L2=0.96;>>
5、k1=BeamNode_Stiffness(E,I,A,L1);>>k2=BeamNode_Stiffness(E,I,A,L2);4.3集成整體剛度矩陣5將單元2和單元3的剛度矩陣轉(zhuǎn)換成整體坐標(biāo)下的形式。由于該結(jié)構(gòu)共有4個節(jié)點,則總共的自由度數(shù)為12,因此,結(jié)構(gòu)總的剛度矩陣為KK(12×12),對KK清零,然后兩次調(diào)用函數(shù)BeamNode_Assemble進(jìn)行剛度矩陣的組裝。>>T=[0,1,0,0,0,0;-1,0,0,0,0,0;0,0,1,0,0,0;0,0,0,0,1,0;0,0,0,-1,0,0;0,0,0,0,0,1];>>k3=T.*k2.*T;>>KK=zeros(12,12
6、);>>KK=BeamNode_Assemble(KK,k1,1,2);>>KK=BeamNode_Assemble(KK,k3,3,1);>>KK=BeamNode_Assemble(KK,k3,4,2);4.4引入邊界條件并求解方程該問題的位移邊界條件為。因此,將針對節(jié)點1和節(jié)點2的位移進(jìn)行求解,節(jié)點1和節(jié)點2的位移將對應(yīng)KK矩陣中的前6行和前6列,則需從KK(12×12)中提出,置給k,然后生成對應(yīng)的載荷列陣p,再采用高斯消去法進(jìn)行求解。>>k=KK(1:6,1:6);>>p=[3000;-3000;-720;0;-3000;720];>>u=kp4.5后處理5在得到整個結(jié)構(gòu)的節(jié)點位移
7、后,由原整體剛度方程就可以計算出對應(yīng)的支反力;先將上面得到的位移結(jié)果與位移邊界條件的節(jié)點位移進(jìn)行組合,可以得到整體的位移列陣U(12×1),再代回原整體剛度方程,計算出所有的節(jié)點力P(12×1),按式P=F+R的對應(yīng)關(guān)系就可以找到對應(yīng)的支反力。5結(jié)語本文結(jié)合實例探討了MATLAB軟件在結(jié)構(gòu)有限元法分析方面的應(yīng)用,實踐證明該方法簡單實用。而隨著MATLAB軟件的普及,其在結(jié)構(gòu)力學(xué)和土木工程方面的應(yīng)用