王亮 马中静 马宏伟 彭婧宇
摘要:《现代电力系统分析》是电气工程专业研究生的一门核心课程,主要研究实际工程应用中电力系统分析的理论和方法。核心内容为复杂的数学模型与算法,其工程实现多以C或Fortran语言完成,或是借助专业的电力系统分析软件,学生难以掌握,更无法在今后的研究和工作中熟练运用。本文将Matlab/Simulink引入课程,可以大大减轻学生编程和专业软件的学习负担,使其更专注于对电力系统理论和分析方法的学习和掌握,提高学生对相关理论、方法的应用能力,为之后从事相关研究和工作奠定坚实的基础。
关键词:Matlab;电力系统分析;数值计算;计算机仿真
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)29-0084-04
一、引言
电力系统分析是研究电力系统规划运营问题的基础和重要手段。因此,《现代电力系统分析》是电气工程专业研究生的一门核心专业课。这门课程与实际工程结合紧密,涵盖电力网络分析、潮流计算、电力设备模型、电力系统动态过程分析和电力系统稳定性分析等诸多方面的理论和方法。所以,掌握这门课程的理论知识对学生今后从事电力系统相关研究和工作大有裨益。该课程所涉及的内容均是抽象的高阶数学模型,复杂的公式推导和理论验证,对于大部分学生而言,仅仅是理论知识本身就已经十分晦涩难懂。实际的电力网络往往拥有几千甚至数万节点,发电机等核心设备不仅自身结构复杂,且加装了更为复杂和精密的控制系统,这导致实际工程分析的计算量非常大。因此,工程中大都采用C或Fortran等运行效率高的语言,以提高计算机分析的运算速度。这在实际工程中是非常必要的,因为工程和科研人员面临的是真实的电力系统,而且对模型和分析结果的精度具有较高的要求。但是,这些语言的编程效率低,调试过程繁琐费时。对于学生而言,他们需要分析的大都是简化后的系统,诸如IEEE、CIGRE等各种标准实验平台,对程序运算速度也没有太高要求。同时,《现代电力系统分析》课程意在让学生掌握电力系统的模型和分析方法,而不是这些分析过程的快速计算。此外,电力系统动态行为的时域仿真多采用PSSE、PSASP、PSCAD等专业软件。这些软件一方面售价高昂,另一方面使用、配置较为复杂,需要一个比较长的学习过程。Matlab不仅可以实现科学计算和编程,而且自带的Simulink组件提供了一个动态系统建模、仿真和综合分析的集成环境,具有使用面广、灵活高效等特点。所以,有别于工程应用领域,Matlab/Simulink更适合于教学过程。相比于工程领域的解决方案,Matlab的突出特点有以下几点。
1.编程效率高,使用方便。Matlab是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序。它是一种解释执行的语言,灵活、方便,调试程序手段丰富,调试速度快,需要的学习时间少。
2.功能强大。首先,Matlab具有强大的数值分析计算能力,可以实现数值分析,矩阵运算,数据可视化等功能;其次,具有涵盖众多学科的工具箱,功能强大,调用方便,可以大大简化编程过程,提高程序的执行效率;再者,Matlab也可以实现诸如文件读写、图像处理、GUI编程、工业控制等诸多功能;最后,不仅Matlab自身具有第三方资源,且具有与C语言和Fortran语言的良好接口,也可充分利用已有的C语言和Fortran语言资源。
3.集成了Simulink。Simulink是一种强有力的仿真工具,它能在图形方式下以最小的代价来模拟真实动态系统的运行;自带了数百种常用的和专业的设备模型,先进有效积的分算法和直观的图示化工具;应用Simulink自带的模型,可以实现电力系统稳态、暂态过程、电力电子装置、继电保护等电力系统分析所涉及的各个方面的仿真。
二、Matlab编程在课程中的应用
电力系统分析中的潮流计算、潮流优化、小干扰稳定性分析等内容均需要在建立系统数学模型的基础上进行大量计算。以牛顿-拉夫逊潮流计算为例,其计算过程如图1(见下页)所示。
其中,解修正方程部分即求解方程组Ax=B\*MERGEFORMAT(1)的解。其中,A为n×n阶系数矩阵,B为n维列向量,x为代求未知n维列向量。该方程求解过程的C语言代码为:
for (i=0;i<=n-1;i++) //LU分解{mm[i]=i;//定义中间变量}for (k=0;k<=n-1;k++){l=k;p=A[k][k];//取对角元素
//找到该列从对角元素以下的所有值中的绝对值最大的值
//将该列的行序号存入l中,将值存入p中for (int j = k + 1;j <= M - 1;j++)
{//对角元素绝对值若小于该列下面元素的绝对值if (fabs(p) < fabs(a[j][k]))
{l = j;//记录该列的行序号,p = a[j][k];//记录对应的绝对值最大的值}}
//如果绝对值最大值不是主对角元素,则进行以下操作
if (l != k)
{//将矩阵A的第k行和第l行互换for (int j = 0;j <= M - 1;j++)
{//w为中间变量,实现a[k][j]和a[l][j]的交换w = a[k][j];a[k][j] = a[l][j];a[l][j] = w;}
//引入中间变量iw,实现mm[k]和mm[l]之间的交换iw = mm[k];mm[k] = mm[l];mm[l] = iw;}
//更新第k行的U部分內容,将第k个元素以后的元素除以pfor (int j = k + 1;j <= M - 1;j++)
{a[k][j] /= p;}
//更新第k行以下的U部分上三角矩阵for (int i = k + 1;i <= M - 1;i++)
{for (int j = k + 1;j <= M - 1;j++){a[i][j] -= a[i][k] * a[k][j];}}}//LU分解结束
for (int k = 0;k <= M - 1;k++) //前代过程
{ //求解LY=B中的Y
x[k] = b[mm[k]];for (int j = 0;j < k;j++)
{x[k] -= a[k][j] * x[j];}x[k] /= a[k][k];}//前代结束
for (int k = M - 1;k >= 0;k--) //回代过程
{for (int j = k + 1;j <= M - 1;j++)//求解UX=Y中的X{x[k] -= a[k][j] * x[j];}} //回代结束,未知量x求解完成
但是,Matlab语言求解该方程语句非常简单,如下所示x=A\B;比较C语言和Matlab語言求解修正方程的过程可见,采用Matlab编程,可以将学生从繁琐的编程过程中解放出来,将时间和精力更多的放在对问题本身的分析和解决问题算法的研究与应用上。
三、Simulink仿真在课程中的应用
Simulink是一款简洁、直观、高效的仿真平台,它的工具箱涵盖科研和工程的众多方面,如系统控制工具箱(Control System Toolbox)、系统辨识工具箱(System Identification Toolbox)、机械系统仿真模块(SimMechanics)和电力系统仿真模块(SimPowerSystems)等。其中的电力系统仿真模块包含了理想电源、电机、负荷、线路、电力电子器件等众多模型,可以实现电力系统分析中的稳态分析、暂态分析、电力电子装置、继电保护等很多方面的仿真。以同步发电机输出短路为例,其Simulink仿真电路如图2(见下页)所示。同步发电机不仅给本地负荷供电,还通过输电线路接至无穷大电网。在10时刻,线路中间发生三相对地短路,0.2s后短路故障清除。发电机输出电流和转子转速的仿真结果(标幺值)如图3(见下页)所示。
同步发电机输出三相短路的物理过程非常复杂,涉及定子绕组、励磁绕组、阻尼绕组和转子运动,需要用7阶同步电机模型,才能较为准确地分析。Simulink的自带发电机模型采用的是精确模型,其时域仿真可以直观地展现发电机短路过程中所有物理量的变化,从而加深学生对这些过程的认识和理解。
四、教改具体实施方案
具体实施方案可分为:选题、理论讲解、发布任务书、学生实践、结果评定和讲解等五个步骤。
1.选题。选取《现代电力系统分析》课程中具有代表性且对学生以后从事相关研究和工作具有帮助的知识点作为课题任务,如潮流计算、系统小扰动稳定性分析、发电机功角稳定性和高压直流输电等。
2.理论讲解。教师应对相关知识点进行全面地讲解,让学生掌握扎实的理论基础,同时,应给出相关参考文献,方便学生进一步学习和查询。
3.发布任务书。任务书中应给出系统的已知条件和设计要求,最好以IEEE或CIGRE的标准试验平台为基础设计相应的任务。
4.学生实践。学生自己动手编写Matlab程序或搭建Simulink仿真电路,完成分析和探讨,并撰写研究报告。
5.结果评定和讲解。对学生的源代码、仿真电路和研究报告等进行审阅,给出评定结果,查找其中的问题和不足,并在课堂上进行讲解。
五、结论
《现代电力系统分析》课程涉及电力系统规划、运行和控制的诸多方面,其核心内容均涉及复杂的数学模型与严谨的公式推导,较为晦涩难懂,传统的实现方式以C或Fortran等编程效率低的语言实完成,抑或是要借助PSSE、PSASP或PSCAD等电力系统分析的专业软件,这使得学生难以掌握,更无法在今后的相关研究和工作中熟练运用。Matlab具有极高的编程效率和调试效率,同时,它整合了Simulink,可以完成电力系统动态过程的时域仿真。将Matlab引入《现代电力系统分析》的教学过程,可以大大减轻学生编程和专业软件的学习负担,使其更专注于对电力系统理论和分析方法的学习和掌握,提高学生对相关理论、方法的应用能力,为之后从事相关研究和工作奠定坚实的基础。
参考文献:
[1]王锡凡,方万良,杜正春.现代电力系统分析[M].北京:科学出版社,2014.
[2]张伯明,陈寿孙,严正.高等电力网络分析[M].北京:清华大学出版社,2013.
[3]倪以信,陈寿孙.动态电力系统的理论与分析[M].北京:清华大学出版社,2008.
[4]王沫然.MATLAB与科学计算[M].北京:电子工业出版社,2004.
Abstract:"Advanced Power System Analysis" is a core course for graduate students in the majorof electrical engineering.The core contentof this course are mathematical models and numerical algorithm.Their engineering realization use C or Fortran languageandprofessional power system analysis software.It isdifficult to mater and cannot be practiced skillfully in the following research and work.This paper introduces Matlab/Simulink into this course.Learning burden of programming languageandprofessional software can bereduced greatly. Thus,studentscould focus on the theory and analysis method of power system.Students'ability could be improved. As a result,a solid foundationis laid forfuture related research and work.
Key words:Matlab;power system analysis;numerical calculation;computer simulation