摘 要本文讨论了数字化电气信息实验平台的开发与实现。平台采用面向对象思想分析了电力系统,以通用关系数据库为后台,结合ODBC应用程序接口,建立了丰富的计算模型库。本平台具有运行稳定、计算迅速、结果准确的特点。 关键词电力系统电气信息面向对象实验平台数字化 1引言 常用的电力系统应用软件(如BPA,PSASP等)虽然功...
摘 要 本文讨论了数字化电气信息实验平台的开发与实现。平台采用面向对象思想分析了电力系统,以通用关系数据库为后台,结合ODBC应用程序接口,建立了丰富的计算模型库。本平台具有运行稳定、计算迅速、结果准确的特点。
关键词 电力系统 电气信息 面向对象 实验平台 数字化
1 引言
常用的电力系统应用软件(如BPA,PSASP等)虽然功能强大,但操作较繁,界面不够友好,不太适用于教学。本平台注重
机界面的友好性,具有操作简单易学的优点,计算模块丰富,其特有的循序渐进式计算更能详细方便的展示计算的中间过程,因而较适合教学使用,且方便学生对自编程序及时的检查和修正。通用关系数据库的采用使得数据的存储更加方便和安全。本软件开发过程中所建立的一系列电力系统常用类库和矢量模板计算类库可以作为以后开发大型程序的基础,也可以为学生编程所用,从而使程序编写者更专注于关键问题的解决。
图1为该平台的系统结构图。平台有两种运行模式:在图形设计模式下,用户主要完成对电力系统的建模,输入设备数据和网络拓扑的有关数据,并绘制电气接线图;在计算模式下用户输入实时数据,平台进行拓扑分析和各种计算。平台可据用户的习惯在标么值和有名值两种不同的方式下运行。

平台主要实现了以下功能:(1)数据库存储,将所有网络信息存储在通用关系数据库中;(2)网络信息编辑,包括网络设备信息、型号信息和节点信息;(3)根据网络结构和实时数据计算系统的潮流,并可进行循序渐进式的潮流计算;(4)根据网络结构和并列的
开关位置计算并列后的环流和合环冲击
电流;(5)根据网络结构和故障信息计算系统发生复杂故障时的故障电流;(6)利用工具箱进行
变压器序

数、
电压调整等其他计算。
本平台主要包括数据库模块、计算模块(包括各种电力系统计算)和图形界面模块。
2 数据库模块
采用流行的关系数据库:Microsoft Access2000数据库。数据库的设计遵循第三范式。将数据库设计简化为以下两步
[1]:结构设计、数据库实施及维护。结构设计主要包括调查数据和处理。数据逐级分解形成若干层次的数据流图,数据流图表达了数据和处理过程的关系。数据字典则

对系统中数据的详细描述,是各类数据属性的清单。E-R图则直观的表示出系统的概念模型。
数据库包含22个表,表的建立可使用SQL语句动态建立。数据库生成后,作为辅助决策系统的后台,不提倡用户直接修改数据库数据。用户在程序界面下输入各种数据,而程序检查数据的有效性,避免不符合逻辑的数据输入。应用程序通过ODBC接口从数据库存取数据。ODBC接口是一种开放的数据库接口,它使得数据库可随时升级到高级的网络数据库如SQLServer、Oracle,而程序不用作太大修改。
数据库存储内容可以分为三类:(1)网络结构数据,包括设备型号参数、节点列表、变压器接线方式、电压等级等;(2)实时数据,包括发
电机出力、负荷数据、开关或闸刀状态等;(3)图形数据,包括设备在视窗中的位置、大小、名称等。
本平台的数据库模板中存储了电力系统中常用的电气设备型号、参数等数据。用户既可以直接调用其中的数据,也可在此基础上添加其他的有关数据。
3 计算模块
在本平台中潮流计算采用的是经典的Newton法
[2],并对在考虑发电机约束条件下的潮流算法以及QNPF
[3]算法进行了探讨和实践。复杂故障计算归于多口网络的分析,采用故障端口矩阵连接各序网进行计算。
在对计算模块进行建模设计的过程中,最主要的问题就是合理的设计各种类以及确定类之间的继承关系和数据传输。由于在电力系统分析中用到了大量的复数、向量和矩阵的运算,本文首先开发了数据运算模板类库。在进行电力系统计算前要对网络进行拓扑分析,要从数据库中读取网络结构信息以及故障信息等内容,将

