1主要内容
该程序参考文献《计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型》,复现文章上层模型,以IEEE39节点系统为例,以负荷损失最小为目标,模拟调度中心调整发电机出力、负荷大小等抑制故障级联传播的过程,通过设置线路状态、跳闸状态、节点相角等级联故障变量,以攻击线路数、源发阶段线路状态、线路潮流、系统功率平衡等作为系统约束条件,通过matlab+gurobi平台进行求解,最终求解得出k重源发故障线路以及级联传播故障线路,并得出在故障传播过程中负荷损失情况等模型运行结果,非常优质的代码,注释清晰,方便学习研究!

该模型以负荷损失最小为目标,具体表达式如下:


1.源发故障数量约束

在源发故障阶段,设置源发故障的线路数为k,该值的设定可以结合历史系统故障进行设置,从当前的电力网络运维情况来看,k值取值不宜超过3。
2.线路运行状态约束

除了源发故障的线路外,其余线路都处于正常运行状态,因此初始线路运行状态和源发阶段线路故障状态变量保持一致。
3.功率平衡约束

在故障级联阶段,节点系统研究对象,在本模型中,即IEEE39节点系统,需要满足节点功率平衡,这是考虑线路-节点连接关系以及发电机功率、负荷损失的重要约束,具体各个参数的含义见原文章。
4.线路潮流约束

对于电力系统主网络,一般采用直流潮流来描述潮流约束,采用相角矩阵作为变量,形成直流潮流约束条件。
5.线路跳闸约束

当线路功率超过承载的最大功率,线路跳闸,表现在模型中即为跳闸状态变量变为1。对应的线路状态标志变量也发生改变。

6.发电机运行状态变化约束


在电力系统主网中,发电设备会连接多条线路,第一个约束指的是如果所有连接线路运行状态之和为0,那么表示发电机与网络脱离,只要有一条线路运行状态不为0,那么发电机与网络仍然是联通状态。第二个约束是对实际发电机输出功率的限制。
6.负荷运行状态变化约束
该部分约束与发电机运行状态变化约束类似,不再赘述。

该部分是模型中的重点,也是难点,随着被研究对象(IEEE39节点系统)中部分线路故障退出运行后,网络联通状态发生改变,甚至出现孤岛,从而导致网络中部分节点存在不满足节点功率平衡条件等约束,为了保证负荷和发电机从系统中断开后,级联传播阶段系统功率仍然能保持平衡,通过下述模型进行调整。

在程序中,约束条件和孤岛处理约束均完成复现。

2部分代码
%% 添加MATPOWER路径
addpath(genpath('F:\MATLAB_fujian\matpower8.0'));
%% 清空环境
clear;
close all;
clc;
%% 初始化数据
% 导入IEEE 39节点系统数据
mpc = loadcase('case39');
% 提取相关数据
NB = size(mpc.bus,1); % 总节点数
NL = size(mpc.branch,1);% 总支路数
NG = size(mpc.gen,1); % 总发电机数
% 负荷节点
load_buses = find(mpc.bus(:,3)>0);
ND = length(load_buses);
% 平衡节点
swing_bus = find(mpc.bus(:,2)==3);
% 参数设置
k = 3; % 攻击的线路数
m = 3; % 故障阶段数(源发故障为阶段1,级联故障为阶段2~m)
% 初始负荷
Dd0 = mpc.bus(load_buses,3);
% 发电机初始出力
Pg0 = mpc.gen(:,2);
3程序结果

从结果能看出来,随着源发故障和级联故障的发生,系统负荷损失也在逐步增大。下一步就要控制级联故障情况下的负荷损失,原文采用下层模型优化调度,并将两层模型通过对偶转化为单层进行处理,对于该方向研究的同学,该基础上考虑新的阻断负荷损失的策略模型,从而组合成为新的创新点,发文章要简单很多。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删