25利用 灰色预测模型预测发电量(附matlab程序)

news2025/1/10 20:59:30

1.简述

      学习目标: 灰色预测模型预测发电量

                         根据原始发电量数据预测需要年份的发电量

         发电量预测是电力系统规划与运行的基础,是电力市场运作中的重要组成部分.目前,对发电量预测的研究已经比较深入,常用的发电量预测方法有:灰色预测法,线性回归模型,自回归移动平均模型及人工神经网络算法等.其中回归预测模型和时间序列模型是该领域最成熟的两个模型.回归预测模型通过建立发电量与其他相关变量之间的模型来预测发电量,但是由于影响发电量的外部因素错综复杂,准确分析其对发电量的影响比较困难.另一种有效的方法是利用时间序列模型对发电量本身的历史数据进行分析研究,进而预测未来的发电量.本文采用时间序列模型对发电量预测进行研究. 在电力市场化过程中,发电量预测的精度直接关系到各方的利益.因此,如何提高模型的预测精度吸引了越来越多人的关注.本文在现有模型的基础上探究更为精确,有效的方法.

灰色系统是由华中科技大学的邓聚龙教授于80年代初创立,该系统作为新兴的横断学科,在短短的二十年里已得到了长足的发展。 其已经成为社会,经济,科教,科技等很多领域进行预测,决策,评估,规划,控制,系统分析和建模的重要方法之一。特别是它对于时间序列短,统计数据少,信息不完全系统的建模与分析,具有非常显著的功效。

灰色预测是一种对含有不确定因素的系统进行预测的方法。灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。其用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。

灰色系统的基本原理

公理1,差异信息原理

”差异“是信息,凡信息必有差异。

公理2,解的非唯一性原理

信息不完全,不确定的解是非唯一的。该原理是灰色系统理论解决实际问题所遵循的基本法则。

公理3,最少信息原理

灰色系统理论的特点是充分开发利用已占有的”最少信息”。

公理4,认知根据原理

信息是认知的根据。

公理5,新信息优先原理

新信息对认知的作用大于老信息。

公理6,灰性不灭原理

“信息不完全”是绝对的。

2.2 灰生成技术

灰色序列生成:是一种通过对原始数据的挖掘,整理来寻求数据变化的现实规律的途径,简称灰生成。

灰生成特点:在保持原序列形式的前提下,改变序列中的数据的值与性质。一切灰色序列都能通过某种生成弱化其随机性,显现其规律性。

灰生成的作用

  1. 统一序列的目标性质,为灰决策提供基础。

2.将摆动序列转化为单调增长序列,以利于灰建模。

3.揭示潜藏在序列中的递增势态,变不可比为可比序列。

常见的几种灰色生成类型:

1.累加生成算子(AGO)

2.逆累加生成算子(IAGO)

3.均值生成算子(MEAN)

4.级比生成算子

2.代码

function huisexitong()
%%  原始发电量数据
X0=[306.35,311.2,324.9,343.4,361.61,390.76,421.36,458.75,494.9,522.78,547.22,588.7,647.18,712.34,778.32,835.31,888.1,923.16,939.48];
KK=300;                %KK大于30,越大越没有问题
x0=sin(sqrt(X0)/KK);    %得到变换后的值,作为原始的数据

n=length(x0);
for k=1:n   
    x1(k)=sum(x0(1:k));              %计算x1
end
z(1)=0;
for k=1:n-1
    z(k+1)=(x1(k)+2*Newton(1:n,x1,k+2/4)+4*(Newton(1:n,x1,k+1/4)+Newton(1:n,x1,k+3/4))+x1(k+1))/12;        %计算z1
end

