当前位置:首页 >> 电力/水利 >>

基于改进遗传算法的无功优化设计


基于改进遗传算法的无功优化与控制

1 绪论
1.1 背景与意义
电能是现今社会最主要的能源,人们工作生活中都离不开电能。随着社会的不断发 展,电能的重要性显著增加。提供安全、可靠、稳定、环保的电能是现今电力系统发展 的首要目标。最优潮流被提出以后就一直用于电力系统的经济和安全运行及规划[1]。最 优潮流是指当系统的结构参数和负荷情况都已给定时,调节可利用的控制变量 (如发电 机输出功率、可调变压器抽头等 )来找到能满足所有运行约束的,并使系统的某一性能 指标(如发电成本或网络损耗)达到最优值下的潮流分布[2-4]。这一大系统非线性规划问 题,通常分为两个子问题:调节发电机的有功出力以减少发电费用;调节 P-V 节点和平 衡节点的电压及可调变压器的分接头位置以改善电压分布及减少系统的有功网损 [5],后 者即为无功优化问题。 电力系统无功优化控制是指在满足各种电力系统运行条件的约束下,对系统进行尽 量少的无功补偿,使电力系统中的各个节点电压得到最大限度的改善,系统的有功网损 降低, 达到提高电力系统运行稳定性与经济性的目的[6]。 它涉及选择无功补偿装置地点、 确定无功补偿容量、调节变压器分接头和发电机机端电压的配合等, 是一个动态、多目 标、多约束的非线性规划问题,也是电力系统分析中的一个难题[7-9]。 无功功率的最优分布包括无功功率电源的最优分布和无功功率负荷的最优补偿两 个方面[10]。电力系统的无功优化和电压控制是相互作用的,合理的无功潮流分布是维持 电压稳定的前提。无功功率的流动将在电网中产生压降,造成电力系统节点电压偏移。 当节点处的无功功率过剩时,往往意味着电压的升高,相反,当节点处的无功功率不足 时,常常会使电压水平降低[11-13]。 电力系统无功优化与控制是保证电力系统安全经济运行、提高电压质量的重要措 施,对指导调度人员安全运行和计划部门进行电网规划具有重要意义。电力系统无功优 化与控制不仅能改善电压质量,提高电力系统运行的稳定性,更能有效的减少网损,节 约能源[14]。因此研究无功优化与控制问题具有重要意义。

1.2 现状和发展趋势
在无功优化问题这一研究领域内, 已有多种解决方法, 例如:线性规划、非线性规

基于改进遗传算法的无功优化与控制

划、混合整数规划、灵敏度分析、遗传算法等。这些方法都有各自的优越性,也有一定 程度的局限性[15]。 线性规划是比较成熟的,它速度快、收敛性好、算法稳定,但在处理无功规划优化 时需要将目标函数和约束函数线性化,要求优化问题可微,对离散性问题缺乏指导性; 若迭代步长选取不合适,可能会引发振荡或收敛缓慢。非线性规划能直接处理非线性的 目标函数和约束函数,但非线性规划还没有一个成熟的算法,现有算法存在计算量大、 收敛性差、稳定性不好等问题。尽管基于灵敏度和梯度法的数学优化方法能用来解决电 力系统的无功优化问题,但与线性规划法同样要求假设控制量是连续的,而且通常只能 求得局部最优解。混合整数规划可以较好地处理离散性整数问题,但在实际中由于操作 复杂而得不到推广应用[16-18]。 1967年J. D. Bagley首次提出了遗传算法(Genetic Algorithm,简称GA)的概念。1975 年左右美国密执安大学教授John H. Holland等研究出了具有开创意义的遗传算法理论和 方法。在研究遗传算法的专家学者中,D. E. Goldberg的贡献最为突出。他不但建立并完 善了整个GA体系,而且将其应用到优化、搜索及机器学习等领域,为GA的发展拓展了 天地[19]。 遗传算法把自然界中基于自然遗传和自然选择的机制引入到数学理论中来,提出了 一种全新的寻优算法。它是利用目标函数本身的信息建立寻优方向,因此不要求函数的 连续性和可导性,有能力在一个复杂的、多极值点、具有不确定性的空间中寻找全局最 优解[20]。遗传算法随着计算机技术的高速发展已经引起越来越多的注意,并已经应用于 求解许多领域中的难题。在许多情况下,遗传算法表现得优于传统的优化算法[21-22]。 近年来,遗传算法在搜索与最优化问题方面已取得较大的进展。在电力系统技术中, 这一应用已经覆盖了负荷预测,电力系统设计与规划,电力系统的进度安排与调度,单位 投入和其它电力系统控制问题[23-24]。遗传算法在寻求电力系统问题全局最优解方面是强 有力的工具,并被广泛应用于最优化及数学问题上[25-26]。在电力系统研究中,遗传算法 具有随机搜索、灵活高效、稳定、多目标处理和对复杂因素进行处理等优点[27]。

基于改进遗传算法的无功优化与控制

2 电力系统潮流计算问题及其方程求解方法
2.1 电力网络方程
电力网络方程是指将网络的相关参数、 变量及相互关系所组成的能反映电力电力网 络性能的数学方程式组。电力系统潮流计算不常采用割集电压方程。节点电压方程和回 路电流方程相比,节点电压方程有明显的优势。因电力系统的等值电路中有较多的接地 支路,节点电压方程数远小于独立的回路方程数。采用节点电压方程,还有如下一些优 点:对具有交叉跨接的非平面网络,节点电压方程的建立比回路电流方程的建立更方便; 建立节点电压方程式前,不必为了减少方程数而将并联支路合并;网络结构或变压器变 比变化时,改变方程式组的系数较方便。鉴于此,以下只介绍节点电压方程。 节点电压方程 I B ? YBU B 。 注:

I B 节点注入电流列向量;
UB

节点电压的列向量;

YB

n ×n 阶节点导纳矩阵。

它可展开为
? I1 ? ?Y11 ? I ? ?Y ? 2 ? ? 21 ? I 3 ? = ?Y31 ? ? ? ? ? ? ? ?I ? ? ? n ? ?Yn1

Y12 Y22 Y32 ? Yn 2

Y13 Y23 Y33 ? Yn 3

? Y1n ? ?U 1 ? ? ? ? Y2 n ? ? ?U 2 ? ? Y3n ? ?U 3 ? ?? ? ? ? ?? ? ? ? Ynn ? ?? ?U n ?

(2-1)

I B 是节点注入电流的列向量。 节点注入电流可认为是各节点电源电流与负荷电流之

和,并规定了电源流向网络的注入电流为正。 U B 是节点电压列向量,一般以大地作为 参考点。网络中有接地支路时,节点电压通常就是指该节点的对地电压;没有接地支路 时, 节点电压可指该节点与某一被指定为参考节点之间的电压差。YB 是一个 n ×n 阶节点 导纳矩阵。

基于改进遗传算法的无功优化与控制

2.2 节点导纳矩阵
节点导纳矩阵对角线元素 Yii ( i =1,2,… n )为自导纳。节点 i 的自导纳 Yii 在数值上就 等于与该节点直接连接的所有支路导纳的总和。节点导纳矩阵非对角线元素 Yij ( i =1,2,… n ; j =1,2,… n ; i ≠ j )为互导纳。节点 i 、 j 之间的互导纳 Yij 数值上就等于 连接节点 i 、 j 的支路导纳的负值。显然, Yij = Y ji 。假如两节点不直接相连,也不计两 支路之间,比如两相邻电力线路之间的互感时, Yij = Y ji =0。 2.2.1 形成节点导纳矩阵 根据定义求取节点导纳矩阵时,仅需注意以下几点: (1)节点导纳矩阵是方阵,一般也是对称矩阵。这是由网络的互易特性所决定的。通 常情况下取大地编号为零,作为参考节点。 (2)节点导纳矩阵是稀疏矩阵, 每行非零非对角元素数就等于该行所对应节点所连接 的不接地支路数。 (3)节点导纳矩阵的对角线元素等于各该节点所连接导纳的总和。 因此, 与没有接地 支路的节点对应的行中,对角元为非对角元之和的负值。 (4)网络中的变压器,运用图 2.1 或图 2.2 所示的等值电路表示,仍可按上述原则计 算。设变压器两侧线路的阻抗都未经归算,即分别为Ⅰ (高压测) 、Ⅱ (低压侧)线路的 实际阻抗,变压器本身的阻抗归在低压侧,设变压器变比为 k(高、低压绕组电压之比)。
Z
' 1

U1

?

k :1

ZT

U2

?

' Z II

1
I1
?

U1 k

?

2
I2
?

图 2.1 接入理想变压器后的等值电路
Z1'

1

YT k

2

' Z II

YT

(1 ? k ) k2

YT

( k ? 1) k

图 2.2 Π 形等值电路支路以导纳表示

总之,节点导纳矩阵的形成十分简捷,只要确定了网络结构,就可以通过其网络的

基于改进遗传算法的无功优化与控制

等值电路直观的写出。节点导纳矩阵是一个对称的稀疏矩阵。而且,由于每个节点所连 接的支路数总有一定限度,随着节点数的增加,非零元素相对越来越少,节点导纳矩阵 的稀疏度也会越来越高。它的这些特性可以大大加快运算速度和节省内存量,对计算机 计算十分有利。 2.2.2 节点导纳矩阵的修改 在电力系统计算中,往往要计算不同运行状况下的潮流,例如,某电力线路或变压 器投入前后的状况,以及某原件参数改变前后的运行状况。由于改变某一条支路的参数 或投入、退出某电力元件只影响该支路两节点各自的自导纳和两节点之间的互导纳,因 此不必重新形成节点导纳矩阵,仅需要对原来的矩阵做相应的修改。以下介绍几种修改 方法: 1)原有网络引出一条支路,同时增添一个节点,如图 2.3 所示。 设 i 为原有网络中的节点, j 为新增的节点,新增支路的导纳为 yij ,增添一节点, 节点导纳矩阵就增加一阶。增添对角元 Y jj ,由于在节点 j 处只有一条支路,Y jj = yij ,新 增的非对角元 Yij = Y ji =- yij ,原矩阵中的对角元 Yii 将增加 ? Yii = yij 。
yij

