MATLB|基于matpower优化调度的风力模型预测

news2024/10/7 7:26:14

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

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者
📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 讲解

3 参数表示 

4 运行结果展现

5 Matlab代码实现 


1 概述

风光新能源出力受夭气、气候影响巨大,短期、中长期电力供应均处于难预测状态。受风向、风力、光照强度等影响,风光出力具有随机性、波动性、间歇性等特点,新能源日内出力波折;寒潮或连晴高温等极端气候下,电力需求陡增,但新能源最小出力可能处于较低水平,平衡支 撑能力不足。

大规模新能源并网,新能源电力、电量占比不断提高,消纳与利用率矛盾突出:与常规机组相互挤占通道,重要断面满功率运行压力较大;风电反调峰特性突出,加剧电网调峰困难,消纳与利用率相互制约,保证消纳水平的基础上,利用率存在下降的趋势。在大型风电场附近如果有500kV特高压输电线路,这个风电场风电利用率可以基本可以达到接近100% ,可以通过特高压线路输送到远方;如果没有特高压线路,只能就近消纳。还有新能源只能发有功,由于功角因素,有时潮流不是按照我们想要的方向流入,如部分流到其它地区啦,需要在-些地方加装大型无功装置,形成一 个“截面” ,不让新能源流过去。

风力预测配置文件基于计量经济学模型生成,该模型由捕获季节性效应的 OLS 组件和捕获残差中动态的时间序列组件组成。预测所需的不确定性由时间序列模型的白噪声残差的var-cov矩阵实现,使其能够反映不同风场之间的相关性。本文还提供风力实现配置文件,这些配置文件由实际实现数据或计量经济学模型生成。

2 讲解

使用来自 16 个站点 NPCC 模型的站点 2、6 和 15 的模型创建一个 WY 风模型对象:

widx = [2;6;15];
wm = wy_wind_model('wind_model_npcc', widx);

生成 24 个周期范围的MOST 转换概率,每个周期有 4 个风力情景。

tp = wm.transition_probs(24, 4);

加载原始 NPCC 历史风速数据(以 m/s 为单位的原始风速)并将其转换为 ,因为这是此模型所基于的。log(raw_wind_speed+1)

s = load('wind_data_npcc');
log_wind_data = log10(s.wind_data + 1);

从原始 NPCC 历史数据中提取 3 个感兴趣地点的 48 小时风速实现值,从 2005 年 6 月 1 日中午开始(数据从 2004 年 1 月 1 日凌晨 1 点开始)。

pidx1 = wy_wind_date2pidx(24, [2004 1 1 1 0 0], [2005 6 1 12 0 0]);
wsr = wm.realizations(pidx1, 48, log_wind_data);

从模型中为 3 个感兴趣地点生成 24 小时风速实现,从同一小时开始。 

wsr = wm.realizations(pidx1, 24);

使用默认(多涡轮机)功率曲线将风速实现转换为风力发电实现,以装机容量的分数表示。

wpr = wm.speed2power(wsr);

从模型中为 3 个感兴趣地点生成 24 小时风速预报,从同一小时开始,使用 4 个条柱来表示预报分布。 

ws0 = log_wind_data(pidx1-1, widx);
wsf = wm.forecasts(pidx1, ws0, 24, 4);

使用 中定义的第 4 条功率曲线(海上)将风速预测转换为风力发电实现,以装机容量的分数表示。'wind_power_curve_EIC.txt'

s2p = wy_wind_power_curve(4, 'wind_power_curve_EIC.txt');
wm = wy_wind_model('wind_model_npcc', [2;6;15], s2p);
wpf = wm.speed2power(wsf);

3 参数表示 

np_all — 原始风数据中的周期数
nw_all — 原始数据中的风站数量(wind_data_npcc.mat 为 16)
np - 时期数(例如,对于计划范围)
nw - 风站点的数量
npd — 每天的周期数(通常为 24,对于每小时数据)
nb - 用于 MOST 风模型输入的箱数
widx — () 感兴趣的风场指数向量 nw x 1
pidx — 原始历史风数据的标量周期指数
pidx1 - 第一周期的标量周期指数,相对于原始历史风数据的第一周期
dt — 1 x 6 标准 Matlab 日期向量 [yr, mo, day, hr, min, sec],指定原始历史风数据中的特定时期,yr = 4 位数年份,mo = 月份(1 -12),day = 日期 (1-31),hr = 小时 (0-23),min = 分钟 (0-59),sec = 秒 (0-59)
wind_data - (np_all x nw_all) 风速矩阵(以 m/s 为单位),对应于时期、地点、特定的 和起始日期/时间 (np_allnw_allnpddt0)
log_wind_data — () 矩阵等于 np_all x nw_alllog10(wind_data + 1)
bins — bin 规范,提供为:
箱数 (), ornb
(1 x nb-1) bin 边界向量(标准差系数),其中假设初始和最终,但不包括-Inf+Inf
模型 - 具有字段的结构:
type — 风速模型的类型
0 = 基于 raw_wind_speed 以 m/s 为单位
1 = 基于日志(raw_wind_speed + 1)
npd - 每天的周期数(每小时模型为 24)
dt0 - 对应于创建模型的第一期数据的 Matlab 日期向量,用于从模型创建的预测和实现是 w.r.t.这个日期pidx1
ar1 — () 单个站点的 AR1 系数向量 nw_all x 1
ols - () 单个站点的 OLS 估计参数矩阵:
[C CY1 SY1 CY2 SY2 CD1 SD1 CD2 SD2nw_all x 9]
var_wnr — () 各个站点的协方差矩阵 nw_all x nw_all
ar1_total — 总风的标量 AR1 系数
ols_total — 总风量 1 x 9 的 OLS 估计参数向量
var_wnr_total — 总风的标量方差
ws——风速量,单位取决于模型的类型

