基于任务驱动的潮流上机计算实践教学探索
2015-08-15王莉丽
王莉丽
(华北电力大学电气与电子工程学院,北京102206)
“电力系统潮流上机计算”是电气工程及其自动化专业学生的必修课程,也是北京市精品课程“电力系统分析基础”的配套实践课[1]。该课程的内容不断得到充实,教学方法持续改进。
1 课程介绍
潮流计算是电力系统中最基本最重要的计算。所谓潮流计算,就是已知电网的接线方式与参数及运行条件,计算电力系统稳态运行各母线电压、各支路电流与功率及网损。对于正在运行的电力系统,通过潮流计算结果可以判断电网母线电压、支路电流和功率是否越限。对于正在规划的电力系统,通过潮流计算,可以为选择电网供电方案和电气设备提供依据。潮流计算还可以为继电保护和自动装置整定计算、电力系统故障计算和稳定计算等提供原始数据[2-3]。
“电力系统潮流上机计算”课程的内容是用两周的时间利用Visual C语言完成一个直角坐标或极坐标牛顿-拉夫逊潮流算法的程序,并利用标准IEEE9/14节点算例进行验证。
2 任务驱动法应用于课程的探索
2.1 课程制定清晰明确的总体目标
“电力系统潮流上机计算”课程开设初期采用了以教师、教材和课堂为中心,重视教师对学生的传授[4]。但是我们遇到了严重的问题:大部分学生接到计算任务后无从下手,找不到切入点,从而选择放弃或者抄袭他人的程序。每个班里仅有为数不多的学生能够完成任务,此外,少数学生理论知识扎实又具有编程基础,他们用大约一周的时间就完成了所有的内容,认为课程无挑战性,满足不了他们的求知欲。课程一度陷于各类学生积极性都不高的消极局面。为了改变这种局面,教学方法的改革势在必行。我们经过大量的调研和不断的探索尝试,得出结论:对于这种任务明确、工程化较强的实践课程采用任务驱动法能够取得很好的教学效果[5]。
任务驱动法是一种建立在建构主义教学理论基础上的教学法,这种方法将传授的新知识隐含在一项或几项任务中,学生通过对任务进行分析讨论,明确完成任务所涉及的知识以及内含的新知识点,在教师的指导下找出解决问题的办法[6]。
潮流数值算法是在明确电力网络结构参数的前提下,求取网络方程系数矩阵,建立非线性的节点电压网络方程,用迭代的方法对方程进行求解。教师要将任务总目标明确为:编制一个通用、可移植的潮流计算机算法程序。
2.2 分解任务与实施实例先导
采取任务驱动教学法将总任务分解为若干个子任务,学生就可以依次逐个进行思考分析。将每个子任务看成是一个模块,考虑“每个模块的输入和输出内容”,“各个模块之间的关联方式”,“哪些模块参与了循环”等等。这样就可以避免因为各变量之间复杂耦合关系而出现思路混乱。在分析的过程中,学生自然会把要用到的预备知识进行梳理。
潮流上机计算可根据功能模块可分解为九个子任务:①构建工程数据结构;②读入原始数据;③形成节点导纳矩阵;④计算节点不平衡量;⑤生成雅可比矩阵;⑥求解修正方程;⑦迭代求解潮流结果;⑧计算平衡节点功率;⑨求线路功率和线路损耗。
各子任务难易程度不同,完成时间不同,教师的引导方式也有所侧重。
任务驱动教学模式是以实例为先导的,学生可以先根据课本中的例题进行程序编制,因为此例题附带完整的中间计算结果,学生在编程过程中可以随时检查结果的正确性。程序完成后再将指导教师提供的标准IEEE9/14节点数据作为原始数据读入程序,计算潮流结果。
2.3 学生面临的三重考验
我们在实际教学过程中发现,整个潮流程序编制过程中,学生会遇到如下三重考验。
(1)第一重考验:构建工程数据结构
潮流计算中根据数据的特点,构建工程数据结构是第一步。万事开头难,对学生来说这是第一个考验,此时教师会给出一个典型的数据结构实例供参考。
潮流计算的原始数据包括支路数据和节点数据两大部分,所以在头文件中先声明一个节点结构数据类型BusData和一个支路结构数据类型Branch-Data。BusData中包括节点序号、类型、电压值和相角等;BranchData中包括支路序号、电阻、电抗、电纳和变压器变比等。这一子任务几乎所有的学生都能够顺利完成,这样便有一个好的开头,会使学生对编程的畏惧感有一定的缓解。
(2)第二重考验:形成节点导纳矩阵
节点导纳矩阵的形成是计算机求解潮流的难点之一。其困难之处在于如何利用二维数组表示矩阵,还有原始数据与数组中各元素的对应关系如何确定。此处需要注意的问题是二维数组表示的矩阵初始行列号是“0”,而原始数据文件中首个数据的序号是“1”,编程时需做处理。
节点导纳矩阵的形成应用支路追加法[2]。首先建立维数为节点数的零矩阵,各条支路按照序号循环,分别将其对节点导纳矩阵的贡献叠加到零矩阵上。支路追加法虽然原理简单,但对于初学者来说实现起来可能还会存在一定的困难,例如:“贡献在编程时如何体现”和“变压器非标准变比如何处理”等。
(3)第三重考验:生成雅可比矩阵
雅可比矩阵的生成是潮流计算中最繁琐的一部分。虽然表面看与节点导纳矩阵的形成过程相类似,都是用二维数组表示矩阵,矩阵中的元素值与所在位置有关;但不同之处和难点是:矩阵中各位置的元素值形成关系过于复杂,主要表现在雅可比矩阵的维数高,如果节点导纳矩阵维数是n,那么雅可比矩阵的维数就是2(n-1);雅可比矩阵中各元素的计算与节点导纳矩阵中元素相比耦合变量数更多,公式更复杂;雅可比矩阵是分块矩阵,以相邻位置的四个元素为一个块,块中这四个元素的计算公式各不相同;节点类型不同,待求的网络方程也不同;牛顿—拉夫逊法解非线性方程过程中,雅可比矩阵参与迭代。
此处学生需要有极大的耐心,反复调试程序,稍不小心就会出错。容易出现的错误有:①因公式复杂发生输入错误;②循环分支嵌套多,“{}”的位置错误;③分块矩阵中,元素位置定位错误;④程序中使用的数据结构与头文件中定义的数据结构不一致;⑤最严重的错误就是循环逻辑不对。
在这个子任务的执行过程中除了需要有耐心还要有决心。
3 结语
教学实践证明:将任务驱动教学法引入到“电力系统潮流上机计算”中,强调了学生在学习过程中的主体地位;调动了学生主动参与实验的积极性;提高了学生发现问题和解决问题的能力。
统计表明,有30%的学生能够在教师计划的时间表之前完成任务,50%的学生能与规定时间保持一致,20%的学生滞后于时间表,需要教师给予帮助才能完成任务。特别要说的是,很多能力强的学生主动增加了其他的子任务如:文件输出子任务、复数计算子任务等,使程序更具有通用性和可移植性。学生通过带着任务学习,养成了自主思考的习惯,对过程结果的分析能力明显增强,对知识点有了更深刻的理解,更善于整合运用知识。
此教改方案实施过程中应注意两点:第一,程序中求解线性方程组源代码由教师提供,学生直接调用即可;第二,适当的考核方式也是促进学生自主学习的手段之一,我校采用的是一对一理论知识问答加上机程序改错的方法,可供兄弟院校参考。
[1]孙英云,董雷,等.基于极限编程的潮流上机实践教学探索[J].南京:电气电子教学学报.2012.34(3):90-92
[2]张伯明,陈寿孙,等.高等电网络分析(第2版)[M].北京:清华大学出版社,2007
[3]陈珩.电力系统稳态分析(第三版)[M].北京:中国电力出版社,2007
[4]田海梅,张燕.基于任务驱动的计算机专业课教学模式[J].北京:实验技术与管理.2011.28(5):145-147
[5]刘吉臻.工程教育课程改革的思维转向:工程化的视角[J].武汉:高等工程教育研究.2006.(4):42-45
[6]张颖,张继平,宋岩.基于“任务驱动”教学法的实验教学改革[J].上海:实验室研究与探索.2013,32(11):167-170