i

j

图 2.3 增加支路和节点

2)在原有网络的节点 i 、 j 之间增添一条支路,如图 2.4 所示。 这时由于没有增加节点数,节点导纳矩阵的阶数不变,但与节点 i 、 j 有关元素应 做如下修改:

? Yii = yij ; ? Y jj = yij ; ? Yij = ? Y ji =- yij

基于改进遗传算法的无功优化与控制

i

yij
j

图 2.4 增加支路

3)在原有网络中节点 i 、 j 之间去掉一条支路,如图 2.5 所示。 切除一条导纳为 yij 的支路相当于增加一条导纳为- yij 的支路,所以与节点 i 、 j 有关 元素应做如下修改:

? Yii = - yij ; ? Y jj = - yij ; ? Yij = ? Y ji = yij
i
? yij

j

图 2.5 切除支路

? ,如图 2.6 所示。 4)原有网络节点 i 、 j 之间的导纳有 yij 变为 yij
i

yij
j

yij

图 2.6 改变支路参数

? 的支路,所以与节 这种情况相当于切除一条导纳为 yij 的支路并增加一条导纳为 yij
点 i 、 j 有关元素应做如下修改:

? - yij ; ? Y jj = yij ? - yij ; ? Yij = ? Y ji = yij - yij ? ? Yii = yij
5)原有网络节点 i 、 j 之间的变压器的变比由 k 变为 k ? 。 这种情况相当于去掉一变比为 k 的变压器并增添一变比为 k ? 的变压器, 节点 i 、j 之 间变压器的等值电路如图 2.2 所示,则节点 i 、 j 的有关元素作如下修改:

基于改进遗传算法的无功优化与控制

?Yii ? (

1 1 1 )YT ; ?Y jj ? 0 ; ?Yij ? ?Y ji ? ?( ? )YT 2 k' k k? ? k
2

6)原有网络节点 i 投入电容器 若节点 i 投入电容量 Qci ,对应的电纳增量为 修正量为:
Qd ,只改变节点 i 的自导纳,它的 Vi 2

?Yii ?
2.3 功率方程及其迭代解法

Qci Vi 2

建立了节点导纳矩阵 YB 以后,就可以进行潮流计算。如果已知的是各节点电流 I B , 就可以直接解线性的节点电压方程 YBU B ? I B 。但是通常己知的既不是节点电压,也不 是节点电流, 而是已知各节点功率 S B , 几乎无一例外地要进行迭代非线性的节点电压方
?S ? 程 YBU B ? ? B ? ?U B ? 。
*

2.3.1 功率方程 设有简单系统如图 2.7 所示。 图中,SG1 、SG 2 分别为母线 1、 2 的等值电源功率;S L1 、
S L 2 分别为母线 1、2 的等值负荷功率;他们的合成 S1 ? SG1 ? S L1 、 S2 ? SG 2 ? S L 2 分别为

母线 1、2 的注入功率,与之对应的电流 I1 ? I G1 ? I L1 、 I 2 ? I G 2 ? I L 2 则分别为母线 1、2 的注入电流。于是
? ? ? S1 ? I1 ? Y1 1 U?1 Y 1 2U ?? 2 ? ?U ? ? 1?
? ? ?

?

?

?

?

?

?

? ? ? S I 2 ? Y21 U1 ? Y22 U 2 ? ? ?2 ? ?U ? ? 2?
? ? ?
2

(2-2)

S1 ? U1 Y1 1 U ? 1 U 1 Y 1 2U

?

?

?

?

?

?

S2 ? U 2 Y21 U1 ? U 2 Y22 U 2
20

?

?

?

?

?

?

(2-3)

如果令

Y1 1? Y 2 ? y? ? 2 1 0 y ?1 2 y

y ?

? j ( 9? 0 ??s s2 1

y e

)

Y12 ? Y21 ? ? y12 ? ? y21 ? ? yme? j (90 ??m )
U1 ? U1e j?1
?

?

U2 ? U2e j?2

?

并带入式(2-3)展开,将有功、无功功率分别列出,可得

基于改进遗传算法的无功优化与控制
2 ?P 1 ? P G1 ? P L1 ? ysU1 sin ? s ? ymU1U 2 sin[(?1 ? ? 2 ) ? ? m ] ? 2 ? P2 ? P G2 ? P L 2 ? ysU 2 sin ? s ? ymU 2U1 sin[(? 2 ? ?1 ) ? ? m ] ? 2 ?Q1 ? QG1 ? QL1 ? ysU1 cos ? s ? ymU1U 2 cos[(?1 ? ? 2 ) ? ? m ] ?Q ? Q ? Q ? y U 2 cos ? ? y U U cos[(? ? ? ) ? ? ] G2 L2 s 2 s m 2 1 2 1 m ? 2

(2-4)

这些都是这个简单系统的功率方程。显然,它们是各母线电压相量的非线性方程。 将式(2-4)中的第一、二式相加,第三、四式相加,又可以得到这个系统的有功、无 功功率平衡关系
2 2 ? ? PG1 ? PG 2 ? PL1 ? PL 2 ? ys (U1 ? U 2 ) sin ? s ? 2 ymU1U 2 cos(?1 ? ? 2 ) sin ? m ? 2 2 ? ?QG1 ? QG 2 ? QL1 ? QL 2 ? ys (U1 ? U 2 ) cos ? s ? 2 ymU1U 2 cos(?1 ? ? 2 ) cos ? m

(2-5)

可见,这些都是关于母线电压 U1 、U 2 和相位角 ?1 、? 2 或相对相位角 ?12 的非线性函 数。

G
1

S G1 ? PG1 ? jQG1
U1
?

~

S G 2 ? PG 2 ? jQG 2

~

G
2

U2

?

S L1 ? PL1 ? jQL1
1
I 1 ? I G1 ? I L1
? ? ?

~

S L 2 ? PL 2 ? jQL 2
U2
?

~

U1

?

2

y12 y10 y20

I 2 ? I G2 ? I L2
~ ~ ~

?

?

?

S 1 ? S G1 ? S L1
图2.7 简单系统

~

~

~

S 2 ? S G2 ? S L2

2.3.2 变量的分类 由式(2-4)还可以看出,在这四个一组的功率方程式组中,除网络参数 ys 、 ym 、? s 、

? m 外,共有十二个变量,它们是:
负荷消耗的有功、无功功率------ PL1 、 PL 2 、 QL1 、 QL 2 。 电源发出的有功、无功功率------ PG1 、 PG 2 、 QG1 、 QG 2 。 母线或节点电压的大小和相位角------ U1 、 U 2 、 ?1 、 ? 2 。

基于改进遗传算法的无功优化与控制

因此,除非已知或给定其中的八个变量,否则将无法求解。 在这十二个变量中,负荷消耗的有功、无功功率无法控制,因为它们取决于用户。 它们称为不可控变量或扰动变量。之所以称为扰动变量是由于这些变量出现事先没有预 计的变动时, 系统将偏离它们的原始运行状况, 不可控变量或扰动变量以列向量 d 表示。 余下的八个变量中,电源发出的有功、无功功率是可以控制的自变量。因而它们称 控制变量。控制变量常以 u 表示。 最后余下的四个变量:母线或节点电压的大小和相位角是受控制变量控制的因变 量。其中, u1 、 u2 主要受 QG1 、 QG 2 的控制, ?1 、 ? 2 主要受 PG1 、 PG 2 的控制。这四个变 量就是这简单系统的状态变量。状态变量一般都以列向量 x 表示。 无疑,变量的这种分类也适用于具有 n 个节点的复杂系统。只是对这种系统,变量 数将增加为 6 n 个,其中扰动变量、控制变量、状态变量各为 2 n 个。换言之,扰动向量
d 、控制向量 u 、状态向量 x 都是 2 n 阶列向量。

看来似乎将变量作如上分类后,只要已知给定扰动变量和控制变量,就可运用功率 方程式(2-4)解出状态变量。其实不然,因已如上述,功率方程中,母线或节点电压的相 位角是以相对值出现的,以致式(2-4)中 ?1 和 ? 2 变化同样大小时,功率的数值不变,从而 不可能运用它们求取绝对相位角。 也如上述, 系统中的功率损耗本身是状态变量的函数, 在解得状态变量前,不可能确定这些功率损耗,从而也不可能按功率平衡关系式 (2-5) 给定所有控制变量,因它们的总和,如式(2-5)中的( PG1 + PG 2 )、( QG1 + QG 2 )尚属未知。 为克服上述困难,可对变量的给定稍作调整:在一具有 n 个节点的系统中,只给定 ( n -1)对控制变量 PGi 、 QGi ,余下一对控制变量 PQ 待定。这一对控制变量 PQ 将使系统 功率,包括电源功率、负荷功率和损耗功率保持平衡。 在这系统中,给定一对状态变量 U s 、 ? s ,只要求确定( n -1)对状态变量 U i 、 ? i 。给 定的 ? s 通常就赋以零值。这实际上就相当于取节点 s 的电压向量为参考轴。给定的 U s 一 般可取标幺值 1.0 左右,以使系统中各节点的电压水平在额定值附近。 这样,原则上可从 2 n 个方程式中解出 2 n 个未知量。但是,这个解还应满足一些约 束条件,这些约束条件是保证系统正常运行必不可少的。 对控制变量的约束条件是:
PGi min ? PGi ? PGi max ; QGi min ? QGi ? QGi max

对无电源的节点,约束条件则为:
PGi =0; QGi =0

基于改进遗传算法的无功优化与控制

这些 P Gi min 、 P Gi max 、 QGi min 、 QGi max 的确定一方面要参照发电机的运行极限,另一方 面还要计及动力机械所受到的约束。 对状态变量 U i 的约束条件则是:
U i min ? U Gi ? U i max

对有些状态变量 ? i 还有如下的约束条件:

?i ? ? j ? ?i ? ? j

