基于粒子群算法的分布式电源配电网重构优化matlab仿真

news2024/11/24 14:40:29

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

4.1基本PSO算法原理

4.2配电网重构的目标函数

5.完整工程文件


1.课题概述

基于粒子群算法的分布式电源配电网重构优化。通过Matlab仿真,对比优化前后

1.节点的电压值
2.线路的损耗,这里计算网损
3.负荷均衡度
4.电压偏离
5.线路的传输功率
6.重构后和重构前开关变化状态

2.系统仿真结果

1.节点的电压值

  15.0000 + 0.0000i
  14.9761 + 0.0002i
  14.8564 + 0.0014i
  14.8396 + 0.0000i
  14.8257 - 0.0006i
  14.7965 - 0.0093i
  14.7898 - 0.0164i
  14.3003 - 0.3734i
  14.2857 - 0.3291i
  14.2937 - 0.3099i
  14.2968 - 0.3073i
  14.3781 - 0.4659i
  14.3691 - 0.4669i
  14.2306 - 0.2775i
  14.2385 - 0.2765i
  14.2389 - 0.2553i
  14.2331 - 0.2024i
  14.2325 - 0.1839i
  14.9747 - 0.0003i
  14.4088 - 0.4626i
  14.3907 - 0.4526i
  14.4048 - 0.4598i
  14.7643 - 0.0073i
  14.5812 - 0.0374i
  14.4344 - 0.0587i
  14.7945 - 0.0095i
  14.7931 - 0.0096i
  14.3626 - 0.0771i
  14.3669 - 0.0753i
  14.3191 - 0.0713i
  14.2603 - 0.1246i
  14.2465 - 0.1425i
  14.2405 - 0.1634i

2.线路的损耗,这里计算网损
PLoss0 =

  139.9155
PLoss1 =

   56.7952

损耗降低百分比:

ans =

   59.4075

3.负荷均衡度
ans =

    0.0196

4.电压偏离
ans =

   27.8995


5.线路的传输功率
Powers =

   22.5049
   22.5231
   22.5006
   22.5004
   22.5006
   22.5000
   22.9657
   22.5014
   22.5003
   22.5001
   22.5765
   22.5000
   22.5373
   22.5001
   22.5004
   22.5008
   22.5003
   22.5000
   22.6966
   22.5004
   22.5001
   22.5129
   22.5236
   22.5152
   22.5000
   22.5000
   22.6011
   22.5000
   22.5036
   22.5033
   22.5007
   22.5004
   22.5036
   22.5012
   22.5002
   22.5005
   22.5048

6.重构后和重构前开关变化状态
Switch0 =

     7     1     3     2    16


Switch1 =

     2     4     4     4    15


swicths =

     2     4     4     4    15
     3     5     5     5    16

3.核心程序与模型

版本:MATLAB2017B

.............................................................................

figure;
plot(objs,'linewidth',2);
xlabel('迭代次数');
ylabel('适应度值');
grid on


%1、节点的电压值
Node_volgates{indxmin2}
%2、线路的损耗,这里计算网损
%重构前
PLoss0 = Loss0(indxmin_,:) 
%重构后
PLoss1 = min(Loss1)
disp('损耗降低百分比:');
100*abs(PLoss0-PLoss1)/PLoss0

%负荷均衡度,这里均衡采用了方差来计算,值越小,均衡度越高
fobj2(indxmin)

%电压偏离
fobj1(indxmin)



%3、线路的传输功率
case33;
Node_voltage = Node_volgates{indxmin2};
for iii = 1:length(Matrix1)
    Powers(iii,1) =  abs((abs(Node_voltage(Matrix1(iii,2))-Node_voltage(Matrix1(iii,3))))^2/(Matrix1(iii,4))+Rz); 
end
Powers
%4、重构后和重构前开关变化状态
%重构前
Switch0 = Best_pso_(indxmin_,:) 
%重构后
Switch1 = Best_pso(indxmin2,:) 

%5、如果出现故障,及一条线路断开之后开关变化状态
%这里进行断开支路测试
for i = 1:Swicth
    swicths(:,i) = [Matrix1(Switch1(i),2:3)]';
end
swicths
02_054m

4.系统原理简介

         分布式电源配电网重构(Distribution Network Reconfiguration,DNR)是一个重要的电力系统优化问题,旨在通过改变配电网中的开关状态,以最小化网络损耗、提高供电可靠性和优化分布式电源的接入效益。粒子群优化算法(Particle Swarm Optimization, PSO)作为一种启发式全局优化方法,被广泛应用于解决此类复杂优化问题。

