【硕士论文完美复现】【价格型需求响应】基于需求侧响应的配电网供电能力综合评估(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
1.1 电价伸缩系数分析
1.2 需求侧响应数学模型
1.3 粒子群算法求解
1.4 本文流程图
📚2 运行结果
2.1 风电和光伏的出力情况
2.2 峰谷时段分类
2.3 分时电价制定及负荷响应结果
2.3.1 仅考虑需求响应
2.3.2 考虑分布式和需求响应
🎉3 参考文献
🌈4 Python代码、数据、文章讲解
💥1 概述
在配电网中,需求侧响应是一种通过激励用户在供电能力不足时减少用电量的策略。为了对配电网的供电能力进行综合评估,需要考虑以下几个方面:
1. 预测需求:根据历史数据和相关因素(如天气、季节等),预测未来的电力需求量。
2. 需求响应机制:制定需求响应机制,包括激励机制和合同设计,以鼓励用户减少用电量。
3. 用户参与度:评估用户参与需求响应的程度,包括参与率和减少用电量的程度。
4. 可靠性分析:分析需求响应对供电能力和系统可靠性的影响,评估在需求响应情况下是否能满足用户的电力需求。
5. 成本效益分析:评估需求响应机制的效益,包括节约的电力成本、减少的供电设备需求和改善的系统可靠性等方面。
通过对需求侧响应的配电网供电能力进行综合评估,可以为电力公司制定更有效的需求响应策略和合同设计提供依据,以实现可持续的供电和优化的系统运行。
1.1 电价伸缩系数分析
在经济学领域,通常采用价格伸缩系数来描述商品的需求对于价格敏感程度[50] 。电力能源作为商品,同样可以采用伸缩系数来描述电力需求和电价之间的关系。一方面,电价的变化可以影响电力客户的用电行为,进而影响用电量;另一方面,客户用电量的改变,也可以指导供电侧电价的制定,使电力企业获得更高的收益。客户用电量与电价之间的关系采用电价伸缩系数 k 来表示。k 可以定义为客户用电量波动率与价格波动率的比值,如式(2-17):
式中,p 和 m 分别表示该时刻初始的用电量和价格,∆p和∆m 分别表示该时刻的用电量和电价的改变量。实际生产生活中,电力客户的用电行受多重因素影响。一方面,当前时段电力价格的变化可能会导致当前时段用电行为的改变,产生了用电量的增减;同时,其他时段的电价变化也会对当前时段客户的用电行为产生影响,即产生了用电量的转移。所以,在分析价格伸缩性时,需要综合考虑上述两种伸缩变化[51] 。可定义第 i 时段的自伸缩系数为kii,第 i 时段对第 j 时段的互伸缩系数为kij,如式(2-18)~式(2-19)。在得到自伸缩系数kii和互伸缩系数kij后,则能形成需求侧响应电价伸缩系数矩阵 K,如式(2-20):
显然地,K 矩阵对角线元素k ff 、 k pp 、kgg 表征了当前时间电价变化与需求侧用电量之间的相互作用,是自伸缩系数;而矩阵中其他元素则表征了不同时间内电价变化与需求侧用电量的相互作用,是互伸缩系数。进一步地,在采用了分时电价之后,各个时间段用电变化量ΔP ,如式(221):
1.2 需求侧响应数学模型
对于配电网而言,如果在其允许的范围内峰值负荷过大,会导致其转带备用容量不足,负荷波动率较高,容易影响该配电网的稳定性[52] 。同时,文献[53]通过柯西-施瓦茨不等式证明了网损与最高-最低负荷比率成正比,即日内负荷的峰谷差越小,系统线损率越低。可见,缩小电网的高低负荷比率能够有效降低网损,提高系统负荷率,从而提升设备利用率。
基于上述分析,设置日最高负荷与日最高-最低负荷比率为规划目标。因为这两个目标可以从直观上判断出系统的供电能力,故也可以定义这两个规模目标为系统的显性供电能力,其值越小,系统的显性供电能力越好。规划目标如式(2-23)~式(2-24):
(1) 主观限制
某些时段过高的价格会导致客户支出过高,所以需要考虑客户负担的合理性,即在应用需求侧响应策略后客户所需负担的总费用不应升高。据此,定义客户支出合理性指标 H1,如式(2-26):
同时,在市场经济中,欲达到供需双方利益的最大化,不仅需要考虑商品的成本和用户的支出,同时也需要考虑商品是否满足需求方的舒适性。分析需求侧响应策略的削峰填谷作用可知,微观上,在采用需求侧响应策略之后,一部分客户会根据分时电价调整自身的用电安排,这会导致自身的舒适性降低,而使个人日用电需求曲线变的平缓;宏观上,电力日负荷曲线是全体电力客户当日用电情况的集中反映,当部分用户因参与需求侧响应而使得用电曲线变的平缓时,电网的日负荷曲线会随之变的平缓,日负荷标准差也会相应减小。
通过上述分析可知,负荷曲线的标准差可以从一定程度上体现客户对于需求侧响应的参与度。随着参与度的提升,负荷曲线的标准差也会在一定程度上减小,但是客户被迫调整或者削减原有的用电安排的情况就会越多,导致舒适性降低。基于上述分析,定义客户舒适性指标 H2如式(2-27):
(2) 客观限制
根据经济学相关知识可知,通常情况下商品的价格量是一个合理范围内的正数;同时,对于客户而言,为保证正常的生产生活用电需求,电力负荷高峰时的电费不可以过高;而对于供电企业而言,为保证盈利,则在电力负荷低谷时电费不能过低;此外,根据电力市场相关经验易知,商品定价时需要保证一定的价格梯度,即低谷时刻价格须比平时价格低,且平时价格也须比高峰时段价格低。客观价格边界条件如式(2-31):
1.3 粒子群算法求解
粒子群优化算法(Particle Swarm Optimization,PSO)属于进化算法的一种[54] 。这种算法与模拟退火算法相似,它是从随机解出发,通过迭代寻找最优解,同时通过适应度来描述所得解的优劣。PSO 法与遗传算法相比,不需要经过“交叉”和“变异”过程,而是跟踪当前搜索到的最优值来进行全局寻优。
PSO 算法中,每个规划目标的隐含解都是搜寻空间内的一枚粒子。所有粒子都存在由优化函数决定的适值,同时每个粒子还有一个速度决定它们“飞行”的方向和距离,全部粒子通过实时跟踪最优粒子在解空间中不断进行迭代。粒子的更新方式如图2-3 所示:
1.4 本文流程图
📚2 运行结果
2.1 风电和光伏的出力情况
2.2 峰谷时段分类
2.3 分时电价制定及负荷响应结果
本文也是粒子群算法进行求解,对于需求侧响应后负荷的变化,可根据电价伸缩系数和式(2-21)~式(2-22)计算得出。伸缩系数在工程使用时需要结合历史运行数据和当地情况并由式(2-17)~式(2-19) 计算得出。本文选择伸缩系数矩阵如式(2-37)
原文结果:
复现结果:
2.3.1 仅考虑需求响应
复现结果:
2.3.2 考虑分布式和需求响应
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]魏鹏飞. 基于需求侧响应的配电网供电能力综合评估[D].内蒙古工业大学,2019.
🌈4 Python代码、数据、文章讲解
相关文章:

