朱水文
【摘 要】有限元法已成為工科院校本科力學的必修課。一直以來,在有限元課程的本科教學中都沒有把有限元程序編制作為教學重點。本文給出了在Matlab軟件平臺下的兩種編程教學方案以提高學生的有限元編程能力。教學實踐表明,兩種方案不但能提高學生編寫程序的技能還能提高有限元理論學習興趣。
【關(guān)鍵詞】有限元法;Matlab;編程能力
中圖分類號: TH136 文獻標識碼: A文章編號: 2095-2457(2019)28-0138-002
DOI:10.19694/j.cnki.issn2095-2457.2019.28.062
【Abstract】The finite element method has become a compulsory course for undergraduate mechanics in engineering colleges.It is difficult to keep the balance of theory teaching and the programming skills developing of the finite element course.In this paper,two programming teaching schemes were given under the Matlab platform.Teaching practices showed that the two schemes can not only improve the interest of theory learning of the finite element but also improve the programming ability of students.
【Key words】Finite element method;Matlab;Programming ability
0 引言
自1943年出現(xiàn)有限元法概念以來,有限元法在結(jié)構(gòu)理論各學科領(lǐng)域里已被廣泛采用。有限元法已成為工科院校力學本科學生的必修課程。對于本課程的學習,需要學生具備扎實的彈性力學、泛函分析、數(shù)值分析等課程的基礎(chǔ)知識及一定的編程語言基礎(chǔ)。一般來說,通過該課程的學習,可培養(yǎng)學生以下三方面能力[1]:1)有限元分析的基本理論和方法;2)應用程序設(shè)計語言編制有限元程序;3)應用成熟的商業(yè)有限元軟件進行有限元分析。
在本課程的實踐教學中,普遍存在兩種極端的教學路線[2,3]。一種路線是,以介紹有限元理論基礎(chǔ)為主,淡化有限元程序的編制。這樣做的結(jié)果雖然加強了學生的理論素養(yǎng),但無法使學生充分認識到有限元的強大效果及對解決實際問題的能力缺乏訓練。另一種路線是,跳出原來的以理論教學為主的傳統(tǒng)框架,教學內(nèi)容以介紹基于有限元分析軟件的工程應用為主,著力培養(yǎng)學生的實際工程應用能力。其后果是培養(yǎng)的學生理論基礎(chǔ)不扎實,且缺乏有限元編程能力。以上兩種路線都沒有把有限元程序編制作為教學重點。鑒于此,本文以培養(yǎng)學生有限元編程能力為重點目標,對本科生有限元法的教學方法進行探討。
1 編程軟件或平臺的選擇
傳統(tǒng)的有限元法教程中的有限元程序一般是用Fortran語言編制的。Fortran是世界上最早出現(xiàn)的計算機高級程序設(shè)計語言,廣泛應用于科學和工程計算領(lǐng)域。Fortran語言以其特有的功能在數(shù)值、科學和工程計算領(lǐng)域發(fā)揮著重要作用。成熟的有限元分析軟件,如ANSYS、ABAQUS、SPA等都是采用Fortran語言編寫的。現(xiàn)在仍然有大量的科研工作者和工程技術(shù)人員采用Fortran編寫計算程序。后來出現(xiàn)的C語言,由于其功能豐富,表達靈活,目標程序效率高,可移植性強等特點,開始成為開發(fā)高質(zhì)量軟件的主要編程語言。之后,隨著面向?qū)ο蠹夹g(shù)的成熟,涌現(xiàn)了一批用C++編寫的面向?qū)ο蟮挠邢拊绦虼a。以上提及的這樣語言語法規(guī)范、結(jié)構(gòu)嚴謹,都適合編制有限元程序。
基于以往的教學經(jīng)驗,作者認為作為本科生,選用Matlab軟件作為有限元程序入門平臺比較合適。Matlab是美國MathWorks公司推出的一種以矩陣為基本單位的高效數(shù)值計算語言,相比其他高級程序設(shè)計語言,Matlab編制的有限元程序有如下優(yōu)勢[4,5]:1)Matlab的語言規(guī)則更接近數(shù)學表達,更容易讓人理解;2)語言簡潔,功能強大,且計算結(jié)構(gòu)可信度高;3)以矩陣為基本運算元素,運算方便,對變量不需要事先定義,編制程序靈活;4)提供了良好的用戶界面及許多方便實用的庫函數(shù)供編程人員直接使用。
2 有限元編程教學安排
有限元程序的編寫離不開有限元理論的支持。因此在學習有限元編程之前,必須對有限元理論進行系統(tǒng)學習。鑒于本科教學理論不宜過于深入,對于有限元法理論部分宜本著簡單的原則。作者在教學中,以結(jié)構(gòu)單元(桿、梁、桁架、剛架)的“矩陣位移法”為核心,初步涉及彈性力學的平面問題的形函數(shù),等參元等概念和理論。淡化用泛函知識對有限元理論的理論推導,不需要講解有限元非線性問題的處理。
有限元編程能力的初步培養(yǎng)采用了以下兩種方案:
1)教師搭建有限元計算程序的大框架,學生實現(xiàn)子程序和子函數(shù)。例如,在剛架結(jié)構(gòu)有限元程序開發(fā)中,教師先把主程序的結(jié)構(gòu)編制出來,讓學生編制單元剛度矩陣或者整體剛度矩陣的求解函數(shù)。
2)教師提供有限元計算程序的簡單版本,讓學生擴充,對程序進行二次開發(fā)。例如,教師提供的對于梁的有限元計算的簡易版本中,需要手工計算梁節(jié)點的載荷(將作用的梁上面的載荷等效到節(jié)點上),學生可進一步開發(fā)載荷等效子程序,以擴充程序的適用性。
以上兩種方案對于初學有限元編程的學生來說非常實用,因為學習有限元編程有一定的難度,而采用這兩種方案,學生既不會感覺無處下手,又能對有限元程序的整體運行過程有充分的認識。
從作者的教學經(jīng)驗來看,應用Matlab作為有限元法的教學編程軟件,能提高學生的學習興趣和熱情。從教學效果來說,學生的動手能力得到了培養(yǎng)。
3 結(jié)論
以Matlab軟件作為有限元編程平臺,通過上述的有限元的教學實踐,本科生的編程熱情得到了鼓舞,編程能力得到了提高,學生初步具有了有限元編程的能力,為進一步的有限元編程學習好實踐打下了良好的基礎(chǔ)。盡管如此,在今后的教學工作中仍需要繼續(xù)努力,掌握有限元法課程的教學規(guī)律性,不斷改革進取,進一步提高學生編制有限元程序和利用有限元程序解決實際工程問題的能力。
【參考文獻】
[1]石鐘慈.有限元方法[M].北京:科學出版社,2016.
[2]郭利明,周新建,張慶敏.高校本科生有限元方法課程的教改探討[J].教育教學論壇,2017(5):118-118.
[3]周炬.機械類專業(yè)有限元法課程教學方面的探索[J].科技視界,2013(13):77+158.
[4]Kattan P L.MATLAB guide to finite element[M].Berlin Heidelberg,Springer-Verlag,2003.
[5]徐榮橋,楊仲軒,呂朝鋒.MATLAB在有限元教學中的應用實踐[J].力學與踐,2010,32(4):101-103.