微电网和直流电网中最优潮流(OPF)的凸优化(Matlab代码实现)

news2024/10/5 10:01:19

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

目录

1 概述

2 最优潮流

3 电力系统强大的CVX 

4 直流电网中最优潮流(OPF)的凸优化 

4.1 Matlab代码

4.2 运行结果

5 微电网中最优潮流(OPF)的凸优化 

5.1 Matlab代码

5.2 结果

6 写在最后 


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

1 概述

微电网有望在未来的智能电网概念中发挥基本作用。特别是直流微电网,由于其在效率、可靠性和可控性方面的优势,正获得越来越多的关注。直流微电网由于没有无功功率或频率控制,因此可以实现高效率和简化控制;由于具有孤岛运行的能力,因此可以实现高可靠性;由于许多发电和存储技术已经是直流的(如太阳能光伏发电、电池),因此可以实现简单的集成。此外,大多数家用电器可以适应直流操作。在一个典型的直流微电网中,电力电子转换器可以作为恒定电流或恒定功率运行。在后一种情况下,电网的模型变成了非线性的,需要用功率流算法进行静止状态分析。这个问题是非线性/非凸性的,需要用数值算法来解决。当然,由于问题的非线性性质,这类算法的收敛性并不总是得到保证。一个算法甚至可能发散或趋向于一个不现实的解决方案。
 

2 最优潮流

最优潮流(OPF)是指在满足电网约束的同时,以最小的成本将负荷分配给电厂。描述为在满足网络(潮流)约束的情况下最小化所有承诺的工厂的总燃料成本的优化问题。

更多知识点查看:最优潮流

3 电力系统强大的CVX 

本文程序需要安装CVX,我在前面的文章对这一强大工具进行讲解:

电力系统强大的CVX学习(Matlab&Python)

4 直流电网中最优潮流(OPF)的凸优化 

4.1 Matlab代码

%% 直流电网中最优潮流(OPF)的凸优化

clc
clear all
Vnom = 400E3;
Pnom = 1E9;
Znom = Vnom*Vnom/Pnom;
%% 线路数据
%       N1  N2 Ohm      
Lines =[1 2  3.42
        2 3  2.28        
        2 4  5.70
        3 4  4.56
        4 5  1.90
        3 6  1.90
        5 6  2.85];
Lines(:,3) = Lines(:,3)/Znom;  % in pu
%% 节点数据
% Node Pmin(kW) Pmax(MW) Droop(pu)
Nodes =[1    -2400   2400   0.50
        2        0      0   0.00
        3    -2400   2400   0.50
        4    -2400   2400   0.50 
        5      800    800   0.00 
        6     1600   1600   0.00];     
Nodes(:,2:3) = Nodes(:,2:3)*1E6/Pnom;
NumE = length(Lines(:,1));  %线路数 
NumN = length(Nodes(:,1));  % 节点数
Pmin = Nodes(:,2);
Pmax = Nodes(:,3);
H    = Nodes(:,4);
%% 矩阵G
G = zeros(NumN,NumN); 
for k = 1:NumE
    n1 = Lines(k,1);
    n2 = Lines(k,2);
    gkm = 1/(Lines(k,3));
    G(n1,n1) = G(n1,n1) + gkm;
    G(n2,n2) = G(n2,n2) + gkm;
    G(n1,n2) = G(n1,n2) - gkm;
    G(n2,n1) = G(n2,n1) - gkm;
end
%不考虑松弛节点,因此节点数等于线数,因为网格是径向的。
U = ones(NumE,1);

%% 电力系统强大的求解器CVX

