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

article/2025/4/2 0:49:39

        之前的文章简单介绍了配电网可靠性评估解析法和模拟法的基本原理,分别以最小路法和非序贯蒙特卡洛模拟法为例进行介绍:配电网可靠性评估方法的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误差'});

三、运行结果

 

 

 四、完整代码 

         完整代码可以戳这里获取:

基于序贯蒙特卡洛模拟法的配电网可靠性评估的matlab实现


http://chatgpt.dhexx.cn/article/A6JdIyMy.shtml

相关文章

练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)

Python 官网&#xff1a; https://www.python.org/ 这里&#xff0c;才 python 前沿。可惜是英文原版。所以&#xff0c;我要练习英文阅读。&#x1f9d0;&#x1f9d0; 我的CSDN主页My Python 学习个人备忘录我的HOT博老齐教室 自学并不是什么神秘的东西&#xff0c;一个人一…

研究生常用的几种风险评估方法-专家调查法、蒙特卡洛模拟法、计划评审技术、敏感性分析法、决策树法、影响图法、模糊综合评价方法

其实风险评估就是在充分掌握资料的基础之上&#xff0c;采用合适的方法对已识别风险进行系统分析和研究&#xff0c;评估风险发生的可能性&#xff08;概率&#xff09;、造成损失的范围和严重程度&#xff08;强度&#xff09;&#xff0c;为接下来选择适当的风险处理方法提供…

