含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法)

news2025/7/14 10:54:49

含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法)
参考文献:含分布式电源的配电网日前两阶段优化调度模型

摘要:在电力市场环境下,供电公司通过对接入配电网的分布式电源(distributed generation,DG)的优化调度,能够有效地降低其运行成本,规避市场竞争环境下的风险。提出了一种电力市场环境下供电公司日前优化调度的 2 阶段模型:第 1 阶段为 DG 优化调度阶段,根据市场电价、DG运行成本、签订可中断负荷(interruptable load,IL)合同的价格来确定 DG 的机组组合、从大电网的购电量及 IL 削减量;第 2 阶段为无功优化阶段,在第 1 阶段的基础上,考虑 DG 的无功出力特性,通过优化 DG 和无功补偿装置的出力调节电压使其在规定的范围内且配电网的网损最小。通过基于修改的 IEEE 33 节点系统的仿真计算,表明所提出的日前 2 阶段优化调度模型能够有效降低供电公司的运行成本。
关键词:电力市场;分布式电源;机组组合;可中断负荷;无功补偿;配电网

1 日前无功优化阶段
日前第 2 阶段在考虑具体配电网络结构的基础上,通过无功出力的调整使得电网各节点的电压不越限,同时使得配电网在运行阶段的网络损耗最小,因此本质上是一个无功优化问题。日前无功优化阶段是在日前经济调度的基础上,对于每个时段进行无功优化,从而保证各节点电压不越限。本文在进行无功优化时,充分考虑了接入到配电网中的 DG无功输出能力。由于日前调度阶段确定了大电网的购电量、DG 和 IL 的状态,因此该阶段无功优化的控制量为 DG 的无功补偿容量和无功补偿设备的出力,负荷的节点电压作为状态变量。
2.1 DG 无功出力光伏发电、燃料电池等通过逆变器并入电网的DG 以及微型燃气轮机、生物质能发电系统等以励磁电压可调型同步发电机形式直接并入电网的 DG均具有一定的无功容量,在向电网输送有功功率的同时,也能输送一定容量的无功功率。
1)风力发电
随着风力发电技术的大力发展,变速恒频双馈风电机组(doubly-fed induction generator,DFIG)逐渐成为风力发电的主流,转子由变流器提供交流励磁控制,实现变速恒频及输出有功和无功的解耦控制,双馈风电机组能够按系统调度在其容量范围内发出或吸收无功。
2)光伏
光伏发电系统通过逆变器并网,对并网逆变器进行控制,使得 DG 在向电网提供有功功率的同时也能够提供电网所需的无功功率。光伏能够提供的无功功率容量为
在这里插入图片描述
式中:Q 代表光伏提供的无功功率;Smax 代表光伏并网逆变器能提供的最大视在功率; Pact 代表光伏并网逆变器提供的有功功率。就光伏电站实际的发电数据来看,一般的光伏逆变器很少运行在满容量状态,绝大多数情况下最多只能有 80%的无功输出,根据式(10),此时尚有60%的无功额度可用。光伏在夜间的有功出力为 0,其接口容量均可用于无功调节。
3)常规 DG
对于柴油机、燃气轮机等常规 DG,同传统的同步电机一样,其有功出力稳定,无功输出由励磁系统控制。日前调度阶段没有考虑具体的网络结构,因此连接DG和IL的节点处的电压容易产生越限的问题,尤其是极端天气情况下风电、光伏有功出力波动很大,导致无功出力同样具有很大的波动性,需要供电公司根据第 2 阶段无功优化提前确定配电网络节点电压是否有可能越限,并及时采取有效措施(特殊情况时需要在日前额外增加无功补偿装置)。

2.2 目标函数
无功优化的目标函数是使得配电网有功网损最小,同时加入对负荷节点电压越限的罚函数。目标函数如下​
在这里插入图片描述
式中: Plost 为系统的有功网损;λ 为节点电压越限罚系数;n 表示配电网负荷节点数;Ui 、Ui,max 、Ui,min 分别为节点 i 的电压及上、下限值。

2.3 约束条件
1)潮流约束。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 算例
用修改后的 IEEE 33 节点配电系统来验证所提出的日前调度模型的有效性。假设 3 个可调DG(本文采用柴油发电机)分别连接在 7、24、25 号节点上,风机和光伏分别接在 14 和 31 节点上,IL用户接在 8、25 号节点上,3 个无功补偿装置分别接在 8、30、32 号节点上,如图 2 所示。
在这里插入图片描述

3 matlab程序运行结果
1)各dg出力
在这里插入图片描述

2)优化前后网损
在这里插入图片描述
4 matlab程序

%% 无功优化(最优潮流)例子
% 参考文献:孟晓丽 含分布式电源的配电网日前两阶段优化

clc; 
clear; 
close all; 