Y=(x0(2:end))';
B=[-1*(z(2:end))' ones(n-1,1)];
au=(inv(B'*B))*(B')*Y;              %得到a和u
a=au(1);
u=au(2);

%x01表示预测值
for m=1:n
    for k=0:n-1
        x01(k+1)=(x1(m)-u/a)*exp(-a*(k-m+1))+u/a;    %按预测公式计算预测值
    end
    x02=huanyuan(x01);           %预测出来的值需要前后两项相减得到预测值
    derta(m)=100*sum(abs((x02(1:n)-x0)./x0))/n;
end
figure
plot(derta)
title('各m下的平均误差曲线')
xlabel('m')
ylabel('平均误差 %')
[Y m_min]=min(derta);    %找到平均误差最小时对应的m

dd=3;       %需要预测的年数
m=m_min;    %此处m取平均误差最小的m,也可以在此修改m
for k=0:n-1+dd
    x01(k+1)=(x1(m)-u/a)*exp(-a*(k-m+1))+u/a;    %按预测公式计算预测值
end
x02=huanyuan(x01);           %预测出来的值需要前后两项相减得到预测值

yucezhi=(asin(x02)*KK).^2;


X0all=[306.35,311.2,324.9,343.4,361.61,390.76,421.36,458.75,494.9,522.78,547.22,588.7,647.18,712.34,778.32,835.31,888.1,923.16,939.48,988.6,1073.62,1164.29];
num=1;
for i=1980:2001
    year{num}=num2str(i);
    num=num+1;
end

figure
axes('XTickLabel',year,'XTick',1:22)
axis([1 22 200 1400])
hold on
h(1)=plot(yucezhi,'*-');
h(2)=plot(X0all,'ro-');
legend(h,{'预测值','原始值'},'Location','NorthWest')
title('原始发电量和预测发电量')
xlabel('年份');
ylabel('发电量')
end

function XD=huanyuan(X)
%% 灰色系统:还原算子,输入原序列(仅包含一行),输出始点零化生成序列(仅包含一行)
n=length(X);
XD(1)=X(1);
for k=2:n
    XD(k)=X(k)-X(k-1);
end
end

function yi=Newton(x,y,xi)
%%  Newton插值方法,给定一系列插值的点(x,y),得到在x=xi处的,牛顿插值多项的值yi
n=length(x);
m=length(y);
A=zeros(n);    %定义差商表
A(:,1)=y;      %差商表第一列为y
for j=2:n               %j为列标
    for i=1:(n-j+1)     %i为行标
        A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i));   %计算差商表
    end
end
%%  根据差商表,求对应的牛顿插值多项式在x=xi处的值yi
N(1)=A(1,1);
for j=2:n
    T=1;
    for i=1:j-1
        T=T*(xi-x(i));
    end
    N(j)=A(1,j)*T;
end
yi=sum(N);   %将x=xi带入牛顿插值多项式,得到的yi的值
end

3.运行结果

 

 4.参考文献

[1]彭慧婷. 基于GM-ARIMA模型的发电量预测研究[D]. 兰州大学.

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

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

相关文章

软件测试(1)

软件测试就是用来验证产品特性是否满足用户需求 调试是发现并解决软件中的缺陷 开发人员编码阶段进行 测试是用来发现软件中的缺陷 测试人员,开发人员(单元测试,集成测试) 测试贯穿于整个软件的生命周期,但是调…

免费在线压缩图片的网站

1. TinyPNG - 这是一个非常受欢迎的在线图片压缩网站,可以压缩 PNG 和 JPG 图片,保证无损压缩。 网址:TinyPNG – Compress WebP, PNG and JPEG images intelligently 2. Compressor.io - 这也是一个很好的在线图片压缩工具,可以批量上传和压缩图片,支持 PNG, JPG 和…

逆向Android开发工程,抓包!抓包!学习哪里?

抓包是什么? 在Android逆向工程中,抓包是一项重要的技术,用于获取手机应用程序与服务器之间的通信数据。通过抓包,可以分析应用程序的网络请求,获取请求的URL、参数、响应数据等信息,对应用程序的行为进行…

JavaSE进阶--注解

文章目录 前言一、概念二、使用实例1、Junit测试中2、JDK内置注解 三、自定义注解1、注解声明2、注解配置参数2.1 配置参数的类型:2.2 注意2.3 两个概念 3、使用注解 四、元注解1、Retention1.1 RetentionPolicy.SOURCE1.2 RetentionPolicy.CLASS1.3 RetentionPolic…

千万不要在简历里写精通C++,没人能真正精通C++

任何说自己很懂C的人可能都是在夸大其词。 我想你可能已经注意到了,是的,今天的大多数程序员都在使用Python、Rust、Go或是其他新的编程语言。大部分人已经不再需要掌握C、C等古老的编程语言了,甚至很多程序员已经从手动编码开始向AI编码转型…

el-select 触底分页+远程搜索

文章目录 前言一、el-select 触底分页远程搜索1.封装触底自定义指令2.在 mian.js 引入封装好的自定义指令3.在组件中进行使用 总结 前言 大部分情况下使用 el-select 的时候,el-options 中 options 的值都是后端接口给的数据,直接赋值就可以了。但是有的…

