基于蒙特卡洛的电力系统可靠性分析matlab仿真,对比EDNS和LOLP

本文主要是介绍基于蒙特卡洛的电力系统可靠性分析matlab仿真,对比EDNS和LOLP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介


1.课题概述

        电力系统可靠性是指电力系统按可接受的质量标准和所需数量不间断地向电力用户供应电力和电能量的能力的量度,包括充裕度和安全性两个方面。发电系统可靠性是指统一并网的全部发电机组按可接受标准及期望数量满足电力系统的电力和电能量需求的能力的量度。发电系统可靠性指标可以分为确定性和概率性两类。过去曾广泛应用确定性可靠性指标来指导电力系统规划和运行,如百分数备用法和偶然故障备用法。目前已逐渐被概率性可靠性指标所代替。

       概率法常用的可靠性指标有:电力不足概率(Loss of Load Probability, LOLP)和期望缺供电量(Expected Demand Not Served, EDNS)是评估电力系统可靠性的两个重要指标。通过随机法和蒙特卡洛法分别对这两个指标进行仿真分析。

2.系统仿真结果

        从仿真可以看到,对于电力不足概率指标LOLP,LOLP值的可能性随着LOLP值得变大而下降,这是因为在模拟元件失效过程中,由于元件失效而导致的电力不足的可能性会出现,但是其大概率的电力不足出现概率较低,而小概率的电力不足情况出现概率较大。

        对于停电功率期望值指标EDNS,EDNS值发生可能性的随着EDNS值得变大而下降,即在实际过程中,随着元件失效而发生停电的期望值,其大概率的停电功率出现概率较低,而小概率的停电功率情况出现概率较大。

3.核心程序与模型

版本:MATLAB2022a

.....................................................................while (Flag == 1)TTT = TTT + 1;%断开选定的线路if TTT == 1BRANCHo(Cut_info,3:end) = 0;All_Del_Point= [All_Del_Point;Cut_info'];else%断开相邻的线路Inders1 = find(BRANCHo(:,1) == Cut_info(1));Inders2 = find(BRANCHo(:,1) == Cut_info(2));Inders3 = find(BRANCHo(:,2) == Cut_info(1));Inders4 = find(BRANCHo(:,2) == Cut_info(2));               Inders  = unique([Inders1;Inders2;Inders3;Inders4]);%随机选择tmpsss       = randperm(length(Inders));Inders_sel   = Inders(tmpsss(1));BRANCHo(Inders_sel,3:end) = 0;All_Del_Point= [All_Del_Point;Inders_sel];end%根据信息节点的Pdi和Pmi进行失去控制for i1 = 1:N-1P1 = rand(1);P2 = rand(1);if P1 <= Pdi(i1) | (P1 > Pdi(i1) & P2 <= Pmi) %调度中心认为线路处理初始状态BRANCHo(i1,3:end) = 0;All_Del_Point= [All_Del_Point;i1];end    end%对此时的电器网络进行计算潮流Ak          = func_Admittance_matrix(BUSo,BRANCHo);F           = Ak * Pp;%判断是否越限for jjj = 1:length(F)if (abs(F(jjj))) <= (abs(Fmax(jjj)))%没有越限,则进行步骤5P = rand();if P <= PHFlag = 1;%被选中,则继续步骤2,即重新循环elseFlag = 0;%未被选中,则继续步骤6,跳出循环endelse%有越限,则进行步骤3 %先进行LP优化,这里使用PSO进行优化 [V_score2,PP] = func_pso_calculate_min(Bus_Num,15,Pp);%再计算潮流Ak          = func_Admittance_matrix(BUSo,BRANCHo);F           = Ak*(1+g)*PP;if sum(abs(F)) > sum(abs(Fmax))Flag = 1;else%没有越限,则进行步骤5P = rand();if P <= PHFlag = 1;%被选中,则继续步骤2,即重新循环elseFlag = 0;%未被选中,则继续步骤6,跳出循环endendendendendAll_Del_Point          = unique(All_Del_Point);LL                     = length(Fo);Fedns                  = zeros(LL,1);%对于断掉的点取1,其余取0.Fedns(All_Del_Point)   = 1;deltaP                 = abs(Fo-F);E1(m)                  = sum(Fedns.*deltaP)/LL;NUMSS(:,m)             = NUMS;[cdf,PAPR] = ecdf(E1);
EDNS       = E1;%%
figure;
semilogy(100*PAPR(1:end-5),1-cdf(1:end-5),'b-o','LineWidth',1);
xlabel('edns');
ylabel('The cumulative probability of failure probability');if NUM_Delete == 1save attack41.mat PAPR cdf EDNS NUMSS
end
if NUM_Delete == 2save attack42.mat PAPR cdf EDNS NUMSS
end
02_027m

4.系统原理简介

       基于蒙特卡洛的仿真思想,并根据每次产生的随机数种子,进行随机的失效模拟,元件失效过程使用马尔科夫过程建模产生。首先随机模拟一个元件失效的情况,对一个元件失效以及对应的连锁故障情况进行仿真分析。然后随机模拟二个元件失效的情况,对二个元件失效以及对应的连锁故障情况进行仿真分析。而对于三个甚至更多元件失效的情况,本文不做考虑,这是因为当出现三个或者更多的元件失效的情况,整个电力系统网络基本会发生大规模崩溃的情况,在这种情况下做可靠性评估没有实际的价值,故不做这方面的研究。

        在本课题中,使用IEEE24-RTS电力网络系统作为案例进行分析

这里采用的仿真步骤如下:

       由于我们需要考虑随机断开一条线路或者两条线路的系统的稳定性分析,因此,我们主要通过随机循环的思想,每次循环随机的断开线路,然后分析断开这条线路对系统造成的影响进行仿真分析。

       一般情况下,对系统稳定性评估的分析方法主要是分析断开后故障网络的是否正常工作(即分析其是否崩溃)

        通常,当断开一条线路的时候,往往会由于该线路的断开而导致其他的线路的连锁故障,从而导致整个系统的影响,但是这种连锁的情况在概率统计中,并不是必然事件,而是随机事件,因此,这里我们设计如下的故障及稳定性分析方法:

        第一:首先随机的移除信息网络的信息节点,并计算对应的信息节点的传输信息时的延迟概率P。

        第二:随机的选择故障线路,并断开该线路,并更新响应的网络参数;

        第三:根据网络参数,通过直流法进行最优潮流的计算(DC OPF),并判断潮流是否存在越限,如果存在越限,则通过LP优化算法进行第四步操作,如果没有越限,则进行第五步操作。

        第四:当存在越限的时候,那么基于随机的概率,并采用轮盘赌算法选择随机跳开的线路,并进行再次转入步骤二的操作。

        第五:当不存在越限的时候,那么通过一个随机的小概率Ph选择需要跳开的线路,如果存在线路被选择,那么进入步骤二开始操作,否则进入步骤六。

        第六:本次蒙特卡洛循环结束,进入下一次循环。

5.完整工程文件

v

v

这篇关于基于蒙特卡洛的电力系统可靠性分析matlab仿真,对比EDNS和LOLP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690071

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff