【优化调度】基于matlab粒子群算法求解抽水蓄能电站最佳调度问题【含Matlab源码 1968期】

本文主要是介绍【优化调度】基于matlab粒子群算法求解抽水蓄能电站最佳调度问题【含Matlab源码 1968期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、抽水蓄能电站最佳调度问题简介

水沙联调的多目标数学模型
本文研究的抽水蓄能电站修建在多沙河流上,解决这类水库泥沙问题最有效的方法就是依据地形修建拦沙库。拦沙库的主要任务是在水库运行基准年内拦排泥沙,同时因抽水蓄能电站下库在正常运行期由于受泥沙影响,天然径流不能直接进入专用下水库,为补充水库渗漏、蒸发等造成的损失水量,故需要通过拦沙库向下水库补充水量。本文主要研究的是库区水沙联调的多目标规划问题,在满足水位的要求下,寻求水库补水与排沙的协调关系。

1 目标函数
根据拦沙库的主要任务有以下两个目标:一是尽可能在汛期降低拦沙库水位,增加拦沙库排沙效果;二是保证拦沙库有一定的补水能力。将两个目标分别表示为:

(1)式为库容目标函数,式中右端VYt为库区泥沙淤积库容,T为计算时段。(2)式为补水能力目标函数,E为补水能力,即在一定的时间范围内,库水位越高、入库流量越大,水库更容易蓄满水。

观察目标函数(1)、(2),表面上,保持有效库容最大与补水能力最大似乎是相似的、一致的,但如果看到这两个目标函数都与运行水位有关,就不难知道这两个目标是相互矛盾和冲突的。要使拦沙库拦沙效果好,则拦沙库在汛期降低水位,库水位越低,排沙效果越好,但水位过低,在退水后拦沙库不容易蓄满水,影响下水库的补水量,增大水库运行的风险。相反,如若保证拦沙库有一定的补水能力,则拦沙库应在高水位下运行,库区壅水高度的增加,必然加剧淤积,从而减少有效库容。针对目标函数的矛盾性,根据多目标优化理论,采用权重法将优化目标转化为主要目标和次要目标,分别赋予各个目标不同的权重,采用线性加权的方法,将多目标问题转化为单目标问题求解。虽然方程(1)和(2)式是一对相互矛盾的目标函数,但两个目标函数的单位一致,这为线性组合提供了前提条件,故目标函数可以变为:

式中,λ1和λ2为相应权重值,其取值范围是0~1。

2 PSO优化调度模型
粒子群优化算法(PSO-Particle Swarm Optimization)源自对鸟类和鱼类等动物群体行为的研究,其实质是根据个体与环境的适应程度,并通过群体间的信息共享和个体自身经验的总结来不断修正个体的行为策略,从而使整体逐渐“飞行”到最佳区域。在PSO中,N维空间中的每一个粒子代表了优化问题的一个可行解,所有的粒子都有一个由目标优化函数决定的适应值和一个速度决定其飞行的方向和距离。

根据POS算法的思想,可将搜索空间设为T维,用N个粒子对其进行搜索。每个粒子的位置就是一个T维向量,每一维向量表示一个模型的权重,即xi=(xi1,xi2,…,xi T),xit为微粒i在T维空间上的坐标。具体的POS优化调度模型的实现如下:

(1)在各时段允许的库容变化范围内,随机生成N组时段水位变化序列Z1=(z11,z21,…,zT1),…,ZN=(z1N,z2N,…,zTN),即随机初始化N个粒子(T为计算时段,也就是粒子的各种状态),检验每个粒子的状态是否满足水量平衡方程,如果不满足,重新初始化粒子群;

(2)计算粒子群中各粒子的适应度。由于目标函数所求解的是F(t)最大,因此粒子的适应度函数可由目标函数式变化得到:f(t)=c/F,c式中是个常数,在保证f(t)≤1的情况下,为了直观的反映粒子适应度大小,c根据具体情况调节;

(3)产生新一代N个粒子。根据N个粒子的适应度找到每个粒子迄今为止搜索到的最好位置Zp,粒子群此次迭代找到的最好位置Zg以及粒子群迄今为止搜索到的最好位置ZG。每个粒子根据水库水位扰动方程进行更新,扰动方程为:

式中:t=1,2,…T-1;i=1,2,…N;k是迭代次数;ω是惯性权重;c1、c2是加速常数,一般取2;r1、r2是在[0,1]内取值的随机函数;

(4)判断是否达到停止条件。停止条件通常由最大迭代次数和搜索到的最优位置满足适应阈值。若已经达到条件,寻优结束;若没有达到条件则转(2)继续执行。

3 约束条件
流量约束:为了保证下游河道的安全,水库下泄流量不能大于下游允许的安全泄量或其它有些特殊的要求。

水位约束:为保证拦沙库补水能力,任何时刻其水位不得低于设计死水位。
非负约束:以上各约束条件中的变量均满足非负要求。

⛄二、部分源代码

%% 抽水蓄能电站的最佳调度方案研究 火+水+抽
% 粒子群算法版
% 变量定义如下:
% 决策变量:火电出力,抽蓄出力
% x=[Pf(624),Pc(224)];
clc;
clear;
close all;

%% 算法参数
parameter;
nVar=7*24; % Number of Decision Variables
VarMin=[ones(1,24)*P_minfire(1), ones(1,24)*P_minfire(2), ones(1,24)*P_minfire(3),ones(1,24)*P_minfire(4),…
ones(1,24)*P_minfire(5), ones(1,24)P_minfire(6),ones(1,24)(-300)]; % Lower Bound of Variables
VarMax=[ones(1,24)*P_maxfire(1), ones(1,24)*P_maxfire(2),ones(1,24)*P_maxfire(3),ones(1,24)*P_maxfire(4), …
ones(1,24)*P_maxfire(5),ones(1,24)*P_maxfire(6),ones(1,24)*300]; % Upper Bound of Variables
MaxIt=500; % Maximum Number of Iterations
nPop=500; % Population Size (Swarm Size)

%% 计算
[ bestPosition, fitValue ] = …
PSOFUN( @fun_objective,nVar,VarMin,VarMax,MaxIt,nPop );
x=bestPosition;
[f,fun,fun1,fun2,six,two,g,g1,h]= jieguo(x);
f
six
two
fun
fun1
fun2
% g;
% [mg ng]=max(g)
% g1;
% [mg1 ng1]=max(g1)
% h;
% [mh nh]=max(h)
%% 各个决策变量的含义
Pfl=six(:,1);
Pf2=six(:,2);
Pf3=six(:,3);
Pf4=six(:,4);
Pf5=six(:,5);
Pf6=six(:,6);
%抽蓄1
Pc1=two(:,1);
% %抽蓄2
% Pc2=two(:,2);

%% 火电出力求和
Pf=zeros(1,24);
for t=1:24
Pf(t)=Pfl(t)+Pf2(t)+Pf3(t)+Pf4(t)+Pf5(t)+Pf6(t) ;
end

%% 水电出力
P_w=sum(P_shui(😃)*ones(1,24);

%% 抽蓄出力
P_c=Pc1;
P_c1=zeros(1,24);
P_c0=zeros(1,24);
for t=1:24
if P_c(t)>=0
P_c1(t)=P_c(t);
else
P_c0(t)=P_c(t);
end

end

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 向波,宋刚福,周婷,周晓蔚.抽水蓄能电站水沙调度研究[J].水力发电学报. 2012,31(04)

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【优化调度】基于matlab粒子群算法求解抽水蓄能电站最佳调度问题【含Matlab源码 1968期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基