max

这条件主要是保证系统运行的稳态性所要求的。由于扰动变量 PLi 、 QLi 不可控,对 它们没有约束。 2.3.3 节点的分类 考虑到各种约束条件后,对某些节点,不是给定控制变量 PGi 、QGi 而留下状态变量
U i 、 ? i 待求,而是给定这些节点的 PGi 和 U i 而留下 QGi 和 ? i 待求。这其实意味着让这些

电源调节它们发出的无功功率 QGi 以保障与之对应的 U i 在允许范围之内。这样,根据电 力系统中各节点性质的不同,给定的变量不同进而把节点分成三类。 第一类为 PQ 节点。 对这一类节点, 等值负荷功率 PLi 、QLi 和等值电源功率 PGi 、QGi 是已知的,即给定的是节点注入功率 Pi 、 Qi ,待求的未知量是节点电压的幅值 U i 和相 角 ? i 。在潮流计算中,系统大部分节点属于 PQ 节点。 第二类为 PV 节点。对这一类节点,等值负荷和等值电源的有功功率 PLi 、 PGi 是已 知的,即给定的是注入有功功率 Pi ,等值负荷的无功功率 QLi 和节点电压幅值 U i 也是已 知的,待求的则是等值电源的无功功率 QGi ,从而注入的无功功率 Qi 和节点电压相角 ? i 是待求量。 这类节点在运行中往往要有一定可调节的无功电源, 用以维持给定的电压值。 第三类为平衡节点。对这一类节点,在潮流计算中,一般只设一个。对该节点,等 值负荷功率 PLs 、 QLs 是已知的,节点电压的幅值和相角 U s 、 ? s 也是已知的,如给定
U s =1.0、 ? s =0。待求量则是等值电源功率 PGs 、 QGs ,从而注入功率 Ps 、 Qs 。担任调整

系统频率任务的发电厂母线往往被学位平衡节点。 进行潮流计算时, 平衡节点是不可少的; PQ 节点是大量的; PV 节点较少甚至没有。

基于改进遗传算法的无功优化与控制

2.4 牛顿--拉夫逊法潮流计算方法
2.4.1 牛顿--拉夫逊法 牛顿--拉夫逊法法是常用的解非线性方程组的方法,也是当前广泛采用的计算潮流 的方法,其原理如下。 设有非线性方程组
? f1 ( x1 , x2 ,..., xn ) ? y1 ? f ( x , x ,..., x ) ? y ? 2 1 2 n 2 ? ?? ? ? ? f n ( x1 , x2 ,..., xn ) ? yn

(2 ? 6)

(0) (0) 其近似解为 x1(0) , x2 …, xn ,与精确解分别相差 ?x1 , ?x2 ,…, ?xn ,则下式成


(0) ? f1 ( x1(0) ? ?x1 , x 2 ? ?x2 ,..., x (0) ? ?xn ) ? y1 n ? (0) (0) (0) ? f 2 ( x1 ? ?x1 , x 2 ? ?x2 ,..., x n ? ?xn ) ? y2 ? ? ? f ( x (0) ? ?x , x (0) ? ?x ,..., x (0) ? ?x ) ? y 1 2 n n 2 n ? n 1

(2 ? 7)

上式中的任何一式都可按泰勒级数展开。以下则以第一式为例子 加以说明,

