混合编程在电力系统分析教学中的应用
2020-11-06林碧云
林碧云
摘要:本文通过对电力系统分析中最抽象的部分——潮流分析的牛顿-拉夫逊算法特点的分析,提出了混合编程在电力系统分析、潮流计算中应用的具体方向和路径。
关键词:混合编程;电力系统分析;教学应用;matlab
中图分类号:TP311.52 文献标识码:A
电力系统分析是电力类专业的核心课程之一,对大部分学生与教师来说都是电力教学中的重点与难点。电力系统分析课程具有以下三个方面的特点:(1)抽象性:电力系统分析的课程内容涉及的许多概念与运算大多是建立在大电网上的。大电网本身具有宏观性的特点,与学生的日常生活距离较远,所以对学生来说,大电网是“看不见摸不着”的。这就造成即使在基础课程已经完成铺垫的情况下,许多学生仍然无法理解部分大电网相关概念,所以将抽象概念具体化为教学当前迫切需要解决的问题之一;(2)复杂性:电力系统分析课程的教学中有部分展现电力系统运行过程的计算较为复杂,例如潮流计算,其中涉及多个矩阵的计算以及迭代,对于学生来说理解计算过程也有一定的困难;(3)重要性:电力系统分析课程中包括了变压器的相关运算、短路分析计算、潮流计算等,对学生全面了解电力系统发、输、配以及转换等十分重要。信息化教学恰好可以一定程度上解决电力系统分析课程教学中出现的这些问题。
信息化教学有以下三个方面的特点[1]:(1)抽象问题具体化:信息化教学可以采用编程的手段,把无限大电网输配变各个环节简化为设备模型,例如利用MATLAB或MATLAB中的simulink的电力设备集成系统,将电网具体化为实际模型,这样就将抽象问题具象化了;(2)加深学生理解:在高职高专的教学过程中,信息化教学可以通过事先编程跳过复杂计算过程,优先向学生展示参数变化对系统变化的影响,让学生在宏观上对系统的整体部分有一定理解后再进行深入教学,做到深入浅出;(3)增加趣味性:信息化教学较传统教学手段更加丰富,可以借助多媒体、动画、模拟等技术手段将枯燥的专业课转化为寓教于乐的兴趣课堂,进一步帮助学生学习这门课程。
信息化教学的手段较为丰富,本文将讨论混合编程作为信息化教学的手段,进一步探讨其在信息化教学中的应用。本文所述的混合编程是将VB(Visual Basic,下简称为VB)与MATLAB相结合,其优点在于:(1)电力系统分析中大部分计算依赖于矩阵间的运算,MATLAB是最优选择;(2)MATLAB虽然对于矩阵运算十分方便,但对于人机界面的交互则不够友好,VB建立界面简单,而且同MATLAB有多种方法可以相互结合,因而采用VB与MATLAB的混合编程具有相当大的优势;(3)C语言、C++等高级语言编写教学中的潮流计算等过程较为复杂、语言优势并不明显,因而不太适用于教学程序的编写。
综上所述,在电力系统分析教学中采用信息化教学是很有必要的,而VB与MATLAB相结合的混合编程作为信息化教学手段之一具有相当优势。讨论将这一混合编程在电力系统分析的信息化教学中的应用是很有现实意义的。
1 混合编程的实现
VB和MATLAB的混合编程是可以实现的。目前基于MATLAB的VB混合编程大略有四种方法:(1)在MATLAB中导入一个专门的将VB与MATLAB集成编写的插件——MatrixVB,在MATLAB中完成相应编程后再使用插件二者相互集成;(2)直接在MATLAB中安装ActiveX控件,这一控件在支持Client/Server功能的MATLAB版本中能够令MATLAB的相关指令在VB中被直接调用,包括MATLAB工具箱等;(3)使用M文件直接将VB作为一个函数进行调用;(4)较为复杂的DDE模式。这一模式是利用DDE作为一个交互媒介,让VB通过其支持的DDE客户端与MATLAB的程序之间进行对话,将需要运行的VB程序在MATLAB中通过DDE进行读取。这四种方法中(2)(4)都较为复杂,需要安装空间并编写相应程序代码,因此,教学应用的编程选择仅仅在(1)(3)中进行考虑,但是由于(1)中的插件对MATLAB 版本有较高要求,程序仍然较为冗长,更加适合复杂程序的复杂运算问题,因而本文采用(2)中M函数引入法来建立整个混合编程的教学程序。
本文采用VB.net建立VB程序界面,利用VB.net拟写代码,在VB.net中调用MATLAB的M函数文件,使用MATLAB编写运算过程,最后将计算结果反馈到VB.NET中,并使用VB.net作为主界面建立人机交互界面。
2 电力系统分析教学实例
2.1 电力系统分析潮流计算
在电力系统分析课程中,电力系统潮流计算的主要目的是通过建立线路运算的数学模型,再通过一系列迭代运算最终得到:(1)线路的电流与功率分布;(2)功率损耗;(3)节点电压及其损耗[2]。
则由以上各式通过迭代即可取得需要的结果。
2.2 电力系统潮流分析在MATLAB中的实现
以2.1为基础通过MATLAB对电力系统进行潮流分析。其主要处理步骤为:
在MATLAB中通過导入文件建立节点电阻(系数)矩阵,并利用窗口显示命令将其显示在窗口上;
对建立的系数矩阵求逆。利用MATLAB中的inv运算直接求逆,但是需要注意,考虑逆矩阵的存在性。求逆的目的是为了下一步计算各节点电压的相位角;
利用求得的相位角计算节点功率初始值,代入MATLAB自带的复数功能语句,计算出节点功率不平衡量的初始值;
利用MATLAB直接编辑公式计算出雅克比矩阵的各元素,解出各修正方程式初值,并建立循环。设置循环结束条件后将循环次数k与结果输出在结果框内;
最后利用解得的参数计算其余未知数。
计算流程过程可总结为图1:
2.3 VB人机交互界面的建立
潮流分析在MATLAB中较易实现而在Visual Basic中實现较为复杂的具体原因有以下几个方面[3]:
导纳矩阵建立的问题。而Visual Basic需要提前对矩阵输入作出说明,并且二维以上矩阵在VB中需要使用循环语句,且仅能进行单精度计算,即只能保留小数点后七位数,不能满足潮流计算所需要的精度;
矩阵求逆的问题。虽然VB同样有INV语言来直接求逆,但是VB需要对矩阵事先进行MAT声明后方可求逆,内部计算时间由于计算的复杂度而大大增加了;
涉及复数计算的部分。VB本身没有语句进行直接的复数计算,必须编写程序将实数与虚数部分分别计算后再把答案表达出来,在潮流计算中有许多叠加公式和迭代公式,分开计算不仅加大计算量,同时也增加了计算的复杂程度。
综上,VB不适合直接编写潮流计算的程序,但是其强大的人机友好界面是比MATLAB 更加简便适合学生上手操作的。
本文采用将MATLAB的程序整理为M文件,借由VB.net 编写代码后调用M程序,即利用MATLAB进行潮流计算后将计算的结果反馈到VB.net中,显示在所使用的交互界面中,如图2、图3。
2.4 应用实例
以中国电力出版社出版的第三版电力系统分析P134例7-4为例,说明其在教学实际中的应用问题。
以此题为例对不同程度院校学生进行教学课程设计。
(1)认识系统
在之前的课程学生是通过图片、录像等在宏观维度认识电力系统。但是在电力系统潮流分析的内容中,需要学生建立起电力系统相对应的电路图,并通过对电路图的分析进一步了解潮流计算。在课堂中针对成绩比较优异的学生,可以通过直接在课堂实践环节中进行VB教学,引导学生在CAD中完成电路图绘制后导入VB作为程序编制封面;
其次,直接通过MATLAB引导学生将例题所给出的数据建立相对应的导纳矩阵,在实践环节中引导学生进一步明白潮流计算的基本参数和基本方式;
另一方面,对于基础比较薄弱的学生,教师可以直接采用示范性教学,由教师建立起电路图和导纳矩阵,引导学生理解导纳矩阵的具体含义。
(2)课堂实践
在理论课已经充分学习了解了潮流计算后,通过课堂实践,将潮流计算中较为复杂的牛顿-拉夫逊计算方法进行程序上的迭代计算。同样课堂设计分为成绩较为优秀的学生和基础薄弱的学生两类:对于成绩较为优秀的学生,可以借由本例题首先让学生独立写出编写matlab程序所需要的流程图,根据流程图进行matlab潮流计算的编程,包括学习矩阵求逆以及循环的使用等;对于程度较为一般的同学,可以由教师引导完成整个潮流计算过程,学生只需要对潮流极端的过程有定性认识即可。
(3)计算总结
将潮流计算过程借由matlab计算得出后,基本上学生的实践部分暂告一段落,其后由教师完成将matlab和VB的混合编程部分,并最终生成混合编程的集成程序,引导学生更改矩阵参数、迭代次数等变量,观察潮流计算的结果,并从中定性总结出电力系统潮流计算的一般规律,从而能够真正理解和掌握潮流计算。
3 结语
信息化和技术化教学在当今高等教育、职业教育中所占的比重越来越大,特别是诸如电力系统分析这类专业性较强的课程中。混合编程将matlab和Visual Basic结合起来,大大简化了潮流计算的抽象性,有利于加深学生对知识点的运用与理解,其推广应用前景十分广大。但本文也存在着较多不足之处,仅仅以潮流计算为例论述混合编程在电力系统分析中的应用,而没有推广到这一课程其余知识点例如短路计算中,也没有更进一步探讨在整个电力院校课程中的应用广度和深度,这些问题都仍然亟待解决。
(责任编辑:武多多)
参考文献:
[1]李滨,祝云,黎静华.《电力系统分析》课程实践教学环节设计[J].中国电力教育,2008:134-135
[2]陈立新,杨光宇.电力系统分析(第三版)[M].中国电力出版社,2005.
[3]张宁,江红梅,张渭.基于MATLAB的电力系统潮流计算[J].西北农林科技大学学报(自然科学版), 2004(12):124-126..