(8版本)mysql数据库安装教程(自用保存)

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: mysql 参考csdn大神们的文章, 总结出来的详细用法~~~ 目录 文章目录 一、下载MySQL8.0.33 二、配置初始化文件my.ini(重点) 三、初始化MySQL 四、安装MySQL服务并启动 修改密码 4.1 安装…

akima 插值拟合算法 Python/C++版本

目录 前言Akima简介Akima优势 算法的代码实现python版C 版代码解析1代码解析2代码解析3 结果测试 前言 鉴于CSDN上Akima算法文章大部分要VIP观看或者下载,即使是付费也有质量不佳,浪费Money也浪费时间。 笔者更具查到的资料分享给大家。 Akima简介 Ak…

C++技能系列 ( 5 ) - 详解函数入参/返回参使用(值传递/引用传递/指针传递/智能指针传递)

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待动动小手,点击关注哦!!! 当你休息的时候,一定要想到别人还在奔跑。 When you rest, we must thin…

数据库相关

1、主要考点思维导图 2、如何设计一个关系型数据库 存储管理:数据逻辑关系转为物理存储关系。 缓存机制:优化执行效率。 SQL解析:将Sql语句进行解析。 日志管理:记录操作。 权限划分:多用户管理。 容灾机制&…

2、瑞丽-伯纳德对流的拉格朗日拟序结构(FTLE场结果对比)

在上篇博客中,我简单比较了瑞丽伯纳德对流的FTLE场,但是因为粒子追踪采用的是欧拉方法,所以精度不是很高, 因此与文献中的结果还是有些差别。 下面放一张文献中的FTLE场,参数与上篇文章是一致的,Ra 1e8;Pr…

《面试1v1》SpringBean生命周期

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

python:使用Scikit-image对遥感影像进行边缘检测(edges)

作者:CSDN @ _养乐多_ 本文将介绍使用Scikit-image库中用于边缘检测特征提取的一些方法及其代码。方法包括 Canny边缘检测(canny),Sobel边缘检测(sobel),Scharr边缘检测(scharr), Roberts边缘检测(roberts),Prewitt边缘检测(prewitt),Farid边缘检测(farid),…

HJ48 从单向链表中删除指定值的节点

描述 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程,例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点&am…

Day24 实战篇 ——Jmeter通过JDBC测试实战

Day24 实战篇 ——Jmeter通过JDBC测试实战 文章目录 Day24 实战篇 ——Jmeter通过JDBC测试实战1、**业务级脚本开发**2、**接口级脚本开发**3、**JDBC脚本开发**4、**JMS Point-to-Poibt脚本开发**5、**Jmeter轻量级接口自动化测试框架**(了解就行)1、业务级脚本开发 登录脚…

《2023 年 React 生态》

大家好,我是 Chocolate。 前不久看到一篇不错的内容,来自于 The React Ecosystem in 2023,也结合自己今年使用的 React 生态总结一下。 本文并非视频演讲稿,和视频内容还是有一点点区别,视频内容相对来说会更加详细一…

ffmpeg(一) ffmpeg+QT开发环境搭建

1、开发库的选择 (1)音视频开发库 每个主流平台基本都有自己的音视频开发库(API),用以处理音视频数据,比如: iOS:AVFoundation、AudioUnit 等 Android:MediaPlayer、Me…

Flink 学习九 Flink 程序分布式运行部署

Flink 学习九 Flink 程序分布式运行部署 1.Job 执行计划 层级说明备注StreamGraph用户代码生成的最初的图程序的运行流程图JobGraph将多个符合条件的节点多个符合条件的节点合并,减少序列化和反序列化ExecutionGraphJobGraph 的并行化调度层的核心数据结构PhysicalGraphJobMa…

【计算机组成原理】信息编码与数据表示

目录 一、进位计数制 二、信息编码 三、定点数的表示 四、校验码 五、浮点数的表示 一、进位计数制 整数部分: 二进制、八进制、十六进制 ---> 十进制:加权求和二进制 ---> 八进制:每三位分为一组,转为八进制…

CloFormer实战:使用CloFormer实现图像分类任务(一)

文章目录 摘要安装包安装efficientnet_pytorch安装timm安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译:https://blog.csdn.net/m0_47867638/article/details/131161083 官方源码:https://github.com/qhfan/CloF…