基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)

news2024/11/28 22:41:47

目录

1 主要内容

白鲸优化算法BWO

变分模态分解VMD

核极限学习机KELM

2 部分代码

3 程序结果

4 下载链接


主要内容

该程序采用白鲸优化算法+变分模态分解+核极限学习机三种方法组合对短期光伏功率进行预测,当然,该方法同样适用于风电、负荷等方面的预测,通过采用原始数据进行训练和测试,验证了方法的有效性,同时,该程序包内还包括变分模态分解+核极限学习机(vmd+kelm)以及核极限学习机(kelm)预测对比程序,方便对比学习,程序包括必要注释,通用性强!

  • 白鲸优化算法BWO

白鲸优化(BWO)算法一种基于群体的元启发式算法,用于解决优化问题。BWO的灵感来自白鲸的行为,包括三个阶段:探索阶段,开发阶段和鲸鱼坠落阶段。

  • 变分模态分解VMD

核极限学习机KELM

KELM 是在传统 ELM 的基础上延展而来,用核映射代替随机映射,进而将高复杂低维的空间问题转化为高维空间内积运算问题,相较于 ELM 具有更强的网络输出稳定性和泛化能力。
在KELM算法中,核参数g 和正则化系数C 是影响KELM预测性能的重要因素。在 KELM 训练学习过程中,核参数 g 具有调节经验风险比例和置信区间的作用,而正则化系数C 用于控制训练误差所占比例的范围,若核参数和正则化系数选择不当,则会使 KELM 的泛化能力大大减弱,从而导致网络输出不稳定,因此对 KELM的核参数和正则化系数进行优化十分必要。因此,这两个参数需要采用智能算法进行参数优化。

部分代码

%% 优化(调用函数)
[Best_pos,Best_score,Convergence_curve]=BWO(pop,Max_iteration,lb,ub,dim,fun);


x=Best_pos  ;                 %最优个体 
C = x(1);                    %正则化系数
Kernel_type = 'RBF';             %核函数名
Kernel_para = x(2);                    %核函数参数矩阵


%%
xunlian=[];
cesi=[];
for mode=1:K
    shuchu1 = uoutput(mode,:)';


    input_train =shuru(nn(1:geshu),:);input_train=input_train';
    output_train=shuchu1(nn(1:geshu),:);output_train=output_train';
    input_test =shuru(nn((geshu+1):end),:);input_test=input_test';
    output_test=shuchu1(nn((geshu+1):end),:);output_test=output_test';
    %%
    %样本输入输出数据归一化
    [aa,bb]=mapminmax([input_train input_test]);
    [cc,dd]=mapminmax([output_train output_test]);
    inputn=mapminmax('apply',input_train,bb);
    outputn=mapminmax('apply',output_train,dd);
    
    x_test=mapminmax('apply',input_test,bb);
    y_test=mapminmax('apply',output_test,dd);
    
    train_x=inputn;
    train_y=outputn;
    test_x=x_test;
    test_y=y_test ;
    
    [predict_trainy, predict_testy] = KELM(train_x,train_y,test_x,test_y, C, Kernel_type, Kernel_para);
    
    % 测试集
    test_s1=mapminmax('reverse',predict_testy,dd);%反归一化
    % 训练集
    train_s1=mapminmax('reverse',predict_trainy,dd);%反归一化


    xunlian=[xunlian;train_s1];
    cesi=[cesi;test_s1;];
end
​

程序结果

4 下载链接

基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测

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

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

相关文章

C语言之动态内存管理实现通讯录(完整版)

我们在之前的博客中写过静态版的通讯录,我们今天来写一个动态版的,不需要规定它到底需要多大空间,只要还有内存,我们都可以存放的下!同时,函数实现原理,我在通讯录静态版的博客里做了详细的讲解…

虚拟机VirtualBox添加磁盘

一、创建虚拟硬盘 fdisk -l 我们新添加的磁盘/dev/sdb,还没有分区 sdb磁盘分区 fdisk /dev/sdb n 创建一个新分区 选择p添加主分区 我们把所有10GB空间都格式化为一个分区了 。 w 键入w,保存设置并退出&#x…

【Python基础】Python编程入门自学笔记,基础大全,一篇到底!

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

freertos静态创建任务

在开始前先有个小插曲,我的keil的自动补全代码功能使用不了,经过查找是因为之前装51把有的文件覆盖了,照这篇博客就可以解决。 然后之前那份代码我们是动态创建任务,先来说一下动态创建任务和静态创建任务的区别: Fre…

奇元大模型通过备案 360自研两大模型均获批

11月4日,三六零(601360.SH,下称“360”)大模型“奇元大模型”通过备案落地。今年9月,“360智脑大模型”已获批面向公众开放。360公司也成为国内首家两个大模型均通过备案的科技企业。 从大模型定位和应用角度来看,奇元大模型具备…

