摘要:“汽輪機(jī)課程設(shè)計(jì)”是通過汽輪機(jī)的熱力設(shè)計(jì)提升學(xué)生工程實(shí)踐能力的教學(xué)過程。以往“汽輪機(jī)課程設(shè)計(jì)”經(jīng)歷了由手算向電算的轉(zhuǎn)變過程,但依然存在設(shè)計(jì)質(zhì)量不高、進(jìn)度卡滯等問題。為了改善教學(xué)效果,本文基于PythonFlask輕量化網(wǎng)絡(luò)框架技術(shù),結(jié)合math浮點(diǎn)運(yùn)算、pyXSteam水蒸氣函數(shù)和MathJax網(wǎng)頁(yè)矢量公式設(shè)計(jì)了一套在線驗(yàn)證程序。該程序具有編制簡(jiǎn)單、結(jié)構(gòu)清晰、由個(gè)人維護(hù)和升級(jí)的特點(diǎn),通過引入該程序,可以有效地避免學(xué)生在設(shè)計(jì)中的計(jì)算方向錯(cuò)誤,起到加快設(shè)計(jì)進(jìn)度、加深學(xué)生對(duì)設(shè)計(jì)內(nèi)容理解和運(yùn)用的作用。
關(guān)鍵詞:汽輪機(jī)課程設(shè)計(jì);互聯(lián)網(wǎng)+;PythonFlask;教學(xué)建設(shè)
中圖分類號(hào):TK269文獻(xiàn)標(biāo)識(shí)碼:A
Internet+PythonSteam"TurbineCourseDesign"Course
andTeachingAssistance
XuWanjun*SongHuayangZhuSisi
SchoolofEnergyandPowerEngineering,NanjingInstituteofTechnologyJiangsuNanjing211167
Abstract:Steamturbinecoursedesignisateachingprocesstoimprovestudents'engineeringpracticeabilitythroughsteamturbinethermodynamicdesign.Inthepast,thecoursedesignofsteamturbinehasexperiencedthetransformationprocessfrommanualcalculationtocomputercalculation,buttherearestillsomeproblemssuchaslowdesignqualityanddelayinprogress.Inordertoimprovetheteachingeffect,thispaperdesignsasetofonlineverificationprogrambasedonthePythonFlasklightweightnetworkframeworktechnology,combinedwithmathfloatingpointoperation,pyXSteamfunctionandMathJaxwebvectorformula.Theprogramhasthecharacteristicsofsimplepreparation,clearstructure,maintenanceandupgradebyindividuals.Throughtheintroductionofthisprogram,studentscaneffectivelyavoidthewrongcalculationdirectioninthedesign,acceleratethedesignprogress,anddeepenthestudents'understandingandapplicationofthedesigncontent.
Keywords:Steamturbinecoursedesign;Internet+;PythonFlask;Teachingconstruction
1概述
“汽輪機(jī)課程設(shè)計(jì)”是能源與動(dòng)力工程專業(yè)的一門設(shè)計(jì)類課程,要求學(xué)生根據(jù)汽輪機(jī)熱力設(shè)計(jì)的規(guī)范要求,完成一臺(tái)小型汽輪機(jī)通流部分的熱力設(shè)計(jì)。課程目標(biāo)是通過工程設(shè)計(jì),鞏固學(xué)生對(duì)級(jí)和多級(jí)汽輪機(jī)工作原理的理解,提高學(xué)生對(duì)所學(xué)知識(shí)的綜合應(yīng)用能力,培養(yǎng)學(xué)生分析解決問題的能力。根據(jù)往年的教學(xué)經(jīng)驗(yàn),發(fā)現(xiàn)在設(shè)計(jì)中,部分學(xué)生很難完成高質(zhì)量的課程設(shè)計(jì)任務(wù)。主要原因是設(shè)計(jì)任務(wù)計(jì)算量大、前后關(guān)聯(lián)性強(qiáng),往往是某一隱蔽參數(shù)選取或計(jì)算不正確,導(dǎo)致后續(xù)計(jì)算錯(cuò)誤,整體不能閉環(huán),查找原因也十分困難。
典型案例1:某同學(xué)在計(jì)算進(jìn)汽量時(shí)將汽輪機(jī)排汽口焓值取為理想焓值(正確應(yīng)取為實(shí)際焓值),導(dǎo)致后面校核部分,相對(duì)內(nèi)效率吻合良好,但內(nèi)功率和流量始終無(wú)法吻合。修正排汽口焓值后,需要經(jīng)過多步重復(fù)計(jì)算,降低了設(shè)計(jì)效率。
典型案例2:某同學(xué)在調(diào)節(jié)級(jí)設(shè)計(jì)中,代錯(cuò)了流量公式(正確應(yīng)根據(jù)臨界狀態(tài)選取不同的流量公式),導(dǎo)致噴嘴出口葉高偏小,后續(xù)計(jì)算也均不正確,需要推倒重來,浪費(fèi)了時(shí)間。
典型案例3:某同學(xué)在壓力級(jí)分級(jí)中,采用整機(jī)理想焓降減去調(diào)節(jié)級(jí)有效焓降的方法來計(jì)算壓力級(jí)理想焓降(正確應(yīng)根據(jù)調(diào)節(jié)級(jí)出口點(diǎn)等熵至排汽壓力來計(jì)算),導(dǎo)致壓力級(jí)級(jí)數(shù)偏多,在后續(xù)校核計(jì)算中,發(fā)現(xiàn)汽輪機(jī)內(nèi)功率偏大,無(wú)法閉環(huán)。修正壓力級(jí)后,需要重新分級(jí)和計(jì)算。
除了上述邏輯錯(cuò)誤,還經(jīng)常出現(xiàn)的錯(cuò)誤有:Excel公式運(yùn)用錯(cuò)誤,如將開方公式寫為x*0.5(正確應(yīng)為x^0.5);公式量綱錯(cuò)誤,如將量綱為米的平均直徑和量綱為毫米的葉高直接相加;查圖錯(cuò)誤,如將水蒸氣焓熵圖看串行,得到不正確的焓、熵值。
為了提高“汽輪機(jī)課程設(shè)計(jì)”課程的教學(xué)質(zhì)量,讓更多的學(xué)生完成高質(zhì)量的設(shè)計(jì)計(jì)算,需要對(duì)現(xiàn)有教學(xué)方法進(jìn)行優(yōu)化和創(chuàng)新[12]。總結(jié)上面的典型案例,發(fā)現(xiàn)亟待解決的問題是如何保證學(xué)生每一階段的計(jì)算結(jié)果都在合理的誤差范圍之內(nèi)。然而因?yàn)槊總€(gè)學(xué)生的設(shè)計(jì)參數(shù)都不相同,沒有統(tǒng)一和標(biāo)準(zhǔn)的結(jié)果進(jìn)行參考,目前只有部分參數(shù)的大致范圍可供參考。因此,需要尋找到一種有效方法讓每個(gè)學(xué)生每一階段的計(jì)算結(jié)果都有可靠的參考,也就是需要一套驗(yàn)證程序來輔助教學(xué)。
2問題分析
學(xué)生完成“汽輪機(jī)課程設(shè)計(jì)”,主要參考的資料有教科書、PPT和Excel計(jì)算表格。教科書為肖增弘《汽輪機(jī)課程設(shè)計(jì)》、馮慧雯《汽輪機(jī)課程設(shè)計(jì)參考資料》、靳智平《電廠汽輪機(jī)原理及系統(tǒng)》,這三本教科書給出了較為全面的設(shè)計(jì)過程和方法。PPT是針對(duì)本課程的設(shè)計(jì)任務(wù)說明,給出了較為詳細(xì)的設(shè)計(jì)過程、計(jì)算方法和注意事項(xiàng)。Excel計(jì)算表格是輔助學(xué)生計(jì)算工作,降低人工計(jì)算量。
盡管PPT給出了具體注意事項(xiàng),但在實(shí)際計(jì)算中,很多問題仍然不能避免。Excel計(jì)算表格只能保證代數(shù)計(jì)算的正確性,不能解決代數(shù)計(jì)算之外的問題。教科書《汽輪機(jī)課程設(shè)計(jì)》附贈(zèng)有汽輪機(jī)設(shè)計(jì)MATLAB程序,但該程序是針對(duì)大型汽輪機(jī)機(jī)組開發(fā)的,程序設(shè)計(jì)較為復(fù)雜,內(nèi)部關(guān)聯(lián)性強(qiáng),不適用于本課程的驗(yàn)證工作。在互聯(lián)網(wǎng)上,能夠查閱到較為久遠(yuǎn)的《設(shè)計(jì)寶典Xp》和Delphi開發(fā)的計(jì)算程序,這些程序年代久遠(yuǎn),無(wú)法直接使用,即使能夠使用,也不適用于本課程的設(shè)計(jì)任務(wù)。
鑒于此,本文根據(jù)“互聯(lián)網(wǎng)+”教學(xué)模式,設(shè)計(jì)了一套能夠在互聯(lián)網(wǎng)上實(shí)時(shí)訪問的“汽輪機(jī)課程設(shè)計(jì)”驗(yàn)證程序,幫助學(xué)生完成高質(zhì)量的設(shè)計(jì)任務(wù)。設(shè)計(jì)具體目標(biāo)如下:(1)通過互聯(lián)網(wǎng)訪問,能夠在電腦、手機(jī)、平板上實(shí)時(shí)訪問。(2)包括回?zé)嵯到y(tǒng)、進(jìn)汽量、調(diào)節(jié)級(jí)、第一級(jí)/末級(jí)直徑、壓力級(jí)、校核等計(jì)算程序。(3)網(wǎng)頁(yè)設(shè)計(jì)簡(jiǎn)捷,只給出輸入和輸出,以及必要的圖表說明。(4)網(wǎng)站有后端系統(tǒng),從靜態(tài)網(wǎng)頁(yè)無(wú)法提取計(jì)算過程。
3在線程序的實(shí)現(xiàn)
實(shí)現(xiàn)具有互聯(lián)網(wǎng)訪問的交互程序有多種方法,比如傳統(tǒng)網(wǎng)站、手機(jī)APP、MATLAB在線APP等方法。傳統(tǒng)網(wǎng)站技術(shù)成熟,限制性少,可以實(shí)現(xiàn)豐富的功能,但網(wǎng)站的開發(fā)和維護(hù)難度較大,且與選擇的開發(fā)工具有關(guān)。手機(jī)APP專注于移動(dòng)手機(jī)端,對(duì)桌面端支持不友好,開發(fā)難度與開發(fā)商提供的開發(fā)平臺(tái)相關(guān)性高。MATLAB在線APP是近年來MathWorks公司推出的功能,優(yōu)點(diǎn)是可以方便使用MATLAB提供的函數(shù),缺點(diǎn)是訪問較為消耗服務(wù)器內(nèi)存資源(前期測(cè)試發(fā)現(xiàn)),不利于大量用戶并發(fā)訪問。綜合比較,本文采用新穎的PythonFlask輕量化網(wǎng)絡(luò)框架技術(shù)來開發(fā)“互聯(lián)網(wǎng)+”程序,它不同于以往基于PHP和JavaScript的傳統(tǒng)建站技術(shù),具有復(fù)雜、門檻高的特點(diǎn),該技術(shù)具有程序簡(jiǎn)單、結(jié)構(gòu)清晰、由個(gè)人維護(hù)和升級(jí)的特點(diǎn)。Flask是一個(gè)基于Python的輕量級(jí)Web應(yīng)用框架,可以讓開發(fā)者快速搭建Web應(yīng)用程序,加之Python語(yǔ)言的靈活性和豐富的開發(fā)包,非常適用于本文在線驗(yàn)證程序的開發(fā)。
“汽輪機(jī)課程設(shè)計(jì)”的特點(diǎn)在于要深入理解和應(yīng)用水蒸氣的物理特性,為了精確模擬和計(jì)算,需要引入一些專業(yè)的數(shù)學(xué)函數(shù)庫(kù)。首先,浮點(diǎn)運(yùn)算是設(shè)計(jì)中的關(guān)鍵部分,為了提供這種計(jì)算能力,這里選擇安裝Python的math模塊,可以通過在控制臺(tái)輸入pipinstallmath命令安裝math模塊。這個(gè)模塊包含了大量的數(shù)學(xué)函數(shù),可以方便地進(jìn)行冪次運(yùn)算、三角函數(shù)運(yùn)算等。為了實(shí)現(xiàn)水蒸氣的性質(zhì)計(jì)算,需要引入pyXSteam模塊。這個(gè)模塊專門針對(duì)水蒸氣的熱力學(xué)性質(zhì)進(jìn)行設(shè)計(jì),包含了大量的函數(shù),可以方便地計(jì)算水蒸氣的各種物理屬性,如壓力、溫度、焓值等。通過在控制臺(tái)輸入pipinstallpyXSteam命令,可以將這個(gè)模塊集成到程序中,實(shí)現(xiàn)對(duì)水蒸氣性質(zhì)的精確計(jì)算。
為了便于公式的說明,需要在網(wǎng)頁(yè)上顯示數(shù)學(xué)公式,這里選擇MathJax。MathJax是一款運(yùn)行在瀏覽器中的開源數(shù)學(xué)符號(hào)渲染引擎,使用MathJax可以方便地顯示矢量形式的數(shù)學(xué)公式,不需要使用圖片。使用時(shí),將MathJax的es5文件夾下載,存儲(chǔ)于“static”文件夾內(nèi);在HTML的head部分中添加<scriptsrc="{{url_for('static',filename='es5/texmmlcHTML.js')}}"id="MathJaxscript"async></script>語(yǔ)句。HTML的body中可以使用LaTex語(yǔ)法來書寫公式,比如x=a2,可以寫為x=a^2。單行公式可以用轉(zhuǎn)義符$$x=a^2$$包裹起來,嵌入文字內(nèi)的公式可以用轉(zhuǎn)義符\\(x=a^2\\)包裹起來。另外,為了避開Flask的Render_template模板對(duì)LaTex公式解析造成的混亂,必要時(shí)可以在公式前后加入{%raw%}和{%endraw%}語(yǔ)句來避開Render_template的解析。
在線驗(yàn)證程序的主體部分由前端的HTML網(wǎng)頁(yè)和后端的Python程序構(gòu)成。HTML采用post方法,將body中由用戶輸入的多個(gè)text數(shù)據(jù),通過sumbit按鈕提交到后端的Python。Python通過request.form[]和float命令將得到的text數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)數(shù)字,結(jié)合math和pyXSteam函數(shù),進(jìn)行相應(yīng)的計(jì)算,將計(jì)算結(jié)果通過render_template模板再次傳遞給前端的HTML網(wǎng)頁(yè)。為了在HTML網(wǎng)頁(yè)上顯示結(jié)果,可以使用轉(zhuǎn)義符{{}}將變量包裹起來。當(dāng)HTML網(wǎng)頁(yè)被渲染時(shí),變量會(huì)被其對(duì)應(yīng)的值所替換,用戶在前端的HTML網(wǎng)頁(yè)上會(huì)看到計(jì)算結(jié)果。
Flask是構(gòu)建在線驗(yàn)證程序的核心框架。通過在控制臺(tái)輸入pipinstallflask命令安裝Flask模塊。在Python程序起始部分輸入fromflaskimportFlask,render_template,request和app=Flask(__name__)創(chuàng)建Flask應(yīng)用程序。每一個(gè)獨(dú)立的驗(yàn)證程序,由定義路由、處理函數(shù)、HTML網(wǎng)頁(yè)三部分組成。路由通過@app.route()定義,它的作用是在程序運(yùn)行時(shí),裝飾一個(gè)視圖函數(shù),用給定的URL規(guī)則和選項(xiàng)訪問它。處理函數(shù)由def命令執(zhí)行,它是指當(dāng)用戶訪問該路徑時(shí)執(zhí)行的代碼,代碼內(nèi)容包括了驗(yàn)證程序的輸入、計(jì)算、提交三個(gè)部分,其中提交部分通過render_template模板渲染HTML網(wǎng)頁(yè)實(shí)現(xiàn)。一個(gè)驗(yàn)證程序需要定義兩個(gè)HTML文件,一個(gè)用于顯示首頁(yè)(index.html),另一個(gè)用于顯示結(jié)果(result.html),也可以合并成一個(gè)文件(display.html),便于管理和修改。HTML文件存放于“templates”文件夾內(nèi)。除了上述所述,還需要在細(xì)節(jié)問題上進(jìn)行一些把控,比如,如何給定輸入?yún)?shù)的缺省值、如何采用公網(wǎng)IP和域名訪問等問題。
在線驗(yàn)證程序的設(shè)計(jì)重點(diǎn)是簡(jiǎn)單、方便、一看就懂,設(shè)計(jì)的驗(yàn)證程序可以遵循以下原則:(1)階段化,設(shè)計(jì)的驗(yàn)證程序與課程任務(wù)階段匹配,學(xué)生完成相應(yīng)階段后再使用驗(yàn)證程序來校核結(jié)果;(2)輕量化,設(shè)計(jì)的程序只給出輸入和輸出,以及必要的圖表說明,無(wú)須其他復(fù)雜選項(xiàng);(3)便捷性,學(xué)生可以通過電腦、手機(jī)、平板在教室隨時(shí)訪問,不用注冊(cè)、登錄、驗(yàn)證等煩瑣手續(xù);(4)維護(hù)性,驗(yàn)證程序易于維護(hù),可以隨著反饋多次修改和優(yōu)化,如條件允許可由上課教師維護(hù)。本文先后設(shè)計(jì)了汽輪機(jī)總進(jìn)汽量D0的估算(方法一)、汽輪機(jī)總進(jìn)汽量D0的估算(方法二)、調(diào)節(jié)級(jí)、動(dòng)葉頂部漏汽量、導(dǎo)葉頂部漏汽量、第二列動(dòng)葉頂部漏汽量、葉輪摩擦損失、葉高損失、鼓風(fēng)損失、斥汽損失、級(jí)內(nèi)漏汽損失、濕汽損失、第一壓力級(jí)平均直徑d1的估取、凝汽式汽輪機(jī)末級(jí)直徑dz的估取等若干驗(yàn)證程序。圖2給出了汽輪機(jī)總進(jìn)汽量D0的估算(方法一)的網(wǎng)頁(yè)界面,可見,本例的輸入?yún)?shù)為六個(gè)變量,輸出參數(shù)為兩個(gè)變量,通過calculate按鈕提交和反饋,網(wǎng)頁(yè)右側(cè)給出了公式說明,詳細(xì)解釋了每一個(gè)參數(shù)的含義和量綱。
本文設(shè)計(jì)的驗(yàn)證程序在2023年秋季學(xué)期的“汽輪機(jī)課程設(shè)計(jì)”中得到了部分應(yīng)用,該程序主要提供給那些在設(shè)計(jì)過程中遇到困難、無(wú)法準(zhǔn)確找出問題所在的學(xué)生進(jìn)行試用。在使用過程中,學(xué)生們能夠利用驗(yàn)證程序來檢查他們的設(shè)計(jì)步驟和計(jì)算過程,從而找出可能的錯(cuò)誤或疏漏。這種即時(shí)的反饋機(jī)制使學(xué)生們能夠及時(shí)調(diào)整他們的設(shè)計(jì)策略,避免了在錯(cuò)誤的方向上花費(fèi)過多的時(shí)間和精力。從學(xué)生們的使用反饋來看,驗(yàn)證程序在緩解進(jìn)度卡滯問題上表現(xiàn)出了顯著的效果。它不僅提高了學(xué)生們解決問題的效率,也提升了他們的學(xué)習(xí)體驗(yàn)。學(xué)生們表示,使用驗(yàn)證程序后,他們能夠更快地找出并解決問題,從而有更多的時(shí)間去深入理解和探索課程的其他方面。此外,驗(yàn)證程序的使用可以使教師更專注于講解課程的核心概念和原理,而不是把大量時(shí)間花費(fèi)在解答個(gè)別學(xué)生的具體問題上,在一定程度上加快了教學(xué)的進(jìn)程,更多的學(xué)生可以在課內(nèi)時(shí)間完成報(bào)告撰寫。
結(jié)語(yǔ)
本文將“互聯(lián)網(wǎng)+”思想引入“汽輪機(jī)課程設(shè)計(jì)”中,基于新穎的PythonFlask輕量化網(wǎng)絡(luò)框架技術(shù)設(shè)計(jì)了在線驗(yàn)證程序,該程序具有編制簡(jiǎn)單、結(jié)構(gòu)清晰、由個(gè)人維護(hù)和升級(jí)的特點(diǎn)。通過學(xué)生對(duì)程序的試用,得到了正向反饋,有效解決了進(jìn)度卡滯問題,提高了本課程的教學(xué)效果。
參考文獻(xiàn):
[1]宋曉皎.“精品課程”建設(shè)背景下的汽輪機(jī)課程教學(xué)設(shè)計(jì)[J].造紙裝備及材料,2021,50(1):173174+181.
[2]施鎏鎏.計(jì)算機(jī)軟件在汽輪機(jī)原理課程設(shè)計(jì)中的應(yīng)用[J].課程教育研究,2017(29):233234.
基金項(xiàng)目:南京工程學(xué)院教學(xué)建設(shè)項(xiàng)目(JXJS2023018)
*通訊作者:許萬(wàn)軍(1985—),男,漢族,黑龍江海林人,博士,副教授,研究方向:汽輪機(jī)性能優(yōu)化。