些信息归纳到系统结构类中。对于各种的电力系统计算,本平台定义了相应的类加以封装。
3.1 数据运算模板类库 定义了复数类(CComplex)、向量类(CVector)、矩阵类(CMatrix),除了包括其相应的数据成员外,还重载了常用的各种运算符,并以成员函数的形式实现了清空数据、初始化对象等各种操作,使得复数、向量、矩阵的定义和使用同普通变量一样方便。
将稀疏矩阵进行抽象和封装,定义为单独的稀疏矩阵类(CSparseMatrix)。稀疏矩阵的一些特殊操作,如因子化、节点排序、求解等以成员函数的形式封装在稀疏矩阵类中。由于对稀疏矩阵进行了封装处理,稀疏矩阵的修改和扩充就变得比较容易。只要保持稀疏矩阵的接口不变,这种改变就不会对原有程序的正常运行造成影响。稀疏矩阵的内部存储使用改进的十字链表法。因为封装了十字链表,使得对十字链表的访问变得如同访问一个二维数组一样方便。封装的十字链表具有很强的可重用性,作为一种自定义的数据类型,可使程序具有很强的可读性,便于程序的编制和维护。在定义封装稀疏矩阵时由于使用了模板类,所以更加适用于不同数据类型的情况。
3.2 系统结构类 系统结构类包括网络结构信息和故障信息。电力网络是由各种元件组成的,元件类是所有系统元件的基类:支路类,派生出线路、变压器、电容器;注入类,派生出发电机、负荷。所有的支路类和注入类都分别定义了具体设备的详细参数。支路类还以成员函数的方式实现了插入导纳矩阵的操作。由于要对各类元件进行频繁的操作和存取,本平台对每类元件建立了相应的链表,每个元件是相应链表上的一个节点。采用VC提供的Coblist类可以方便的实现查找、插入、删除、更新等操作、避免了繁琐的代码编写,也方便了数据元素的管理。
故障信息的描述包括故障数、故障位置、是短路故障或断线故障等。
3.3 潮流计算 潮流计算类(CPowerflow)封装了潮流计算方法,能够从数据库中读取网络信息,进行潮流计算,并以多种方式显示潮流计算结果。注意,在常规潮流计算中,当发电机无功越限时,简单的将发电机节点由PV节点转变成PQ节点,在某些严重的运行条件下将带来误差。所以,可以将受发电机定子和转子电流约束条件下的节点定义为PI
sr节点
[4],并根据发电机定子和转子电流约束方程组对雅可比矩阵进行修正,这样得出的结果更加准确可信。在潮流计算中,采用QNPF法,即在迭代计算中,根据对未来偏差量的估计决定在下一步迭代中对雅可比矩阵的处理,有三种选择:完全重新修改(rebuild)、部分修改(partial update)、固定不变(constant)。采用QNPF法,虽然会增加迭代次数,可是在总体上节省了计算机时,而且所计算的系统越大,效果越明显。
为了更加方便的展示潮流计算过程,本平台特定义了循序渐进潮流计算类(CIterPowerflow)。循序渐进潮流计算类以公有继承方式派生于潮流计算类,它能展示潮流计算的中间结果,比较适用于教学。通过继承,新类不仅具有旧类的属性和方法,而且还具有自己独有的属性和方法。在软件设计中,继承的使用有助于提高软件的可维护性、可扩充性和可重用性。循序渐进潮流计算类在潮流计算类的基础上增加了以下功能:(1)用户自行
设置潮流计算中迭代计算的收敛条件。(2)显示网络的导纳矩阵。(3)显示迭代过程中某一迭代次数下的雅可比矩阵、节点电压、有功和无功偏差等。
通过进行循序渐进的潮流计算,用户可以直观的查看潮流计算过程中用到的主要数据,并且可以方便的对自己所编程序进行检查校验。
3.4 故障计算 在故障计算中,使用多口网络理论分析网络,采用故障端口矩阵法进行计算。故障计算类(CFaultCal)封装了复杂故障计算模型,并以相应的成员函数实现了以下计算步骤:
(1)根据网络结构信息和故障信息形成三序导纳矩阵,求取节点电压初值和故障端口开口电压;
(2)通过注入电流法求出部分阻抗矩阵,再得到故障端口矩阵,并通过理想变压器将非特殊相故障转移到特殊相,最后叠加三序网求出故障端口电压、电流;
(3)计算节点电压,即初始值与故障分量进行叠加;
(4)计算支路电流、设备电流等其他信息。
在应用端口矩阵法时,由于纵向故障的开口电压无法通过正常的潮流计算程序得到,本文采用发电机由戴维南
电路等效变换为诺顿电路求解。发电机的等效注入电流I
(0)=E
″d/X
″d,代入方程YV
(0)=I
(0)中,可解得各节点的初始电压,然后计算故障端口电压。在判断故障类型是否为串联型或并联型时,两相直接短路有点特殊,没有零序网,不属于以上两种故障类型,本文通过将其故障端口的零序自阻抗设定为很大值,互阻抗设定为零,可等效为并联型故障。以上采取的两种措施方便了计算机编程,且经算例检验计算结果可靠有效。
3.5 环流与冲击电流计算 系统运行中的合环操作有可能产生较大的环流,影响系统的安全及设备的正常运行。在环流计算中,利用潮流计算直接得到合环后的潮流分布再得到环流。这是一种精确的方法,但需要充足的实时数据。在冲击电流计算中,将网络在并列处用戴维南等效电路进行求解。
在平台中还有一个常用计算工具箱可以用来进行一些较小的电力系统计算,如(1)利用前代-回代法对简单辐射网进行潮流计算;(2)电压调整;(3)计算变压器序参数等。
4 图形界面模块
4.1 电气接线图绘制 VC中的视窗类提供了电力系统接线图的显示载体,ACCESS数据库则存储了所有的图形数据。
以面向对象的观点来看,不同种类的元件自然对应于C++中的不同类,它具有自己的一些特殊属性和数据,如大小、形状、位置等,也具有自己的各种特殊行为。所以,每种元件都以相应的类实现,从而实现图形系统的各种功能和操作。同时,由于元件除了自己特殊的属性和行为外,还有一些共性,如颜色、中心位置等属性及移动、旋转、删除等操作,本平台利用C++类继承和派生的特点,建立了不同元件的公共基类CPicture,其他元件类在此基础上派生而成。
平台有较强的图形编辑功能,如复制、删除、移动、旋转等可以用鼠标或键盘灵活操作。为了适应不同用户的习惯,平台提供了菜单项、工具栏、快捷键等不同的命令操作方式。平台附带了流行的chm格式的帮助文件,使用户能够方便及时的查阅。对于系统较大、接线复杂的情况,为了方便用户查看修改电气元件数据,平台提供了查找设备命令,并以虚线框的形式在电气接线图上对所查找设备进行定位。
4.2 数据录入和进行计算 本平台在数据输入和系统计算操作上有以下几个特点:
(1)设计了一系列的数据输入对话框,如用户双击系统接线图上的发电机元件就可以弹出对话框供用户进行实时出力数据的录入,并且同时可以查看发电机的其它详细参数。
(2)对于用户一些不正确的设置(如故障位置的选择),平台会以弹出对话框的形式提醒用户进行更正,否则拒绝进行计算。
(3)平台在计算结果的显示上采取了多种方式,如潮流计算结果有用户界面的列表显示、系统接线图的感应显示,同时还可以把计算结果保存在文本文件中。图2为平台对IEEE14节点系统进行潮流计算后的界面显示。
用户界
面组件的设计原则是尽量采用操作系统中的标准组件,以保持和操作系统的一致性,也有利于用户的使用,对于操作系统不提供的组件可以在已有组件的基础上增加新的功能并封装以便于以后应用。