蒙特卡洛模拟法计算电动汽车充电负荷(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码实现 &#x1f4a5;1 概述 伴随环境问题的影响,以及电动汽车技术的不断成熟,电动汽车对电网影呵不断增加。电下1左此放电过程中不但可能导致局部过负荷…

(四十四)蒙特卡洛模拟法计算VaR

思路简介 每一次蒙特卡洛模拟&#xff0c;对资产组合中的每一资产按照随机过程公式模拟出下一个交易日的价格&#xff0c;公式中的ε可以假定服从t分布或正态分布&#xff08;即资产收益率服从的分布&#xff09;&#xff0c;然后可以得到每一资产的收益率&#xff0c;乘以各自…

基于拟蒙特卡洛模拟法的随机潮流计算matlab程序

电力系统随机潮流计算中常采用模拟法&#xff0c;该方法原理简单、使用方便&#xff0c;能够精确地模拟实际物理过程&#xff0c;但是简单的蒙特卡洛模拟法收敛速度很慢&#xff0c;要得到精确的结果需要以大量的计算时间为代价。本章在此基础上提出了基于拟蒙特卡洛模拟的随机…

【Python量化】蒙特卡洛模拟法预测股价走势

文章目录 蒙特卡罗模拟法的定义蒙特卡罗模拟法的的Python实现蒙特卡洛模拟法模拟股票收益率序列蒙特卡洛模拟法模拟股价序列蒙特卡洛模拟法绘制模拟股价序列图 此文章首发于公众号&#xff1a;Python for Finance 链接&#xff1a;https://mp.weixin.qq.com/s/43KQgH-BArop29u…

Ubuntu18.04上安装ROS的详细教程

文章目录 前言一、环境配置二、安装步骤1.添加ROS软件源2.添加密钥3.更换软件源4.安装ROS5.初始化rosdepc6.设置环境变量7.安装 rosinstall8.验证ROS是否安装成功 总结参考文献 前言 最近&#xff0c;学习了胡老师的《ROS入门21讲》&#xff0c;在Ubuntu18.04上安装ROS过程中遇…

在Ubuntu18.04中安装ROS教程

1.创建虚拟机 自定义安装&#xff0c;手动选择镜像文件&#xff0c;处理器选择1个处理器&#xff0c;8个核心&#xff0c;其他选择默认的即可。 2.换源 新装的虚拟机会提示更新&#xff08;不是更新系统&#xff09;&#xff0c;建议换完源之后再更新。 左下角点开&#xff…

Ubuntu 安装 ROS 详细教程

最近需要用ROS控制一个小车底盘&#xff0c;然后发现不会了。。。 所以写一篇博客记录一下&#xff0c;以便以后查阅。 OS&#xff1a;Ubuntu 20.04 ROS&#xff1a;noetic 1. 设置Ubuntu的软件和更新 在搜索框输入software&#xff0c;选择软件和更新一项&#xff0c;勾选 ma…

Ubuntu18.04、Ubuntu20.04之ROS安装教程

目录 Ubuntu20.04之ROS&#xff08;noetic&#xff09;安装教程 Ubuntu18.04之ROS&#xff08;melodic&#xff09;安装教程 ubuntu20.04之ROS&#xff08;noetic&#xff09;安装教程 1、软件源&#xff08;作用是比官方快&#xff09; sudo sh -c . /etc/lsb-release &…

ROS安装超详细保姆级教程

1.版本选择 ROS与Ubuntu版本是有着对应关系的&#xff0c;其中Ubuntu1604 ROS Kinetic&#xff1b;Ubuntu1804 ROS Melodic&#xff1b; Ubuntu2004 ROS Noetic 本文以 Ubuntu2004 ros noetic 进行安装操作演示 2.安装实操 2.1 打开网站http://wiki.ros.org/noetic/Ins…

ubuntu20.04安装ROS极简教程 (noetic)

1.基础安装步骤 # 1.添加 sources.list sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list # 2.添加 keys sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-ke…

ubuntu16.04 ROS安装

ros安装官方链接&#xff1a;cn/kinetic/Installation/Ubuntu - ROS Wiki 建议参考链接&#xff1a;Ubuntu16.04 安装ROS Kinetic 究级详细教程_IU知恩于心的博客-CSDN博客_ubuntu16.04安装ros 问题现象&#xff1a; 下列软件包有未满足的依赖关系&#xff1a; ros-kinetic…

详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

2020年的10月份&#xff0c;我整理写了一篇名为&#xff1a;详细介绍如何在ubuntu20.04中安装ROS系统&#xff0c;以及安装过程中出现的常见错误的解决方法&#xff0c;填坑&#xff01;&#xff01;&#xff01;的博客&#xff0c;已经经过了很多小伙伴的验证&#xff0c;确实…

ros2安装教程

ros官网安装指导&#xff1a; https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html 1、确保支持UTF-8语言环境 locale # check for UTF-8sudo apt update && sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-loca…

Apollo ROS安装教程

1.安装Ubuntu 14.04 2.安装ROS Indigo版本 安装可能以下出现的问题 错误信息&#xff1a;Unpacking ros-indigo-desktop-full (1.1.6-0trusty-20181006-135515-0800) ... Errors were encountered while processing:/var/cache/apt/archives/python-rosdistro-modules_0.7.0…

Ubuntu 安装 ROS 教程

Ubuntu 安装 ROS 一、修改为国内镜像源二、ROS 官网安装介绍&#xff08;kinetic-16.04、melodic-18.04、noetic-20.04&#xff09;三、ROS 安装步骤1.添加 ROS 软件源到 sources.list2.导入密钥3.更新4.安装 ROS 完整版5.初始化rosdep第一步第二步 6.配置环境变量7.安装 rosin…

Ubuntu18.04安装 ROS Melodic教程

Ubuntu对应ROS的不同版本&#xff1a; 我的操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。 下面以我的版本为例&#xff1a; 配置Ubuntu软件仓库 打开软件中心&#xff0c;按照下图进行配置。 确保你的"restricted"&#xff0c; “universe&#…

ROS安装教程详解

一、准备工作 1. 一个装有Ubuntu14.04镜像文件的U盘启动盘 2. 电脑安装EASYBCD、分区助手软件 3. 保证电脑硬盘有一个分区有足够的空间安装ROS,和Ubuntu14.04 二、制作启动盘 1.首先我们先安装软碟通,完成安装后打开软碟通,文件->打开,打开我们的iso镜像 2.然后选择…

ROS安装教程(ubuntu18.04+melodic版本)

1. ROS版本选择 ROS是一个用于编写机器人软件的灵活框架&#xff0c;它集成了大量的工具、库、协议&#xff0c;提供了类似操作系统所提供的功能&#xff0c;包括硬件抽象描述、底层驱动程序管理、公用功能的执行、程序间的消息传递、程序发行包管理&#xff0c;可以极大简化繁…