配电网可靠性评估(二)—序贯蒙特卡洛模拟法的matlab实现

简介: 电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。

         之前的文章简单介绍了配电网可靠性评估解析法和模拟法的基本原理,分别以最小路法和非序贯蒙特卡洛模拟法为例进行介绍。

一、序贯和非序贯蒙特卡罗模拟法的区别

       发出来之后很多朋友私信我有没有序贯蒙特卡洛模拟法的程序,以及非序贯蒙特卡洛模拟法和序贯蒙特卡洛模拟法的区别,闲下来就写了这篇博客,跟大家一起交流学习。其实非序贯和序贯蒙特卡洛模拟法原理和步骤比较相似,主要的区别有下面这些:

       (1)顾名思义,序贯蒙特卡洛模拟法是基于时序进行模拟的,而非序贯模拟法是基于事件进行模拟的,不考虑时序关系。近年来配电网的研究基本都离不开分布式电源、储能这些时序特性非常明显的设备,因此现在基本上文章都是采用序贯蒙特卡洛模拟法。

       (2)在故障场景抽样时,非序贯蒙特卡洛模拟法的每次模拟对应的时间都是一整年,序贯蒙特卡洛模拟法每次模拟的时间不等,是基于设备的TTR和TTF变化的。另外,统计负荷可靠性指标时,两种算法的计算公式也存在明显区别。

       具体来说,非序贯每次仿真时,要对每个设备产生一个随机数,如果这个随机数小于设备的故障率,就假定本次模拟中该设备发生故障,也就是在一年内设备会发生故障,这是重点,非序贯蒙特卡罗模拟法每次模拟对应的是时间是一年!!!最后统计负荷可靠性指标时,用累计的停电次数除以总仿真次数就可以得到年平均停电次数(因为一次仿真其实就对应一年),停电时间、失负荷量之类的指标也是同理。

       而采用序贯抽样时,每次仿真的时间是不确定的,取决于设备的TTF。对故障场景进行抽样时,故障设备的确定是基于自己设定的规则。一般的文章中都假设抽样时TTF最小的设备为故障元件,这是只考虑了一阶故障。也可以认为TTF最小的前n个设备为故障元件,这样考虑的就是n阶故障。最后统计负荷可靠性指标时,负荷的故障率=仿真中总停电次数/负荷的总正常工作时间,负荷的平均故障持续时间=仿真中总停电时间/仿真中总停电次数。

二、序贯蒙特卡洛模拟法的基本步骤

       用序贯蒙特卡洛模拟法进行配电网可靠性评估的步骤如下:

       (1)初始化负荷可靠性指标和仿真参数;

       (2)计算每个设备的正常工作时间TTF,利用一定规则确定故障的设备;

       (3)确定故障设备的修复时间或者上级开关设备的切换时间;

       (4)确定因设备故障而停运的负荷,以及因开关设备切换而受影响的负荷,累加负荷的正常工作时间,停运次数、停运时间等。

       (5)仿真时间加上TTF和故障持续时间,判断是否达到仿真阈值,若是则进行下一步,否则返回步骤(2);

       (6)统计负荷可靠性指标和系统可靠性指标。

matlab代码:

clc
clear
close all
%% 读取数据
[line_num,line,load_num,load] = IEEE_RBTS_BUS6_F4;
%生成图
g=digraph(line(:,1),line(:,2),line(:,3));
%% 利用节点网络分析法确定影响负荷的元件
node_analyse;
%% 序贯蒙特卡洛法
load_users=load(:,5);
load_fault=zeros(1,load_num);%故障次数
load_fault_time=zeros(1,load_num);%故障时间
load_power=zeros(1,load_num);%失负荷量
Lambda=(line(:,3).*line(:,4))';
Gamma1=line(:,5);
Gamma2=line(:,8);
power=load(:,3);
N=500;%仿真的年数
time=0;%初始化仿真时间
load_normal=zeros(1,load_num);%正常工作时间
while time<N*8760
    进行故障抽样
    %累加仿真时间
    time=time+min_TTF+max([TTR1,TTR2]);