4 运行结果展现

 

 

 

部分代码: 

%% MATLB|基于matpower优化调度的风力模型预测

%% 加载数据
s = load('wind_data_npcc');
wind_data = s.wind_data;
log_wind_data = log10(wind_data + 1);

widx = [1;3;5;7];   %% 风场
np = 24;            %% 24小时
nb = 5;           
pidx0 = wy_wind_date2pidx(24, [2004 1 1 1 0 0], [2004 7 27 8 0 0]); %% 5000
nw = length(widx);  %% 风场景数
nrh = 24;           %% x轴长度

%% 创建风的模型
wm = wy_wind_model('wind_model_npcc', widx);

%% 初始化输出
tp = cell(nrh, 1);
wsr = cell(nrh, 1);
wpr = cell(nrh, 1);
wsf = cell(nrh, 1);
wpf = cell(nrh, 1);

%% 可视化讲解(风模型参数输入)
for t = 1:nrh
    %% 创建转移概率矩阵
    tp{t} = wm.transition_probs(np, nb);

    %% x轴时间的起始期指数
    pidx1 = pidx0 - 1 + t;

    %% 产生已实现的风力发电
    wsr{t} = wm.realizations(pidx1, np);
    wpr{t} = wm.speed2power(wsr{t});

    %% 生成预测风电
    ws0 = log_wind_data(pidx1-1, widx);
    wsf{t} = wm.forecasts(pidx1, ws0, np, nb);
    wpf{t} = wm.speed2power(wsf{t});
end

%% 风电预测可视化
for i = 1:nw
    figure(i)
    plot(wsf{1}(:, :, i));
    xlabel('(时间/小时)')
    ylabel('功率/KW')
end

5 Matlab代码实现 

博客主页:电气辅导帮

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

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

相关文章

T6300A 网络综合测试仪 以太网数据 千兆以太网测试仪

一款功能强大、便携式、方便使用、价格便宜的高性价比手持式以太网测试仪是企业中网络管理和维护人员的刚需仪器。好的以太网测试仪可以帮助工作人员迅速解决网络不通、网速慢、丢包、延迟等问题。 当今以太网测试仪市场参差不齐,说的功能一个比一个强,…

【轻松掌握C语言】动态内存管理

目录 一、为什么存在动态内存分配 二、动态内存函数 1、malloc函数 (1)函数的用途 (2)函数的使用 2、free函数 (1)函数的用途 (2)函数的使用 3、calloc函数 (1)函数的用途 (2)函数的使用 4、realloc函数 (1)函数的用途 (2)函数的使用 三、常见的动态内存错误 1、对NULL指针的解…

【小f的刷题笔记】(JS)链表 - 单链表的倒数第 k 个节点 LeetCode19 单链表的中点 LeetCode876

【链表】 一、单链表的倒数第 k 个节点: ✔ 要求:只遍历一遍,链表有多长未知 LeetCode19 链接: 19.删除链表的倒数第N个结点 题目: 思路: 因为没有给头结点,我们就先定义一个哑结点&#…

从对称加密和非对称加密讲解HTTP到HTTPS的发展思路

一、传统的HTTP协议 传统的http在进行网络数据传输时,数据信息都是明文的,因此就很容易出现数据在网络的传输过程(中间路由过程)数据被监听或者窃取、替换的危险。因此http是一种不安全的传输协议。 那么就需要对数据进行加密。…

网络编程与通信原理

总感觉这个概念,和研发有点脱节; 一、基础概念 不同设备之间通过网络进行数据传输,并且基于通用的网络协议作为多种设备的兼容标准,称为网络通信; 以C/S架构来看,在一次请求当中,客户端和服务端…

