(电力系统及其自动化专业论文)智能潮流分析系统的研究与开发.pdf_第1页
(电力系统及其自动化专业论文)智能潮流分析系统的研究与开发.pdf_第2页
(电力系统及其自动化专业论文)智能潮流分析系统的研究与开发.pdf_第3页
(电力系统及其自动化专业论文)智能潮流分析系统的研究与开发.pdf_第4页
(电力系统及其自动化专业论文)智能潮流分析系统的研究与开发.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

声明 本人郑重声明:此处所提交的硕士学位论文智能潮流分析系统的研究与开 发,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作 和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其 他教育机构的学位或证书而使用过奁勺材料。与我一屑工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名 莽耻日 期:丝兰! ! ,兰i 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有 权保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩 印或其它复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅; 学校可以学术交流为目的,复制赠送和交换学位论文;同意学校可以用不同 方式在不同媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名: 莽舡 日期:堋,j ,? f 导师签名: 日 期:立! :! ! :j f 华北电力大学硕士学位论文 1 1 课题的目的和意义 第一章引言 电网运行方式安排得是否合适直接影响着电力系统的安全稳定运行,影响着工 农业生产和人民的生活。由于负荷预测的改变、设备的计划检修等原因往往会造成 在进行潮流计算的时候出现节点电压越界和支路传输功率越界行为。由于电力系统 是一个复杂的非线性系统,在电力系统的各个变量之间存在着或多或少的相互关 联,如果系统中出现一两处越界行为,单凭运行方式安排人员的经验或许能够将其 消除,但是当系统中出现多个节点电压越界和支路传输功率越界时单凭运行方式安 排人员的经验就很难将其消除了。在经过不合理的调整之后可能会导致电网中产生 更多的节点电压越界和支路传输功率越界。快速有效地消除网络中出现的节点电压 越界和支路传输功率越界对于运行方式的安排来说是一件有意义的事情。 当前电力系统的潮流分析软件大多没有涉及到如何调整各个控制变量使得状 态变量回到安全范围中来的问题。针对当前运行方式安排人员缺少能够进行越界消 除的潮流分析工具,本文开发了一个智能潮流分析系统。该系统是在w i n d o w s 平台 上采用v i s u a lc + + 作为用户界面等的开发工具,采用m a t l a b 作为数值计算的开发 工具,采用a c c e s s 作为数据库开发的。该系统具有友好的用户界面能够进行p q 分解法、牛顿一拉夫逊法,以及采用高斯赛德尔法的计算结果作为迭代初值的牛顿 拉夫逊法的潮流计算,能够在系统中出现节点电压越界和支路传输功率越界行为的 时候通过最优潮流计算,以及在根据灵敏度矩阵进行调整的过程中采用数学规划的 方法给出一个消除节点电压越界和支路传输功率越界行为的有效方案。 1 2 国内外的研究现状 1 2 1 电力系统编程技术的发展现状 在电力系统分析软件的开发中采用面向对象的技术已成为系统开发的主流。在 系统开发时采用面向对象的技术可以使程序的维护简单、可扩充性比较好、代码重 用非常方便。 随着计算机技术的发展,为采用不同的开发工具。刹用不同开发工具的特长进 行系统开发提供了可能性,为了提高系统开发的效率再也不能拘泥于某一个开发工 且了采用混会缩起丰占术诽行恕亭的开发已终赫广士的趣l 章耳倍 吊簖垃殍当苗 1 华北电力大学硕士学位论文 解决不同开发工具开发的程序联合工作的简单方法是采用动态链接库技术。如采用 v i s u a lc + + 作为主程序的开发工具,采用f o r t r a n 等作为数值计算模块的开发工具。 随着m a t l a b 的进一步发展,m a t l a b 在编译方面的能力也得到了进一步提 高,可以将i n 函数编译成动态链接库提供给v i s u a lc + + 开发的主程序调用或是将m 文件翻译成c + + 文件然后插入到v i s u a lc + + 开发的工程中。这样可以大大的简化程 序开发的难度。 采用动态链接库进行编程可以方便的实现程序的共享和复用。当有类似功能的 程序需要开发时,只要将相应的动态链接库进行简单的修改即可应用于其它的地 方。 1 2 2最优潮流问题国内外的研究现状 最优潮流计算是一个复杂的非线性规划问题,要求在满足特定的电力系统运行 和安全约束条件下,通过调整系统中可利用的控制手段实现预定目标最优的系统稳 定运行状态。当前应用比较广泛的最优潮流算法主要有二次规划法、n e w t o n 法以及 内点法等1 “。 建立在严格的数学基础之上的最优潮流计算是由法国学者在上世纪六十年代 提出来的。第一个成功的最优潮流计算的算法是简化梯度法,这种算法建立在 n e w t o n 法潮流计算之上,独立变量取系统的控制变量,用罚函数处理违约的函数不 等式约束,用拉格朗日乘子方法判别是否已到边界。 二次规划算法将目标函数表示成二次函数,而将约束线性化处理,其精度比较 高。该类算法通过采用增广拉格朗日函数把原问题转化为一系列线性约束子问题进 行求解。 台湾学者提出的牛顿潮流算法充分利用了电力网络的物理特性,开发了 h e s s i a n 矩阵的导纳稀疏结构,把等式约束和起作用的函数不等式约束用l a g r a n g e 乘子引入到目标函数中,直接对拉格朗日函数的k u h n t u c k e r 条件进行牛顿法迭代 求解,而起作用的简单变量不等式约束用二次罚函数来处理。该算法运用了最先进 的稀疏矢量技术和因子表部分再分解技术,极大地提高了识别起作用的不等式约束 集的效率。而一旦正确的识别出起作用的约束集之后,n e w t o n 法就以二次速率收敛。 在所有的o p f 算法中,这一算法是收敛最快的。 近些年来内点法得到了广泛的研究与应用,内点法最初的基本思路是希望寻优 迭代过程始终在可行域内进行,因此,初始点应该取在可行域内,并在可行域的边 界设置“障碍”使得迭代点接近边界时其目标函数值迅速增大,从而保证迭代点为 可行域的内点。 2 华北电力大学硕士学位论文 除了上面的介绍的这些算法之外,也可以采用一些数学规划领域相对成熟的软 件来进行最优潮流的计算,如:m a t l a b 的优化工具箱、g a m s 软件等。采用这些 工具可以非常方便的实现最优潮流问题的求解扪。 本文所开发系统的最优潮流计算程序在编写过程中采用总的有功和无功的调 整量最小作为目标函数。 1 2 3灵敏度问题国内外的研究现状 灵敏度反映了状态变量随控制变量变化的情况,当前求解灵敏度矩阵最为普遍 的方法还是将功率方程在运行点附近线性化,得到一个关于控制变量和状态变量的 线性方程组,这个线性方程组的系数也就是我们所需要灵敏度矩阵。其实。灵敏度 矩阵也正是采用牛顿一拉夫逊法进行潮流计算时最后次迭代的j a c o b i a n 矩阵。根 据这个灵敏度矩阵可以进行电压稳定的分析、估计无功和有功出力变化时对电压的 影响等等4 心。 在确定了灵敏度矩阵后还可根据灵敏度系数的大小和正负进行调整,从而达到 消除变量越界的目的。采用这种方法比较简单,不需要进行大量的数值计算,但是 采用这种方法不能保证快速有效地消除越界行为,因为该灵敏度矩阵只在运行点的 很小的临域内是适用的,当调整的控制量比较大时灵敏度矩阵就不再适用了。为了 克服在采用灵敏度进行调整时存在的这种弊端,本文在采用灵敏度进行调整的时候 引入了数学规划技术,即在运行点附近对控制变量的调整量和状态变量的变化量进 行数学规划。采用控制变量总的调整量最小作为目标函数,这样就能够保证调整是 在运行点的一个很小的临域内进行了,从而使得灵敏度矩阵一直有效。在根据灵敏 度矩阵进行调整的时候采用数学规划技术能够保证消除原有的越界行为的同时不 发生新的越界行为。 1 3 本文的主要工作 针对当前在运行方式安排过程中缺少有效的消除越界行为的潮流分析工具,本 文在w i n d o w s 平台上,采用v i s u a lc + + 及m a t l a b 开发工具开发了一个具有越界 消除功能的潮流分析系统。该系统具有可视化友好的用户界面,能够进行潮流计算, 能够在系统中出现越界行为时通过最优潮流计算或是经过基于灵敏度的数学规划 方法来快速有效地消除越界行为。 本文的主要工作如下: ( 1 ) 开发p - q 分解法和牛顿一拉夫逊法潮流计算程序并开发高斯一赛德尔法潮流程 序为牛一拉法提供计算初值。 华北电力大学硕士学位论文 ( 2 ) 对最优潮流计算的各种算法进行研究,开发基于最优潮流计算的潮流越界消除 方法。 ( 3 ) 研究灵敏度矩阵的算法和基于灵敏度的数学规划方法,开发用于潮流越界消除 的基于灵敏度的数学规划方法。 ( 4 ) 结合专家系统技术,研究以消除潮流越限为目的的系统潮流调整方法。开发具 有潮流越限消除功能的智能化潮流分析系统,辅助运行人员安排系统运行方 式。 4 华北电力大学硕士学位论文 第二章系统的功能和总体方案设计 2 1系统功能设计原则 从开发人员的角度以及通用性、扩展性的角度出发,在设计中把系统分成几个 功能模块,采用面向对象的方法进行设计。这样只要设计好各个模块之间的接口就 可以利用不同的开发工具在某一方面的特长开发各个不同的模块。从而可以缩短开 发周期,增强所开发系统的稳定性。这样做还可以实现系统中的各个模块的重用, 以后遇到类似的工作只要把当中的某一模块稍加修改即可。 从用户角度出发,在系统的设计中应遵循以下几个原则: ( 1 ) 简单化。系统各个功能的实现应当操作简便,减轻用户的负担,同时,也减少 了用户的出错机会。 ( 2 ) 可视化。应提供良好的人机界面,提供可视化操作。电网数据的可视化管理可 以降低用户维护数据的强度,减少数据出错的可能性。 ( 3 ) 易维护。用户遇到的所有操作都可以在用户界面中完成,不需要对程序进行特 别的修改。 ( 4 ) 容错性。由于某种原因造成程序计算的失败后,尽量不使整个程序终止,不影 响程序其他的部分的分析功能。 2 2 系统的总体功能设计 本文所开发的这个系统具有友好的用户界面,能够进行p q 分解法、牛顿拉夫 逊法以及高斯一赛德尔潮流计算为牛顿一拉夫逊法提供迭代初值的潮流计算。能够在 电网中出现节点电压和支路传输功率越界的时候通过最优潮流计算和基于灵敏度 的数学规划方法给出一个合理的消除各种越界行为的方案。 为了在系统中实现以上提及的这些功能,本文为系统设计了文件操作模块、用 户图形界面模块、潮流计算模块、调整措施生成模块以及越限处理模块。如图2 1 所示。 5 华北电力大学硕士学位论文 图2 - 1系统的总体框架 2 2 1 文件操作模块及其实现 文件操作模块主要完成网络图形韵创建、打开、删除等功能,事实上,文件操 作模块的功能主要是靠对数据库的操作来完成。当要新建一个图形的时候,只要将 某个位置相对固定的空数据库复制到为这个图形新建的目录下来即可。 通过函数g e t m o d u l e f i l e n a m e 来得到当前文件的路径,然后再通过对字符串的 操作来确定每一个文件及文件夹的具体位置。 在创建文件目录时采用函数c r e a t e d i r e c t o r y 来实现,这个函数可以用来在指定的 位置创建一个文件夹。 在拷贝、删除文件时采用函数s h f i l e o p e r a t i o n 来实现,通过设置不同的参数, 该函数可以完成文件的拷贝、删除等功能。 2 2 2 图形界面模块 图形界面模块主要完成与用户的交互,如:图形显示、图形编辑、数据输入以 及潮流计算结果曼示等功能。关于图形界面的具体实现本文将在第五章进行具体的 介绍。 2 2 3 潮流计算模块 潮流计算模块主要是完成潮流计算,包括牛顿一拉夫逊法、快速解耦法以及采 用高斯一赛德尔法的计算结果作为迭代初值的牛顿一拉夫逊法。这一部分内容本文将 在第三章作具体的介绍。 6 华北电力大学硕士学位论文 2 24 调整措施生成模块 本文所开发的系统为了减少所调整的控制变量的数量,在进行最优潮流计算和 基于灵敏度的数学规划方法进行越界消除的时候采用了可由用户选择松弛变量的 处理方法。但是这样进行处理带来了另外一个问题,那就是可能运行方式安排人员 不知道该如何进行松弛,针对这种情况在系统中开发了该调整措施生成模块。 调整措施生成模块主要是根据潮流计算的结果和系统的状况通过一定的规则 对整个网络进行搜索,然后生成一个可以辅助运行方式安排人员进行调整的方案。 关于这一部分的具体实现方法将在第四章进行介绍。 2 2 ,5 越界消除模块 越限处理模块主要是通过最优潮流计算以及在根据灵敏度进行调整的过程中 采用数学规划技术来消除节点电压和支路传输功率越界。这一部分的内容将在第三 章进行介绍。 7 华北电力大学硕士学位论文 第三章潮流分析与越限消除技术的研究 3 1 潮流计算 在该系统中为了适应各种不同类型的网络,采用了三种方法进行潮流计算。包 括牛顿- 拉夫逊法、p q 分解法和以高斯塞德尔法的计算结果作为迭代初值的牛顿一 拉夫逊法,为了加快潮流计算的运行速度这三种方法都采用了稀疏矩阵进行计算。 鉴于各种参考书籍上对潮流计算的算法都有着详细的介绍,这里只对各种潮流计算 方法的优缺点进行介绍和比较【6 l 。 3 1 ,1 牛顿,拉夫逊法 牛顿法是求解非线性方程的有效方法。这种方法把非线性方程式的求解过程变 成反复对相应的线性方程的求解过程,通常称为逐次线性化过程。牛顿潮流算法的 突出优点是收敛速度快,如果选择一个较好的初值,算法将具有平方收敛的特性。 一般潮流计算迭代6 7 次就能够收敛到非常精确的解。牛顿潮流算法还适用于配 电网络的潮流计算。但是当系统较大时采用牛顿法的计算速度也并不是十分令人满 意,为了加快牛顿潮流法的计算速度,在潮流计算过程中采用了稀疏技术,这样一 来明显的加快了潮流计算的速度。 3 1 2 p q 分解法 p q 分解法是从极坐标形式的牛顿拉夫逊潮流计算法中演变过来的。其基本的 思想是把节点功率表示成电压相量的极坐标形式,以有功功率误差作为修正电压相 角的依据,以无功功率误差作为修正电压幅值的依据,把有功功率和无功功率迭代 分开来进行。由于把2 n 阶的线性方程组变成了两个n 阶的线性方程组,因而p q 分 解法具有简单、快速、内存节省的优点,使其成为当前使用最为普遍的一个潮流算 法。但是p q 分解法并不是对所有的网络都是适用的,在计算配电网络的潮流时, 由于配电网络的刚x 较大,无法满足r c c x 这一条件,所以在配电网络中p q 分解法 难以收敛。虽然采用串联或是并联补偿法可以解决这个问题,但是这些方法使得算 法复杂化,丧失了g q 分解法原有的计算量小,收敛可靠的优点。鉴于该系统当中 亦开发了牛顿一拉夫逊法的潮流计算,所以在该系统当中没有考虑大r x 的情况。 如果p q 分解法计算失败的话采用牛顿拉夫逊法即可。 8 华北电力大学硕士学位论文 3 1 3高斯赛德尔法计算结果作为初值的牛顿拉夫逊法 牛顿一拉夫逊法的潮流计算虽然有很多的优点,但是牛顿拉夫逊法也有着一定 的局限性,那就是对初始值要求比较高。当初始值选择得不恰当时,可能会出现潮 流计算不收敛,或者收敛到实际电力系统无法运行的一个解。 一般情况下当电力系统正常运行时,各节点运行在额定电压附近,各节点电压 相角差又不大时,采用“平均电压初值”,即除平衡节点外,各节点电压初值为1 , 相角为0 ,这样牛顿一拉夫逊法能给出比较满意的结果。当系统无功功率比较紧张, 电压质量较差或当系统运行在接近静稳定极限各节点电压相角差较大时,牛顿一拉 夫逊法就可能不收敛或收敛到一个不合理解上。为了解决这个问题,在该系统中先 利用高斯塞德尔法的计算结果作为牛顿一拉夫逊法的迭代的初始值。 高斯一赛德尔迭代算法是在电力系统中最早得到应用的潮流计算的方法,该方 法具有原理简单、程序设计容易、内存节省以及对初值不敏感等优点。但是高斯一 赛德尔潮流算法的也有着其致命缺点那就是收敛速度比较慢,尤其是网络中的节点 比较多时这个问题将会更加突出。当前高斯一赛德尔只是作为提供初值的一种方法 而被使用。先用高斯一赛德尔法进行1 2 次迭代,然后再进入牛顿一拉夫逊法的迭代 过程。这样可以充分利用这两种方法各自的优点来克服两者各自的缺点。通过在系 统中采用这种方法使系统有了一定的稳健性,能够针对各种不同的网络进行潮流计 算。 通过算例证明,该系统中所采用的这三种潮流计算方法具有基本相同的解。 3 2 最优潮流问题简介 电力系统最优潮流,简称o p f ( o p t i m a lp o w e rf l o w ) ,是法国学者于2 0 世纪 6 0 年代提出的。o p f 问题是一个复杂的非线性规划问题,要求在满足特定的电力系 统运行和安全约束条l 牛下,通过调整系统中可利用的控制手段实现预定目标最优的 系统稳定运行状态。我们所求得的这些所谓晟优潮流的解是其实是局部最优解,当 前求解全局最优解还是一个比较困难的问题【7 】 8 l 。 o p f 模型中,变量主要分为两大类。一类是控制变量,是可以控制的自变量, 通常包括机组的有功出力,各发电机和无功补偿设备的无功出力;移相器的抽头位 置、可调变压器的抽头位置、并联电抗器或是电容器的容量等等。另一类是状态变 量,是控制变量的因变量,通常包括各节点的电压和各支路的功率等。 最优潮流考虑的系统约束条件有: 9 华北电力大学硕士学位论文 ( 1 ) 各节点有功功率和无功功率平衡约束。 ( 2 ) 各发电机有功出力的上下界约束。 ( 3 ) 各发电机和无功补偿设备无功出力的上下界约束。 ( 4 ) 并联电抗器或是电容器的容量。 ( 5 ) 移相器抽头位置的约束。 ( 6 ) 可调变压器抽头位置的约束。 ( 7 ) 各节点电压幅值上下界约束。 ( 8 ) 各支路传输功率约束。 从数学观点看来,( 1 ) 为等式约束,其余为不等式约束:( 1 ) 、( 8 ) 为变量函数约 束,若在数学模型中节点电压采用直角坐标的形式,( 7 ) 也属于变量函数约束,其余 为变量约束;就约束的物理特性而言,( 2 ) ( 6 ) 称为控制变量约束,( 7 ) 、( 8 ) 为状态变 量约束。 最优潮流计算的模型描述如下: m i nf ( x ,“) s t g ( x ,) = 0 ( 3 - 1 ) ( x ,“) 0 o r h 兰h ( x ,“) h 式中:f ( x ,“) 为目标函数 g ( x ,“) 等式约束集,通常为以节点注入功率表示的潮流方程; h ( r ,”) 不等式约束集,通常为运行的约束条件; 至今,已经提出了多种最优潮流的模型和计算方法,包括:非线性规划法、二 次规划法、线形规划法、混合规划法、内点法以及人工智能法等。 下面介绍其中几种比较常用的最优潮流计算的方法【9 【d 】l 。 3 2 1 简化梯度法 简化梯度法实际上等同于无约束问题的最速下降法。最速下降法的基本思想是 利用函数值在迭代点下降最快的方向作为寻优方向,以使函数值尽快达到极小。由 于函数值下降晟快的方向为负梯度方向,因此该法也称为梯度法。在最优潮流计算 中,1 9 6 8 年d o m m e l 和t i n n e y 利用牛顿一拉夫逊潮流程序,采用梯度法进行搜索。 该方法程序编制简便,所需存储量小,对初始点无特殊要求曾获得普通重视。由 于该法仅在控制变量子空间上寻忧,故称为简化梯度法。 o p f 简化梯度法首先利用l a g r a n g e 乘子法引入等式约束。得到增广的目标函数 1 0 华北电力大学硕士学位论文 l ( x ,五) = f ( x ,u ) + z 7 9 ( x ,“) ( 3 - 2 j 化为无约束问题求解,独立变量取系统的控制变量用罚函数处理函数不等式约束。 o p f 简化梯度法的算法为: ( 1 ) 肛0 ,给定收敛判别误差8 ,并给各控制量赋初值。 ( 2 ) 用牛顿拉夫逊法求解潮流,算出与控制量根应的状态变量。 ( 3 ) 计算该状态下函数g ( x ,“) 的雅可比矩阵的转置 以 。, 以。 。及目标函数的梯度 向量( 髟) 。,( 曩k 。 ( 4 ) 求以= 一 以t 。( v ) 。 ( j ) 计算简化梯度( a z a u ) 。= ( v e ) 。+ 【杉 。以 ( 6 ) 若i a l i b i 。 o ) 3 _ 6 或 p ( x ,r a = 厂( 工) 一气l o g ( 晶( x ) ) ( o ) ( 3 7 ) 1 2 华北电力大学硬士学位论文 上两式右端第二项为障碍项。可见,在边界上( 至少有一个g ,( x ) = 0 ) ,p ( x ,) 为 正无穷大。 如果从可行域内部的某一点z 出发,按照无约束最小化方法对式( 3 - 6 ) 进行 迭代,随着障碍因子r k 的逐步减小,即 r t r 2 、 r k 0 障碍项所起的作用越来越小。 内点法的迭代步骤如下: ( 1 ) 取 0 ( 例如取r i = 1 ) ,允许误差 0 。 ( 2 ) 找出一个可行的内点x r o 并令k = l 。 ( 3 ) 构造障碍函数,障碍项可采用倒数函数,亦可采用对数函数。 ( 4 ) 以x 陋1 r 。为初始点,对障碍函数进行无约束最小化。 ( 5 ) 检验是否满足收敛准则 喀丽1 两占 或 ik l o g ( g ,( 爿”) ) f 占 如果满足上述准则,则以x 为原问题的近似极小解x 。;否则,去r k + , a v , _ 。 ( 3 2 0 ) 北。 邮 配。 q f 。 a q , q ,。i n 约束条件中s 为由上面所述方法求得的灵敏度矩阵。其中p c 和分别是各节点 1 5 华北电力大学硕士学位论文 当中允许调整的有功或是无功;蚱。和k m m 为节点当前电压和电压上下界之间的 差值:凹。和们m m 为当前的节点的注入有功功率和节点注入有功功率上下界的差 值;0 。和q f 。为当前的节点的注入的无功功率和节点注入的无功功率上下界的 差值。如果在系统当中某个节点的注入功率不允许改变,则在计算过程当中不加入 该变量( 凹或9 ) 即可。 在对上面的数学规划问题进行求解的过程中,很有必要对目标函数进行一些处 理,我们把绝对值改成平方和的形式。即: r a i n ( 北2 + a q j 2 ) i p c ,缈 s t = ( 川嵋+ ,a q j ) 。 a v , a v 一 ( 3 - 2 1 ) 衅 邮 凹。 a q , 。 q a q 这是一个二次规划问题,其求解有着成熟的算法【2 1 3 】f 7 【8 】。 当然,消除越界行为可能需要几次迭代。程序中的消除电压越界的过程如图3 一l 所示: 图3 一l 消除越界的流程图 1 6 华北电力大学硕士学位论文 第四章基于专家系统的调整措施的生成 4 1 调整措施的生成 当系统中出现越界时,一般的最优潮流程序采取的措施是松弛所有发电机的无 功出力或同时松弛所有发电机的有功出力,但这样一来所有的这些发电机的出力都 需要调整,这是我们不想看到的情况。而且大多数情况下没有必要松弛所有的发电 机的有功和无功出力,只要松弛部分发电机的出力然后通过最优潮流或是基于灵敏 度的数学规划方法计算就可找到一个满足所有约束的解。当然还有另外一种极端的 可能性存在那就是在松弛了所有发电机的无功出力以至所有的发电机的有功出力 之后仍然不能满足所有的约束,这样就造成了程序的适用性不够理想。 该系统中采用了可由用户任意松弛控制变量的处理方法,使得系统能在满足所 有约束的同时松弛的控制变量的数目尽可能的少,即使出现在松弛所有的发电机有 功出力和无功出力之后仍不能满足所有约束条件的情况该系统依然可以通过对负 荷进行控制来满足所有的约束条件。 在利用该系统进行分析的时候运行方式安排人员当然可以根据自己的经验来 选择所需松弛的控制变量,这样需要对系统有一个比较深刻的了解。如果运行方式 安排人员不想自己决定或是对网络情况不是非常了解。系统可以根据当前网络的运 行状况搜索得到一个相对合理的调整措旖,然后运行方式安排人员可以根据该建议 进行控制变量的松弛。该系统中采取了下面一些规则来确定所应松弛的控制变量及 所松弛变量的先后顺序【1 2 j 【13 1 。 4 1 1 针对电压越限 1 如果节点电压越界,则松弛所有的无功电源的无功出力。( 这是系统默认韵,一 般采用最优潮流计算时均可得到符合约束条件的结果,因为在采用最优潮流计 算的时候,我们把所有节点的电压都作为不等式约束处理了) 。 2 如果不能满足所有的约束,则以越界的节点为中心按照广度优先的原理搜索发 电机,搜索深度为三层。如果搜索到发电机则松弛这些发电机的有功出力。 3 如果仍不能满足所有的约束,则松弛所有发电机的有功出力。 4 如果在松弛所有的发电机的出力之后还是不能满足所有的约束的话,则只能进 行负荷控制了。以越界的节点为中心按照广度优先的原理搜索第三类负荷,搜 1 7 华北电力大学硕士学位论文 索深度为三层。如果搜索发现第三类负荷,则松弛这些负荷。 4 1 2针对支路传输功率越限 1 首先松弛所有无功电源的出力( 这是系统默认的) 。 2 如果不能满足所有的约束,则以越界支路两端的节点为中心同样按照广度优先 的原理搜索发电机,搜索深度为三层。然后松弛搜索到的发电机的有功出力。 3 如果在松弛搜索到的发电机有功出力的基础上仍不能满足所有约束的话,则松 弛所有发电机的有功出力。 4 如果还是不能满足所有约束,则以越界支路的受端节点为中心按照广度优先的 原理搜索第三类负荷,搜索深度为三层。如果搜索后发现第三类负荷,则松弛 这些负荷。 4 2 调整措施的输出 该系统采用i e 作为输出调整措施以及其他结果输出的浏览器。因为该潮流分析 系统是在w i n d o w s 平台上开发的,而i e 又是w i n d o w s 自带的浏览器,用户一般都 对i e 浏览器比较熟悉,i e 浏览器有着方便的打印等各种所需的功能,用户也不需 要担心会出现使用文本等输出时不小心对数据的修改的情况,所以采用i e 作为测览 器使用起来会比较方便。 对于系统开发人员来说采用h t m l 编程简单易学,采用c + 十语言生成h t m 格式 的源文件也非常简单。只要采用w r i t e s t r i n g 函数将所要编写的h t m l 格式的代码 输出到以“h i m ”为扩展名的文件中即可。 由于h t m l 语言比较简单,下面直接给出采用该系统对i e e e 5 节点网络进行 分析时系统生成的调整措施的“h t m ”源文件和浏览器显示的内容: 调整措施 节点电压有越界现象,下面是针对节点电压的调整措施: 针对当前的电压越界保持系统的默认设置即可。 如果默认的设置不足以消除电压越界的话可以按照下面的提示进行操作 ( 1 ) :节点1 的负荷是3 类负荷,可以松弛该节点的负荷。 1 8 华北电力大学硕士学位论文 支路存在越界现象,下面是针对节点支路的调整: ( h 4 下面的松弛应该可以得到合适的解: 针对越界的支路3 1 采取以下的松弛: ( 1 ) 松弛节点4 的发电机的有功出力。 如果 - 3 前的松弛不足以满足所有条件的话,则可以考虑松弛三类负荷: ( 2 ) 节点3 的负荷是三类负荷,可以选择松弛该负荷。 对应该段h t m l 源程序的i e 浏览器显示为如图所示的内容 图4 1i e e e 5 节点系统生成的调整建议 1 9 华北电力大学硕士学位论文 第五章系统的编程实现与图形界面的开发 5 1 开发语言及开发工具简介 本文所开发的这个系统是采用v i s u a lc + + 和m a t l a b 两种工具开发的。v i s u a l c + + 是目前应用极为广泛的可视化开发环境,其在系统开发中的强大功能是为大家 所公认,在程序开发的时候几乎是无所不能的,如:编写用户交互界面、访问硬件 端口以及数据采集等等。而且采用c + + 语言编写的代码效率很高、执行速度快。但 是v i s u a lc + + 也存在着诸多不便之处,如采用v c + + 进行数值计算实现起来比较困 难、工作量比较大而且调试起来也不方便。好在针对v c + + 的这些局限性可以采用 专门进行科学计算和科学分析的软件m a t l a b 来弥补。m a t l a b 是科学计算领域 的一个非常具权威的软件,其计算结果具有很强的可信性。m a t l a b 发展到现在具 有了强大的接口功能,能为其他的外部程序提供强有力的计算仿真支持【”】f l 5 1 1 ” 】。 由于本文所开发的系统并不需要对数据库进行频繁的访问和操作且规模不大, 所以数据库采用的是a c c e s s 数据库。系统与数据库采用了o d b c 和a d o 两种技术 来进行连接。 5 2 系统中数值计算方法研究与实现 随着计算机技术的蓬勃发展,为电力系统分析软件的开发提供了很多新的方法 和手段。如果在系统开发的时候依然采用传统的方法则未免有一些不合时宜了,且 开发周期将会大大的延长。 c + + 语言虽然代码效率高、执行速度快,但是c + + 语言只提供了一些非常简单 的数学函数。如果要编写一个比较大的数值计算程序,难度比较大,且由于编程技 巧等原因易造成了计算结果并不是非常可靠。 当前。在数值计算领域有一些成熟的采用c + + 编写的程序或数学库,如著名的 n u m e r i cr e c i p e s 等【1 9 】1 20 1 ,可以用来提供可靠的数值计算。利用这些数值计算的 程序可以比较方便的实现各种数值计算,达到事半功倍的效果。但利用这些程序或 数学库进行开发时各个计算程序或库函数之间的接1 :3 问题依然是一件比较麻烦的 事情,且对于较大规模的数值计算程序以及在数值计算过程中要求采用稀疏技术的 问题处理起来就非常不方便了。 m a t l a b 发展到现在其功能已经相当强大,几乎涵盖了科学计算和分析的各个 2 0 华北电力大学硕士学位论文 领域,通过运用m a t l a b 可以非常直观地认识抽象的世界。m a t l a b 还提供了和 其他程序的接h ,利用程序接口可以充分发挥不同开发语言的优势,这就为进行高 效率的系统开发提供了一个良好的途径。对于v c + + 来说,可以在v c + + 中直接调用 m a t l a bc + + 数学库的函数,也可以先采用m a t l a b 编程,然后再通过m c c 命令 将m 文件转化为c + + 文件插入到其他应用程序中或是将i t i 函数编译成动态链接库 提供给其它的应用程序调用。因为以上两种方法都避免涉及m a t l a b 运算速度的 瓶颈问题,所以其运算速度也是可以接受的。 下面讨论的问题都是针对m a t l a b6 5 和v i s u a lc + + 6 0 的进行的。 5 2 1v i s u a lc + + 和m a t l a b 混合编程的研究 在这里只讨论v c 调用m a t l a b 的情况,不考虑m a t l a b 调用c c + + 和f o r t r a n 编写的m e x 程序的情况,因为在v c 中调用m a t l a b 在实际的系统开发中更加具 有实用价值f 1 5 】【1 。 5 2 1 1 加- 陕m a t l a b 运行的方法 如果对m a t l a b 比较熟悉,可能你已经受够了m a t l a b 的运行速度。因为m 文件是一种脚本文件,是需要解释执行的,这就造成了m a t l a b 运行速度比较慢。 作为习惯于c 语言、f o r t r a n 语言和c + + 语言编程的人员来说,总是乐于把c 、c + + 或是f o r t r a n 中的编程习惯带到m a t l a b 编程中来,这就更加影响了m a t l a b 的运 行速度。如何加速m a t l a b 的运行速度在m a t l a b 的帮助的p e r f o r m a n c e a c c e l e r a t i o n 有详细的介绍。这里简要地做一下总结性的介绍: ( 1 ) 尽量避免使用f o r 循环。 ( 2 ) 尽量使用向量和矩阵操作,而不是像c 、c + + 、f o r t r a n 中那样对各个变量进 行操作。 ( 3 ) 在必须使用多重循环时,如果两个循环执行的次数不同,则在循环的外环执 行循环次数少的,内环执行循环次数多的。有可能的话在进行循环的地方采 用m e x 编程来实现,这样可以显著提高速度。 ( 4 ) 预分配矩阵空间,即事先确定变量的大小,维数。 ( 5 ) 当需要扩充一个变量的大小、维数时使用r e p m a t 函数。 ( 6 ) 优先使用m a t l a b 内建函数。 ( 7 ) 使用f u n c t i o n s 而不是s c r i p t s 。 ( 8 ) 把m 文件编译成p 文件。 ( 9 ) 将m 文件通过m c c 命令转换成c 或是c + + 语言,或是将m 函数通过m c c 命 2 1 华北电力大学硕士学位论文 令编译成动态链接库( d 1 1 ) 。 5 2 1 2m a t l a b 引擎的调用 所谓引擎,是指一组m a t l a b 提供的接口函数,支持c + + 语言,通过这些接 口函数,用户可以在v c 环境中实现对m a t l a b 的控制。可实现的控制功能主要有: ( 1 ) 打开或是关闭一个m a t l a b 对话; ( 2 ) 向m a t l a b 环境中发送命令字符串; ( 3 ) 从m a t l a b 环境中读取数据; ( 4 ) 向m a t l a b 环境中写入数据。 与其他各种接口方式相比,引擎所提供的m a t l a b 功能支持是最全面的。通 过引擎方式,应用程序实际上会打开一个新的m a t l a b 进程,可以控制它完成任 何计算和绘图操作,对所有的数据接口都提供完全的支持。直观的说,应用程序实 际上是代替了用户手工在m a t l a bw o r k s p a c e 中输入命令。 建立一个引擎对话,实际上是将m a t l a b 以a c t i v e x 控件的方式启动,应用程 序通过若干接口函数,也就是引擎a p i 函数与该控件进行交互。 但是这样的话程序将无法脱离m a t l a b 环境,m a t l a b 是一个庞大的系统, 对于一个比较小的程序或是系统来说专门安装一个庞大的m a t l a b 系统作为后台 计算服务器是让一般用户无法承受的。m a t h w o r k s 公司充分的考虑到了这一点, m a t l a br u n t i m es e r v e r 为解决这个问题应运而生。 m a t l a br u n t i m es e r v e r ,即m a t l a b “运行时服务器”,它是标准m a t l a b 的变种,可以与m a t l a b 应用程序一起提供给最终用户。m a t l a br u n t i m es e r v e r 具有标准m a t l a b 所有的计算能力和图形显示能力,实际上它是m a t l a b 若干核 心模块的组合。m a t l a br u n t i m es e r v e r 工具箱是为开发独立运行的m a t l a b 应 用程序而设计的,最终用户不用安装完整的m a t l a b ,也不需要懂得m a t l a b 的 操作,同时由于采用了伪代码p 文件,最终用户也无法看到应用程序的源代码。 m a t l a br u n t i m es e r v e r 可以作为一个完整的应用程序运行,以图形界面的方 式和用户进行交互。另一种方式可能对于我们来说更具诱惑力,即:作为一个计算 引擎,由其他应用程序控制执行。但需要注意的就是m a t l a br u n t i m es e r v e r 只能 识别和执行m a t l a b 的内部函数、m e x 程序和运行时p 文件。所以采用该方法时 需要首先将m 文件转换成运行时p 文件。 5 2 1 _ 3 m 文件转换成c c + + m a t l a b 也可以把m 文件转换成c + + 文件( 当然也可以在c + + 文件中直接调 用m a t l a bc + + 数学库中的函数) ,但是这种c + + 文件可读性比较差,但比转换成 2 2 华北电力大学硕士学位论文 的c 文件要好一些,因为m 语言的某些性质和c + + 语言的性质比较相似。除非对 c + + 语言和m a t l a b 的m a t l a bc + + 函数库的函数和数据结构比较了解,否则不 要试图对转换过来的文件进行修改。 通过m c c 转化m 文件到c + + 文件,需要m 文件为f u n c t i o n 的形式。如果m 文 件名称为t e s t m ,采用下面的命令可将m 文件转换为c + + 代码: m c c 。t l c p p t e s t 5 2 1 4 在v c 的应用程序中调用m a t l a b 中编译的动态链接库 通过m a t l a b 自带的c o m p i l e r 编译器,可以把由m a t l a b 编写的m 函数编译 成动态链接库( d 1 1 ) 或者通过m a t l a b 提供的组件功能,运用v c + + 向导自动生成m 文件的动态链接库。在v c 程序中调用封装的函数,实现数值算法的运用。这种方法 只需在开发和发布中包含其生成的动态库就可以了,可以使程序脱离m a t l a b 环 境。而且其运行速度也是比较快的。如果m 文件名称为t e s t m ,且在该文件当中定 义了相应的函数,采用下面的m o o 命令格式可以把m 文件编译成动态链接库的: m c c t wl i b :t e s t tl i n k :l i bt e s tl i b m m f i l e m l i b 当然,这只是将m 函数编译成动态链接库的一种形式,可以根据文件的性质和 编译后的用途不同采用相应的命令格式。 m c c 有多种用法,在m a t l a b c o m p i l e r u s e r sg u i d e 中有着详细的介绍。 5 2 1 5 数据类型的转换 在完成m c c 进行的c + + 文件的转换或是动态链接库的编译之后,下一步工作就 是如果将m c c 转换的c + + 文件或是动态链接库和v i s u a lc + + 中的文件或是应用程序 进行连接。因为m a t l a b 和v c + + 之间具有不同的数据类型,所以在进行连接时需 要进行数据类型的转换,下面介绍这个问题。 在m a t l a bc 十+ 文件当中,定义了大量的类和函数,其中最为重要的就是 m w a r r a y 。m w a r r a y 可以实现数值数组( 包括各种字长的整数、浮点数) 、稀疏矩阵、 字符串数组,以及结构数组甚至c e l l 数组,实际上m w a r r a y 就是m a t l a b 中基本 数据类型a r r a y 的翻版。在每个m w a r r a y 中,既包括了该数据对象的类型,也包含 了其数据。包含了以下的一些构造函数: ( 1 ) m w a r r a y 0 ; ( 2 ) m w a r r a y ( c o n s t c h a r4 s t r ) ; ( 3 ) m w a r r a y ( m w s t r i n gs t r ) ; ( 4 ) m w a r r a y ( d i m e n s i o n ,d i m e n s i o n ,m w n u m e r i c l n i t a c t i o n ) ; 2 3 华北电力大学硕士学位论文 ( 5 ) m w a r r a y ( d i m e n s i o n , c o p y 21 ) ; ( 6 ) m w a r r a y ( d i m e n s i o n ,d i m e n s i o n ,i n t + r e a l ,i n t + i m a g 。0 ) ; ( 7 ) m w a r r a y ( d i m e n s i o n ,d i m e n s i o n ,u n s i g n e ds h o r t + r e a l ,u n s i g n e ds h o r t + i m a g2 0 ) ; ( 8 ) m w a r r a y ( d i m e n s i o n ,d i m e n s i o n ,s h o r t + r e a l ,s h o r t + i m a g 2 0 ) ; ( 9 ) m w a r r a y ( c o n s tm w a r r a y & m t r x ) ; ( 1 0 ) m w a r r a y ( c o n s tm a t l a b m a t r i x + m t r x ,m w b o o lf r e e f l g = 1 ) ; ( 11 ) m w a r r a y ( c o n s tm a t l a b m a t r i x + m t r x ,m w b o o lf r e e f l g ,m w b o o ls t a t i c f l g ) ; ( 1 2 ) m w a r r a y ( d o u b l es t a r t ,d o u b l es t e p ,d o u b l es t o p ) ; ( 13 ) m w a r r a y ( c o n s tm w a r r a y i n d e x & i d x ) ; ( 1 4 ) m w a r r a y ( c o n s tm w n u m e r i c s u b a r r a y & a ) ; ( 15 ) m w a r r a y ( m a t r i x r e f + m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论