?f ?f ) (0) 0 )?f1 f1 ( x1( 0 ) ? ?x1, x 2( 0 )? ?x 2,..., x n ( 0? ?xn ) ? f 1( x 1 (,0x) 2 ,..., x n ) (? ?x 1? 1 ?x 2? ... ? 1 ?xn ? ? 1 ?y ?x1 0 ?x2 0 ?xn 0
式中:
?f1 ?f ?f (0) (0) , 1 ,…, 1 分别表示以 x1(0) , x2 ,…, xn 代入这些偏导数表示式 ?x1 0 ?x2 0 ?xn 0

1

(0) (0) 的计算所得,?1 则是一包含 x1(0) , x2 ,…, xn 的高次方与 f1 的高阶偏导数乘积的函数。

如近似解 ?xi(0) 与精确解相差不大,则 ?xi 的高次方可略略去,从而 ?1 也可略去。 由此可得
? ?f1 ?f ?f (0) (0) (0) ?x1 ? 1 ?x2 ? ... ? 1 ?xn ? y1 ? f1 ( x1 , x 2 ,..., x n ) ? ?x1 0 ?x2 0 ?xn 0 ? ? ?f 2 ?f ?f (0) (0) (0) ? ?x1 ? 2 ?x2 ? ... ? 2 ?xn ? y2 ? f 2 ( x1 , x 2 ,..., x n ) ? ?x1 0 ?x2 0 ?xn 0 ? ? ?? ? ? ?f ?f ?f (0) ? f n ( x1(0) , x 2 ,..., x (0) ) ? n ?x1 ? n ?x2 ? ... ? n ?xn ? yn n ?x1 0 ?x2 0 ?xn 0 ? ?

(2 ? 8)

这是一组线性方程或线性化了的方程组,成称为修正方程组。它可改写为如下的矩

基于改进遗传算法的无功优化与控制

阵方程:
? ?f1 ?f1 ?f ... 1 ? ?x ?x ?xn (0) (0) ? y1 ? f1 ( x1(0) , x2 ,..., xn )? ? 10 20 ? ? ? ?f ?f 2 ?f (0) (0) (0) ... 2 ? y2 ? f 2 ( x1 , x2 ,..., xn ) ? ? 2 ? ? ? ? ?x1 0 ?x2 0 ?xn ... ? ? ? ... ? y ? f ( x (0) , x (0) ,..., x (0) ) ? ? n n 2 n ? ? 1 ? ? ?f n ?f n ... ?f n ? ? ?x1 0 ?x2 0 ?xn ? ? 0? ? ? ?x1 ? ? ? ?x ? ?? 2? 0 ? ? ... ? ? ? ?x ? ?? n? ? ? 0?

(2 ? 9)

或简写为: ?f ? J ?x 其中: J 称为函数 f i 的雅克比矩阵;?x 为由 ?xi 组成的列向量;?f 则称不平衡量的 列向量。将 xi(0) 代入,可得 ?f 、 J 中的各元素。然后运用一种解线性代数方程的方法, 可求的 ?xi(0) 从而求得经第一次迭代后的 xi 的新值 xi(1) ? xi(0) ? ?xi(0) 。再将求得的 xi(1) 代入, 又可得 ?f 、 J 中的各元素的新值,从而解得 ?xi(1) 以及 xi(2) ? xi(1) ? ?xi(1) 。如此循环不已, 最后可获得此非线性方程式组足够精确的解。运用这种方法计算时, xi 的初值要选择地 比较接近它们的精确解,否则迭代过程可能不收敛。 2.4.2 牛顿--拉夫逊法潮流计算过程 计算电力系统潮流时,若运用牛顿--拉夫逊法可直接用以求解功率方程。

U i ? Yij U j ? Pi ? Qi
j ?1

j ?n ?

?

( 2? 1 0 )

将 Yij ? Gij ? jBij , U i ? ei ? jf i 待入式(2-10),并将实数部分和虚数部分分别列出:

Pi ? ? ? ?ei (Gij e j ? Bij f j ) ? fi (Gij f j ? Bij e j ) ? ?
j ?1

j ?n

(2 ? 11a)
( ?2 b 1 1 )

Qi ? ? ? ( ij f j ? Bij e j ? ? fi (Gij e j ? Bij f j )? ei G ?)
j ?1

j ?n

此外,由于电力系统中还有电压幅值给定的PV节点,还应补充一组方程

ei2 ? f i 2 ? Ui
注:

2

( 2? 1c1 )

ei 和 fi 分别为迭代过程中求得的节点电压实部和虚部; Pi 为PQ节点和PV节点的注入有功功率;

Qi 为PQ节点的注入无功功率;

基于改进遗传算法的无功优化与控制

U i 为PV节点的电压幅值。

牛顿型潮流计算的核心问题是修正方程式的建立和求解。为说明这一修正方程式的 建立过程,先对网络中各类节点的编号作如下约定: (1)网络中共有 n 个节点,编号为 1,2,…, n ,其中包含一个平衡节点,编号为 s ; (2)网络中有 m -1 个 PQ 节点,编号为 1,2,…, m ,包含编号为 s 的平衡节点; (3)网络中有 n - m 个 PV 节点,编号为 m +1, m +2,…, n 。 由式(2-11a)、(2-11b)、(2-11c)所组成的方程式组中共有 2( n -1)个独立方程式。 其中, 式(2-11a)类型的有( n -1)个, 包括除平衡节点外所有节点有功功率 Pi 的表达式, 即 i =1,2,…, n ,i ≠ s ;式(2-11b)类型的有( m -1)个,包括所有 PQ 节点无功功率 Qi 的 表达式,即 i =1,2,…, m , i ≠ s ;式(2-11c)类型的有( n -1)-( m -1)= n - m 个,包括所有 节点 PV 节点电压 U i2 的表达式,即 i = m +1, m +2, , n 。平衡节点 s 的功率和电压

之所以不包括在这方程组内,是由于平衡节点的注入功率不可能事先给定。 综上所述:就可以建立类似式(2-9)的修正方程式如式(2-12)。
? ?P ? 1 ? ? ? H11 ? Q ? 1? ? J ? ? ? 11 ? P ? 2 ? ? H 21 ? ?Q ? ? J ? 2 ? ? 21 ? ??? ? ? ? ? ?Pp ? ? H p1 ?R ? 2? p1 ? U p ? ? ? ? ?P ? ? H n1 ? n ? ?R 2 ? n1 ? ? ?U n ? ? N11 L11 N 21 L21 N p1 S p1 N n1 S n1 H12 J12 H 22 J 22 H p2 Rp 2 H n2 Rn 2 N12 L12 N 22 L22 N p2 S p2 Nn2 Sn 2 H1 p J1 p H2 p J2 p H pp R pp H np Rnp N1 p L1 p N2 p L2 p N pp S pp N np S np H 1n J 1n H 2n J 2n H pn R pn H nn Rnn N1n ? ? ?f1 ? ? ? L1n ? ? ? ?e1 ? N 2 n ? ? ?f 2 ? ?? ? L2 n ? ? ?e2 ? ?? ? ?? ? N pn ? ? ?f p ? S pn ? ? ?e p ? ?? ? N nn ? ? ?f n ? ? ? S nn ? ? ? ?en ?

(2 ? 12)

式中的 ?Pi 、 ?Qi 、 ?Ui2 分别为注入功率和节点电压平方的不平衡量。由式(2-11)可 见,它们分别为
? ? ?P i ? P i ? ? ?ei (Gij e j ? Bij f j ) ? f i (Gij f j ? Bij e j ) ?
j ?1 j ?n

(2 ? 13a)
( ?2 b 1 3 )

?Qi ? Qi ? ? ? ( ij f j ? Bij e j ? ? fi (Gij e j ? Bij f j )? ei G ?)
j ?1

j ?n

?Ui2 ? Ui2 ? (ei2 ? f i 2 )
式中雅克比矩阵的各个元素则分别为

(2 ?13c)

基于改进遗传算法的无功优化与控制

? ?P ?P ? H ij ? i ; N ij ? i ?f j ?e j ? ? ?Qi ?Q ? ; Lij ? i ? J ij ? ?f j ?e j ? ? 2 2 ? Rij ? ?U i ; Sij ? ?U i ?f j ?e j ? ?

(2 ? 14)

为求取这些偏导数,可将 Pi 、 Qi 、 U i2 分别展开如下:

Pi ? ei (Gii e j ? Bii fi ) ? fi (Gii fi ? Bii ei ) ?
Qi ? fi (Gii ei ? Bii fi ) ? ei (Gii fi ? Bii ei ) ?

j ?1, j ?i

?

j ?n

? ?ei (Gij e j ? Bij f j ) ? fi (Gij f j ? Bij e j ) ? ?(2 ? 15a)
? ? fi (Gij e j ? Bij f j ) ? ei (Gij f j ? Bij e j ) ? ?(2 ? 15b)

j ?1, j ?i

?

j ?n

ei2 ? f i 2 ? Ui2

(2 ?15c)

j ≠ i 时,由于对特定的 j ,只有该特定节点的 f j 和 e j 是变量,由式(2-14)、(2-15)
? ?P ?P ? H ij = i =-Bij ei +Gij f i ; N ij = i =Gij ei +Bij f i ?f j ?e j ? ? ?Qi ?Q ? =-Bij fi -Gij ei =-N ij ; Lij = i =Gij f i -Bij ei =H ij ? J ij = ?f j ?e j ? ? 2 2 ? Rij = ?U i =0; Sij = ?U i =0 ?f j ?e j ? ?

(2 ? 16a)

j = i 时,为使这些偏导数的表示式更简洁,先引入节点注入电流的表示式如下

Ii =YiiU i +? YijU j
j =1 j ?i

j =n

=[ ? Gii ei -Bii fi ? +? (Gij e j -Bij f j )]+j[ ? Gii fi +Bii ei ? +? (Gij f j +Bij e j )]
j =1 j ?i j =1 j ?i

j =n

j =n

=aii +jbii
然后由式(2-14)、式(2-15)和上式可得

基于改进遗传算法的无功优化与控制
j =n ? ?Pi H = =B e +2 G f + B e + (Gij f j +Bij e j) =-Bii ei +Gii f i +bii ? ii ii i ii i ii i ? ? f j =1 i ? j ?i ? j =n ?Pi ? ? Nii = ?e =2Gii ei -Bii f i +Bii f i +? (Gij e j -Bij f j )=Gii ei +Bii f i +aii j =1 i ? j ?i ? j =n ?Qi ? J = =-2 B f + G e G e + ? ii ii i ii i ii i ? (Gij e j -Bij f j )=-Gii ei -Bii f i +aii ?fi j =1 ? j ?i ? j =n ?Qi ? (Gij f j +Bij e j) =-Bii ei +Gii f i -bii ? Lii = ?e =Gii f i -Gii f i -2Bii ei -? j =1 i ? j ?i ? 2 2 ? R = ?U i =2f ; S = ?U i =2e i ii i ? ii ?f ?ei i ?

(2 ? 16b)

由式(2-16a)可见,如 Yij ? Gij ? jBij ? 0 ,即节点 i , j 之间无直接关系,这些元素都
? H ij 等于零。从而,如将雅克比矩阵分块,而将每个 2× 2 阶子阵 ? ? J ij N ij ? ? H ij 、? Lij ? ? ? Rij N ij ? Sij ? ?

作分块矩阵的元素时,分块雅克比矩阵和节点导纳矩阵 YB 将有相同的结构。但前与后者 不同,前者因 H ij ? H ji 、 N ij ? N ji 、 J ij ? J ji 、 Lij ? L ji 不是对称矩阵。 2.4.3 潮流计算的基本流程 形成了雅克比矩阵并建立了修正方程式,运用牛顿-拉夫逊法计算潮流的核心问题 已解决,下面列出基本计算步骤并编制流程图(见附录一)。 (1)形成节点导纳矩阵 YB 。 (2)设置各节点电压初始值 ei(0) 、 f i (0) 。
(0) (3)把各节点电压初始值代到式(2-13a)-式(2-13c)求修正方程式中的不平衡量 ?P 、 i

?Qi(0) 以及 ?Ui(0)2 。
(4)把各节点电压初始值代到式(2-16a)-式(2-16b),求修正方程式的雅克比矩阵中的
(0) (0) (0) (0) (0) 、 Nij 、 J ij 、 L(0) Hij ij 、 Rij 、 Sij 。

(5)求各节点电压的变化量,即修正量 ?ei(0) 、 ?fi (0) 。 (6)得出各节点电压的新值, ei(1) ? ei(0) ? ?ei(0) , fi (1) ? fi (0) ? ?fi (0) (7)检查修正量中的最大值, 与给定的允许误差作比较, 判断是否收敛, 如果不收敛, 则以各节点电压新值作为初值自第3步重新进行下一次迭代,否则进行下一步。 (8)计算平衡节点功率和线路功率。其中,平衡节点功率为

基于改进遗传算法的无功优化与控制
? i ?n i ?1 ? ?

Ss ? U S ? Ysi U i ? Ps ? Qs

(2 ? 17)

线路功率为

Sij ? Ui Iij ? Ui [Ui yi 0 ? (Ui ? U j ) yij ] ? Pij ? jQij

?

?

?

?

?

?

?

?

(2 ? 18a)

S ji ? U j I ji ? U j [U j y j 0 ? (U j ? U i ) y ji ] ? Pji ? jQ ji
线路上的损耗功率为

?

?

?

?

?

?

?

?

(2 ? 18b)

?Sij ? Sij ? S ji ? ?P ij ? j?Qij
(9)输出结果,完毕。 2.5 牛顿拉夫逊法潮流计算程序源代码 (见附录二)

(2 ?19)

基于改进遗传算法的无功优化与控制

3 电力系统无功优化问题及其遗传算法优化求解
3.1 无功优化问题描述及其模型
在给定负荷和无功补偿装置地点的基础上,以有功网损最小为目标函数,主要考虑 了变压器分接头位置、并联电容补偿容量和发电机机端电压的控制作用。这一类无功优 化问题的数学模型如下: ① 目标函数
min F ? PL ? ?1 ? ( ?Vi ?Qi )2 ? ?2 ? ( )2 Vi max ? Vi min Qi max ? Qi min (3 ? 1)

注:

PL 为有功网损;

?1 ? (

?Vi )2 为对各节点电压越限的惩罚函数项; Vi max ? Vi min

?2 ? (

?Qi )2 为对发电机无功功率越限的惩罚函数项; Qi max ? Qi min
Vi ? Vi max Vi min ? Vi ? Vi max Vi ? Vi min Qi ? Qi max Qi min ? Qi ? Qi max Qi ? Qi min

?Vi ? Vi max ? ?Vi ? ?0 ?V ? V ? i min i ?Qi ? Qi max ? ?Qi ? ?0 ?Q ? Q i ? i min

② 约束条件 等式约束条件:

? Pi ? V i?V (jG icj o? s ? iB j ? j?h ? sij ? Bij ?Qi ? Vi ?V j (Gij c o? j?h ?
注:

s in i? j s?iijn

) i j ) ( 3? 2 )

Pi 、 Qi 、 Vi 表示节点 i 处注入的有功功率、无功功率和节点电压;

Gij 、 Bij 、 ? ij 表示节点 i 、 j 之间的电导、电纳和电压之间的相差角;
不等式约束条件:

基于改进遗传算法的无功优化与控制

?Vi min ? Vi ? Vi max ?Q Gi min ? QGi ? QGi max ? ? ?Ti min ? Ti ? Ti max ?C ? C ? C i i max ? i min ?VGi min ? VGi ? VGi max ?

(3 ? 3)

注:

Vi min 、 Vi max 表示节点 i 电压的下、上限; QG min 、 QG max 表示发电机输出无功功率的下、上限; Ti min 、 Ti max 表示变压器变比的下、上限;

Ci min 、 Ci max 表示并联补偿电容量的下、上限;
VGi min 、 VGi max 表示发电机机端电压的下、上限;

3.2 遗传算法的理论基础
遗传算法是建立在达尔文的生物进化论和孟德尔的遗传学说基础上的算法。生物体 可以通过遗传和变异来适应于外界环境。遗传算法借鉴了进化原理、遗传原理、随机统 计理论。在求解过程中,先形成一个初始群体,然后一代一代地寻找问题的最优个体, 直至满足收敛判据或达到预先设定的迭代次数才停止。 在进化论中认为,每一物种在不断的进化过程中都是越来越适应环境,物种的每个 个体的基本特征被后代所继承,但后代又不完全同于父代这些新变化,如果适应环境, 则被保留下来,否则,将被淘汰。在遗传学说中认为,每个基因有特殊的位置并控制某 个特殊的性质。杂交和突变可能产生对环境适应性强的后代,进而保存适应值高的基因 结构。 遗传算法是一种基于自然选择和群体遗传机理的搜索算法, 它模拟了自然选择和自 然遗传过程中发生的繁殖、杂交和突变现象。求解问题时,问题的一个可能解被编码成 一个个体,若干个个体构成了群体。在遗传算法开始时,随机地产生一些个体,在一定 约束条件下,根据目标函数转化为适应度函数,对每个个体计算出一个适应度值。根据 适应度值,选择个体用来复制下一代。适应度函数值高的较适应度函数值低的有较大的 繁殖能力和机会,选择操作体现了“适者生存”原理。选择其中相对优秀的个体进行交 叉、变异等遗传操作,产生下一代,重复上述过程,逐步朝着更优解的方向进化。因此, 遗传算法可以看作是一个由可行解组成的群体逐代进化的过程。

基于改进遗传算法的无功优化与控制

3.3 遗传算法基本原理及操作过程
3.3.1 适应度函数定标 遗传算法在进化搜索中基本上不利用外部信息, 仅以适应度函数为依据, 利用群 体中每个个体的适应度值来进行搜索,所以选取适应度函数非常关键。适应度函数是由 目标函数转化而成的。对目标函数值域的某种映射变换称为适应度函数定标。用遗传算 法求解优化问题时,要求适应度函数是无约束的单目标函数。因此将目标模型中的约束 条件以惩罚项的形式加入目标函数,其它的约束条件则在形成染色体时加以考虑,这样 原单目标多约束的优化模型就转化为无约束条件的优化模型。由于遗传算法利用仿真的 轮盘赌来寻优,因此只可以求极大值。若优化问题是求极小值的问题,需对目标函数进 行改造变求极小值为求极大值。 3.3.2 初始解的形成 采用遗传算法求解问题时,首先确定问题的变量和目标函数,然后对变量编码。在 遗传算法中,问题的解是用数字串来表示的,而且遗传操作算子也是直接对数字串进行 操作的。编码方式可分为二进制和十进制。具体使用哪种编码方式,要根据实际的优化 问题来确定。 二进制编码方式有如下优点:与计算机码制一致,码串的每一位,只有1和0两个码 值,操作简单;表示的范围广, 如 L 位码串最多可表示 2 L 个不同的变量;适合于表示离 散变量。但也存在如下缺点:对于大规模的优化问题,如果用二进制表示其变量,同时 又要确保解具有一定的精度, 数字串位数就会很多, 这会使计算量很大, 计算用时增多, 同时占用了很大的计算机内存;用二进制来表示变量时,需要对参数进行编码和译码, 用以转换为十进制,造成了转换误差。 采用十进制编码的优点:数字串会比采用二进制表示的数字串短得多,计算量也会 减少,计算用时也会降低;在优化过程中不需对参数进行编码和译码,也就不存在解的 精度问题。 遗传算法的计算:

? ? ?s.t.
式中 X ? [ x1

max f ( x) X min ? X ? X max

x2

xn ] , n 为控制变量个数。

基于改进遗传算法的无功优化与控制

初始化的过程是在所给定的控制变量域 [ X min , X max ] 中,随机选取一个变量群体
i {X 1 (0), X 2 (0), , X p (0)} ,其中每个个体 X (0) ,包含n个控制变量,每个控制变量又可

以用 j 位二进制码串来表示,二进制码串中的每一位码也是随机选取而来。 j 取值越大 精度越高,但过高的位数将影响到计算的速度,因此应该同时兼顾两者。每个个体代表 了系统的一种状态。 p 为该群体的规模数。为了保证在生产下一代的过程中成对选择,

p 为偶数。
3.3.3 遗传操作 遗传操作是参考生物基因的操作,目的是根据个体的适应度值对其进行一定的操 作。遗传操作可使解逐代地优化,逼近最优解。遗传操作有三个遗传算子:选择、交叉、 变异。 1)选择 选择建立在适应度评估的基础上。适应度越大的个体,被选择的可能性就越大。选 择出来的个体放入配对库中作为交叉和变异的前提。 轮盘赌方法是遗传算法中最常用的选择方法。设种群的规模为 N ,个体的适应度为
j?N P ? f / f fi ,则个体 i 被选择的概率 i i j? i 反映了个体 i 的适应度值在整个群体 ?1 j 。即概率 P

适应度值总和中所占的比例。个体的适应度值越大,被选中的概率就越高,被选中的个 体被放入配对库中。 2)交叉 杂交被称为遗传算法中的特色操作,是遗传算法中寻找最优个体的最主要手段,也 是遗传算法区别于其他优化方法的主要标志。交叉是指在配对库中随机选择两个个体作 为双亲,将个体的部分结构加以变换从而生成新个体。遗传算法的搜索能力通过交叉操 作得以飞跃性的提高。 交叉操作是按照一定的概率Pc,在配对库中随机地选取两个个体进行的。Pc一般取 0.6到0.9之间。交叉算子有几种分别是: 一点交叉: 在个体数字串中随机选定一个交叉点, 两个个体在该点前或后进行互换, 产生新的个体。例如:

基于改进遗传算法的无功优化与控制

图3.1 一点交叉图

两点交叉:随机地产生两个交叉点。 多点交叉:是两点交叉的推广。 一致交叉:通过设置屏蔽字来决定父代个体中相应的基因如何遗传给子代。当屏蔽 字位为1时,父代的两个个体相应位交换生成子代的相应位;如果屏蔽字位为0,则父代 的两个个体的相应位直接复制给子代的相应位。 例如:

图3.2 一致交叉图

3)变异 变异就是以很小的概率Pm随机地改变个体的某些基因的值。对于交叉后产生的个 体的每一个基因值,产生一个0到1之间的随机数x,若x<Pm,就进行变异操作。在二进 制编码中,变异算子随机地将某个基因值取反,即“0”变成“1” ,或“1”变为“0” 。 变异与选择、交叉算子结合在一起,就能避免上两种两算子引起的某些基因信息的 永久性丢失,保证了遗传算法的有效性;同时使得遗传算法保持群体的多样性,以防止 出现未成熟收敛。变异操作是一种防止算法早熟的措施。 在变异操作中,变异率不能取的太大,如果Pm>0.5,遗传算法就退化为随机搜索, 而遗传算法的一些重要的数学特性和搜索能力也就不复存在了。

3.4 基于遗传算法的无功优化与电压控制实现的步骤
1)确定无功优化数学模型及目标函数 采用3.1节所述模型及目标函数。 2)确定适应度函数 因为遗传算法只可求得极大值,而无功优化是求极小值问题,因而需对目标函数进

基于改进遗传算法的无功优化与控制

行改造,变求极小值为求极大值。如下式:
max( x ? f )

其中 x 是一个很大的数。 所以,适应度函数为:
fit ? 10000 ? (? PL ( x) ? ?1 ? ( Vi ? Vi lim 2 Q ? Qi lim 2 ) ? ?2 ? ( i ) ) Vi max ? Vi min Qi max ? Qi min (3 ? 4)

3)形成初始解 随机产生n个个体。每个个体是一个1行 n1 ? n2 ? n3 列的数组,型似如下:

[V1,V2 , Vn1, T1, T2 ,
注:
n1 是可调发电机机端电压台数; n2 是可调变压器台数; n3 是可投切并联补偿器的地点数。

Tn 2 , Qc1, Qc 2

Qcn3 ]

4)进入计算潮流的循环 对每个个体进行潮流计算,将结果代入适应度函数,得到对应的适应度函数值。循
(k ) 环n次,就可以得到n个适应度值,从中选出最大的适应度函数值 fitmax 。

5)选择 将得到的n个适应度值从大到小排序,用最靠前的1/4代替最后的1/4,重新形成n个 个体。这样做,既选择了比较优良的个体,又保证了种群的多样性。 6)交叉 进入交叉循环,这里交叉率 Pc 设定为0.9。随机生成一个0-1之间的数,如果这个数 小于 Pc ,就进行交叉,否则,维持不变。循环n/2次,不重复交叉。交叉公式为:
? ? X i? ? (1 ? a ) X i ? aX j 实型变量交叉公式: ? ? ? X ?j ? aX i ? (1 ? a ) X j

? ? X i? ? round [(1 ? a ) X i ? aX j ] 整型变量交叉公式: ? ? ? X ?j ? round [aX i ? (1 ? a ) X j ]

注:
X i 、 X j 是要交叉的两个体; X i? 、 X ?j 是新产生的两个体;

基于改进遗传算法的无功优化与控制

a 是随机生成的一个0-1之间的数。
7)变异 进入变异循环,这里变异率 Pm 设定为0.1。随机生成一个0-1之间的数,如果这个数 小于 Pm ,就进行变异,否则,维持不变。变异时,随机产生一个二进制码串(屏蔽字)。 循环n次,又形成n个新个体。变异公式为:

? X i ? ( X i ? X i min )b X i? ? ? ? X i ? ( X i max ? X i )b
注:
X i 是要变异的个体; X i? 是变异产生的新个体;

0对应的位置 1对应的位置

b 是随机生成的一个0-1之间的数。
8)收敛判据 对最新形成的n个个体,进行潮流计算,将结果代入适应度函数,得到n个适应度函
(k ) ( k ?1) ( k ?1) 数值,从中选出最大的适应度函数值 fitmax 。若 fitmax - fitmax < ? ( ? 是事先设定的很小的

数),即满足收敛判据,输出结果。否则,从4)步开始迭代,直至满足收敛判据,或达 到最大迭代代数。

基于改进遗传算法的无功优化与控制

4 算例分析
4.1 IEEE30 节点系统
该系统拓扑图4.1。其中包含6台发电机,分别在节点1、2、5、8、11、13处;4台可 调变压器,分别在4-12、6-9、6-10、27-28的支路上;4台无功补偿设备,分别在节点6、 19、27、30处。