【硕士论文完美复现】【价格型需求响应】基于需求侧响应的配电网供电能力综合评估(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Android Okhttp 源码浅析三
核心方法 getResponseWithInterceptorChain() internal fun getResponseWithInterceptorChain(): Response {// Build a full stack of interceptors.val interceptors mutableListOf<Interceptor>()interceptors client.interceptorsinterceptors RetryAndFollowUpI…...

一分钟学会用pygame制作棋盘背景
一分钟一个Pygame案例,这一集我们来学习一下如何生成一个视频中的棋盘背景效果,非常非常简单。 视频教程链接:https://www.bilibili.com/video/BV17G411d7Ah/ 当然我们这里是用来做页面的背景,你也可以拿来做别的效果࿰…...

Java --- 包装类
一、包装类 Java针对八种基本数据类型定义了相应的引用类型:包装类(封装类)。 二、基本数据类型与包装类的基本转换 public class WrapperTest {public static void main(String[] args) {//基本数据类型转换为包装类Boolean aBoolean new…...

[运维] wvp 28181安装部署全流程(ubuntu2204)
部署wvp 系统环境 系统版本:ubuntu2204 安装相关工具 sudo apt update ## 编译工具 sudo apt install git openjdk-11-jdk tar vim cmake gcc g libsrtp2-dev libssl-dev ## ffmepg sudo apt install ffmpeg编译zlm 编译zlm git clone https://gitee.com/xia-…...

vue实现富文本
效果图展示 一、安装依赖 npm install vue-quill-editor --save二、具体使用 html <template><!-- 富文本 --><quill-editorref"myQuillEditor"v-model"content":options"editorOption"blur"onEditorBlur($event)"…...

uniapp 开发微信小程序使用echart的dataZoom属性缩放功能不生效!bug记录!
在本项目中使用的是这个echart库 在项目中添加了dataZoom配置项但是不生效,突然想到微信小程序代码大小的限制,之前的echarts.js是定制的,有可能没有加dataZoom组件。故重新定制echarts.js。之前用的echarts版本是5.0.0,这次也是…...

用户端Web自动化测试_L4
目录: selenium多浏览器处理执行 javascript 脚本headless无头浏览器使用capability配置参数解析企业微信实战cypress测试框架介绍Playwright测试框架介绍 1.selenium多浏览器处理 多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何…...

CAPL - Panel和TestModule结合实现测试项可选
目录 一、定义脚本编号和脚本组编号 1、测试组定义 2、测试脚本编号定义...

机器学习,过拟合与欠拟合,正则化与交叉验证
目录 机器学习 过拟合与欠拟合 正则化与交叉验证 正则化 交叉验证 机器学习 的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。 不同的机器学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差(tra…...

gradio使用transformer模块demo介绍1:Text Natural Language Processing
文章目录 文本生成 Text Generation自动完成 Autocomplete情感分析 Sentiment Analysis命名实体识别 Name Entity Recognition NER多语种翻译文本生成 Text Generation import gradio as gr from transformers import pipelinegenerator = pipeline(text-generation, model=&l…...

算法通关村——数论经典问题解析
1. 辗转相除法 主要目的是获取两个数里面的最大公约数。 public int gcd(int a, int b) {int k 0;do {k a % b;a b;b k;} while (k ! 0);return a;}2. 素数和合数 素数的要求是必须大于等于2,并且只能被1和它本身整除。 判断的方法比较简单,就是从…...

代码随想录算法训练营第四十六天|LeetCode 1143,1035,53
目录 LeetCode 1143.最长公共子序列 动态规划五步曲: 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组 LeetCode 1035.不相交的线 LeetCode 53.最大子序列和(动态规划) 动态规划五步曲: 1.确定…...

leetcode 541.反转字符串II
⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/reverse-string-ii/ ps: 这道题描述的有点晦涩难懂,意思就是每隔k个反转k个,末尾不够k个时全部反转,开始就不够k个也全部反转。 代码&#…...

MyBatis与Spring整合以及AOP和PageHelper分页插件整合
目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系 二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件 3.利用mybatis逆向工程生成模型层代码 三、常用注解 四、AOP整合pageHelper分页插件 创建一个切面 测试 前言 MyBatis是一个开源的…...

《认知觉醒》读书笔记之潜意识
模糊--人生是一场消除模糊的比赛。 学习知识,消除认知模糊 掌握的工具越多,认知能力越强,消除模糊的能力就越强。 元认知-----》 如何反观自己。 刻意练习----》 如何精进自己。 运动改造大脑---》 如何激化自己的运动热情。 学习知识的…...

Stable Diffusion 系列教程 | 图生图基础
前段时间有一个风靡全网的真人转漫画风格,受到了大家的喜欢 而在SD里,就可以通过图生图来实现类似的效果 当然图生图还有更好玩的应用,我们一点一点来探索 首先我们来简单进行一下图生图的这一个实践---真人转动漫 1. 图生图基本界面 和…...

cuda编程day001
一、环境: ①、linux cuda-11.3 opecv4.8.0 不知道头文件和库文件路径,用命令查找: # find /usr/local -name cuda.h 2>/dev/null # 查询cuda头文件路径 /usr/local/cuda-11.3/targets/x86_64-linux/include/cuda.h # find /usr/…...

Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据
🎉工作中遇到这样一个需求场景:由于ES数据库中历史数据过多,占用太多的磁盘空间,需要定期地进行清理,在一定程度上可以释放磁盘空间,减轻磁盘空间压力。 🎈在经过调研之后发现,某服务…...

C++最易读手撸神经网络两隐藏层(任意Nodes每层)梯度下降230821a
// c神经网络手撸20梯度下降22_230820a.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 #include<iostream> #include<vector> #include<iomanip> // setprecision #include<sstream> // getline stof() #include<fstream…...

Leetcode 2235.两整数相加
一、两整数相加 给你两个整数 num1 和 num2,返回这两个整数的和。 示例 1: 输入:num1 12, num2 5 输出:17 解释:num1 是 12,num2 是 5 ,它们的和是 12 5 17 ,因此返回 17 。示例…...

Postman —— postman实现参数化
什么时候会用到参数化 比如:一个模块要用多组不同数据进行测试 验证业务的正确性 Login模块:正确的用户名,密码 成功;错误的用户名,正确的密码 失败 postman实现参数化 在实际的接口测试中,部分参数每…...

LeetCode--HOT100题(41)
目录 题目描述:102. 二叉树的层序遍历(中等)题目接口解题思路代码 PS: 题目描述:102. 二叉树的层序遍历(中等) 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地&am…...

微信小程序教学系列(6)
第六章:小程序商业化 第一节:小程序的商业模式 在这一节中,我们将探讨微信小程序的商业模式,让你了解如何将你的小程序变成一个赚钱的机器! 1. 广告收入 小程序的商业模式之一是通过广告收入赚钱。你可以在小程序中…...

小程序中的全局配置以及常用的配置项(window,tabBar)
全局配置文件和常用的配置项 app.json: pages:是一个数组,用于记录当前小程序所有页面的存放路径,可以通过它来创建页面 window:全局设置小程序窗口的外观(导航栏,背景,页面的主体) tabBar:设置小程序底部的 tabBar效果 style:是否…...

数据工厂调研及结果展示
数据工厂 一、背景 在开发自测、测试迭代测试、产品验收的过程中,都需要各种各样的前置数据,大致分为如下几类: 账号(实名、权益等级、注册等) 货源(优货、急走、相似、一手、普通货源等) …...

抓包相关,抓包学习
检查网络流量 - 提琴手经典 (telerik.com) Headers Reference - Fiddler Classic (telerik.com) 以上是fiddler官方文档 F12要勾选保留日志 不勾选的话跳转到新页面之前页面的日志不会在下方显示 会保留所有抓到的包 如果重定向到别的页面 F12抓包可能看不到响应信息,但是…...

云原生之使用Docker部署SSCMS内容管理系统
云原生之使用Docker部署SSCMS内容管理系统 一、SSCMS介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载SSCMS镜像五、部署SSCMS内容管理系统5.1 创建SSCMS容器5.2 检查SSC…...

uniapp -- 在组件中拿到pages.json下pages设置navigationBarTitleText这个值?
1:在 pages.json 文件中设置 navigationBarTitleText,例如: {"pages": [{"path": "pages/home/index","style": {"navigationBarTitleText": "首页",&...

Java获取环境变量和运行时环境信息和自定义配置信息
System.getenv() 获取系统环境变量 public static void main1() {Map<String, String> envMap System.getenv();envMap.entrySet().forEach(x-> System.out.println(x.getKey() "" x.getValue())); } System.getenv() 获取的是操作系统环境变量列表&…...