摘要:“汽轮机课程设计”是通过汽轮机的热力设计提升学生工程实践能力的教学过程。以往“汽轮机课程设计”经历了由手算向电算的转变过程,但依然存在设计质量不高、进度卡滞等问题。为了改善教学效果,本文基于PythonFlask轻量化网络框架技术,结合math浮点运算、pyXSteam水蒸气函数和MathJax网页矢量公式设计了一套在线验证程序。该程序具有编制简单、结构清晰、由个人维护和升级的特点,通过引入该程序,可以有效地避免学生在设计中的计算方向错误,起到加快设计进度、加深学生对设计内容理解和运用的作用。
关键词:汽轮机课程设计;互联网+;PythonFlask;教学建设
中图分类号:TK269文献标识码: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概述
“汽轮机课程设计”是能源与动力工程专业的一门设计类课程,要求学生根据汽轮机热力设计的规范要求,完成一台小型汽轮机通流部分的热力设计。课程目标是通过工程设计,巩固学生对级和多级汽轮机工作原理的理解,提高学生对所学知识的综合应用能力,培养学生分析解决问题的能力。根据往年的教学经验,发现在设计中,部分学生很难完成高质量的课程设计任务。主要原因是设计任务计算量大、前后关联性强,往往是某一隐蔽参数选取或计算不正确,导致后续计算错误,整体不能闭环,查找原因也十分困难。
典型案例1:某同学在计算进汽量时将汽轮机排汽口焓值取为理想焓值(正确应取为实际焓值),导致后面校核部分,相对内效率吻合良好,但内功率和流量始终无法吻合。修正排汽口焓值后,需要经过多步重复计算,降低了设计效率。
典型案例2:某同学在调节级设计中,代错了流量公式(正确应根据临界状态选取不同的流量公式),导致喷嘴出口叶高偏小,后续计算也均不正确,需要推倒重来,浪费了时间。
典型案例3:某同学在压力级分级中,采用整机理想焓降减去调节级有效焓降的方法来计算压力级理想焓降(正确应根据调节级出口点等熵至排汽压力来计算),导致压力级级数偏多,在后续校核计算中,发现汽轮机内功率偏大,无法闭环。修正压力级后,需要重新分级和计算。
除了上述逻辑错误,还经常出现的错误有:Excel公式运用错误,如将开方公式写为x*0.5(正确应为x^0.5);公式量纲错误,如将量纲为米的平均直径和量纲为毫米的叶高直接相加;查图错误,如将水蒸气焓熵图看串行,得到不正确的焓、熵值。
为了提高“汽轮机课程设计”课程的教学质量,让更多的学生完成高质量的设计计算,需要对现有教学方法进行优化和创新[12]。总结上面的典型案例,发现亟待解决的问题是如何保证学生每一阶段的计算结果都在合理的误差范围之内。然而因为每个学生的设计参数都不相同,没有统一和标准的结果进行参考,目前只有部分参数的大致范围可供参考。因此,需要寻找到一种有效方法让每个学生每一阶段的计算结果都有可靠的参考,也就是需要一套验证程序来辅助教学。
2问题分析
学生完成“汽轮机课程设计”,主要参考的资料有教科书、PPT和Excel计算表格。教科书为肖增弘《汽轮机课程设计》、冯慧雯《汽轮机课程设计参考资料》、靳智平《电厂汽轮机原理及系统》,这三本教科书给出了较为全面的设计过程和方法。PPT是针对本课程的设计任务说明,给出了较为详细的设计过程、计算方法和注意事项。Excel计算表格是辅助学生计算工作,降低人工计算量。
尽管PPT给出了具体注意事项,但在实际计算中,很多问题仍然不能避免。Excel计算表格只能保证代数计算的正确性,不能解决代数计算之外的问题。教科书《汽轮机课程设计》附赠有汽轮机设计MATLAB程序,但该程序是针对大型汽轮机机组开发的,程序设计较为复杂,内部关联性强,不适用于本课程的验证工作。在互联网上,能够查阅到较为久远的《设计宝典Xp》和Delphi开发的计算程序,这些程序年代久远,无法直接使用,即使能够使用,也不适用于本课程的设计任务。
鉴于此,本文根据“互联网+”教学模式,设计了一套能够在互联网上实时访问的“汽轮机课程设计”验证程序,帮助学生完成高质量的设计任务。设计具体目标如下:(1)通过互联网访问,能够在电脑、手机、平板上实时访问。(2)包括回热系统、进汽量、调节级、第一级/末级直径、压力级、校核等计算程序。(3)网页设计简捷,只给出输入和输出,以及必要的图表说明。(4)网站有后端系统,从静态网页无法提取计算过程。
3在线程序的实现
实现具有互联网访问的交互程序有多种方法,比如传统网站、手机APP、MATLAB在线APP等方法。传统网站技术成熟,限制性少,可以实现丰富的功能,但网站的开发和维护难度较大,且与选择的开发工具有关。手机APP专注于移动手机端,对桌面端支持不友好,开发难度与开发商提供的开发平台相关性高。MATLAB在线APP是近年来MathWorks公司推出的功能,优点是可以方便使用MATLAB提供的函数,缺点是访问较为消耗服务器内存资源(前期测试发现),不利于大量用户并发访问。综合比较,本文采用新颖的PythonFlask轻量化网络框架技术来开发“互联网+”程序,它不同于以往基于PHP和JavaScript的传统建站技术,具有复杂、门槛高的特点,该技术具有程序简单、结构清晰、由个人维护和升级的特点。Flask是一个基于Python的轻量级Web应用框架,可以让开发者快速搭建Web应用程序,加之Python语言的灵活性和丰富的开发包,非常适用于本文在线验证程序的开发。
“汽轮机课程设计”的特点在于要深入理解和应用水蒸气的物理特性,为了精确模拟和计算,需要引入一些专业的数学函数库。首先,浮点运算是设计中的关键部分,为了提供这种计算能力,这里选择安装Python的math模块,可以通过在控制台输入pipinstallmath命令安装math模块。这个模块包含了大量的数学函数,可以方便地进行幂次运算、三角函数运算等。为了实现水蒸气的性质计算,需要引入pyXSteam模块。这个模块专门针对水蒸气的热力学性质进行设计,包含了大量的函数,可以方便地计算水蒸气的各种物理属性,如压力、温度、焓值等。通过在控制台输入pipinstallpyXSteam命令,可以将这个模块集成到程序中,实现对水蒸气性质的精确计算。
为了便于公式的说明,需要在网页上显示数学公式,这里选择MathJax。MathJax是一款运行在浏览器中的开源数学符号渲染引擎,使用MathJax可以方便地显示矢量形式的数学公式,不需要使用图片。使用时,将MathJax的es5文件夹下载,存储于“static”文件夹内;在HTML的head部分中添加<scriptsrc="{{url_for('static',filename='es5/texmmlcHTML.js')}}"id="MathJaxscript"async></script>语句。HTML的body中可以使用LaTex语法来书写公式,比如x=a2,可以写为x=a^2。单行公式可以用转义符$$x=a^2$$包裹起来,嵌入文字内的公式可以用转义符\\(x=a^2\\)包裹起来。另外,为了避开Flask的Render_template模板对LaTex公式解析造成的混乱,必要时可以在公式前后加入{%raw%}和{%endraw%}语句来避开Render_template的解析。
在线验证程序的主体部分由前端的HTML网页和后端的Python程序构成。HTML采用post方法,将body中由用户输入的多个text数据,通过sumbit按钮提交到后端的Python。Python通过request.form[]和float命令将得到的text数据转换为浮点数字,结合math和pyXSteam函数,进行相应的计算,将计算结果通过render_template模板再次传递给前端的HTML网页。为了在HTML网页上显示结果,可以使用转义符{{}}将变量包裹起来。当HTML网页被渲染时,变量会被其对应的值所替换,用户在前端的HTML网页上会看到计算结果。
Flask是构建在线验证程序的核心框架。通过在控制台输入pipinstallflask命令安装Flask模块。在Python程序起始部分输入fromflaskimportFlask,render_template,request和app=Flask(__name__)创建Flask应用程序。每一个独立的验证程序,由定义路由、处理函数、HTML网页三部分组成。路由通过@app.route()定义,它的作用是在程序运行时,装饰一个视图函数,用给定的URL规则和选项访问它。处理函数由def命令执行,它是指当用户访问该路径时执行的代码,代码内容包括了验证程序的输入、计算、提交三个部分,其中提交部分通过render_template模板渲染HTML网页实现。一个验证程序需要定义两个HTML文件,一个用于显示首页(index.html),另一个用于显示结果(result.html),也可以合并成一个文件(display.html),便于管理和修改。HTML文件存放于“templates”文件夹内。除了上述所述,还需要在细节问题上进行一些把控,比如,如何给定输入参数的缺省值、如何采用公网IP和域名访问等问题。
在线验证程序的设计重点是简单、方便、一看就懂,设计的验证程序可以遵循以下原则:(1)阶段化,设计的验证程序与课程任务阶段匹配,学生完成相应阶段后再使用验证程序来校核结果;(2)轻量化,设计的程序只给出输入和输出,以及必要的图表说明,无须其他复杂选项;(3)便捷性,学生可以通过电脑、手机、平板在教室随时访问,不用注册、登录、验证等烦琐手续;(4)维护性,验证程序易于维护,可以随着反馈多次修改和优化,如条件允许可由上课教师维护。本文先后设计了汽轮机总进汽量D0的估算(方法一)、汽轮机总进汽量D0的估算(方法二)、调节级、动叶顶部漏汽量、导叶顶部漏汽量、第二列动叶顶部漏汽量、叶轮摩擦损失、叶高损失、鼓风损失、斥汽损失、级内漏汽损失、湿汽损失、第一压力级平均直径d1的估取、凝汽式汽轮机末级直径dz的估取等若干验证程序。图2给出了汽轮机总进汽量D0的估算(方法一)的网页界面,可见,本例的输入参数为六个变量,输出参数为两个变量,通过calculate按钮提交和反馈,网页右侧给出了公式说明,详细解释了每一个参数的含义和量纲。
本文设计的验证程序在2023年秋季学期的“汽轮机课程设计”中得到了部分应用,该程序主要提供给那些在设计过程中遇到困难、无法准确找出问题所在的学生进行试用。在使用过程中,学生们能够利用验证程序来检查他们的设计步骤和计算过程,从而找出可能的错误或疏漏。这种即时的反馈机制使学生们能够及时调整他们的设计策略,避免了在错误的方向上花费过多的时间和精力。从学生们的使用反馈来看,验证程序在缓解进度卡滞问题上表现出了显著的效果。它不仅提高了学生们解决问题的效率,也提升了他们的学习体验。学生们表示,使用验证程序后,他们能够更快地找出并解决问题,从而有更多的时间去深入理解和探索课程的其他方面。此外,验证程序的使用可以使教师更专注于讲解课程的核心概念和原理,而不是把大量时间花费在解答个别学生的具体问题上,在一定程度上加快了教学的进程,更多的学生可以在课内时间完成报告撰写。
结语
本文将“互联网+”思想引入“汽轮机课程设计”中,基于新颖的PythonFlask轻量化网络框架技术设计了在线验证程序,该程序具有编制简单、结构清晰、由个人维护和升级的特点。通过学生对程序的试用,得到了正向反馈,有效解决了进度卡滞问题,提高了本课程的教学效果。
参考文献:
[1]宋晓皎.“精品课程”建设背景下的汽轮机课程教学设计[J].造纸装备及材料,2021,50(1):173174+181.
[2]施鎏鎏.计算机软件在汽轮机原理课程设计中的应用[J].课程教育研究,2017(29):233234.
基金项目:南京工程学院教学建设项目(JXJS2023018)
*通讯作者:许万军(1985—),男,汉族,黑龙江海林人,博士,副教授,研究方向:汽轮机性能优化。