刘江岩 张 青 刘 彬 李夔宁
(1.重庆大学低品位能源利用技术及系统教育部重点实验室,重庆400044;2.重庆大学能源与动力工程学院,重庆400044
在全球新一轮科技革命和产业变革中,能源科技革命、能源产业数字化转型、能源金融互动发展等智慧能源应用正飞速发展,推动我国从能源大国向能源强国转变。 随着我国能源发展进入新时期,对能源动力类专业人才的培养提出了更高的要求,人才培养更加强调创新和实践能力。 动力工程计算方法作为能源动力类的一门专业基础课程,开设的目的在于使学生理解数值计算的基本思想,掌握利用计算工具实现数值计算的基本方法,为后续能源动力专业课程中基础问题的求解提供数学理论支撑,也为进一步进行科学研究和工程应用奠定计算基础。 智慧能源时代的到来,对动力工程计算方法的发展提供了新的机遇和挑战, 动力工程计算方法的知识体系将进一步扩展。无论是人工智能技术的应用, 还是能源科学的实践,计算方法在科学问题求解中都扮演了重要角色,是工程应用的基础。 将动力工程计算方法理论与智慧能源工程应用有机地结合起来,培养能源动力类专业学生实践、创新、应用的能力,完善动力工程计算方法课程的知识体系,提高学生学习兴趣,提升教学质量,具有深远的意义。 本文首先分析了当前教学过程中存在的问题及其产生的原因,然后根据动力工程计算方法课程的特点,结合当前智慧能源工程应用的需求,探索具有能源动力专业特色教学改革措施,达到提升教学效果的目的。
动力工程计算方法作为一门以数值计算为核心的课程,涵盖误差分析、插值与拟合、数值积分、线性方程与非线性方程求解、常微分方程求解等。 其有一定的数学理论深度, 对学生的数学理论基础要求高,课程内容往往较抽象;另一方面,该课程是专业基础问题和工程实际问题求解的关键手段,具备较强的技术性和实践性,对学生的编程能力和解决问题能力有一定要求。 但是,笔者在动力工程计算方法课程教学过程中发现,现有教学普遍以一定深度的数学理论讲授为主,淡化了与本专业相关问题的对接,导致课程内容与所学专业的关联性不强;其次,课程实践(上机实验)过程中着重基础算法的编译,部分学生难以胜任编写逻辑性较强、原理较复杂的算法,课程实践要求与学生能力存在差距;最后,尽管大部分学生能完成课程的学习和考试,但所学理论与应用知识难以真正用于解决本专业的工程实际问题,课程教学成果与专业工程实践需求匹配度不高。
动力工程计算方法课程开设的初衷在于通过学习利用计算工具求解数学问题的数值解法,从而提高解决能源与动力工程中实际问题的能力。 一方面,课程包含众多数值计算方法的学习,如仅插值方法就包括拉格朗日插值、牛顿插值、分段线性插值、样条插值等。 而由于理论教学课时的限制,目前课程理论教学课时主要用于各数值计算方法原理的讲解; 另一方面,数值解法原理涉及广泛,如微积分、线性代数、微分方程等, 虽然学生在大学一年级学习了相关课程,但不可避免会遗忘某些概念和知识点,导致在教学过程中仍需要部分时间进行复习和回顾。 此外,课程中各知识点之间具有较强的联系, 算法原理逻辑严密,讲解过程中需要板书进行公式推导方可让学生理解并掌握。 因此,为了保证学生能掌握各数值算法的原理,课程授课过程中需花费大量时间进行数学理论证明和公式推导。 相应的,对于如何应用所学数值算法实现工程计算,教学过程中提及甚少。
笔者从事本科生二年级动力工程计算方法课程的教学工作, 此时学生已接触部分专业基础课程,如工程热力学、流体力学等。 工程热力学以热力学基本定律为理论基础,研究工质的热力性质、循环特性以及热能动力装置的能量转换过程,其中涉及大量复杂函数(如高阶、多元、积分、微分)的求解。 而流体力学是研究流体在外力作用下平衡和运动规律的一门学科,数值计算可用于求解理论分析中建立的各类流动方程及边界条件,从而揭示流体运动的内在联系。 可以看出,动力工程计算方法课程所学知识在专业课程的基础问题求解中发挥了关键作用,两者的联系应当是密不可分的。 然而,目前计算方法教学过程中鲜有将所学方法与专业课程基础问题联系起来,学生对于动力工程计算方法知识的掌握只停留在算法原理表面,无法深入理解算法在本专业的应用场景,更难以实现算法在实际工程中的应用。
动力工程计算方法通常以上机实验作为课程的实践部分,目的在于使学生巩固和加深理解数值计算方法,积累计算经验。 学生通常需要用C 语言进行算法的编写。 虽然学生在大学一年级已学习C 语言编程,部分已通过计算机二级考试,但对C 语言的应用仍然不熟练,难以实现算法的编写。 此外,课程实践教学仍以数值算法本身的编译为主,注重算法逻辑的讲解,最终通过教材习题数据进行简单验证即可。 对于逻辑较复杂的算法,学生难以独立编写程序,只能通过给出程序模板进行参考和模仿。 由于实践课程无考试要求,且考虑到学生普遍较差的编程基础,课程期间不强制要求学生将算法编写出来,因此大部分学生对编程兴趣缺乏,上课时无所事事,往往通过课后的上网搜索程序来完成作业,不仅没有提升个人的编程能力,也难以达到本课程的实践要求。
动力工程计算方法课程的核心思想在于利用计算工具求解数学问题,而解决动力工程中的实际问题是本课程的根本教学目标。 在能源与动力工程中,不仅包含传热、流动等基础科学问题,还包含大量工程实践问题。 例如,在多能互补能源系统的设计优化中,需要对系统部件建立数学模型(函数关系式)并联立求解,涉及利用数值计算方法对复杂线性方程组进行迭代求解;在热力发电厂中,可以利用最小二乘法拟合发电负荷的变化,为动力系统的协调控制奠定基础[6];在制冷系统的换热器的设计中,数值积分则是相变换热过程模型求解的最基本方式。 然而,现有课程教学中并未涉及各计算方法与本专业工程实际问题中的应用。 导致学生对计算方法在本专业工程实践中的应用场景并不明确, 对计算方法的重要性并不清晰,学生学习主动性差。
在动力工程计算方法课程教学过程中,应当结合专业背景, 讲解各数值计算方法在专业基础问题求解中的应用场景,激发学生学习动力。 例如,分析工作的热力过程和热力循环时, 需要确定工质的各种热力参数的数值,焓、熵等参数无法直接测量,要建立各参数之间的一般函数关系式, 常以微分关系式的形式表示, 这些微分关系式是研究工质热力性能的理论基础, 可以通过常微分方程的数值算法来求解。 利用伯努利方程求解流动问题往往涉及非线性方程的求解, 利用牛顿迭代法可以快速求解出高阶非线性方程的根,使用计算器就可以完成工作。 流体力学中的有限元法是处理复杂边界条件、 流动问题的重要数值计算方法,涉及插值、数值积分线性方法的迭代求解等数值方法的综合运用。 课程例题的讲解可以考虑以专业课程为背景的例题内容, 增强计算方法与专业课程的联系。 在考试试题中,将题干内容设置为专业问题,增强专业问题求解代入感。 通过明确计算方法在专业基础问题求解中的重要地位,激发学生对本课程内容和本专业课程的学习兴趣,通过专业问题的联想和发散, 有利于提高课程的趣味性,提升理论教学的效果。
在课程实践教学中,应当更加重视编程应用能力的培养。 一方面,提倡使用更先进的数学计算工具进行编程,如Matlab、Python、R 等,这些计算工具的编程语言更加简洁,编程过程更加友好和方便,便于学生快速上手使用。 这些工具已将课程中大部分数值计算方法封装成函数对象,经简单调用即可实现算法的运算,这可以降低复杂算法的编写难度,提升编程效率,减少学生对编程的抵抗情绪。 另一方面,设计以本专业课程为背景的实际工程数值计算问题,让学生根据实际问题的具体特性选择合适的算法对问题进行编程求解,以小组为单位,对数值算法的应用进行设计、编译、调试、求解等,让学生通过实际专业工程问题的上机计算掌握各类数值算法的数学思想,在提升实践教学趣味性的同时,提升学生的实践技能和编程应用能力。 课程改革方案见图1。
随着我国能源智能化的高速发展,智慧能源的工程建设将越来越广泛,动力工程计算方法课程在培养智慧能源工程应用人才方面将扮演更加重要的角色。一方面,课程所学数值计算方法是当前人工智能领域诸多算法的基础,例如,非线性方程求解中的牛顿法是大部分最优化算法的基础,包括:一度夺得Kaggle比赛冠军的Xgboost 算法, 其核心理论之一是利用二阶泰勒展开使损失函数求解计算量更小、 效率更高,实质上就是利用牛顿法对损失函数进行最小值优化;同时,牛顿法也是深度学习(如卷积神经网络)中常用的优化算法梯度下降、随机梯度下降、批量梯度下降的理论基础。 因此,在动力工程计算方法课程教学过程中要进一步夯实学生数值计算方法的理论基础,掌握各类算法的数学思想,着重培养解决数学问题的思维方式。 另一方面,在理论学习的基础上进一步强化与本专业工程实际问题的联系,强调以智慧能源工程应用为导向的解决实际工程问题的能力,鼓励学生探索数值计算—人工智能—智慧能源之间的创新应用模式。 使学生在学以致用的过程中增强对课程内容的学习兴趣和学习效果。
图1 动力工程计算方法课程教学改革方案
动力工程计算方法是一门涉及数学理论与能源动力工程应用的交叉课程,兼具抽象性和实践性。 随着国家能源智慧化脚步的加快, 面对智慧能源工程应用的需求, 以此为导向的课程改革需着重培养学生的实践能力,强化理论知识与专业课程的关联性、重视专业实例的启发性、提升数值计算的实用性,从而有利于培养兼具创新性和实践性的新一代能源动力人才。