4.2 潮流计算结果
本文分别采用牛顿拉夫逊直角坐标法和遗传算法无功优化,运用matlab编程,对 IEEE30节点系统进行了潮流计算。两算法的潮流计算结果列于表4-1、表4-2;遗传算法 每代最大适应度值走势如图4.2。牛顿拉夫逊直角坐标法迭代4次收敛,用时0.140000s; 遗传算法无功优化进化代数为84,用时83.529000s。最优个体中发电机机端电压分别为: 1.0864 、 1.0666 、 1.0406 、 1.0463 、 1.0705、 1.0864; 可调变压器的档位分别为: 1.0000、 0、-2.0000、-1.0000;离散型电容补偿装置投如组数分别为:4.0000、3.0000、3.0000、 2.0000。

4.3 算例分析
由表4-2可见,牛顿拉夫逊法潮流计算结果有功损耗为0.1009(标幺值),而遗传算法 潮流计算结果有功损耗为0.0938(标幺值)。可见,遗传算法能有效减小网损,有较好的 优化效果,经过优化后的电压水平普遍有所改善。
1 2 5 7

G
3

G
4

G
6

G

8

28 29

13

G

12

16

17 10 20

9

27 30

G
22

14 18 15 23

11 21 25

19

24

26

图4.1 IEEE30节点系统拓扑图

基于改进遗传算法的无功优化与控制

表4-1 两算法的潮流计算结果 节点号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 NL直角坐标法计算电压 1.0600 1.0450 1.0252 1.0169 1.0100 1.0138 1.0045 1.0100 1.0420 1.0252 1.0820 1.0538 1.0710 1.0366 1.0298 1.0340 1.0228 1.0175 1.0123 1.0151 1.0123 1.0128 1.0131 0.9994 0.9976 0.9795 1.0054 0.9951 0.9877 0.9749 遗传算法计算电压 1.0864 1.0666 1.0653 1.0597 1.0406 1.0536 1.0409 1.0463 1.0580 1.0552 1.0705 1.0590 1.0864 1.0490 1.0486 1.0499 1.0486 1.0543 1.0597 1.0582 1.0449 1.0460 1.0421 1.0418 1.0570 1.0400 1.0750 1.0375 1.0617 1.0534

表4-2 两算法的潮流计算结果

基于改进遗传算法的无功优化与控制

节点号 1 2 5 8 11 13 平均电压(标幺值) 有功损耗(标幺值)

NL直角坐标法计算发电机功率 1.7849-0.0566i 0.4000 + 0.4051i 0.1500 + 0.2820i 0.1000 + 0.3149i 0.3000 + 0.2165i 0.2000 + 0.1344i 1.0202 0.1009

GA计算发电机功率 1.7778-0.038846i 0.4+0.025987i 0.15+0.27068i 0.1+0.19179i 0.3+0.072865i 0.2+0.21512i 1.0552 0.0938

图4.2 遗传算法每代最大适应度值走势

基于改进遗传算法的无功优化与控制

5 结论与展望
电力系统无功优化是保证电力系统安全经济运行、提高电压质量的重要措施,对指 导调度人员安全运行和计划部门进行电网规划具有重要意义。它涉及选择无功补偿装置 地点、 确定无功补偿容量、 调节变压器分接头和发电机机端电压的配合等, 是一个动态、 多目标、多约束的非线性规划问题,也是电力系统分析中的一个难题。本文利用遗传算 法对IEEE30节点系统进行了无功优化计算,得到了较好的优化效果。现总结全文可以得 出以下结论与展望: 1)在满足电力系统运行的约束条件下,以有功损耗最小为目标函数,利用遗传算 法进行无功优化计算。通过对IEEE30节点系统进行无功优化计算,结果表明了该算法有 较好的优化效果,显示出了遗传算法在解决多变量、非线性、不连续、多约束问题时的 独特优势。 2)遗传算法利用目标函数变量的编码进行进化,而不像传统方法用变量本身,从 中找出高适应度值的个体, 而不是对函数和它们的控制参数直接操作。 3)遗传算法直接应用目标函数的函数值信息(即适应度值)或性能指标, 不需要其他 的描述控制量和被控制量的数学关系,抛开了传统的数学分析方法,求解的问题可以是 非线性、离散的,使得许多问题可以灵活处理,在解决多变量、非线性、不连续、多约 束问题时的有独特优势。 4)遗传算法最适合在复杂地区进行搜索,从中找出期望值高的区域。在解决简单 问题时效率并不是很高。另外,简单遗传算法会随着问题规模的扩大,不但每种方案的 计算时间急剧增加, 而且遗传算法本身的收敛速度也会减慢, 其解也容易落入局部极值。 5)遗传算法是随机优化算法,即便对同一个优化问题进行重复计算,每次所得最优 结果和所用时间都不相同,不适于将最优解直接应用于调度。所以怎样应用优化结果、 减少随机性的影响,是遗传算法在实际应用中有待解决的问题。遗传算法求解出的最优 解,可以被看做是问题的进步可行解,即更接近最优解的较优解。所以对其得出的最优 解进行评价和筛选时,如果有必要,应调整相关参数,并重新启动优化进程。

基于改进遗传算法的无功优化与控制

参考文献
[1]谈才军. 神经网络在化工过程故障诊断中的应用研究[D]. 上海: 华东理工大学, 2005, 3(7). [2]陈燕萍.基于改进遗传算法的电力系统无功优化[D].南京:南京师范大学,2008, 5(3). [3]宋文南,李树鸿,张尧.电力系统潮流计算.天津:天津大学出版社,1990,2(4). [4]西安交通大学等合编.电力系统计算.北京:水利电力出版社,1978,6(4). [5]陈衍编.电力系统稳态分析.北京:中国电力出版社,2007,2(3). [6]许仪勋.基于遗传算法的电力系统分层信息故障诊断方法研究[D].哈尔滨:哈尔滨 工业大学,2000,8(1). [7]段玉倩,贺家李.遗传算法及其改进[J].电力系统及其自动化学报,1998,10(1), 12(3). [8]徐唐煌.基于遗传退火混合算法的配电网网络重构研究[D].武汉:华中科技大学, 2005,14(6). [9]马晋,L.L.Lai,杨以涵.遗传算法在电力系统无功优化中的应用[J].中国电机工 程学报,1995,15(3). [10]倪炜,单渊达.具有优化路径的遗传算法应用于电力系统无功优化[J].电力系统自 动化,2000,24(21). [11]陈皓勇, 王锡凡. 电力系统无功优化的退火选择遗传算法[J]. 中国电力, 1998, 32(2). [12]谭建成,王佩璋.电力系统无功综合优化的模糊数学解法[J].中国电机工程学报, 1990,10(增刊). [13]宋军英, 刘涤尘, 陈允平. 电力系统模糊无功优化的建模及算法[J]. 电网技术, 2001, 25(3). [14] SUNDHARARAJANS, PAHWAA. Optimal ca-pacitor placement on radial distribution system[J].IEEE Trans on Power Delivery,1989,4(1):725-734. [15]程浩忠.基于遗传算法的电力系统无功优化[J].上海交通大学学报,1998,32. [16]张粒子,舒隽,林宪枢等.遗传算法的无功规划优化[J].中国电机工程学报,2000, 20(6):5-8. [17]戴文霞. 无功功率优化的改进退火选择遗传算法[J]. 电网技术, 2001, 25(11): 33-37. [18]Grudinin N.Reactive Power Optimization Using Successive Quadratic Programming

基于改进遗传算法的无功优化与控制

Method. IEEE Trans on Power Systems, 1998.13(4). [19]W.N.W Abdullah, H. Saibon A.A.M Zain.Genetic Algorithm For Optimal Reactive Power Dispatch.Proceedings of EMPD 1998,Vol1,6(3). [20] Federico Milano, Continuous Newton’s Method for Power Flow Analysis. IEEE Trans on Power Systems,2009.24(1). [21]程新功, 厉吉文, 曹立霞等. 基于电网分区的多目标分布式并行无功优化研究[J]. 中 国电机工程学报,2003,23(10). [22]李亚男,张粒子,杨以涵.考虑电压约束裕度的无功优化及其内点解法[J].中国电 机工程学报,2001,21(9). [23]文劲宇,江振华等.基于遗传算法的无功优化在鄂州电网中的实现,电力系统自动 化,2000年1月,Vol.24.No.2,9(5). [24]高鑫.基于改进自适应遗传算法的配电网络滤波装置优化配置[D].西安:西安理工 大学,2003,4(8). [25]愈悦.电力系统无功优化的改进遗传算法及其程序实现[D].重庆:重庆大学,2005, 17(3). [26]王平洋, 王广生, 胡兆平. 加快模糊遗传算法的搜索过程[J]. 电网技术. 1999, 12(6). [27]周双喜,蔡虎.应用于电力系统无功优化中的改进遗传算法[J].电网技术.1997, 13(2).

基于改进遗传算法的无功优化与控制

致谢
大学的时光白驹过隙,很快就要接近尾声,我也要重新收拾行囊,开始下个阶段的 旅程。在这四年的时间里,我收获的不仅仅是专业知识,还有老师、同学和朋友在学习 和生活上给予我的帮助与关怀。 ………

最后,感谢各位评审和参加答辩的专家、老师在百忙之中审阅我的文章并参加我的 答辩。

基于改进遗传算法的无功优化与控制

附录 A 牛顿拉夫逊法程序流程图
输入原始数据

形成节点导纳矩阵

设节点电压 ei(0)、f i (0) ; i ? 1, 2, …,n, i ? s

置迭代次数k=0

(k ) (k ) 对PQ节点:计算 ?Pi 、?Qi 对PV节点:计算 ?Pi ( k )、?U i( k )2

置节点号i=1

否 雅可比矩阵J是否已全部形成,i>n?



(k ) (k ) (k ) (k ) (k ) 、Nij 、Jij 、L(ijk )、Rij 、Sij 计算雅可比矩阵元素 H ij

增大节点号i

i+1

增大迭代次数,k

k+1

(k ) (k ) ( k )2 (k) 解修正方程式,由 ?Pi 、?Qi 、?U i 和Jp 求各节点电压变量 ?e( k )、?f ( k ) ; i ? 1, 2, …,n,i ? s i i