4.1基本PSO算法原理

       在PSO中,每个粒子表示配电网重构的一种可能解(即一种开关状态组合),其位置矢量X_i代表第i个粒子所对应的解空间中的解。每个粒子具有速度矢量V_i,用于更新其位置:

  • w是惯性权重,用于平衡全局搜索和局部搜索。
  • c_1 和 c_2 是加速常数,控制个体最优解(P_i)和全局最优解(G_i)对当前粒子的影响。
  • r_1 和 r_2 是随机变量,在[0, 1]之间,用于引入随机性。
  • P_i 是粒子i的历史最优位置(对应最低目标函数值的开关状态组合)。
  • G 是整个种群中的全局最优位置(所有粒子经历过的最优开关状态组合)。

4.2配电网重构的目标函数

       在基于粒子群算法的分布式电源配电网重构优化问题中,目标函数通常结合了多个评价指标以达到综合最优。这里主要考虑以下三个关键因素:

       节点电压偏离(Voltage Deviation) 节点电压偏离反映了配电网络重构后各节点实际电压与额定电压之间的差异。其数学表示通常采用均方误差的形式:

其中,Ui​ 是第 i 个节点的实际电压,Uref​ 是参考电压或额定电压,N 是总节点数。

       线路负荷均衡度(Load Balance Index) 线路负荷均衡度衡量的是整个配电网内各线路负载分布的均匀程度。一种可能的度量方法是计算所有线路负荷与其平均值的标准差:

其中,Pj​ 表示第 j 条线路的功率负荷,ˉPˉ 是所有线路负荷的平均值,M 是线路总数。

        线路损耗(Line Losses) 线路损耗包括电阻损耗和电抗损耗,在考虑分布式电源接入的情况下,需要根据重构后的网络拓扑结构和运行状态计算总的线路损耗:

这里,Rj​ 和Xj​ 分别为第 j 条线路的电阻和感抗,Ij​ 是通过该线路的电流。

将上述三个指标整合成一个复合目标函数,可以采用加权和的方式表达:

       粒子群算法则用于求解此复合目标函数的最小化问题,通过不断迭代更新每个粒子(即潜在的网络重构方案)的位置和速度,最终找到一组最优的开关状态组合。

5.完整工程文件

v

v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1522487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十四、自回归(AutoRegressive)和自编码(AutoEncoding)语言模型

