【优化调度】基于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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.