计算各节点电压新值:
求出 ?e( k )
max

、 ?f ( k )

ei( k ?1) ? ei( k ) ? ?ei( k ) , i ? 1, 2, …,n,
max

f i( k ?1) ? f i( k ) ? ?f i( k ) ; i ? s
? ??



迭代是否收敛, ?e( k )

max

、 ?f ( k )



max

计算平衡节点功率 S S 和线路功率 S ij

~

~

基于改进遗传算法的无功优化与控制

附录 B 牛顿拉夫逊法潮流计算程序源代码
tic %n=input('请输入节点数:n='); %nl=input('请输入支路数:nl='); %isb=input('请输入平衡母线节点号:isb='); %pr=input('请输入误差精度:pr='); %iternu=input('请输入迭代次数:iternu='); %B1=input('请输入由支路参数形成的矩阵: B1='); %B2=input('请输入各节点参数形成的矩阵: B2='); %以下为从数据文件读入数据 clc %清屏 clear %从内存中清除变量和函数 fid = fopen('data30.txt','r'); n = fscanf(fid,'%d',[1,1]); %节点数 n1= fscanf(fid,'%d',[1,1]); %支路数 isb=fscanf(fid,'%d',[1,1]); %平衡母线节点号 pr=fscanf(fid,'%f',[1,1]); %误差精度 iternu=fscanf(fid,'%d',[1,1]);%最大迭代次数 BP=fscanf(fid,'%f',[8,n]); %节点数据 B=fscanf(fid,'%f',[7,n1]); %支路数据 B=conj(B)'; BP=conj(BP)'; B1=zeros(n1,7); %B1 支路参数形成的矩阵 B2=zeros(n,6);% B2 各节点参数形成的矩阵 for i=1:n1 k=1; for z=1:6; if (z==3) B1(i,z)=complex(B(i,z),B(i,z+1));k=z+1; else

基于改进遗传算法的无功优化与控制

if (z==4) B1(i,z)=complex(0,B(i,k)); else B1(i,z)=B(i,k); end end k=k+1; end end for i=1:n k=1; for z=1:6; if (z==1) B2(i,z)=complex(BP(i,z),BP(i,z+1));k=z+2; else if (z==2) B2(i,z)=complex(BP(i,k),BP(i,k+1));k=k+2; else B2(i,z)=BP(i,k); end end end end fclose(fid);%关闭数据原文件 Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);%初始化数组 delta=zeros(1,n);S1=zeros(n1); %求导纳矩阵 for i=1:n1 if B1(i,6)==0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); k=k+1;

基于改进遗传算法的无功优化与控制

Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; end G=real(Y);B=imag(Y); for i=1:n e(i)=real(B2(i,3)); f(i)=imag(B2(i,3)); V(i)=B2(i,4); end for i=1:n S(i)=B2(i,1)-B2(i,2);%节点注入功率=发电机注入节点功率-节点负荷功率 B(i,i)=B(i,i)+B2(i,5); end P=real(S);Q=imag(S); ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0;overflag=0; while IT2~=0 IT2=0;a=a+1; for i=1:n if i~=isb%除平衡节点外 C(i)=0;D(i)=0; for j1=1:n C(i)=C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1); D(i)=D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1); end P1=C(i)*e(i)+f(i)*D(i); Q1=C(i)*f(i)-e(i)*D(i);%求'P,Q' V2=e(i)^2+f(i)^2; if B2(i,6)~=3 DP=P(i)-P1;%有功功率的误差 DQ=Q(i)-Q1;%无功功率的误差 for j1=1:n if j1~=isb&j1~=i X1=-G(i,j1)*e(i)-B(i,j1)*f(i);

基于改进遗传算法的无功优化与控制

X2=B(i,j1)*e(i)-G(i,j1)*f(i); X3=X2; X4=-X1; p=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ; m=p+1; J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4; J(m,q)=X2; elseif j1==i&j1~=isb X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i); X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i); X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i); X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i); p=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ; m=p+1; J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4; J(m,q)=X2; end end else DP=P(i)-P1; DV=V(i)^2-V2; for j1=1:n if j1~=isb&j1~=i X1=-G(i,j1)*e(i)-B(i,j1)*f(i); X2=B(i,j1)*e(i)-G(i,j1)*f(i); X5=0;X6=0; p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV; m=p+1; J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6; J(m,q)=X2; elseif j1==i&j1~=isb X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i); X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i); X5=-2*e(i);

基于改进遗传算法的无功优化与控制

X6=-2*f(i); p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV; m=p+1; J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6; J(m,q)=X2; end end end end end for k=3:N0 %求雅可比矩阵 k1=k+1;N1=N; for k2=k1:N1 J(k,k2)=J(k,k2)./J(k,k); end J(k,k)=1; if k~=3 k4=k-1; for k3=3:k4 for k2=k1:N1 J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2); end J(k3,k)=0; end if k==N0 break; end for k3=k1:N0 for k2=k1:N1 J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2); end J(k3,k)=0; end else

基于改进遗传算法的无功优化与控制

for k3=k1:N0 for k2=k1:N1 J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2); end J(k3,k)=0; end end end%用高斯消去法解"w=-J*V" for k=3:2:N0-1%修正各节点电压 L=(k+1)./2; e(L)=e(L)-J(k,N); k1=k+1; f(L)=f(L)-J(k1,N); end for k=3:N0%判断是否收敛 DET=abs(J(k,N)); if DET>=pr IT2=IT2+1; end end Toc

基于改进遗传算法的无功优化与控制

附录 C 遗传算法无功优化 matlab 程序
遗传算法无功优化 matlab 程序分为 6 个主子程序,每个子程序又包含其他在程序。 6 个主子程序分别为读取数据 read 子程序;初始解种群 initial 子程序;选择 selection 子 程序; 交叉 crossover 子程序; 变异 mutition 子程序; 计算适应度 adapting 子程序。 data.30.txt 和 net.30.txt 是 IEEE30 节点系统的两个数据文件,若想运行其他节点系统,只需要改变 这两个数据文件,而不必修改程序。data.30.txt 数据文件中的数据说明见 read 子程序中 的读取数据部分,不再增加说明;net.30.txt 中的数据是 30 节点系统潮流计算程序所需 要的数据。 read 子程序: function [NGAmax,popsize,NV,Gnumber,NLC,NT,NCD,NLD,VGmax,VGmin,Vjmax,Vjmin,LC,T,C D,LD,rmin]=read(node) if node==3 fid = fopen('data3.txt','r'); elseif node==4 fid = fopen('data4.txt','r'); elseif node==5 fid = fopen('data5.txt','r'); elseif node==9 fid = fopen('data9.txt','r'); elseif node==10 fid = fopen('data10.txt','r'); elseif node==11 fid = fopen('data11.txt','r'); elseif node==13 fid = fopen('data13.txt','r'); elseif node==14 fid = fopen('data14.txt','r'); elseif node==30 fid = fopen('data30.txt','r'); elseif node==39

基于改进遗传算法的无功优化与控制

fid = fopen('data39.txt','r'); elseif node==43 fid = fopen('data43.txt','r'); elseif node==57 fid = fopen('data57.txt','r'); elseif node==118 fid = fopen('data118.txt','r'); elseif node==145 fid = fopen('data145.txt','r'); elseif node==162 fid = fopen('data162.txt','r'); elseif node==300 fid = fopen('data300.txt','r'); else disp('非标准 IEEE 数据!'); beak; end NGAmax=fscanf(fid,'%d',[1,1]); %最大进化代数 popsize=fscanf(fid,'%d',[1,1]); %种群规模 NV=fscanf(fid,'%d',[1,1]); %可调发电机数量 NLC=fscanf(fid,'%d',[1,1]); %连续型无功补偿装置数量 NT=fscanf(fid,'%d',[1,1]); %可调变压器数量 NCD=fscanf(fid,'%d',[1,1]); %离散电容补偿装置数量 NLD=fscanf(fid,'%d',[1,1]); %离散电抗补偿装置数量 VGmax=fscanf(fid,'%g',[1,1]); %发电机机端电压上限 VGmin=fscanf(fid,'%g',[1,1]); %发电机机端电压下限 Vjmax=fscanf(fid,'%g',[1,1]); %非发电机节点电压上限 Vjmin=fscanf(fid,'%g',[1,1]); %非发电机节点电压下限 Gnumber=fscanf(fid,'%g',[3,NV]); %发电机所在节点号、无功上下限 LC=fscanf(fid,'%g',[3,NLC]); %连续型无功补偿所在节点号、补偿容量上下限 T=fscanf(fid,'%g',[5,NT]); %可调变压器首末节点号、上下限、单档容量 CD=fscanf(fid,'%g',[4,NCD]); %离散电容补偿装置位置、 上下限组数、 单组容量

基于改进遗传算法的无功优化与控制

LD=fscanf(fid,'%g',[4,NLD]); %离散电抗补偿装置位置、上下限档数、单档容量 rmin=fscanf(fid,'%d',[1,1]); %惩罚因子的最小取值 fclose(fid);%关闭数据文件 Gnumber=Gnumber'; LC=LC'; T=T'; CD=CD'; LD=LD'; initial 子程序: function [x,fitness,n,n1,isb,pr,iternu,X,B1,B2]=initial(popsize,NV,Gnumber,NLC,NT,NCD,NLD,node, VGmax,VGmin,Vjmax,Vjmin,LC,T,CD,LD,rmin) x=zeros(popsize,NV+NLC+NT+NCD+NLD); DV=zeros(1,NV); DLC=zeros(1,NLC); DNT=zeros(1,NT); DCD=zeros(1,NCD); DLD=zeros(1,NLD); fitness=zeros(1,popsize); [B1,B2,n,n1,isb,pr,iternu,X]=readnet(node);%读取网络参数 k=1;%disp(LC) while k<=popsize for i=1:NV DV(i)=rand*(VGmax-VGmin)+VGmin; end for i=1:NLC DLC(i)=rand*(LC(i,2)-LC(i,3))+LC(i,3); end for i=1:NT DNT(i)=round(rand*(T(i,3)-T(i,4))+T(i,4)); end for i=1:NCD DCD(i)=round(rand*(CD(i,2)-CD(i,3))+CD(i,3)); end