cvx_begin
    variable V(NumN);
    variable P(NumN);
    minimize (V'*G*V);
    subject to
      P == G*V-sum(G)' + V.*sum(G)';
      P <= Pmax;
      P >= Pmin;
      V >= 0.9;
cvx_end
[V, P]
% 
U = ones(NumN,1);
V = U;
P = diag(V)*(G*V)+H.*(U-V);
tic
for k = 1:10
cvx_begin quiet
    variable dV(NumN);
    variable dP(NumN);
    minimize ((V+dV)'*G*(V+dV));
    subject to
    -[diag(H)-diag(V)*G-diag(G*V)]*dV == dP;
    P+dP-H.*(U-V)+H.*dV <= Pmax;
    P+dP-H.*(U-V)+H.*dV >= Pmin;
    V+dV >= 0.9;
    V+dV <= 1.1;    
cvx_end
if norm([dV;dP])<1E-5
    break
end
disp('-----------------------------------------------');
disp(k);
disp(cvx_status);
disp(cvx_optval);
V = V + dV;
P = diag(V)*(G*V)+H.*(U-V);
disp([dV, dP, V, P])%
gr(k) = cvx_optval;
end
toc
%% 可视化
plot(gr,'Color','r','Marker','*','LineWidth',2);
grid on;

4.2 运行结果

5 微电网中最优潮流(OPF)的凸优化 

5.1 Matlab代码

%% 微电网中最优潮流(OPF)的凸优化
clc
clear all
R = 1.5E-3;
Vnom = 380;
Pnom = 1000;
Znom = Vnom*Vnom/Pnom;
%% 线路数据
%       N1  N2 lenght(m)      
Lines =[1 2  50
        2 3  15
        2 4  20
        4 5  18
        2 6  23
        6 7  17
        7 8  21
        7 9  13
        8 10 15];
Lines(:,3) = Lines(:,3)*R/Znom;  % in pu
%% 节点数据
% Node Pmin(kW) Pmax(kW) Droop(pu)
Nodes =[1    0.00   0.00   0.00
        2  -10.00  -7.50   0.50 
        3  -10.00  -6.30   0.60
        4    0.00  10.00   0.50
        5  -10.00  -8.00   0.50  
        6  -10.00  -9.00   0.60
        7    0.00   9.00   0.50
        8    0.00   9.00   0.60
        9    0.00   9.00   0.50
        10 -10.00  -5.50   0.60];     
Nodes(:,2:3) = Nodes(:,2:3)/Pnom*1000;
NumE = length(Lines(:,1));  % 线路数  
NumN = length(Nodes(:,1));  % 节点数
Pmin = Nodes(:,2);
Pmax = Nodes(:,3);
H    = Nodes(:,4);
%% 矩阵G
G = zeros(NumN,NumN); 
for k = 1:NumE
    n1 = Lines(k,1);
    n2 = Lines(k,2);
    gkm = 1/(Lines(k,3));
    G(n1,n1) = G(n1,n1) + gkm;
    G(n2,n2) = G(n2,n2) + gkm;
    G(n1,n2) = G(n1,n2) - gkm;
    G(n2,n1) = G(n2,n1) - gkm;
end
%不考虑松弛节点,因此节点数等于线数,因为网格是径向的。
U = ones(NumE,1);
%% 电力系统强大的求解器CVX
cvx_begin
    variable V(NumN);
    variable P(NumN);
    minimize (V'*G*V);
    subject to
      P == G*V-sum(G)' + V.*sum(G)';
      P <= Pmax;
      P >= Pmin;
      V >= 0.9;
cvx_end
[V, P]
% 
U = ones(NumN,1);
V = U;
P = diag(V)*(G*V)+H.*(U-V);
for k = 1:10
cvx_begin quiet
    variable dV(NumN);
    variable dP(NumN);
    minimize ((V+dV)'*G*(V+dV));
    subject to
    -[diag(H)-diag(V)*G-diag(G*V)]*dV == dP;
    P+dP-H.*(U-V)+H.*dV <= Pmax;
    P+dP-H.*(U-V)+H.*dV >= Pmin;
    V+dV >= 0.9;
    V+dV <= 1.1;    
cvx_end
if norm([dV;dP])<1E-4
    break
end
disp('-----------------------------------------------');
disp(k);
disp(cvx_status);
disp(cvx_optval);
V = V + dV;
P = diag(V)*(G*V)+H.*(U-V);
disp([dV, dP, V, P])
gr(k) = cvx_optval;
end
%% 可视化
plot(gr,'Color','r','Marker','*','LineWidth',2);
grid on;

5.2 结果

 

6 写在最后 

部分理论引用网络文献,若有侵权请联系博主删除。 

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

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

相关文章

go gin web综合教程,包括 mysql redis log 路由

前言 在学习go许久&#xff0c;没看到网上有比较综合的gin web教程&#xff0c;很多都是最基础的教程&#xff0c;完全就是启动个服务返回参数&#xff0c;没有过多的结合实际开发。下面我结合一下我的经验&#xff0c;来写一篇深入的综合教程&#xff0c;包括数据库Mysql、re…

JMeter启动时常见的错误

很多小伙伴在学工具这一块时&#xff0c;安装也是很吃力的一个问题&#xff0c;之前记得有说过怎么安装jmeter这个工具。那么你要启动jmeter的时候&#xff0c;一些粉丝就会碰到如下几个问题。 1.解压下载好的jmeter安装&#xff0c;Windows 平台&#xff0c;双击 jmeter/bin …

基于python实现的SGM半全局立体匹配算法

文章目录前言一、SGM是什么&#xff1f;1.代价计算2.代价聚合3.视察计算4.视察优化二、基于python实现SGM算法&#xff1f;总结前言 开始正是入门立体匹配算法啦&#xff0c;会不断更新立体匹配的算法和代码。   水平有限&#xff0c;旨在先了解和读懂别人的代码的实现方式&a…

3D立体匹配入门 - 视差计算

经典假设 1、左右视图成功匹配的窗口&#xff0c;具有相同的像素 这个是最经典的假设&#xff0c;几乎所有视差图计算都用上了他&#xff0c;通过匹配左右窗口像素&#xff0c;得到最佳匹配对应的x轴坐标差&#xff0c;就是视差 2、像素P的视差只与其领域有关 这个是基于马尔…

外汇天眼:即使与世界第一的差价合约提供商交易也会被骗!

你能想象&#xff0c;当你与世界第一的差价合约提供商进行交易时&#xff0c;也可能会被骗吗&#xff1f; 在投资理财多元化的今天&#xff0c;外汇投资理财也备受大家的关注&#xff0c;而与此同时&#xff0c;骗子的诈骗渠道也与时俱进&#xff0c;各类外汇投资骗局也层出不穷…

VMware Workstation 17.0 Pro SLIC Unlocker for Linux

VMware_Dell_2.6_BIOS-EFI64_Mod&#xff1b;macOS Unlocker&#xff0c;支持 macOS Ventura 请访问原文链接&#xff1a;VMware Workstation 17.0 Pro SLIC & Unlocker for Windows & Linux&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&a…

多模式直方图的视网膜图像增强

论文题目&#xff1a;Retinal Image Enhancement in Multi-Mode Histogram 1 摘要 视网膜图像的评估被广泛用于帮助医生诊断许多疾病&#xff0c;如糖尿病或高血压。从采集过程来看&#xff0c;视网膜图像往往具有较低的灰度对比度和动态范围。本文提出了一种基于直方图分析的…

MySQL回表

1.索引结构 1.1.B-Tree(B树)和BTree(B树) 前面是B-Tree,后面是BTree,两者的区别在于: B-Tree中,所有的节点都会带有指向具体记录的指针;BTree中只有叶子节点才会带有指向具体记录的指针;B-Tree中,不同的叶子之间没有连在一起;BTree中所有的叶子节点通过指针连接在一起;B-Tree中…

java版商城之 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

一个好的SpringCloudSpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案&#xff1f;以下是我结合公司的产品做的总结&#xff0c;希望可以帮助到大家&#xff01; 搜索体验小程序&#xff1a;海哇 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买…

浴室预约小程序毕业设计,洗澡预约澡堂预约系统设计与实现,微信小程序毕业设计论文怎么写毕设源码开题报告需求分析怎么做

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信小程序浴室预约系统&#xff0c;前台用户使用小程序&#xff0c;后台管理使用JavaMysql开发&#xff0c;后台使用了springboot框架&#xff1b;通过后台添加设定浴室类型、录入浴室和管理浴室、管理…

CTPN+CRNN算法端到端实现文字识别的实战开发

本文分享自华为云社区《CTPNCRNN 算法端到端实现文字识别》&#xff0c;作者&#xff1a;HWCloudAI。 OCR介绍 光学字符识别&#xff08;英语&#xff1a;Optical Character Recognition&#xff0c;OCR&#xff09;是指对文本资料的图像文件进行分析识别处理&#xff0c;获取…

Java规则引擎Drools急速入门

文章目录1.Drools规则引擎简介2.Drools API开发步骤3.SpringBoot整合Drools案例4.Drools基础语法5.Drools条件语法部分6.Drools结果操作部分7.Drools内置属性部分8.Drools高级语法部分1.Drools规则引擎简介 &#xff08;1&#xff09;什么是规则引擎 ​ 全称为业务规则管理系…

类与对象(上篇)

类与对象面向过程和面向对象类的引入类的定义类的访问限定符及封装访问限定符封装类的作用域类的实例化类对象类对象的存储方式类成员函数的this指针this指针的引出this指针的特性面向过程和面向对象 C语言是面向过程&#xff0c;注重的是过程&#xff0c;先分析求解问题的步骤…

【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)

觉得有帮助请点赞关注收藏~~~ 一、基于候选区域的目标检测算法 基于候选区域的深度卷积神经网络&#xff08;Region-based Convolutional Neural Networks&#xff09;是一种将深度卷积神经网络和区域推荐相结合的物体检测方法&#xff0c;也可以叫做两阶段目标检测算法。第一…

Web大学生网页作业成品——环保垃圾分类网站设计与实现(HTML+CSS+JavaScript) web前端开发技术 web课程设计 网页规划与设计

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

RFID标签让企业海量固定资产实现科学化管理

近年来&#xff0c;随着物联网、IoT、移动技术、云计算技术的成熟&#xff0c;越来越多的企业开始使用RFID标签管理企业海量的固定资产。优化固定资产标准化管理流程&#xff0c;有效管理和库存固定资产&#xff0c;进一步提高企业实物资产管理和库存效率。 包括资产申购、验收…

【操作系统】计算机大脑CPU

1.CPU组成机构和存储器层级 &#xff08;1&#xff09;CPU是计算机硬件系统的核心部件-大脑 结构&#xff1a;运算器控制器&#xff08;两个部件里面有寄存器组&#xff09;通过CPU内部的总线进行通信 &#xff08;2&#xff09;单核CPU架构 控制器Control Unit简称【CU】 …

Python使用Opencv图像处理方法完成手势识别(二)

Opencv完成手势识别根据坐标识别寻找最低点计算其他点与最低点的距离通过距离阈值判断手指根数和手势效果展现完整代码当我们把手近似出来后会得到一组轮廓的点坐标&#xff0c;我自己手势识别的思路就是根据点坐标来判断手势。根据坐标识别 寻找最低点 所谓寻找最低点&#…

浅谈Nacos注册中心集群分布式架构设计

前言 Nacos的压测性能是非常好的&#xff0c;这里是Nacos官方的压测报告。3节点(CPU 16核&#xff0c;内存32G)规模集群&#xff0c;压测容量服务数可达60W&#xff0c;实例注册数达110W&#xff0c;集群运行持续稳定&#xff0c;达到预期&#xff1b;注册/查询实例TPS达到 13…

ModStartBlog v6.3.0 任务调度重构,UEditor 升级

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键…