【Qt控件之QDockWidget 】使用

概述 QDockWidget类提供了一个窗口部件,可以被停靠在QMainWindow中,或作为桌面上的顶层窗口浮动显示。 QDockWidget提供了停靠窗口的概念,也称为工具暂存区或实用程序窗口。停靠窗口是次要窗口,放置在QMainWindow中心窗口周围的停…

Python之Excel数据相关

Excel Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsof…

LabVIEW实现变风量VAV终端干预PID控制

LabVIEW实现变风量VAV终端干预PID控制 变风量(VAV)控制方法的研究一直是VAV空调研究的重点。单端PID控制在温差较大时,系统容易出现过冲。针对空调终端单端PID控制的不足,设计一种干预控制与PID控制耦合的控制方法。项目使用LabV…

专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家

导读 HuggingFace CTO Julien Chaumond认为,在大模型时代,AI民主化至关重要。随着大语言模型和复杂人工智能系统的崛起,持续提升AI技术的可及性有助于确保这些技术的获取和控制不集中在少数强大实体手中。技术民主化促进了机会均等&#xff0…

vue根据环境变量打包项目

当你的项目分为多个地区的时候,而且每个地区的逻辑稍微有点差异的情况下,不需要每个地区都打包一次,只需要根据环境变量配置一个公共文件即可 1、新建多个环境变量文件 2、新建globelParams.js //globelParams.jsconst taiYuan {NODE_ENV:…

虚拟机vmware使用桥接方式联网设置

步骤:虚拟机设置----》网络适配器---->桥接模式 这样设置好;只是这样设置是无法联网的 现在进入到虚拟机内部----->电机右上角的”网络连接“(wired connection)(没错就是wired connection 虽然是连接WiFi热点但…

【每日一题】移除链表元素(C语言)

移除链表元素,链接奉上 目录 思路:代码实现:链表题目小技巧: 思路: 在正常情况: 下我们移除链表元素时,需要该位置的前结点与后节点, 在特别情况时: 例如 我们发现&…

模版方法模式-定义算法的框架

在生活中,很多事需要通过几个步骤才能完成。例如找工作,一般都包含投递简历、面试、等待结果等几个步骤。投递简历何等待结果这两个步骤大同小异,最大的区别在于面试这个步骤。 在软件开发中,有时也会遇到类似情况。某个方法的实…

.mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言: 随着网络犯罪日益猖狂,勒索病毒已经成为数字时代中的一大威胁。.mkp勒索病毒是其中一种,其已经衍生出了多个不同的变种,其中常见的有.[MyFilewaifu.club].mkp勒索病毒,[hendersoncock.li].mkp勒索病毒,[myersairmail.cc].mk…

炸了!CVPR 2024投稿ID突破18000

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉和Transformer】交流群 扫码加入CVer知识星球,可以最快学习到最新顶会顶刊上的论文idea和CV从入门到精通资料,以及最前沿项目和应用&…

【黑马程序员】Maven 进阶

文章目录 前言一、分模块开发与设计1. 分模块开发意义2. 分模块开发(模块拆分)2.1 创建 Maven 模块2.2 书写模块代码2.3 通过 Maven 指令安装模块到本地仓库(install 指令) 二、依赖管理1. 依赖传递1.1 依赖传递冲突问题 2. 可选依…

RMI初探

接口 import java.rmi.Remote; import java.rmi.RemoteException;public interface IFoo extends Remote {String say(String name) throws RemoteException; }import java.rmi.Remote; import java.rmi.RemoteException;public interface IBar extends Remote {String buy(Str…

【已解决】设置SSH主机:VS Code-正在本地下载 VS Code 服务器

问题描述 很简单,就是我电脑强制重启之后用vscode再去连服务器,发现连不上了 解决办法 如上图,点击重试按钮,下面的这些东西就可以复制粘贴了 ctrf查找commit,这个时候就能找到一串d037ac076cee195194f93ce6fe2bdfe296…

leetcode:387. 字符串中的第一个唯一字符

一、题目 函数原型 int firstUniqChar(char* s) 二、算法 设置一个大小为26的字符数组,位置0 - 25 分别对应字符 a - z 。遍历两次字符串,第一次记录下每个字符出现的次数,第二次检查哪个字符最先遍历到且出现次数为1,返回该字符即…

【CIO人物展】黄淮学院副CIO周鹏:构建数智化平台赋能学校高质量发展

周鹏 本文由黄淮学院副CIO周鹏投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 黄淮学院是2004年经教育部批准成立的一所省属全日制普通本科高校。学校位于素有“豫州之腹地、天下之最中”之美…