5 总结和展望
本软件已用IEEE14、30、57节点系统以及上海某大型企业电网验证过,有良好的实际应用效果。在实际应用中,本平台体现了以下几个主要特点:
(1)计算模块丰富,运算较快,结果可靠,并可显示较详细的计算过程;
(2)界面友好,易学易用,有详细的联机帮助文件;
(3)数据存储安全方便,且利于以后程序升级;
(4)平台既可以应用于教学也可以应用于实时环境,并可作为开发大型电力系统应用程序的基础。
当然,软件的功能还可以加强,如在复杂故障计算时,还可以进一步考虑负荷模型。在环流计算时还可以采用其它方法加以补充。作为
期发展目标,本软件还可以在将来涵盖电力系统分析计算的其他内容,如在潮流计算基础上增加电压稳定分析,提供无功优化、负荷预测等实用功能,OOP技术的采用使得这些目标的实现变得不再困难。
参考文献
1 萨师煊,王珊.数据库系统概论.北京:高等教育出版社,1991
2 吴际舜.电力系统稳态分析的计算机方法.上海:上海交通大学出版社,1992
3 Adam Semlyen,Francisco de Leon.Quasi-NewtonPower Flow Using Partial Jacobian Updates.IEEETransactions on Power Systems,2001,16(3):332~339
4 包黎昕,段献忠,何仰赞,宋志东.考虑发电机约束条件的潮流计算方法.中
电机工程学报,1998,18(6):413~415
5 E Z Zhou.Object-Oriented Programming,C++andPower System Simulation.IEEETransactions on Pow-er Systems,1996,11(1):206~215
6 Shubha Pandit.Object-Oriented Design for Power Sys-tem Applications.IEEEComputerApplications in Pow-er,2000,13(4):34~47