%% 设置一些参数
global hour % 全局变量在主函数里被赋值,在 mocase33.m 被调用

Qdg_max=0.5; % 柴油机的无功出力最大值
Qc_max=1; % 无功补偿装置的无功出力最大值
Qwt_max=0.1; % 风电机无功出力最大值
Qpv_max=0.1; % 光伏电池的无功出力最大值

nVar=8;             % Number of Decision Variables
VarMin=0;       % Lower Bound of Variables
VarMax=[Qdg_max*ones(1,3), Qc_max*ones(1,3), Qwt_max, Qpv_max];% Upper Bound of Variables
MaxIt=30;     % 最大迭代次数,为了快减到了30
nPop=50;        % Population Size (Swarm Size)

%% 调用粒子群算法每小时做无功优化
bestPosition=zeros(24,8); % 决策变量最优解
fitValue=zeros(24,1); % 最优目标函数值(最小的损耗值)
for  hour =1:24
    disp(['************      hour=',num2str(hour), '     **************'])
    [ bestPosition( hour,:), fitValue( hour) ] = ...
    PSOFUN( @Fitnessfun,nVar,VarMin,VarMax,MaxIt,nPop );
end

%% 对比试验
% 没有无功功率补偿的计算结果
for hour =1:24
    option=mpoption('verbose',0,'out.all',0); % 关掉MATPOWER的结果显示
    [result_duibi, ~]=runpf('mocase33_duibi', option); % 解释见目标函数
    Pgrid = result_duibi.branch(1,14);    % 解释见目标函数
    Pload = sum(result_duibi.bus(:,3));   % 解释见目标函数
    Loss_duibi(hour) = Pgrid-Pload; % 每个小时总的功率损耗
end

%% 画图
Qdg = bestPosition(:, 1:3);  % 24小时 柴油机的无功出力 优化结果
Qc = bestPosition(:, 4:6);     % 24小时 无功补偿装置的无功出力 优化结果
Qwt = bestPosition(:, 7);     % 24小时 风电机无功出力 优化结果
Qpv = bestPosition(:, 8);     % 24小时 光伏电池的无功出力 优化结果

t=1:24;
figure(1)
hold on
stairs(sum(Qdg,2),'LineWidth',1.5)
stairs(sum(Qc,2),'LineWidth',1.5)
stairs(Qwt,'LineWidth',1.5)
stairs(Qpv,'LineWidth',1.5)
grid on
xlabel('time / h')
ylabel('Reactive power / MW')
title('各类无功电源出力优化结果')
legend('Qdg', 'Qc', 'Qwt','Qpv')

figure(2)
hold on 
plot(t, fitValue,'ob-')
plot(t, Loss_duibi,'ok-')
grid on
xlabel('time / h')
ylabel('Power Loss / MW')
title('有无无功补偿的损耗对比')
legend('有补偿且出力优化','没有无功补偿')

.。。。。。。。略


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

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

相关文章

MyBatis基础

一什么是MyBatis 1 什么是myBatis MyBatis框架也被称之为ORM(Object/Relation Mapping,即对象关系映射)框架。所谓的ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关…

Node.js 入门教程 6 V8 JavaScript 引擎

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Node.js 入门教程6 V8 JavaScript 引擎6.1 其他 JS 引擎6.2 追求性能6.3 编译6 V8 JavaScript 引擎 V8 是驱动 Google Chrome 的 JavaScrip…

【小5聊】纯javascript实现图片放大镜效果

实现图片放大镜效果,其实就是一个比例放大的效果 以下通过纯javascript方式对图片进行等比例放大,等比倍数和出界判断可自行实现 文章后面会附上全部代码 放大镜效果 1、 放大镜组成 1)目标图片,一般是小图 2)鼠标移…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【01】分布式基础概念_环境搭建_Docker的使用

持续学习&持续更新中… 学习态度:守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【01】分布式基础概念微服务集群&分布式&节点远程调用负载均衡服务注册/发现&注册中心配置中心服务熔断&降级API网关虚拟机环境搭建安装vagrant和virt…

gcc编译器

1. GCC工具 GCC编译器: GCC(GNU Compiler Collection)是由 GNU 开发的编程语言编译器。 GCC最初代表“GNU C Compiler”,当时只支持C语言。 后来又扩展能够支持更多编程语言,包括 C、Fortran 和 Java 等。 因此&#…

网站页面模仿学习

