Matlab做有限元分析并與ANSYS對比 附Matlab有限元結構動力學分析與工程應用徐斌下載
Matlab是由Math Works公司于1984年推出的一套數(shù)值計算軟件,它將不同數(shù)學分支的算法以函數(shù)的形式分類成庫,使用時直接調(diào)用這些函數(shù)并賦予實際參數(shù)就可以快捷而準確的解決問題。和很多高級編程語言一樣。Matlab也有圖形用戶界面開發(fā)環(huán)境,稱為GUI,即Graphical User Interface,是由窗口、菜單、圖形、光標、按鍵、對話框和文本等各種圖形對象組成的用戶界面。GUI可以允許用戶定制與Matlab的交互方式,通過鼠標或鍵盤選擇、激活這些圖形對象,直觀的達到用戶的求解、分析目的。
在彈性力學的學習中,數(shù)學推導求解較為繁瑣,學生容易在學習中產(chǎn)生畏難情緒,影響學習效果。考慮到Matlab-GUI具有編程簡單、界面友好等特點,開發(fā)彈性力學的推導、求解界面,將一部分數(shù)學推導工作交給計算機完成,學生可以集中精力加強對原理和數(shù)學邏輯的理解,這樣可在一定程度上降低彈性力學的學習難度。本文正是基于這一目標開展的教學實踐,以下先介紹Matlab-GUI設計環(huán)節(jié),然后再通過一個例題展示其計算結果。
本節(jié)將采用應力函數(shù)法求解一個受任意載荷的簡支梁模型。對于均布載荷作用下的簡支梁,多項式應力函數(shù)可得到完整的彈性解,然而,對于復雜載荷,甚至是不連續(xù)載荷問題,就需要用三角級數(shù)表示的應力函數(shù)來求解,該應力函數(shù)中待定參數(shù)較多,求解過程繁瑣,大多數(shù)教材中只提出該方法,不對其例題演示。基于MATLAB-GUI編程設計三角級數(shù)應力函數(shù)的求解界面,可以使學生從繁瑣的數(shù)學推導和求解中解脫出來,重點理解三角級數(shù)應力函數(shù)法求解思路與過程,這對于培養(yǎng)學生實踐能力具有積極的示范作用。
在進行Matlab-GUI編程時,要根據(jù)“人-機”交互功能,規(guī)劃好輸入、輸出參數(shù)和輸出結果,首先對問題進行分析規(guī)劃,確定問題中的各項參數(shù),包括基本輸入常量,求解過程中所產(chǎn)生的變量以及核心算法,繪制流程如圖1所示
圖1
其次,將各種控件在設計區(qū)域內(nèi)進行布局設計,主要包括基本輸入?yún)?shù)以及所需顯示的輸出結果。本軟件考慮一簡支梁在上、下表面受任意載荷情況,需要輸入梁的基本參數(shù)、載荷參數(shù)、材料參數(shù)等,為此設置相應的控件,完成控件的布局,并設置求解過程中的功能按鈕,在控件布局中注意保證界面的簡潔性與美觀性。可參考圖2所示界面
圖2
利用菜單可設計多窗口以完成不同的功能,菜單主要包括文件操作(文件打開、保存、清除和退出),求解(可跟蹤求解過程),以及結果分析(包括結果的可視化、最大值分析、項數(shù)分析和生成報告),窗口和幫助(可查看基本理論和軟件使用方法)五項,如圖2和圖3所示。
對界面控件進行布局設計之后,控件還不具備計算、分析功能。需要對每一個控件進行Matlab編程,要將Matlab程序代碼放在相應的控件代碼下,這樣各控件就具備了計算、分析功能。
另外,形象地展示求解結果是Matlab程序設計的優(yōu)點,利用圖形輸出可以將分析結果可視化,使彈性力學問題中復雜繁瑣的數(shù)學公式能夠轉(zhuǎn)變?yōu)閳D形結果,有利于提高學生的學習興趣。如圖3所示,將在結果中以圖形方式展示應力結果和誤差分析結果。
圖3
運行設計好的程序,用戶可依照以下使用流程進行分析:
打開程序主界面,輸入簡支梁的基本參數(shù),包括簡支梁的高度h,跨度l,及其材料的彈性模量E與泊松比,并輸入加載的非均布載荷的函數(shù)形式;
點擊求解菜單轉(zhuǎn)入求解界面,輸入項數(shù),根據(jù)操作按鈕區(qū)的內(nèi)容進行相容方程的判斷,系數(shù)求解等系列操作;
點擊結果分析菜單,選擇圖形分析,轉(zhuǎn)入圖形分析界面,通過選擇不同種類的圖形可以分別得到應力分析圖形與應變分析圖形;
選擇項數(shù)分析可以轉(zhuǎn)入項數(shù)分析界面,進行項數(shù)分析以及簡支梁內(nèi)某一點的應力狀態(tài)的數(shù)值觀測;
選擇最大值分析可以觀察簡支梁內(nèi)應力的最大值及其相應位置。如有疑惑,用戶可以點擊主界面的幫助菜單,打開幫助界面查看相應步驟的幫助。
通過自主完成編寫彈性力學求解系統(tǒng),學生可以形成對彈性力學基本概念、求解思路的自我歸類和主動學習,對于彈性力學涉及到的相關理論形成更加深刻的理解,提高學習效率。以下將通過一個例題來展示基于Matlab-GUI編程技術分析三角級數(shù)作為應力函數(shù)的彈性力學求解問題。
問題描述:給定簡支梁的參數(shù),跨度L=250mm,高度h=30mm,梁的彈性模量E=200GPa,泊松比=0.25,梁的上端受非均布載荷q1(x)=8(x/l)**3 N/mm,下端自由q2(x)=0。利用三角級數(shù)法求出該簡支梁的應力、應變,并分析三角級數(shù)項數(shù)對求解精度的影響。
圖4
依據(jù)上一節(jié)中的步驟輸入?yún)?shù),并進行求解。觀察x=90mm截面上應力分布,如圖5所示。該曲線表示在x=90 mm的截面上,應力分量隨簡支梁高度的變化。
圖5
從圖中看出隨著級數(shù)項數(shù)的增加,當n>7時,σx與τxy值逐漸收斂為一定值,但對于σy,其收斂速度較σx與τxy慢。為了進一步研究所取項數(shù)對應力值的影響,定義相對誤差為
其中,Xi表示級數(shù)項數(shù)為i時所得的計算結果認為當相對誤差小于0.5%可滿足要求精度。對于本例,研究發(fā)現(xiàn)對于同一截面上的點,相對誤差變化趨勢大致相同,本文選取(80,10),(125,10)(170,10)橫坐標不同的三點繪制σx,τxy和σy,相對誤差與級數(shù)項數(shù)的關系說明不同位置應力分量受級數(shù)項數(shù)的影響規(guī)律,如圖6所示。由于τxy和σy,絕對值較小,采用雙縱坐標可將應力分量進行對比觀察,圖中示例“左”右”分別表示該曲線對應于“左縱坐標”和“右縱坐標”。
圖6
從上述誤差分析可以看出,對于σx在n>7時可以滿足求解精度,但對于τxy和σy,,由于其值非常小,在數(shù)值上僅為σx的5%左右,相對誤差極不穩(wěn)定,需要求解到n>36時,才滿足er<0.5%。
以簡支梁的跨度,高度分別作為x,y坐標,通過圖形分析界面繪制出應力值的平面圖形, colorbar顯示出顏色與應力數(shù)值大小的對應值,該圖形可以顯示出簡支梁截面內(nèi)任意點應力的大小分布,直觀觀察出應力的最大值與最小值。
例如,對于圖7中的σx,紅色部分為拉應力,藍色部分壓應力圖中可以明顯的看出壓應力與拉應力最大的部分約為橫坐標x=170mm的截面上為了證明求解的正確性。
本文與 Ansys的計算結果做了比較,如圖7所示。其中,除 Ansys模型約東處由于應力集中與本文方法差距較大之外,其他位置解相一致,如應力最大值利用 Matlab求解結果為89.968MPa, Ansys模型為89.616MPa,兩者基本一致。
圖7
結合Matlab-GUI編程學習彈性力學,以圖形方式展示求解結果,可以在一定程度上減小彈性力學問題求解的繁瑣過程。同時,在自主完成編寫彈性力學求解系統(tǒng)的過程中,可形成對彈性力學基本概念、求解思路,以及程序邏輯的主動學習,在一定程度上提高學習效率和實踐能力。
親手設計、編寫一個可以“人-機”交互的界面程序,以作品的形成呈現(xiàn)出來。一個東西,從無到有,通過自己的雙手把它創(chuàng)造出來這應該就是學習的快樂!
下載地址:Matlab有限元結構動力學分析與工程應用徐斌
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















