基于粒子群优化算法、鲸鱼算法、改进的淘沙骆驼模型算法(PSO/SSA/tGSSA)的微电网优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

2.1 PSO运行结果

2.2 tGSSA运行结果

2.3  SSA运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

微电网是由多个不同能源资源和负载组成的小型电力系统,其优化调度是为了实现可靠、高效和经济的能源管理。智能算法如粒子群优化(PSO)、鲸鱼算法(SSA)、改进的淘沙骆驼模型算法(tGSSA)等可以用于微电网的优化调度问题。

这些智能算法通过模拟自然界的某些行为来求解复杂的优化问题。在微电网优化调度中,可以使用这些算法来定位微网中各个能源资源的最佳配置、优化能源的分配和负载的调度等问题。

PSO算法基于模拟鸟群觅食行为,通过不断搜索和迭代,寻找最优解。它可以用于微电网中的能源资源配置优化,例如太阳能、风能、蓄电池等的最佳布置和发电计划的优化。

SSA算法是基于鲸鱼觅食行为而提出的一种优化算法,可以用于微电网优化调度问题。它通过模拟鲸鱼的觅食过程,逐步调整鲸鱼的位置来逼近最佳解决方案。在微电网中,SSA可以用于优化微网中各个能源的发电和负载调度,以实现能源的高效利用和供需的平衡。

tGSSA算法是对GSSA算法的改进和优化,通过引入时间变换来提高搜索效率。在微电网优化调度中,tGSSA算法可以用于优化微网的能源配置和调度策略,以实现最佳的经济性和可靠性。

我们基于典型的日负荷参数和自然参数,使用改进的粒子群优化(PSO)算法对建立的数学模型进行求解。通过这个优化过程,我们可以制定出分时段的优化调度方案,并确定微电网在峰、谷、平三个阶段的出力。

此外,我们也比较了微电网采用常规调度策略和采用优化调度策略的综合效益。通过分析比较,我们能够量化地评估优化调度策略在经济性、可靠性和可持续性方面的改进效果。

同时,在原有的PSO算法基础上,我们还引入了鲸鱼算法(SSA)和改进的淘沙骆驼模型算法(tGSSA)进行对比研究。通过与PSO算法的比较,我们可以评估SSA和tGSSA算法在微电网优化调度问题上的性能和效果。

在验证过程中,我们对算法的正确性和优化调度方案的可行性进行了验证。通过对真实数据的处理和模拟实验,我们可以得出准确的结论,证明了优化调度方案的有效性和可行性。

总的来说,这项研究为微电网的优化调度提供了一个强大的解决方案。通过结合改进的PSO算法、SSA算法和tGSSA算法,并综合分析不同调度策略下微电源的综合效益,我们能够找到最佳的调度方案,以提升微电网的经济性、可靠性和可持续性。这一研究成果有助于推动微电网领域的发展,并为实际应用提供有力的支持。

综上,基于智能算法(如PSO、SSA和tGSSA)的微电网优化调度可以帮助实现微电网能源的高效利用、优化的能源分配和负载的合理调度,从而提高微电网的可靠性、经济性和可持续性。

📚2 运行结果

2.1 PSO运行结果

2.2 tGSSA运行结果

2.3  SSA运行结果

部分代码:

clc;
clear;
close all;
global costp Ppv Pwt
%% 算法参数
parameter;
nVar=4*24;                % Number of Decision Variables
VarMin=[ones(1,24)*Pmt_min, ones(1,24)*Pfc_min, ones(1,24)*Px_min, ones(1,24)*Pb_min];
VarMax=[ones(1,24)*Pmt_max, ones(1,24)*Pfc_max, ones(1,24)*Px_max, ones(1,24)*Pb_max];
MaxIt=100;                % Maximum Number of Iterations
nPop=500;                 % Population Size (Swarm Size)%% 计算
[ bestPosition, fitValue ] = tGSSAFUN(@objective,nVar,VarMin,VarMax,MaxIt,nPop);
x=bestPosition;
Pmt = x(1:24);            % 燃气轮机功率
Pfc = x(25:48);           % 燃料电池功率
Px = x(49:72);            % 可卸负荷               
Pb = x(73:96);            % 蓄电池功率
t=1:24;%% 输出光伏出力预测
figure
plot(t,Ppv,'-')
title('光伏发电曲线');
xlabel('时间/小时')
ylabel('功率/kw')
%% 输出风力发电出力预测
figure
plot(t,Pwt,'-')
title('风力发电曲线');
xlabel('时间/小时')
ylabel('功率/kw')
%% 输出电平衡结果
figure
hold on 
Pb_po=max(Pb,0);
Pb_ne=min(Pb,0);
positive=[Pmt', Pfc', Pb_po',Px',Ppv',Pwt'];
negative=[ Pb_ne'];
bar(positive,'stack');
bar(negative,'stack');
plot(t, Pl, 'ok-');
title('电平衡');
legend('Pmt燃机','Pfc燃电池','Pbdis电池放电','Px可去负荷','Ppv光伏发电','Pwt风电' ,'Pbch电池充电','Pl总负荷');
grid on
hold off
xlabel('时间/小时')
ylabel('功率/kw')%% 输出各部分出力结果
figure
plot(t,Pmt,'ok-')
hold on
plot(t,Pfc,'-*')
hold on
plot(t,Px,'-')
hold on
plot(t,Pb,'-.')
legend('Pmt燃机出力','Pfc燃电池出力','Px可去负荷','Pb电池出力');
title('出力图');
xlabel('时间/小时')
ylabel('功率/kw')
%% 计算每小时运行费用
% 预分配
eta_mt = zeros(1,24);
eta_fc = zeros(1,24);
Pmth = zeros(1,24);
Umt = zeros(1,24);
Ufc = zeros(1,24);%% 运行模型
for t=1:24% 燃气轮机热功率%下面这个是微型燃气轮机效率计算公式eta_mt(t) = 0.0753*(Pmt(t)/65)^3 - 0.3095*(Pmt(t)/65)^2 + 0.4174*(Pmt(t)/65) + 0.1068;Pmth(t) = ((Pmt(t)*(1-eta_mt(t)-eta_l))/eta_mt(t))*eta_h*Coph;% 燃料电池功率eta_fc(t) = -0.0023*Pfc(t) + 0.674;
end%% 启停 
for t=1:24if Pmt(t)>0Umt(t) = 1;endif Pfc(t)>0Ufc(t) = 1;end
endfor t=1:24 if t==1Cst(t) = Cst_mt*max(0, Umt(t)-Uinit)  + Cst_fc*max(0, Ufc(t)-Uinit);elseCst(t) = Cst_mt*max(0, Umt(t)-Umt(t-1))  + Cst_fc*max(0, Ufc(t)-Ufc(t-1));end
end
%% 目标函数每小时运行费用
cost=[];
for t=1:24cost(t)=  Cch4*( (Pmt(t)/(L_gas*eta_mt(t))) + (Pfc(t)/(L_gas*eta_fc(t))) ) ...       % 燃料成本+  Cm_mt*Pmt(t) + Cm_fc*Pfc(t)  +  Cm_pv*Ppv(t)...    % 维护成本+ Cm_wt*Pwt(t) + Cst(t)+(Crb(t)+1.5)*Px(t)+Cm_Eb*Pb(t);               
end
figure
plot(1:24,cost)
hold on
plot(1:24,costp)
title('每小时运行成本');
legend('本文调度方法','常规调度方法');
xlabel('时间/小时')
ylabel('费用/元')

clc;
clear;
close all;
global costp Ppv Pwt
%% 算法参数
parameter;
nVar=4*24;                % Number of Decision Variables
VarMin=[ones(1,24)*Pmt_min, ones(1,24)*Pfc_min, ones(1,24)*Px_min, ones(1,24)*Pb_min];
VarMax=[ones(1,24)*Pmt_max, ones(1,24)*Pfc_max, ones(1,24)*Px_max, ones(1,24)*Pb_max];
MaxIt=100;                % Maximum Number of Iterations
nPop=500;                 % Population Size (Swarm Size)

%% 计算
[ bestPosition, fitValue ] = tGSSAFUN(@objective,nVar,VarMin,VarMax,MaxIt,nPop);
x=bestPosition;
Pmt = x(1:24);            % 燃气轮机功率
Pfc = x(25:48);           % 燃料电池功率
Px = x(49:72);            % 可卸负荷               
Pb = x(73:96);            % 蓄电池功率
t=1:24;

%% 输出光伏出力预测
figure
plot(t,Ppv,'-')
title('光伏发电曲线');
xlabel('时间/小时')
ylabel('功率/kw')
%% 输出风力发电出力预测
figure
plot(t,Pwt,'-')
title('风力发电曲线');
xlabel('时间/小时')
ylabel('功率/kw')
%% 输出电平衡结果
figure
hold on 
Pb_po=max(Pb,0);
Pb_ne=min(Pb,0);
positive=[Pmt', Pfc', Pb_po',Px',Ppv',Pwt'];
negative=[ Pb_ne'];
bar(positive,'stack');
bar(negative,'stack');
plot(t, Pl, 'ok-');
title('电平衡');
legend('Pmt燃机','Pfc燃电池','Pbdis电池放电','Px可去负荷','Ppv光伏发电','Pwt风电' ,'Pbch电池充电','Pl总负荷');
grid on
hold off
xlabel('时间/小时')
ylabel('功率/kw')

%% 输出各部分出力结果
figure
plot(t,Pmt,'ok-')
hold on
plot(t,Pfc,'-*')
hold on
plot(t,Px,'-')
hold on
plot(t,Pb,'-.')
legend('Pmt燃机出力','Pfc燃电池出力','Px可去负荷','Pb电池出力');
title('出力图');
xlabel('时间/小时')
ylabel('功率/kw')
%% 计算每小时运行费用
% 预分配
eta_mt = zeros(1,24);
eta_fc = zeros(1,24);
Pmth = zeros(1,24);
Umt = zeros(1,24);
Ufc = zeros(1,24);


%% 运行模型
for t=1:24
    % 燃气轮机热功率
    %下面这个是微型燃气轮机效率计算公式
    eta_mt(t) = 0.0753*(Pmt(t)/65)^3 - 0.3095*(Pmt(t)/65)^2 + 0.4174*(Pmt(t)/65) + 0.1068;
    Pmth(t) = ((Pmt(t)*(1-eta_mt(t)-eta_l))/eta_mt(t))*eta_h*Coph;
     % 燃料电池功率
    eta_fc(t) = -0.0023*Pfc(t) + 0.674;
end

%% 启停 
for t=1:24
    if Pmt(t)>0
        Umt(t) = 1;
    end
   
    if Pfc(t)>0
        Ufc(t) = 1;
    end
end

for t=1:24 
    if t==1
        Cst(t) = Cst_mt*max(0, Umt(t)-Uinit)  + Cst_fc*max(0, Ufc(t)-Uinit);
    else
        Cst(t) = Cst_mt*max(0, Umt(t)-Umt(t-1))  + Cst_fc*max(0, Ufc(t)-Ufc(t-1));
    end
end
%% 目标函数每小时运行费用
cost=[];
for t=1:24
    cost(t)=  Cch4*( (Pmt(t)/(L_gas*eta_mt(t))) + (Pfc(t)/(L_gas*eta_fc(t))) ) ...       % 燃料成本
                     +  Cm_mt*Pmt(t) + Cm_fc*Pfc(t)  +  Cm_pv*Ppv(t)...    % 维护成本
                     + Cm_wt*Pwt(t) + Cst(t)+(Crb(t)+1.5)*Px(t)+Cm_Eb*Pb(t);               
end
figure
plot(1:24,cost)
hold on
plot(1:24,costp)
title('每小时运行成本');
legend('本文调度方法','常规调度方法');
xlabel('时间/小时')
ylabel('费用/元')

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]姚景昆. 基于改进粒子群算法的微电网优化调度[D].辽宁工业大学,2016.

🌈4 Matlab代码实现

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程与计算总结(四)项目管理基础

目录 一.项目和项目管理 二.团队组织与管理 三.软件质量保障 四.软件配置管理 五.项目实践 一.项目和项目管理 1.软件开发远不是纯粹的编程,随着软件规模的增长,软件开发活动也变得越来越复杂~ 2.软件项目就是要将所有的软件开发活动组织起来&#…

什么是内容运营?

关于内容运营,在不同种类的公司,侧重点也不一样。 电商平台的内容运营岗更偏内容营销;产品功能比较简单的公司,内容运营和新媒体运营的岗位职责差不多;而内容平台的内容运营更多的是做内容的管理和资源整合。

windows内核编程(2021年出版)笔记

1. Windows内部概览 1.1 进程 进程包含以下内容: 可执行程序,代码和数据私有的虚拟地址空间,分配内存时从这里分配主令牌,保存进程默认安全上下文,进程中的线程执行代码时会用到它私有句柄表,保存进程运…

C语言内存函数

目录 memcpy(Copy block of memory)使用和模拟实现memcpy的模拟实现 memmove(Move block of memory)使用和模拟实现memmove的模拟实现: memset(Fill block of memory)函数的使用扩展 memcmp(Compare two blocks of memory)函数的使用 感谢各位大佬对我的支持,如果我的文章对你有…

DataX和dataX-web 集群部署及使用

📑 DataX和dataX-web 集群部署及使用 一 . 安装前准备 DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 DataX 采用 框架 插件 的模式…

[补题记录] Atcoder Beginner Contest 297(F)

URL:https://atcoder.jp/contests/abc297 目录 F Problem/题意 Thought/思路 Code/代码 F Problem/题意 给一个 H * W 的矩形,在其中任意放置 K 个点,由这 K 个点构成的最小矩形带来的贡献为该矩形的面积,这 K 个点构成一种…

网络和系统操作命令

目录 ping:用于检测网络是否通畅,以及网络时延情况。ipconfig:查看计算机的IP参数配置信息,如IP地址、默认网关、子网掩码等信息。netstat:显示协议统计信息和当前TCP/IP网络连接。tasklist:显示当前运行的…

[NISACTF 2022]popchains - 反序列化+伪协议

[NISACTF 2022]popchains 一、解题流程二、小小疑惑 一、解题流程 1、链条:Road_is_Long(construct->wakeup【page$r】-> toString【string$m】)-> Make_a_Change(construct->get【effort$t】)-> Try_W…

010:连续跌3天,同时这三天收盘价都在20日均线下,第四天上涨的概率--以京泉华为例

对于《连续跌三天,压第四天上涨的盈利计算》,我们可以继续优化这个策略,增加条件:同时三天都收盘在20日均线下。 因为我们上一篇《获取20日均线数据到excel表中》获得了20日均线数据,我们可以利用均线数据来编写新的脚…

OMV6 安装Extras 插件失败的解决方法

# Time: 2023/10/07 #Author: Xiaohong # 运行环境: OS: OMV6 # 功能: 安装Extras 插件失败的解决方法 问题描述:OMV6 安装插件omv-extras,只能按如下提示的命令行,但安装过程中,会提示raw.githubusercontent.com 无法访问插…

seata框架

Seata简介:(Seata | Seata(官方网站)) Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 相关术语: TC (Transaction Coordinator) - 事务…

2023年【煤炭生产经营单位(安全生产管理人员)】证考试及煤炭生产经营单位(安全生产管理人员)模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 煤炭生产经营单位(安全生产管理人员)证考试是安全生产模拟考试一点通生成的,煤炭生产经营单位(安全生产管理人员)证模拟考试题库是根据煤炭生产经营单位&…