参考自回归语言模型(AR)和自编码语言模型(AE) 1 自回归语言模型( AR) 自回归语言模型(AR)就是根据上文内容(或下文内容)预测下一个(或前一个&…

计算机网络(7)----应用层

目录 一.应用层的基本概念 1.应用层的基本概述 2.网络应用模型 (1)客户/服务器模型 (2)P2P模型 二.应用程序相关 1.DNS系统 (1)域名与域名服务器 (2)域名解析过程&#xff…

基于Java的无代码动态表单系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 动态类型模块2.2 动态文件模块2.3 动态字段模块2.4 动态值模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 动态类型表3.2.2 动态文件表3.2.3 动态字段表3.2.4 动态值表 四、系统展示五、核心代码5.1 查询档案类型5.…

农发行鱼台县支行组织开展3.15金融消费者权益保护教育宣传活动

为切实提升消费者金融素养及风险防范意识,3月15日农发行鱼台县支行组织开展以“金融消保在身边 保障权益防风险”为主题的“3.15”金融消费者权益保护教育宣传活动。 本次活动,该行重点围绕普及消费者八项基本权利、宣传金融纠纷多元化解机制、强化“三适当“原则、夯实诚信文…

sparksession对象简介

什么是sparksession对象 spark2.0之后,sparksession对象是spark编码的统一入口对象,通常我们在rdd编程时,需要SparkContext对象作为RDD编程入口,但sparksession对象既可以作为RDD编程对象入口,在sparkcore编程中可以通…

【LeetCode热题100】146. LRU 缓存(链表)

一.题目要求 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值&#xff0c…

RISC-V 编译环境搭建:riscv-gnu-toolchain 和 riscv-tools

RISC-V 编译环境搭建:riscv-gnu-toolchain 和 riscv-tools 编译环境搭建以及说明 操作系统:什么系统都可以 虚拟机:VMmare Workstation Pro 17.50.x (版本不限) 编译环境:Ubuntu 18.04.5 CPU:i7-8750h(虚拟机分配4核…

Vue+SpringBoot打造教学过程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2.3.1 教师功能如下2.3.2 学生功能如下 三、系统展示 四、核心代码4.1 查询签到4.2 签到4.3 查询任务4.4 查询课程4.5 生成课程成绩 六、免责说明 一、摘要 1.1 项目介绍 基于JAVAVu…

数据结构的概念大合集04(队列)

概念大合集04 1、队列1.1 队列的定义1.2队列的顺序存储1.2.1 顺序队1.2.2 顺序队的基本运算的基本思想1.2.3 顺序队的4要素的基本思想 1.3 环形队列1.3.1 环形队列的定义1.3.1 环形队列的实现 1.4 队列的链式存储1.4.1 链队1.4.2 链队的实现方式1.4.3 链队的4要素的基本思想 1.…

inux(CentOS)/Windows-C++ 云备份项目(项目文件操作工具类设计,完成项目基本文件操作-读写-压缩-目录操作)

文章目录 1. 项目文件操作工具类设计 1. 项目文件操作工具类设计 根据前面的分析,这个文件类的基本属性如下: 文件大小信息文件最后修改时间文件最后一次访问时间,方便文件的热点管理文件名称,需要从http 请求行上的uri中获取基…

【机器学习-02】矩阵基础运算---numpy操作

在机器学习-01中,我们介绍了关于机器学习的一般建模流程,并且在基本没有数学公式和代码的情况下,简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法,但所有的技术最终都是为了…

FFmpeg转码参数说明及视频转码示例

-b : 设置音频或者视频的转码码率 -b:v 只设置视频码率 -b:a 只设置音频码率 -ab: 只设置音频码率, 默认码率大小为: 128k bit/s -g: 设置视频GOP大小,表示I帧之间的间隔,默认为12 -ar: 设置音频采样率,默认0 -ac: 设置音频通道数量 默认0 -bf: 设置连…

服务器机器学习环境搭建(包括AanConda的安装和Pytorch的安装)

服务器机器学习环境搭建 1 服务器与用户 在学校中,我们在学校中是以用户的身份进行访问学校的服务器的。整体框架大致如下: 我们与root用户共享服务器的一些资源,比如显卡驱动,Cuda以及一些其他的公共软件。 一般情况下&#…

Vue2在一个页面内动态切换菜单显示对应的路由组件

项目的需求是在一个页面内动态获取导航菜单,导航菜单切换的时候显示对应的路由页面,类似于tab切换的形式,切换的导航菜单和页面左侧导航菜单是同一个路由组件,只是放到了一个页面上,显示的个数不同,所有是动…

Docker----Dockerfile构建微服务镜像

目录 一、关键步骤 二、具体步骤 1、准备后端jar包(这里以java后端演示) 2、编写Dockerfile 3、构建镜像 4、运行镜像容器 5、测试是否成功 一、关键步骤 1、准备后端jar包(这里以java后端演示) 2、编写Dockerfile 3、构建镜像 4、运行镜像容器 5、测试是否成功 二…

C#,图论与图算法,图(Graph)的数据结构设计与源代码

因为后面即将发布的大量有关“图”的算法与源代码都需要用到下面的这些基础数据,为避免大家去下载,特意先发布于此。 一、图(Graph)的基础知识 图(Graph)是一组对象的图示,其中一些对象对通过链…

STM32(TIM定时器中断)

理论知识 定时器定时中断 接线图 定时器工作配置步骤 定时中断和内外时钟源选择 定时器中需要使用的函数 程序实现效果: void TIM_DeInit(TIM_TypeDef* TIMx); **// 恢复定时器的缺省配置**void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef*TIM…

jupyter中pip安装包会安装到别的环境。

文章目录 1. 查看jupyter当前环境和默认环境的路径和python版本2.安装包到正确的环境 如果你在 Jupyter Notebook 中使用 pip 安装包,它默认会将包安装到 Jupyter Notebook 所在的Python 环境。这可能会导致安装的包与你期望的环境不匹配。 1. 查看jupyter当前环境和…

RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间

🚀返回专栏总目录 文章目录 一、相关接口函数二、udevadm 命令三、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、相关接口函数 kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。…

mybatis源码阅读系列(二)

前言 上一篇文章mybatis源码阅读系列(一)介绍了mybatis和原生jdbc的区别,并通过代码展示了两者的运行过程和结果,下面让我们继续详细了解下mybatis的执行过程; package com.wyl.mybatis.service;import com.wyl.mybat…