一、代码部分 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>cdcas</title> </head> <style>*{margin: 0;padding: 0;}.container{text-align: center;}.top{margin: auto;text-align: center;}.nav{…

pdf编辑器软件,分享一款考编用的pdf软件,挺合适的!

对于大部分人来说&#xff0c;最好的工作莫过于公务员、事业单位、国企&#xff0c;此类所谓的金饭碗、铁饭碗。工资收入处于中上水平&#xff0c;且朝九晚五。 不过想要获得这样的编制绝非易事&#xff0c;需要参加统考&#xff0c;经过层层选拔。很多年轻人感叹苦海无编&…

现代密码学导论-17-伪随机函数

目录 3.5.1伪随机函数的非正式定义 |Func_n| 有多大&#xff1f; DEFINITION 3.24 伪随机函数的正式定义 Example 3.25 一个不安全的反例 3.5.1伪随机函数的非正式定义 伪随机函数&#xff08;PRFs&#xff09;推广了伪随机发生器的概念。 F : {0, 1}∗ {0, 1}∗→ {0, 1…

Linux进程管理【进程的相关介绍片、ps、 kill 、pstree】【详细整理】

目录进程相关介绍显示系统执行的流程 psps 详解![请添加图片描述](https://img-blog.csdnimg.cn/cd9f10bf36684b419f2f94068afb9a03.png)案例终止进程kill 和 killall基本语法常见选型案例查看进程数pstreepstree [选项]&#xff0c;可以更加直观的来查看进程信息进程相关介绍 …

【无线传感器】使用 Mamdani 模糊推理系统改进无线传感器网络路由和数据包传递附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【语音去噪】谱减法+维纳滤波语音去噪(带面板+信噪比)【含GUI Matlab源码 1661期】

⛄一、简介 1 维纳滤波法 维纳滤波法(wiener filter)也是一个比较经典的传统做法&#xff0c;它的本质是估计出一个线性滤波器&#xff0c;也就是一个向量&#xff0c;这个滤波器会对不同的频段进行不同程度的抑制&#xff0c;其保真效果会比谱减法要好一些。 我们这里不会讲…

8.4 数据结构——选择排序

8.4.1 简单选择排序 基本思想&#xff1a;在待排序的数据中选出最大&#xff08;小&#xff09;的元素放在其开始的位置。 基本操作&#xff1a; &#xff08;1&#xff09;首先通过n-1次关键字比较&#xff0c;从n个记录中找出关键字最小的记录&#xff0c;将它与第一个交换…

Pytorch 中Label Smoothing CrossEntropyLoss实现

一. 前言 一般情况下我们都是直接调用Pytorch自带的交叉熵损失函数计算loss&#xff0c;但涉及到魔改以及优化时&#xff0c;我们需要自己动手实现loss function&#xff0c;在这个过程中如果能对交叉熵损失的代码实现有一定的了解会帮助我们写出更优美的代码。 其次是标签平…

Day13--自定义组件-封装自定义属性和click事件

提出问题&#xff1a; 当前我们search搜索框的背景颜色和圆角边框都是写死的&#xff0c;使用者没有办法修改器背景颜色和圆角尺寸。那么为了让这个组件更加通用性强一些。 ***********************************************************************************************…

用DIV+CSS技术设计的个人电影网站(web前端网页制作课作业)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

框架体系——Spring

Spring IOC IOC控制反转 IOC 控制反转&#xff0c;全称Inverse of Control&#xff0c;是一种设计理念由代理人来创建和管理对象&#xff0c;消费者通过代理人来获取对象Ioc的目的是降低对象之间的耦合通过加入Ioc容器将对象统一管理&#xff0c;将对象关联变为弱耦合。 DI…

MyBatis中有哪些注解呢?

转自: MyBatis中有哪些注解呢&#xff1f; 为了简化 XML 的配置&#xff0c;MyBatis 提供了注解。我们可以通过 MyBatis 的 jar 包查看注解&#xff0c;如下图所示。 以上注解主要分为三大类&#xff0c;即 SQL 语句映射、结果集映射和关系映射 下面分别进行讲解 一、SQL 语句…

Allegro中如何进行尺寸标注

摘要本文介绍了如何在Allegro中进行尺寸标注&#xff0c;包含各种标注样式的区别、如何设置参数、如何显示单位、如何导出带尺寸的PDF与DXF等信息。 一. 为什么要尺寸标注PCB尺寸标注的作用&#xff1a; 方便设计人员明确板子的大小&#xff0c;以及安装位置的各种细节&#xf…

react学习笔记3--数据双向绑定,组件通信

一、表单处理 1、受控组件-input元素 通过设置input元素的value值&#xff08;或复选框的checked值&#xff09;实现Getter&#xff0c;通过监听onChange事件实现Setter&#xff0c;从而实现数据双向绑定。 class element extends React.Component {state {txt:""…

vulhub靶场搭建与使用

vulhub靶场搭建与使用1.前言2.配置yum源2.1备份原来的源文件2.2 配置阿里源2.3重置yum源2.4更新yum源3.安装docket3.1安装docket3.2启动docket3.3设置国内镜像源3.4重启docket4.安装docker-compose4.1安装dockers-compose4.2提升权限5.安装vulhub5.1安装git5.2下载vulhub5.3下载…