基于改进遗传算法的无功优化与控制

for i=1:NLD DLD(i)=round(rand*(LD(i,2)-LD(i,3))+LD(i,3)); end [BB1,BB2]=renewb(NV,Gnumber,NLC,NT,NCD,NLD,DV,DLC,DNT,DCD,DLD,LC,T,CD,L D,B1,B2,n,n1);%更新控制变量数据 [PL,Vf,Vq,overflag,V,Gnum,GS]=flow(BB1,BB2,n,n1,isb,pr,iternu,X,NV,Gnumber,Vjmax,Vj min);%计算潮流 if overflag==0%潮流收敛输出 x(k,:)=[DV,DLC,DNT,DCD,DLD]; sumLCD=0; for i=1:NCD sumLCD=sumLCD+DCD(i)*CD(i,4);%离散电容补偿装置 end for i=1:NLD sumLCD=sumLCD+DLD(i)*LD(i,4);%离散电抗补偿装置 end sumLC=0; for i=1:NLC sumLC=sumLC+DLC(i);%连续型无功补偿装置(静止补偿器) end fitness(k)=1e6-(sumLCD*5*1e4+PL*1e3*2000*0.5+rmin*(Vf+Vq)); k=k+1; end end selection 子程序: function [x,fitness,fitness_avg,fitness_max,fitness_newavg,fitness_newmax]=selection(x,fitness,popsi ze) [x,fitness,fitness_avg,fitness_max]=GAsort(x,fitness,popsize); X_new=x; fitness_new=fitness; sel=popsize/4; for i=1:sel

基于改进遗传算法的无功优化与控制

X_new(i,:)=x(i,:); X_new(i+sel,:)=x(i,:); fitness_new(i)=fitness(i); fitness_new(i+sel)=fitness(i); end for i=sel+1:popsize-sel X_new((i+sel),:)=x(i,:); fitness_new(i+sel)=fitness(i); end fitness_newsum=0; fitness_newmax=fitness_new(1); for i=1:popsize fitness_newsum=fitness_newsum+fitness_new(i); if fitness_new(i)>fitness_newmax fitness_newmax=fitness_new(i); end end fitness_newavg=fitness_newsum/popsize; x=X_new; fitness=fitness_new; crossover 子程序: function [x,fitness]=crossover(x,fitness,popsize,Fitness_newavg,Fitness_newmax,NV,NLC,NT,NCD,N LD) pc1=0.99; pc2=0.7; for i=2:popsize/2 if fitness(i)>fitness(popsize/2+i) f=fitness(i); else f=fitness(popsize/2+i); end if f>Fitness_newavg pc=pc1-(pc1-pc2)*(f-Fitness_newavg)/(Fitness_newmax-Fitness_newavg);

基于改进遗传算法的无功优化与控制

else pc=pc1; end crossr=rand; if crossr<pc crossp=round(rand(1,NV+NLC+NT+NCD+NLD)); for m=1:NV+NLC+NT+NCD+NLD a=rand; temp=x(i,m); if crossp(1,m)==1 if m>NV+NLC x(i,m)=round(a*x(i,m)+(1-a)*x(popsize/2+i,m)); x(popsize/2+i,m)=round(a*x(popsize/2+i,m)+(1-a)*temp); else x(i,m)=a*x(i,m)+(1-a)*x(popsize/2+i,m); x(popsize/2+i,m)=a*x(popsize/2+i,m)+(1-a)*temp; end end end end end mutition 子程序: function [x,fitness]=mutation(x,fitness,popsize,fitness_newavg,fitness_newmax,NV,NLC,NT,NCD,NL D,VGmax,VGmin,LC,T,CD,LD) pm1=0.1; pm2=0.001; for i=2:popsize if fitness(i)>fitness_newavg pm=pm1-(pm1-pm2)*(fitness(i)-fitness_newavg)/(fitness_newmax-fitness_newavg); else pm=pm1; end mutationr=rand;

基于改进遗传算法的无功优化与控制

if mutationr<pm mutationp=round(rand(1,NV+NLC+NT+NCD+NLD)); for m=1:NV+NLC+NT+NCD+NLD if mutationp(1,m)==0 if m>NV+NLC+NT+NCD x(i,m)=round(x(i,m)-(x(i,m)-LD(m-(NV+NLC+NT+NCD),3))*rand); elseif m>NV+NLC+NT x(i,m)=round(x(i,m)-(x(i,m)-CD(m-(NV+NLC+NT),3))*rand); elseif m>NV+NLC x(i,m)=round(x(i,m)-(x(i,m)-T(m-(NV+NLC),4))*rand); elseif m>NV x(i,m)=x(i,m)-(x(i,m)-LC(m-NV,3))*rand; else x(i,m)=x(i,m)-(x(i,m)-VGmin)*rand; end else if m>NV+NLC+NT+NCD x(i,m)=round(x(i,m)+(LD(m-(NV+NLC+NT+NCD),2)-x(i,m))*rand); elseif m>NV+NLC+NT x(i,m)=round(x(i,m)+(CD(m-(NV+NLC+NT),2)-x(i,m))*rand); elseif m>NV+NLC x(i,m)=round(x(i,m)+(T(m-(NV+NLC),3)-x(i,m))*rand); elseif m>NV x(i,m)=x(i,m)+(LC(m-NV,2)-x(i,m))*rand; else x(i,m)=x(i,m)+(VGmax-x(i,m))*rand; end end end end end adapting 子程序: function [fitness,fitness_newavg,fitness_newmax,flaga]=adapting(x,fitness,popsize,NV,Gnumber,NLC

基于改进遗传算法的无功优化与控制

,NT,NCD,NLD,LC,T,CD,LD,B1,B2,n,n1,isb,pr,iternu,X,Vjmax,Vjmin,rmin) for ta=1:popsize [BB1,BB2]=renew(x,NV,Gnumber,NLC,NT,NCD,NLD,LC,T,CD,LD,B1,B2,n,n1,ta); [PL,Vf,Vq,overflag,V,Gnum,GS]=flow(BB1,BB2,n,n1,isb,pr,iternu,X,NV,Gnumber,Vjma x,Vjmin);%计算潮流 if overflag==0 sumLCD=0; for i=1:NCD sumLCD=sumLCD+x(NV+NLC+NT+i)*CD(i,4);%离散电容补偿装置 end for i=1:NLD sumLCD=sumLCD+x(NV+NLC+NT+NCD+i)*LD(i,4);%离散电抗补偿装置 end sumLC=0; for i=1:NLC sumLC=sumLC+x(NV+i);%连续型无功补偿装置(静止补偿器) end fitness(ta)=1e6-(sumLCD*5*1e4+PL*1e3*2000*0.5+rmin*(Vf+Vq)); else fitness(ta)=0; end end fitness_newsum=0; fitness_newmax=fitness(1); flaga=1; for i=1:popsize fitness_newsum=fitness_newsum+fitness(i); if fitness(i)>fitness_newmax fitness_newmax=fitness(i); flaga=i; end end fitness_newavg=fitness_newsum/popsize;


相关文章:
基于改进遗传算法的电力系统无功优化
2010 基于改进遗传算法的电力系统无功优化周晓娟 1,蒋炜华 2,马丽丽 3 (1.河南机电学校电子工程系,河南 郑州 450002;2.河南机电高等专科学校电气工程系,河南 新乡...
基于遗传算法的电力系统无功优化模型及其MATLAB仿真
湖南工学院 2015 届毕业设计(论文)课题任务书学院:电气与信息工程学院 指导教师 课题名称 刘璟忠 学生姓名 专业: 基于遗传算法的电力系统无功优化模型及其 MATLAB ...
改进遗传算法在无功优化中的应用研究
改进遗传算法无功优化中的应用研究 【摘要】 遗传算法是模拟生物进化过程的优化算法,广泛应用于包含离散变 量的复杂优化问题求解。 本文将遗传算法应用于配电网无功...
优化算法开题报告
篇一:基于粒子群算法的电力系统无功优化开题报告 ...规划优化问题的改进遗传算法,该算法采用十进制整数与...(12):37-41;篇二:利用遗传算法进行结构优化设计(...
昌吉论文网代理发表职称论文发表-遗传算法配电网优化论...
基于 BTO 多目标遗传算法的播种机性能优化设计 2……基于改进遗传算法的分布式...含微电网的配电网优化规划研究 5……含双馈风力发电机组的配电网无功电压优化 6...
土默特左旗职称论文发表-电网降损无功补偿优化论文选题...
配电网无功优化软件的设计 42……基于人工蜂群算法的配电网无功优化 43……提高...基于改进遗传算法的配电网无功优化 75……无功补偿的规划 76……计及负荷不确定...
...无功优化 动态模拟 潮流计算 遗传算法 BP神经网络_...
电网静动态无功优化研究 【中文摘要】 目前,我国油田开采大多处于中后期,采收率...的设计方法 38-40 例分析 40-43 化 43-54 第 5 章 基于改进遗传算法的...
基于遗传算法的含分布式电源配电网无功优化模型研究
改进遗传算法思想引入到大规模、 多分支、 电源类型多的分布式电源配电网中,可以对配电网全局进行优化控制,有效解决分 布式配电网系统无功优化控制策略问题。 1 ...
陈晓阳 开题报告
三江学院毕业设计(论文) 三江学院毕业设计(论文)开题报告及文献综述学号姓名 课题...基于改进遗传算法的配电网无功优化 [J],2002,14(3):16-20. [11]刘长胜,许...
遗传算法毕业论文范文与参考题目
基于改进遗传算法的配电网络重构研究 多层钢框架住宅结构优化设计方法的研究 遗传...基于禁忌遗传算法的油田配电网无功优化方案研究 基于联合智能算法和 MP 的信号...
更多相关标签: