【微电网优化】粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)【含Matlab源码 2190期】

news2025/8/13 1:11:12

⛄一、粒子群算法求解电联供型微电网经济运行优化简介

0 引言
热电联供 (combined heat and power, CHP) 系统建立在能源梯级利用的概念基础上, 统一解决了电能和热能的供应问题, 是一种经济节能、环境友好的用能方式, 具有良好的社会和经济效益, 在国内外引起广泛关注。在发展低碳绿色经济的背景下, 中国也开始重视CHP系统的发展, 但技术还不成熟, 应用尚处于起步阶段。

CHP型微网是一个复杂的能量系统, 存在多种能量平衡关系。在满足用户热电负荷需求的前提下, 如何根据微源配置 (即参与微源的种类、微源的运行参数等) 制定系统未来一段时间内的运行方案 (即各微源在各时段的功率分配) , 以使系统获得最佳经济效益, 是微网经济运行研究中的一个重要内容。目前, 国内的研究还仅局限在电力微网的层面上, 对CHP系统涉及较少, 国外在此方面已有相关研究展开。文献针对由风电机组和质子交换膜型燃料电池组成的CHP系统, 利用进化算法研究该系统的经济运行问题, 比较了对回收的热能采取4种不同方案得到的结果。研究了由燃气轮机、吸附式制冷机和余热锅炉构成的冷热电三联供系统, 建立简单的线性模型, 对系统运行策略进行优化。以成本最小化为目标, 建立了CHP型微网中各种类型微源的优化配置模型, 并采用粒子群优化 (PSO) 算法进行求解。

本文建立了一种含可再生能源的CHP型微网系统, 由风电机组、光伏电池、燃料电池、余热锅炉、燃气锅炉、蓄电池等微源和热电负荷构成。由于风电、光伏功率以及热电负荷存在很强的随机性, 而且目前的预测水平还远未达到实际应用的要求, 因此这些量将作为未知因素考虑。

1 含可再生能源的CHP型微网系统
本文研究的含可再生能源的CHP型微网系统如图1所示。
在这里插入图片描述
图1 含可再生能源的CHP型微网系统
风电机组和光伏电池分别以风能和太阳能为原动力, 作为可再生能源接入微网;燃料电池和燃气锅炉以天然气为燃料, 将化学能直接转化为电能和热能;余热锅炉回收燃料电池产生的废热;蓄电池作为储能装置, 根据系统运行情况, 实时进行充放电。此系统还与大电网进行双向的电功率流动, 当电能不足时从大电网购买电能, 当电能富足时向大电网销售电能。整个系统分成2个部分:用户电负荷由风电机组、光伏电池、燃料电池供给, 并可与大电网和蓄电池进行双向功率交换;用户热负荷由燃气锅炉和余热锅炉供给。

2 CCP理论
CCP主要针对约束条件中含有随机变量, 且必须在观测到随机变量的实现之前作出决策的情况。考虑到所作决策在不利的情况发生时可能不满足约束条件而采取一种原则:允许所作决策在一定程度上不满足约束条件, 但是该决策应该使约束条件成立的概率不小于某一置信水平。
考虑带有随机参数的数学规划模型:
在这里插入图片描述
式中:x为决策向量;ξ为随机向量;f (x, ξ) 为目标函数;gi (x, ξ) 为随机约束函数;i=1, 2, …, q。
实际上, 由于随机变量ξ使得目标函数和约束条件的含义并不明确, 因此上述规划模型没有意义。
CCP解决了上述问题, 其模型如下:
在这里插入图片描述
式中:Pr{}表示括号中事件成立的概率;α和β分别为事先给定的约束条件和目标函数的置信水平;f-为目标函数f (x, ξ) 在置信水平至少为β时所取的最小值。

3 含可再生能源的CHP型微网经济运行优化模型
本文应用CCP理论建立了含可再生能源的CHP型微网经济运行优化模型, 以系统运行费用最小化为目标, 综合考虑系统的能量平衡约束以及各微源的运行约束, 对系统的运行方案进行优化。

3.1 目标函数
系统运行费用包括:从大电网购电的费用;燃料电池、燃气锅炉的天然气使用费用;风电机组、光伏电池、燃料电池、余热锅炉、燃气锅炉、蓄电池等微源的维护费用;向大电网售电的收入。由于目标函数中含有风电、光伏功率等随机变量, 运行费用也是一个随机量, 因此采用确定性的表达式没有意义。根据式 (2) , 目标函数表示如下:
在这里插入图片描述
T为单位时段的时间间隔;n为时段总数;Pex, i为第i时段与大电网交换的电功率, 购电为正, 售电为负;Pfl, i为第i时段燃料电池的发电功率;Pgb, i为第i时段燃气锅炉功率;Pbt, i为第i时段蓄电池充放电功率, 放电为正, 充电为负;Pwt, i为第i时段风电机组功率;Ppv, i为第i时段光伏电池功率;Cph为从大电网购电的价格;Cse为向大电网售电的价格;Cgas为天然气价格;Cfl_om为燃料电池维护费用;Cbl_om为余热锅炉维护费用;Cgb_om为燃气锅炉维护费用;Cbt_om为蓄电池维护费用;Cwt_om为风电机组维护费用;Cpv_om为光伏电池维护费用;ηfl, i为燃料电池第i时段的效率;rfl, i为燃料电池第i时段的热电比值;ηgb为燃气锅炉的效率;ηhr_bl为余热锅炉废热回收效率。

3.2 约束条件
约束条件包括电能、热能的平衡约束以及各微源的运行约束。

  1. 电能平衡约束
    电能平衡约束根据蓄电池充电与放电情况分为如下2种:
    在这里插入图片描述
    式中:Pel, i为第i时段的电负荷;ηch和ηdis分别为蓄电池充放电效率;i=1, 2, …, n, 下同。

  2. 热能平衡约束
    在这里插入图片描述
    式中:Pth, i为第i时段的热负荷。

  3. 与大电网功率交换约束
    在这里插入图片描述
    式中:Pex, max和Pex, min分别为与大电网功率交换的最大和最小值, 即向大电网购电和售电的最大功率。

  4. 燃料电池运行约束
    在这里插入图片描述
    式中:ΔPfl_up和ΔPfl_down分别为燃料电池单位时段内功率最大增发量和最大减发量;Pfl, max和Pfl, min分别为燃料电池的最大和最小发电功率。

  5. 余热锅炉运行约束
    在这里插入图片描述
    式中:Pbl, max和Pbl, min分别为余热锅炉的最大和最小功率。

  6. 燃气锅炉运行约束
    在这里插入图片描述
    式中:Pgb, max和Pgb, min分别为燃气锅炉的最大和最小功率。

  7. 蓄电池运行约束
    在这里插入图片描述
    式中:j=1, 2, …, n;Pbt, min和Pbt, max分别为蓄电池的最大充放电功率;Wbt, max和Wbt, min分别为蓄电池的最大和最小储能量;式 (13) 表示蓄电池最终储能量与初始储能量Winit相等。

3.3 含随机变量的约束条件处理方法
与传统的优化方法不同, 由于风电、光伏功率以及热电负荷具有随机性, 某些约束条件不再具有确定性。本文根据CCP理论建立模型, 对含有随机变量的不等式约束, 以概率的形式进行描述, 使其能够在一定的置信水平下成立。置信水平的设置根据系统实际的运行要求进行。

根据等式约束 (式 (4) ~式 (6) 和式 (13) ) , 可将Pex, i, Pgb, i表示为含有Pwt, i, Ppv, i, Pel, i, Pth, i等随机变量的函数。一方面消去模型中的等式约束, 将原问题转化为只含有不等式约束的新问题, 便于PSO算法求解过程中的粒子可行性的检验。同时, Pex, i, Pgb, i成为随机量, 因此, 不等式约束 (式 (7) 和式 (11) ) 可以用概率形式描述为:
在这里插入图片描述

4 基于随机模拟的PSO算法
4.1 随机模拟

CCP相比于确定性规划的难点在于如何处理机会约束, 如果机会约束比较容易处理, 则可以将机会约束转化为各自的确定性等价类, 然后利用传统方法求解其等价的确定性模型。对于复杂的机会约束, 可以引入随机模拟技术进行处理。

随机模拟, 即Monte Carlo模拟, 其基础是从已知的概率分布中对随机变量进行抽样, 从而为系统决策提供依据或对系统决策进行检验。在求解上述优化模型过程中, 主要在两处引入了随机模拟技术。

  1. 计算目标函数值
    对于带有随机变量ξ的目标函数:
    在这里插入图片描述
    随机模拟算法如下:①根据随机变量ξ的概率分布Φ (ξ) , 生成N个独立的随机向量ξi (i=1, 2, …, N) ;②置fi=f (x, ξi) ;③取N′=βN, 根据大数定律, 取序列{f1, f2, …, fN}中第N′个最小的元素作为目标函数值。

  2. 检验机会约束
    对于带有随机变量ξ的机会约束:
    在这里插入图片描述
    随机模拟算法如下:①置计数器N′=0;②根据随机变量ξ的概率分布Φ (ξ) 生成随机变量ξ;③如果g (x, ξ) ≤0成立, 则N′=N′+1;④重复步骤②和③共N次;⑤;果N′/N≥α, 则机会约束成立, 否则不成立。

4.2 算法流程
PSO算法于1995年被首次提出[19], 具有概念简单、易于实现、调整参数少、收敛速度快、鲁棒性能强等优点, 已逐步渗透到各个应用领域, 并得到广泛应用。文献[20]对PSO算法作了详细介绍, 本文不再赘述。
根据以上模型, 提出基于随机模拟的PSO算法流程如下。
步骤1:输入各微源运行参数、各种费用参数和风电、光伏功率以及热电负荷等随机变量的分布参数。
步骤2:设置目标函数以及含随机变量的约束条件的置信水平;设置PSO算法参数, 包括粒子数、最大迭代次数、学习因子、初始惯性权重、终止惯性权重等。
步骤3:根据各时段风电、光伏功率以及热电负荷等随机变量的分布参数, 随机生成各时段的风电、光伏功率以及热电负荷。
步骤4:随机生成各时段燃料电池功率和蓄电池充放电功率, 组成1个粒子, 根据式 (8) ~式 (10) 、式 (12) 、式 (14) ~式 (16) 检验粒子可行性;若粒子不可行, 则重新生成粒子, 直至初始粒子生成完毕, 并同时随机生成各粒子的初始速度;对于如式 (15) 和式 (16) 所示含有随机变量的约束条件, 需根据步骤3中生成的随机量, 利用随机模拟技术检验约束条件是否成立, 即约束条件是否满足置信水平。
步骤5:利用随机模拟技术计算各个粒子的适应值。
步骤6:对每个粒子, 将其适应值与个体极值进行比较, 如果较优, 则更新当前的个体极值和个体最优位置;再将其适应值与全局极值进行比较, 如果较优, 则更新当前的全局极值和全局最优位置。
步骤7:对每个粒子的速度和位置进行更新, 并检验粒子可行性, 方法同步骤4;若粒子不可行, 则重新生成粒子的速度再更新位置, 直至粒子可行。
步骤8:重复步骤5~步骤7, 直至达到最大迭代次数。
步骤9:输出最优解和目标函数最优值。

⛄二、部分源代码

clear all;
clc;
format short;
tic

XDCRL=10; %蓄电池容量
pgridmax=7;%交互功率
m=100; %种群规模数
dd=500; %迭代次数
c1=1;
c2=1;
vmax=1;
vmin=-1;
wmax=0.9;
wmin=0.4;
d=25;%24时刻蓄电池SOC0
CFX =[];%惩罚项
cfx = 0;%惩罚项

PV=load(‘Ppv2.txt’);%光伏发电量
% Pev=zeros(1,24);
Pev=load(‘PEV.txt’);%电动汽车
LOAD= load(‘Load2.txt’);%负荷
sub=load(‘C_sub2.txt’);
buy=load(‘C_buy2.txt’);
sell=load(‘C_sell2.txt’);
xdccl=zeros(m,24);%蓄电池出力
v=zeros(m,d);%初始化速度
SOC=rand(m,d);%蓄电池的SOC
grid=zeros(m,24);%微网
GRID=zeros(1,24);
fx=zeros(1,m);

%%初始化粒子更新
for n=1:m; %每一次更新粒子群(100个粒子)都有判断是否满足条件
for i=2:d %保证蓄电池的SOC大于0.3,小于0.95
if SOC(n,i)<0.3
SOC(n,i)=0.3;
end
if SOC(n,i)>0.95
SOC(n,i)=0.95;
end
SOC(n,1)=0.4;%蓄电池的SOC不变,都为0.4
SOC(n,25)=0.4;%蓄电池的SOC不变,都为0.4
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]王锐,顾伟,吴志.含可再生能源的热电联供型微网经济运行优化[J].电力系统自动化. 2011,35(08)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

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

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

相关文章

ShareSDK for Flutter

前言 这是一个基于ShareSDK功能的扩展的Flutter插件。使用此插件能够帮助您在使用Flutter开发应用时,快速地实现社会化功能,例如第三方授权登录,获取用户信息以及社交平台的分享等功能。 Demo例子&#xff1a;https://github.com/MobClub/ShareSDK-For-Flutter 开始集成 引入…

C++ 语言学习 day11 复习(3)

1.第一个是昨天的作业&#xff1a; 用类实现一个双向循环链表&#xff0c; 完成对应的功能&#xff0c;&#xff08;增删查改 &#xff09; 代码&#xff1a; list.h #ifndef LIST_H #define LIST_H #include <iostream> #include <string.h> using namespace s…

WebRTC入门教学和一对一通话实现

WebRTC入门学习 简介 大体架构 互联网实时通信平台&#xff0c;html5标准之一&#xff0c;使用简单的API就可以实现音频通信。 紫色部分的是Web应用开发者需要关注的部门&#xff0c;也就是WebRTC提供给开发者的接口蓝色部分是提供给浏览器厂商的接口&#xff0c;浏览器厂…

2023年天津理工大学中环信息学院专升本专业课报名考试须知

天津理工大学中环信息学院 2023年高职升本科专业课考试须知 根据《2023年天津市高职升本科招生实施办法》的相关要求&#xff0c;为做好高职升本科专业考试的报考工作&#xff0c;全面服务考生&#xff0c;保障考生权益&#xff0c;结合疫情防控要求&#xff0c;现将考试具体事…

14天学习训练营之 入门Pygame

目录 学习知识点 pygame 的 “hello world” pygame 模块概览 事件 理解事件 事件检索 处理鼠标事件 处理键盘事件 事件过滤 产生事件 模板代码 写一个把所有发生的事件输出的程序 使用方向键来移动图片 产生一个完全自定义的全新事件 这个程序让 “hello world”…

Linux--信号量

1.信号量的定义: 信号量是一个特殊的变量&#xff0c;一般取正数值。它的值代表允许访问的资源数目&#xff0c; 获取资源时&#xff0c;需要对信号量的值进行原子减一&#xff0c;该操作被称为p操作。当信号量值为0时&#xff0c;代表没有资源可用&#xff0c;p操作会阻塞。释…

Flutter高仿微信-第31篇-单聊-表情

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 详情请参考 Flutter高仿微信-第29篇-单聊 &#xff0c; 这里只是提取表情实现的…

骨感传导蓝牙耳机怎么样,骨感传导耳机对于我们耳道有保护吗

人们对于自身健康越来越重视&#xff0c;更多的人意识到传统耳机对于我们耳道的危害&#xff0c;纷纷加入了新型的骨感传导耳机阵容中&#xff0c;但还是存在不少对于骨传导耳机保持顾虑的小伙伴们&#xff0c;认为骨感传导对于耳道还是有损害&#xff0c;那么今天小编就和大家…

【Redis】Redis 的基础数据结构 以及 各种数据结构常用命令使用示例

本文主要介绍 Redis 基础&#xff0c;包括什么是 Redis 、Redis 数据结构有那些 以及 各种Redis 数据结构的常用操作命令 1. 初始 Redis 1.1 NoSQL 数据库 —— 非关系型数据库 SQL 1&#xff09; 结构化 -—— 例如 MySQL 中的表结构 &#xff08;不建议修改&#xff0c;初始…

锐捷MPLS跨域方案A、B实验配置