物联网开发笔记(59)- 使用Micropython开发ESP32开发板之控制合宙4g Air724U模块

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制合宙4g Air724U模块。 二、环境 ESP32 合宙4g Air724U模块 Thonny IDE 几根杜邦线 接线方法: 注意连接方式: ESP32的RX2----->4G模块的TX ESP32的TX2----->4G模块的RX 三、介绍 1&…

JSP ssh机房学生上机管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP SSH机房学生上机管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 用B/S模式开发。开发环境为TOMCA…

SpringBoot 注解方式快速整合Mybatis

序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用Select注解直接编写SQL完成数据查询,使用SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求。 一. 基础注解 MyBatis 主要提供了以下CRUD注解: Se…

Spring Cloud Alibaba Nacos Config - - - >@RefreshScope动态获取刷新后的配置内容

初学者不知道有没有这个疑惑:我明明已经在 SpringBoot 应用的 bootstrap.yml 配置文件中,通过 spring.cloud.nacos.config.refresh-enabledtrue 开启配置文件动态刷新了,为什么在 Controller 控制类中使用 Value 注解无法获取到配置文件修改后…

猿如意中的【取色器】效率工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意? 2.2 如何下载猿如意? 2.3 如何在猿如意中下载取色器? 三、取色器介绍 四、软件安装过程 五、软件界面 六、取色器功能特点介绍 七、取色器使用/体验感受 一、工具名称…

Typescript学习(第三弹)

泛型 定义 不预先确定的数据类型,具体的类型在使用的时候才确定,把泛型理解为代表类型的参数 泛型函数 泛型函数类型 泛型接口 引用泛型接口要指定一个类型,否则会报错 或者在泛型接口里指定一个默认类型 泛型类 泛型放在类的后面这样…

项目上线后我是如何通过慢查询和索引让系统快起来的

1、前言 最近对mysql的操作比较多一些,主要是项目上线以后,难免会有一些数据上的问题。开始的时候还主要由后端来处理,后面数据问题确实比较多,于是我就找后端要来服务器的账号密码,连上数据库顺便来看看数据的问题。…

C语言小项目-----员工管理系统

目录 项目要求: 考虑点: 实现过程 所用知识点 最终效果如下: 项目要求: 考虑点: 服务器端用select监听多个客户端,考虑点在于,公司内部的系统管理系统,不会有太多人每天都登陆&a…

【web前端开发】CSS的元素显示模式

前言 元素的显示模式可以更好的帮助我们布局页面,了解元素的显示模式,可以让我们布局页面时更加简单清晰 什么是元素显示模式 元素显示模式就是元素(标签)以什么样的方式进行显示 HTML元素一般分为块元素和行内元素两种类型 以下是块级元素和行内元素在网页中的显示: 块元…

3.神经网络-深度学习入门

3.神经网络 深度学习入门 本文的文件和代码链接:github地址 1.激活函数 sigmoid h(x)11e−xh(x) \frac{1}{1 e^{-x}} h(x)1e−x1​ def sigmod(x):return 1 / (1 np.exp(-1 * x))ReLU h(x){x:x>00:x≤0h(x) \left\{ \begin{array}{lr} x & : x > …

CMake静态库和动态库构建实例

任务 建⽴⼀个静态库和动态库,提供 HelloFunc 函数供其他程序编程使⽤,HelloFunc 向终端输出 Hello World 字 符串。安装头⽂件与共享库。 构建过程 构建动态库 目录结构 jyhlinuxubuntu:~/share/makefile_cmake/cmake01$ tree . ├── build #在…

m基于多用户MIMO系统的分布式可重构注水算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在单用户MIMO场景中,空间复用技术能够带来高数据速率的传输,但是也需要一些前提条件,比如发射端的预编码或者接收端的信道估计与信号检测。然而,在…

java项目-第169期ssm二手交易平台网站-ssm毕业设计_计算机毕业设计

java项目-第169期ssm二手交易平台网站-ssm毕业设计 【源码请到下载专栏下载】 《ssm二手交易平台网站》 该项目分为3个角色,管理员、用户、商家。 用户可以浏览前台商品并且进行购买。在个人后台可以看到自己的商品。 商家可以对商品进行商品分类管理、商品信息管理…

React 学习笔记:组件通信

组件通信 组件为什么需要通信呢?这是因为组件是独立且封闭的单元,默认情况下,组件只能使用自己的数据,但是多个组件之间不可避免的要共享某些数据,为了实现这些功能,就需要打破组件的独立封闭性&#xff0…

深度学习入门(五十九)循环神经网络——通过时间反向传播

深度学习入门(五十九)循环神经网络——通过时间反向传播前言循环神经网络——通过时间反向传播教材1 循环神经网络的梯度分析1.1 完全计算1.2 截断时间步1.3 随机截断1.4 比较策略2 通过时间反向传播的细节3 小结前言 核心内容来自博客链接1博客连接2希…