借助Matlab-GUI的彈性力學教學實踐
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é)果。
01 問題規(guī)劃及Matlab-GUI的界面設計
本節(jié)將采用應力函數(shù)法求解一個受任意載荷的簡支梁模型。對于均布載荷作用下的簡支梁,多項式應力函數(shù)可得到完整的彈性解,然而,對于復雜載荷,甚至是不連續(xù)載荷問題,就需要用三角級數(shù)表示的應力函數(shù)來求解,該應力函數(shù)中待定參數(shù)較多,求解過程繁瑣,大多數(shù)教材中只提出該方法,不對其例題演示。基于MATLAB-GUI編程設計三角級數(shù)應力函數(shù)的求解界面,可以使學生從繁瑣的數(shù)學推導和求解中解脫出來,重點理解三角級數(shù)應力函數(shù)法求解思路與過程,這對于培養(yǎng)學生實踐能力具有積極的示范作用。
在進行Matlab-GUI編程時,要根據(jù)“人-機”交互功能,規(guī)劃好輸入、輸出參數(shù)和輸出結(jié)果,首先對問題進行分析規(guī)劃,確定問題中的各項參數(shù),包括基本輸入常量,求解過程中所產(chǎn)生的變量以及核心算法,繪制流程如圖1所示
圖1
其次,將各種控件在設計區(qū)域內(nèi)進行布局設計,主要包括基本輸入?yún)?shù)以及所需顯示的輸出結(jié)果。本軟件考慮一簡支梁在上、下表面受任意載荷情況,需要輸入梁的基本參數(shù)、載荷參數(shù)、材料參數(shù)等,為此設置相應的控件,完成控件的布局,并設置求解過程中的功能按鈕,在控件布局中注意保證界面的簡潔性與美觀性。可參考圖2所示界面
圖2
利用菜單可設計多窗口以完成不同的功能,菜單主要包括文件操作(文件打開、保存、清除和退出),求解(可跟蹤求解過程),以及結(jié)果分析(包括結(jié)果的可視化、最大值分析、項數(shù)分析和生成報告),窗口和幫助(可查看基本理論和軟件使用方法)五項,如圖2和圖3所示。
對界面控件進行布局設計之后,控件還不具備計算、分析功能。需要對每一個控件進行Matlab編程,要將Matlab程序代碼放在相應的控件代碼下,這樣各控件就具備了計算、分析功能。
另外,形象地展示求解結(jié)果是Matlab程序設計的優(yōu)點,利用圖形輸出可以將分析結(jié)果可視化,使彈性力學問題中復雜繁瑣的數(shù)學公式能夠轉(zhuǎn)變?yōu)閳D形結(jié)果,有利于提高學生的學習興趣。如圖3所示,將在結(jié)果中以圖形方式展示應力結(jié)果和誤差分析結(jié)果。
圖3
運行設計好的程序,用戶可依照以下使用流程進行分析:
打開程序主界面,輸入簡支梁的基本參數(shù),包括簡支梁的高度h,跨度l,及其材料的彈性模量E與泊松比,并輸入加載的非均布載荷的函數(shù)形式;
點擊求解菜單轉(zhuǎn)入求解界面,輸入項數(shù),根據(jù)操作按鈕區(qū)的內(nèi)容進行相容方程的判斷,系數(shù)求解等系列操作;
點擊結(jié)果分析菜單,選擇圖形分析,轉(zhuǎn)入圖形分析界面,通過選擇不同種類的圖形可以分別得到應力分析圖形與應變分析圖形;
選擇項數(shù)分析可以轉(zhuǎn)入項數(shù)分析界面,進行項數(shù)分析以及簡支梁內(nèi)某一點的應力狀態(tài)的數(shù)值觀測;
選擇最大值分析可以觀察簡支梁內(nèi)應力的最大值及其相應位置。如有疑惑,用戶可以點擊主界面的幫助菜單,打開幫助界面查看相應步驟的幫助。
通過自主完成編寫彈性力學求解系統(tǒng),學生可以形成對彈性力學基本概念、求解思路的自我歸類和主動學習,對于彈性力學涉及到的相關理論形成更加深刻的理解,提高學習效率。以下將通過一個例題來展示基于Matlab-GUI編程技術分析三角級數(shù)作為應力函數(shù)的彈性力學求解問題。
02 三角級數(shù)應力函數(shù)法求解舉例
圖4
依據(jù)上一節(jié)中的步驟輸入?yún)?shù),并進行求解。觀察x=90mm截面上應力分布,如圖5所示。該曲線表示在x=90 mm的截面上,應力分量隨簡支梁高度的變化。
圖5
圖6
圖7
總結(jié)
結(jié)合Matlab-GUI編程學習彈性力學,以圖形方式展示求解結(jié)果,可以在一定程度上減小彈性力學問題求解的繁瑣過程。同時,學生在自主完成編寫彈性力學求解系統(tǒng)的過程中,可形成對彈性力學基本概念、求解思路,以及程序邏輯的主動學習,在一定程度上提高學習效率和實踐能力。
來源:力學酒吧
作者:張偉偉
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















