張斌偉 王進璽 張興元
[摘 要]針對目前高等教育大眾化,結(jié)構(gòu)分析軟件化,大學(xué)生學(xué)習(xí)心理復(fù)雜化和就業(yè)形勢嚴(yán)峻化,考慮到結(jié)構(gòu)力學(xué)課程特點,嘗試應(yīng)用Matlab程序進行結(jié)構(gòu)力學(xué)課程教學(xué)改革,編制了結(jié)構(gòu)力學(xué)教學(xué)平臺,在結(jié)構(gòu)力學(xué)經(jīng)典內(nèi)容教學(xué)中,將靜定結(jié)構(gòu)和超靜定結(jié)構(gòu)統(tǒng)一用編程分析實現(xiàn),這一思想的出發(fā)點是著力于培養(yǎng)學(xué)生應(yīng)用程序分析結(jié)構(gòu)力學(xué)問題的興趣,進而提高學(xué)生應(yīng)用計算機程序進行結(jié)構(gòu)分析的能力,不但調(diào)動了學(xué)生自我學(xué)習(xí)的動力,而且也提高了學(xué)生的知識水平和實踐能力。
[關(guān)鍵詞]經(jīng)典結(jié)構(gòu)力學(xué) Matlab語言 靜定結(jié)構(gòu) 超靜定結(jié)構(gòu)
[中圖分類號] TU311;G420[文獻(xiàn)標(biāo)識碼] A[文章編號] 2095-3437(2015)07-0136-02
一、引言
目前,在應(yīng)用型高校中,土木建筑類結(jié)構(gòu)力學(xué)的教學(xué)模式和教學(xué)方法仍然承襲了30年前的模式,即主要是老師在課堂上講述基本概念和知識點,學(xué)生自己完成一定量的習(xí)題訓(xùn)練,然后根據(jù)學(xué)生完成作業(yè)的情況,教師進行一定的系統(tǒng)講解,給學(xué)生建立一種解題的模板和方法。但是隨著編程軟件的快速發(fā)展以及對學(xué)生結(jié)構(gòu)分析能力的要求不斷提高,應(yīng)用手算的辦法進行結(jié)構(gòu)分析越來越不能滿足工程需求,這就要求應(yīng)用型高校培養(yǎng)的學(xué)生不但要理解結(jié)構(gòu)力學(xué)的基本概念、方法和技巧,在此基礎(chǔ)上培養(yǎng)熟練的手算能力,而且學(xué)生也要有相應(yīng)的結(jié)構(gòu)程序分析能力,為今后的繼續(xù)學(xué)習(xí)和工作打好基礎(chǔ)。
二、Matlab語言簡介
Matlab是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境。除了矩陣運算、繪制函數(shù)/數(shù)據(jù)圖像等常用功能外,Matlab還可以用來創(chuàng)建用戶界面及調(diào)用其他語言(包括C,C++和FORTRAN)編寫的程序。由于其草稿紙式的編程環(huán)境,使得Matlab語言被稱為第四代編程語言,所具有的豐富的工具箱和大量的內(nèi)嵌數(shù)值運算函數(shù),將科技工作者從繁雜的底層編程環(huán)境中解放出來,極大的提高了科技工作者的工作效率。
三、基于Matlab語言的結(jié)構(gòu)力學(xué)教學(xué)軟件平臺設(shè)計
利用Matlab語言的優(yōu)越性,結(jié)合有限元的基本思想,進行了結(jié)構(gòu)力學(xué)教學(xué)軟件平臺的開發(fā),該平臺對于平面桿系結(jié)構(gòu)的靜定與超靜定問題具有很好的計算效果。
本教學(xué)示范軟件平臺的開發(fā)思路如下圖所示:
圖1 ? 教學(xué)示范軟件平臺開發(fā)思路
核心計算程序如下所示:
function SolveModel
本程序為求解有限元模型核心計算程序,求解有限元模型的過程如下:
1.計算單元剛度矩陣,集成整體剛度矩陣;
2.計算單元等效節(jié)點力,集成整體節(jié)點力向量;
3.處理約束條件,修改剛度矩陣和節(jié)點力向量;
4.求解方程組,得到整體節(jié)點位移向量;
global gNode gElement gMaterial gBC1 gNF
…gDF gK gDelta
[node_number,dummy]=size(gNode);
gK=sparse(node_num*3,node_num*3);
f=sparse(node_number*3,1);
[element_number,dummy]=size(gElement);
for ie=1∶1∶element_number
k=StiffnessMatrix(ie,1);
AssembleStiffnessMatrix(ie,k);
end
[f]=LastEquivalentNodeForce(f);
[gK,f]=ChangeMarixandForce(f,node_number);
[gDelta]=SolveAndChangegDelta(f,node_number);
return
end
四、教學(xué)程序的應(yīng)用范例分析
(一)靜定結(jié)構(gòu)分析
為了建立學(xué)生對于結(jié)構(gòu)分析的興趣,首先從最簡單的靜定結(jié)構(gòu)入手進行分析,如圖2所示。
圖2 ? 計算靜定結(jié)構(gòu)和單元劃分圖
從傳統(tǒng)的靜定結(jié)構(gòu)分析方法來看,其本質(zhì)就是解決脫離體的平衡問題,作為靜定結(jié)構(gòu)分析,該剛架的幾何組成比較復(fù)雜,解決這一問題的途徑之一,是把力學(xué)分析與幾何組成結(jié)合起來考慮。題目難度不大,但計算量較大,凡是學(xué)習(xí)結(jié)構(gòu)力學(xué)的學(xué)生,對于該算法是比較熟知的,計算結(jié)果從略。
從程序結(jié)構(gòu)力學(xué)的角度來看,只需要將結(jié)構(gòu)模型的信息,包括結(jié)點、單位、材料、約束和荷載等利用數(shù)據(jù)反映到程序中去。在PlaneFrameModel建模子程序中,形成gNode、gElement、gMaterial、gBC1、gBC2、gNF、gDF等信息。
利用教學(xué)軟件平臺計算,結(jié)果和傳統(tǒng)方法完全一樣。計算結(jié)果如表1所示。通過兩種方法的比較可知,對于靜定結(jié)構(gòu)問題,雖然理論上比較簡單,但結(jié)構(gòu)組成分析比較復(fù)雜時,運算量比較大。
表1 ? 結(jié)構(gòu)節(jié)點內(nèi)力表(電算結(jié)果)
同時,從程序結(jié)構(gòu)力學(xué)的角度出發(fā)研究靜定結(jié)構(gòu),為學(xué)習(xí)結(jié)構(gòu)力學(xué)的學(xué)生提供了一種全新的思路,使學(xué)生理解程序結(jié)構(gòu)力學(xué)的應(yīng)用廣泛性。
(二)超靜定結(jié)構(gòu)分析
在結(jié)構(gòu)力學(xué)的超靜定結(jié)構(gòu)分析中,經(jīng)典的方法是力法和位移法,但不管是哪一種方法,當(dāng)結(jié)構(gòu)組成比較復(fù)雜時,運算量都很大,而且有些結(jié)構(gòu)幾乎無法用手算的方法進行。此時,利用程序結(jié)構(gòu)力學(xué)就顯現(xiàn)出強大的功能和適應(yīng)性。
為了方便比較,利用文獻(xiàn)中計算實例驗證自編教學(xué)平臺的適用性,并比較手算和電算結(jié)果,充分體現(xiàn)教學(xué)平臺的優(yōu)越性。
題目:求圖3所示超靜定組合結(jié)構(gòu)的內(nèi)力。設(shè)橫梁截面抗拉和抗彎剛度分別為EA和EI,且EA=2EI / m2。吊桿截面抗拉剛度E1A1=(EI / 20) / m2。
圖3 ? 超靜定組合結(jié)構(gòu)荷載分布和單元劃分圖
在教材的計算過程中,充分體現(xiàn)了手算方法的優(yōu)點,即概念性、知識性、邏輯性的充分結(jié)合,但計算過程太過復(fù)雜,就目前應(yīng)用型高校學(xué)生的基礎(chǔ)知識而言,這么大的運算量,是大部分學(xué)生沒法接受的,起不到學(xué)生自我提升的作用。但通過教學(xué)軟件平臺,只需將模型的基本信息以數(shù)據(jù)的形式輸入,就能得到正確的解答(如圖4所示),這種教學(xué)方法使得學(xué)生不但掌握了超靜定結(jié)構(gòu)求解的基本思路和方法,而且極大的解放了學(xué)生繁雜求解運算量的工作,提高了學(xué)生解題效率,進而激勵了學(xué)生結(jié)構(gòu)力學(xué)的學(xué)習(xí)興趣,為今后工程實踐中的結(jié)構(gòu)計算分析打好基礎(chǔ)。
圖4 ? 結(jié)構(gòu)內(nèi)力圖(電算結(jié)果)
五、結(jié)語
利用Matlab編程語言,結(jié)合有限元基本思想,編制結(jié)構(gòu)力學(xué)教學(xué)軟件平臺,通過靜定結(jié)構(gòu)和超靜定結(jié)構(gòu)的算例說明,培養(yǎng)學(xué)生程序結(jié)構(gòu)力學(xué)分析能力至關(guān)重要,可以說,這是結(jié)構(gòu)力學(xué)教學(xué)的最終歸宿。學(xué)生能不能建立熟練的程序結(jié)構(gòu)力學(xué)分析能力,直接決定了學(xué)生在生產(chǎn)實踐中應(yīng)用結(jié)構(gòu)力學(xué)解決工程問題的能力和效率,也是今后土木建筑類畢業(yè)生在結(jié)構(gòu)分析方面自我提升和創(chuàng)新的根基。通過算例說明,利用Matlab軟件進行結(jié)構(gòu)力學(xué)的教學(xué)是適宜的,不但有助于學(xué)生對基本概念、知識點的掌握,而且極大的激發(fā)了學(xué)生對結(jié)構(gòu)分析的興趣,進一步提升了學(xué)生應(yīng)用結(jié)構(gòu)力學(xué)解決問題的廣度和難度。
[ 參 考 文 獻(xiàn) ]
[1] 楊弗康,李家寶.結(jié)構(gòu)力學(xué)(上冊)(第四版)[M].北京:高等教育出版社,1998.
[2] 包世華,辛克貴.結(jié)構(gòu)力學(xué)(下冊)(第3版)[M].武漢:武漢理工大學(xué)出版社,2012.
[3] 阮沈勇,王永利,桑群芳.MATLAB程序設(shè)計[M].北京:電子工業(yè)出版社,2004.
[4] 莫勒.MATLAB數(shù)值計算[M].北京:機械工業(yè)出版社,2006.
[5] 任玉杰.數(shù)值分析及其MATLAB實現(xiàn)[M].北京:高等教育出版社,2007.
[責(zé)任編輯:鐘 嵐]