基于改进多目标粒子群算法的配电网储能选址定容——附Matlab代码

2023-11-14

目录

摘要:

主要内容:

程序思路:

储能选址定容优化模型:

(1)节点电压波动:

(2)负荷波动:

(3)储能系统容量:

改进的多目标粒子群算法:

(1)自适应权重:

(2)交叉变异:

(3)种群全局最优解的选取:

算例分析及结果:

本文Matlab代码分享:


摘要:

以系统节点电压水平(电网脆弱性)、网络损耗以及储能系统总容量为目标建立了储能选址定容优化模型。求解过程中提出了一种改进多目标粒子群算法(improved multi—objective particle swarm optimizer,IMOPSO)。该算法根据粒子与种群最优粒子的距离来指导惯性权重的取值,使得各粒子的惯性权重可以自适应调整,并在二者距离较小时引入交叉变异操作,避免陷入局部最优解,同时采用动态密集距离排序来更新非劣解集并指导种群全局最优解的选取,在保持解集规模的同时使解的分布更均匀。为避免决策者偏好对最终结果的影响,采用基于信息熵的序数偏好法从最优Pareto解集中选取储能的最优接入方案。以IEEE33节点配电系统为例进行仿真验证,结果表明该方法在储能选址定容问题求解中具有很好的收敛性以及全局搜索能力。

主要内容:

分布式电源的出力具有不确定性,易受环境因素的影响,因此其大量接入将对配电网的安全稳定运行带来很大影响。储能系统具有快速能量响应能力,能够在一定程度上平抑分布式电源带来的不利影响。储能系统接入位置与其容量的不同对其平抑效果的影响很大,因此其接入位置的选择与容量的确定是亟需解决的一个问题。

本文首先建立储能系统选址定容多目标优化模型,其次就多目标粒子群算法(multi.objectiveparticle swarm optimizer,MOPSO)在求解过程中存在的一些问题进行改进,提出一种改进的多目标粒子群算法(improved multi—objective particle swarrfloptimizer,IMOPSO),并以基于信息熵的序数偏好法(technique for order performance by similarity toideal solution,TOPSIS)求解储能的最优接入方案,最后以IEEE一33节点配网系统为例进行仿真分析,验证所提方法的有效性。

程序思路:

储能选址定容在智能算法中的实现过程不难,刚开始变量定义部分,主要是涉及储能选址的位置、容量和储能出力,以这两部分变量作为优化变量,通过设置最大值和最小值确定变量上下限范围。

下一步的关键点就是约束处理部分,对于储能soc约束,在单目标实现过程中可以采用罚函数的表达方式,但是在多目标求解过程中最好是采用绝对约束表达方式,因为多目标的帕累托解集有可能将不满足约束条件的目标值也筛选进入解集中,就会导致解集的不准确。最后就是设置目标值,对于配电网节点系统,要注意潮流计算方式的选择和储能出力对系统影响,然后设置不同的目标值。上述都设置清楚后,采用智能算法进行求解就简单了,多目标算法要注意采用拥挤距离识别方法保证解集分布的合理性。

本程序注释详细,适合初学者模仿学习。

储能选址定容优化模型:

配电网储能选址定容受诸多因素的影响,是一个多目标优化问题。分布式电源大量接入配电网后,将使其电能质量恶化,其中电压波动问题愈加突出,并加剧系统负荷波动,而储能系统能够在一定程度上改善这些不利影响。同时由于储能系统的成本相对较高,在配置时其容量也是一个不得不考虑的问题。因此,本文综合考虑储能系统带来的效益以及储能系统的成本,选取以下3个指标作为目标函数。

(1)节点电压波动:

节点电压是表征系统稳定性以及电能质量的重要指标之一。系统中各节点电压均应保持在一定水平,同时其波动也应维持在较小水平。接入分布式电源后,节点电压水平有了一定程度的提升,但其波动却加剧。因此,选取节点电压波动的总和作为储能系统选址定容的目标函数,其数学计算式为:

(2)负荷波动:

配电网中接入分布式电源后,由于其出力的不确定性将使系统负荷波动加剧,对发电企业以及用户造成不利影响。储能系统具有快速能量吞吐能力,能够对系统负荷波动进行平抑。负荷波动的计算公式如式(2)所示:

(3)储能系统容量:

在考虑储能系统效益的同时也应考虑其成本,选取储能系统的总容量作为目标函数。以考察时间内储能系统的最大充/放电能量作为其额定容量。

改进的多目标粒子群算法:

本文从下面三个方面对粒子群算法进行改进。

(1)自适应权重:

在PSO算法中,惯性权重W的取值对其收敛性能有重要影响。常用的W取值方法大多是随着迭代次数的递增而线性或非线性的递减,这种方法没有考虑迭代过程中粒子的特性,W的取值缺乏指导。粒子位置向量与种群全局最优解的差值可以体现粒子与种群最优粒子的差距程度。当其值较大时表示当前粒子与种群最优粒子差距较大,此时W的取值也应较大,使得该粒子具有较好的全局搜索能力;而当其值较小时则表示其与种群最优粒子差距较小,此时应使其具有较好的局部搜索能力,W的取值也应较小。本文以粒子与种群最优粒子的差距程度作为指导来进行W的取值,随着差距程度的不同非线性地调整W的大小。

(2)交叉变异:

PSO算法在迭代寻优时存在早熟收敛问题,容易陷入局部解。本文将遗传算法中的交叉变异操作引入粒子群算法中,对粒子的位置向量进行交叉变异,用以提高种群的多样性。以粒子位置向量与种群全局最优解的差值X作为交叉变异的依据,具体步骤为:

(3)种群全局最优解的选取:

粒子群算法在进行种群更新时,需要跟踪粒子的历史最优解和种群全局最优解。单目标粒子群算法中,种群全局最优解可以通过比较粒子适应度函数的大小直接得到,而在多目标粒子群算法中,其每次迭代结果均为一组互不支配的Pareto解。因此,如何从Pareto解集中选取种群全局最优解也是一个需要考虑的问题。为保证Pareto解集中解的多样性和均匀性,在密集距离排序的基础上,从密集距离较大的前20%个Pareto解中随机选出种群全局最优解,用于指导种群的更新。

算例分析及结果:

本文采用IEEE一33节点配电网系统来进行仿真分析,其结构如图所示。网络总负荷为3 715 kw+i2300 kvar,典型日曲线如图下所示。系统额定电压为12.66 kV,节点电压允许范围为0.9~1.05 pu。

通过运行本文代码分别得到Pareto最优图像和两种储能的详细配置情况。

 

本文Matlab代码分享:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于改进多目标粒子群算法的配电网储能选址定容——附Matlab代码 的相关文章

  • Matlab 编辑器不使用 emacs 快捷方式

    Is there some way I can make the matlab integrated editor not use emacs shortcut but use more normal shortcuts such that
  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • Numpy 相当于 MATLAB 的 hist [重复]

    这个问题在这里已经有答案了 由于某种原因 Numpy 的 hist 总是返回比 MATLAB 的 hist 少 1 个 bin 例如在 MATLAB 中 x 1 2 2 2 1 4 4 2 3 3 3 3 Rep Val hist x un
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca

随机推荐

  • Rabbit的工作(2)【牛客练习赛36_C + dp背包】

    题目链接 那么的巧合 竟是这题的原题 就是 我们既然一定要选取K个任务 就先去取K个任务 然后逐一加上需要的额外天数即可 include
  • 上采样和下采样层 nn.pixelshuffle and nn.pixelunshuffle

    前言 理论部分后面有空的时候补一下 这里先放代码和简要说明 Downsample 这里先对channel维度降低为原来 1 2 1 2 1 2 然后再对channel维度提升 r
  • 高级JAVA开发 MQ部分

    高级JAVA开发 MQ部分 MQ MQ的作用 为什么要用MQ 常见的MQ的优缺点 使用MQ带来的问题以及处理办法 MQ带来的问题列举 消息重复消费 幂等 问题 消息丢失问题 消息顺序性问题 消息过期丢失 大量积压等问题 如何保证MQ高可用性
  • 斯坦福小镇升级版——AI-Town搭建指南

    导语 8月份斯坦福AI小镇开源之后 引起了 AIGC 领域的强烈反响 但8月份还有另一个同样非常有意义的 AI Agent 的项目开源 a16z主导的 AI Town 本篇文章主要讲解如何搭建该项目 如有英文基础或者对这套技术栈熟悉 可直接
  • 用list列表以行方式创建DataFrame

    DataFrame默认会将一维list作为列处理 需要将一维list转为二维才能实现想要的效果 A 1 2 3 4 5 直接pd DataFrame a 得到的是一个1列5行的df 正确方式是 pd DataFrame A 原文链接 htt
  • 个人博客系统(附源码)

    前面学习了那么多的理论知识 一直比较枯燥 今天就做个小项目 来检验一下前面的学习成果吧 有需要源代码的小伙伴可以来看看 个人博客系统 这个小项目主要是模仿CSDN做的 但是功能还是比较少的 只是写出了一些主要的功能 下面就一起来看看吧 目录
  • Merge AVHD with VHD

    AVHD is a file created when you perform snapshot Once you delete the snapshot and shutdown the Virtual Machine automatic
  • Protobuf类型

    1 基本类型 这些是原始的基本数据类型 用于存储数值和字符串 包括 double 双精度浮点数 float 单精度浮点数 int32 32 位有符号整数 int64 64 位有符号整数 uint32 32 位无符号整数 uint64 64
  • centos7升级gcc10.1.0,gdb9.2

    https www gnu org prep ftp html 先找一个亚洲的镜像站点 选一个站点 打开gcc或者gdb目录 选择自己想要安装的版本 我这里选择的gcc 10 1 0和gdb 9 2 http mirrors nju edu
  • smart bi 学习

    Smartbi 安装 部署 测试 官方文档 数据连接 关系数据库 选择数据连接选关系数据库 配置 连电脑本地的数据库 用户名 密码 root root 端口 3306 ip localhost mysql 数据库选的lyj 1 数据库管理
  • [React]为什么写React组件的时候,需要先引入React?

    React相信各位伙伴都不陌生 那么你的React技术还好吗 来跟我一起重学一遍React 看看有什么知识是你没有记住的呢 一起来查漏补缺下 目录 为什么有的React页面及组件在写的时候需要引入 React 为什么会出现这个问题 Reac
  • Android多屏幕适配-平板

    http blog csdn net qq 27570955 article details 53207600 1 常用单位及其关系 px 像素 inch 英寸 pt 1 72 英寸 dpi 一英寸长的直线上的像素点的数量 即像素密度 不同
  • 软件测试人员分工详情

    最近看了点敏捷测试的东西 看得比较模糊 一方面是因为没有见真实的环境与流程 也许它跟本就没有固定的模式与流程 它就像告诉人们要 勇敢 努力 有的人在勇敢的面对生活 有些人在勇敢的挑战自我 有些人在勇敢的面对失败与挫折 好吧 他们都实现了 勇
  • Vue报错之$nextTick

    今天在生产上面出现了一个问题 我们作为一个整个的项目 我们制作的报账系统是其中一个的子系统 但是现在出现了一个问题 因为我们是共同使用一个前段 而且我们是最先上线的 就导致其他的系统在模仿我们的代码情况 然后他们修改了我们的代码中的公共部分
  • ESP32-土壤湿度传感器

    ESP32 土壤湿度传感器使用 土壤湿度传感器介绍 一 连接传感器引脚 二 使用步骤 1 创建代码 2 保存运行 总结 土壤湿度传感器介绍 提示 土壤湿度传感器 有很多种 我这里用的是电阻式土壤湿度传感器 其原理是 把传感器插入土壤中 不同
  • OpenGL--光源

    OpenGL至少支持8个光源 要查询OpenGL实现支持的光源数 可调用glGetIntegerv 要启用或者禁用光源 分别使用glEnable GL LIGHTi 和glDisable GL LIGHTi 其中i的可能取值为0到GL MA
  • mysql查询所有分类前三的数据

    设计思路 当mysql查询有很多分类时 可能只需要每种分类的前三或者前十的数据 不需要返回所有的结果 所以我们可以给不同种类的数据添加序号 然后通过序号来筛选结果 例 建一张工人工作质量表 用年份和质量来分类 CREATE TABLE wo
  • kali如何使用中文语言包的方法

    kali linux2020 06版如何使用中文语言包 原来kali还需要使用独立的汉化包 现在中文语言包是集成在系统中的 但安装上去默认的还是英文 对于我这种英文欠佳的不太友好 于是 打开终端 输入 sudo dpkg reconfigu
  • angular2 对于DOM元素的获取与操作

    为了能够支持跨平台 angular通过抽象层封装了不同平台的差异 正确操作DOM的方式 用ElementRef和Renderer2 这篇文章将讲述如何使用Renderer2来操作DOM元素 我们可以使用Renderer2对元素的class和
  • 基于改进多目标粒子群算法的配电网储能选址定容——附Matlab代码

    目录 摘要 主要内容 程序思路 储能选址定容优化模型 1 节点电压波动 2 负荷波动 3 储能系统容量 改进的多目标粒子群算法 1 自适应权重 2 交叉变异 3 种群全局最优解的选取 算例分析及结果 本文Matlab代码分享 摘要 以系统节