end
%负荷停电次数
Lambda_load=load_fault./load_normal;
%负荷停电时间
Gamma_load=load_fault_time./load_fault;
U_load=Lambda_load.*Gamma_load;
disp('**************系统可靠性指标**************')
SAIFI=Lambda_load*load_users/(sum(load_users));
disp(['SAIFI=',num2str(SAIFI),'次/(年·户)'])
SAIDI=U_load*load_users/(sum(load_users));
CAIDI=SAIDI/SAIFI;
disp(['SAIDI=',num2str(SAIDI),'小时/(年·户)'])
EENS=load_power*load_users/(sum(load_users))/N;
disp(['EENS=',num2str(EENS),'MW/(年·户)'])
ASAI=1-U_load*load_users/(sum(load_users*8760));
disp(['ASAI=',num2str(ASAI*100),'%'])
figure(1)
bar(Lambda_load,'stack')
title('负荷可靠性评估结果')
xlabel('负荷节点');ylabel('年平均停电次数/次');
figure(2)
bar(U_load,'stack')
title('负荷可靠性评估结果')
xlabel('负荷节点');ylabel('年平均停电时间/h');
Z=[SAIFI SAIDI CAIDI ASAI];
figure(3)
bar(Z,0.2)
title('系统可靠性评估结果')
set(gca,'XTickLabel',{'SAIFI','SAIDI','CAIDI','ASAI'});
Lambda_load0=[1.6725  1.6725  1.6725  1.6725  1.6725  1.7115  1.7213  2.5370  2.5890  2.5370  2.5370  2.5370  1.6725  1.7115  1.6725  2.5110  2.5598  2.5110  2.5110  2.5110  2.2250  2.2250  2.2250 ];
U_load0=[8.4015   8.4015  8.4015  8.4015  8.4015  8.5965  8.6453  12.7240   12.9840   12.7240   12.7240   12.7240   11.2875   11.4825   11.2875   15.4800   15.7238   15.4800   15.4800   15.4800   14.0500   14.0500   14.0500 ];
SAIFI0=1.97781318681319;
SAIDI0=11.074659340659341;
CAIDI0=5.599446608253094;
ASAI0=0.998735769481660;
figure(4)
bar(Lambda_load-Lambda_load0,'stack')
title('模拟法误差分析-负荷年平均停电次数')
xlabel('负荷节点');ylabel('年平均停电次数的误差');
figure(5)
bar(U_load-U_load0,'stack')
title('模拟法误差分析-负荷年平均停电时间')
xlabel('负荷节点');ylabel('年平均停电时间的误差');
figure(6)
Z0=[SAIFI0 SAIDI0 CAIDI0 ASAI0];
bar(Z-Z0,0.4)
title('系统可靠性评估误差')
set(gca,'XTickLabel',{'SAIFI误差','SAIDI误差','CAIDI误差','ASAI误差'});

image.gif

三、运行结果

image.gifimage.gifimage.gifimage.gifimage.gif

image.gif


相关文章
|
8月前
|
传感器 机器学习/深度学习 数据采集
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应(Matlab代码实现)
251 1
|
8月前
|
运维 算法 决策智能
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)
344 0
|
8月前
|
机器学习/深度学习 编解码 数据可视化
【能量算子】评估 EEG 中的瞬时能量:非负、频率加权能量算子(Python&Matlab代码实现)
【能量算子】评估 EEG 中的瞬时能量:非负、频率加权能量算子(Python&Matlab代码实现)
139 6
|
8月前
|
人工智能 供应链 新能源
电动汽车参与运行备用的能力评估及其仿真分析(Matlab代码实现)
电动汽车参与运行备用的能力评估及其仿真分析(Matlab代码实现)
177 0
|
7月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
718 0
|
7月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
941 0
|
7月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
241 0
|
7月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
259 0
|
7月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
345 8
|
7月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
346 8

热门文章

最新文章