目录 MPLS域内配置 MPLS域1配置 MPLS域2配置 域间方式A配置 域间方式B配置 MPLS隧道——跨域解决方案A、B讲解_静下心来敲木鱼的博客-CSDN博客_跨域a方案https://blog.csdn.net/m0_49864110/article/details/127601807?spm1001.2014.3001.5501 MPLS域内配置 MPLS域内配置…

同态加密库Seal库的安装(win11+VS2022)

先说一下&#xff0c;seal库是微软开发的同态加密库&#xff0c;目前支持三种算法bfv&#xff0c;bgv和ckks。提供的语言版本是C艹和C#。 工具准备 这是github上提供的要求。 要准备的东西有 vs2022&#xff08;社区版就行了&#xff0c;网上一堆教程&#xff09;&#xff0c…

使用 Python 和 Matplotlib下载美股数据

介绍&#xff1a; 提示&#xff1a;例如 这是关于使用机器学习创建交易策略的系列文章中的第一篇。关于机器学习在交易中的实际应用&#xff0c;我主要参考的是 Marco Lopez de Prado 的金融机器学习进展。 尽管在人工智能方面有多年经验&#xff0c;但我从未将其应用于交易…

Spring Boot中@Import三种使用方式

Import是一个非常有用的注解&#xff0c;它的长处在于你可以通过配置来控制是否注入该Bean&#xff0c;也可以通过条件来控制注入哪些Bean到Spring容器中。 比如我们熟悉的&#xff1a;EnableAsync 、EnableCaching、EnableScheduling等等统一采用的都是借助Import注解来实现的…

TMD,JVM类加载原来是这样的!!!!

接上篇&#xff1a;https://boxuegu.blog.csdn.net/article/details/128000217 通过字节码&#xff0c;我们了解了class文件的结构 通过运行数据区&#xff0c;我们了解了jvm内部的内存划分及结构 接下来&#xff0c;让我们看看&#xff0c;字节码怎么进入jvm的内存空间&…

电脑硬盘分区软件哪个好用,无损分区软件哪个好

为了合理地利用磁盘空间&#xff0c;会进行磁盘分区的操作。由于磁盘分区涉及到计算机相关的操作知识&#xff0c;很多的用户都不会。所以&#xff0c;只能借助于专业的磁盘分区工具&#xff0c;那么&#xff0c;电脑硬盘分区软件哪个好用&#xff1f;在本文中&#xff0c;易我…

走进常熟东南相互电子,看AI如何深入产业让工厂更智能

苏州常熟一家4万多平方米的生产车间内&#xff0c;一块块指甲盖大小的PCB电路板&#xff0c;在装有人工智能算法模型的的摄像头下&#xff0c;快速精准地完成外观检测&#xff0c;让头发丝大小的瑕疵无处可藏。 成立于2006年的东南相互电子&#xff0c;是一家集半导体与元器件…

ActiveMQ 反序列化漏洞(CVE-2015-5254)特征分析

介绍 Apache ActiveMQ是美国阿帕奇&#xff08;Apache&#xff09;软件基金会所研发的一套开源的消息中间件&#xff0c;它支持Java消息服务、集群、Spring Framework等。 Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞&#xff0c;该漏洞源于程序没有限制可在代理中序列…

Flutter高仿微信-第37篇-单聊-红包

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 详情请参考 Flutter高仿微信-第29篇-单聊 &#xff0c; 这里只是提取红包功能的…

第二章:Pythonocc官方demo 案例47(获取物体的最优的包容体)

源代码&#xff1a; #!/usr/bin/env python ## ##This file is part of pythonOCC. ## ##pythonOCC is free software: you can redistribute it and/or modify ##it under the terms of the GNU Lesser General Public License as published by ##the Free Software Foundati…

Hadoop笔记-02 安装

文章目录1 VBOX安装CentOS71.1 安装VBOX软件1.2 下载CentOS7镜像文件1.3 初始化VBOX虚拟盘1.4 CentOS7网络配置1.5 CentOS7 yum源配置1.6 CentOS7 一般配置1.6.1关闭防火墙1.6.2 修改hostname1.6.3 配置DNS绑定1.6.4 关闭selinux2 JDK等基础安装配置2.1 安装JDK前检查2.2 安装t…