【电力系统】基于YALMIP 的微网(光伏+风电+蓄电池+微电网+柴油机)优化调度模型附matlab代码

news2024/12/26 23:10:34

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

 

⛄ 部分代码

%% 请先确保YALMIP工具箱和CPLEX正确安装,MATLAB导入对应文件,否则无法运行程序!!

%% 初始化

clc;

clear all;close all;

%yalmip;

%Cplex;

%% 各变量及常量定义

%------------------------变量定义-----------------------%

Pw=sdpvar(1,24,'full'); %风机出力

Ppv=sdpvar(1,24,'full');%光伏出力

Pbat=sdpvar(1,24,'full');%蓄电池出力

% Pde=sdpvar(1,24,'full');%柴油机组出力

Pnet=sdpvar(1,24,'full');%交换功率

Pbuy=sdpvar(1,24,'full');%从电网购电电量

Psell=sdpvar(1,24,'full');%向电网售电电量

Temp_net=binvar(1,24,'full'); % 购|售电标志

Temp_cha=binvar(1,24,'full'); %充电标志

Temp_dis=binvar(1,24,'full'); %放电标志

Temp_static=binvar(1,24,'full'); %电池静置标志

% Temp_de=binvar(1,24,'full'); %柴油机发电标志

Pcha=sdpvar(1,24);

Pdis=sdpvar(1,24);

Constraints = [];

%-------------------------常量定义-----------------------%

Load=[88.24  83.01  80.15  79.01  76.07  78.39  89.95  128.85  155.45  176.35  193.71  182.57  179.64  166.31  164.61  164.61  174.48  203.93  218.99  238.11  216.14  173.87  131.07  94.04];

%风机预测出力

Pw=[66.9 68.2 71.9 72 78.8 94.8 114.3 145.1 155.5 142.1 115.9 127.1 141.8 145.6...

    145.3 150 206.9 225.5 236.1 210.8 198.6 177.9 147.2 58.7];

%光伏预测出力

Ppv=[0 0 0 0 0.06 6.54 20.19 39.61 49.64 88.62 101.59 66.78 110.46 67.41 31.53...

    50.76 20.6 22.08 2.07 0 0 0 0 0];

%分时电价

C_buy=[0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.53 0.53 0.53 0.82 0.82...

    0.82 0.82 0.82 0.53 0.53 0.53 0.82 0.82 0.82 0.53 0.53 0.53];

C_sell=[0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.42 0.42 0.42 0.65 0.65...

    0.65 0.65 0.65 0.42 0.42 0.42 0.65 0.65 0.65 0.42 0.42 0.42];

%储能电池参数定义

Ebattery = 300;

soc0     = 0.5;

socmin   = 0.3;

socmax   = 0.95;

Pcs      = 40 ;

POWER    = 160 ;

figure;

plot(Load      ,'r-*','LineWidth',1.5);

axis([1 24 0 240]) ;

xlabel('时间(h)','FontSize',14);

set(gca,'xTick',(1:2:24),'yTick',(0:40:240));

ylabel('功率(kw)','FontSize',14);

hold on; 

plot(Pw        ,'g-d','LineWidth',1.5);

axis([1 24 0 240]) ;

xlabel('时间(h)','FontSize',14);

set(gca,'xTick',(1:2:24),'yTick',(0:40:240));

ylabel('功率(kw)','FontSize',14);

hold on; 

plot(Ppv      ,'b-o','LineWidth',1.5);

axis([1 24 0 240]) ;

xlabel('时间(h)','FontSize',14);

set(gca,'xTick',(1:2:24),'yTick',(0:40:240));

ylabel('功率(kw)','FontSize',14);

legend('电负荷','风机预测出力','光伏预测出力');

%% 约束

for k = 1:24

  Constraints = [Constraints, -POWER<=Pnet(1,k)<=POWER,0<=Pbuy(1,k)<=POWER, -POWER<=Psell(1,k)<=0]; %主网功率交换约束,不大于160kW

  Constraints = [Constraints,Pnet(1,k)+Pw(1,k)+Ppv(1,k)==Load(1,k)+Pbat(1,k)];              %功率平衡约束   ,电网+风电+光伏 = 负载 + 电池充电

  Constraints = [Constraints, implies(Temp_net(1,k),[Pnet(1,k)>=0,Pbuy(1,k)==Pnet(1,k),Psell(1,k)==0])]; %购电情况约束   Pnet>0是购电,Pnet<0是售电电,

  Constraints = [Constraints, implies(1-Temp_net(1,k),[Pnet(1,k)<=0,Psell(1,k)==Pnet(1,k),Pbuy(1,k)==0])]; %售电情况约束

%----------------------蓄电池约束--------------------%

% sum_bat=zeros(1,24);

  Constraints = [Constraints, -Pcs<=Pbat(1,k)<=Pcs,0<=Pcha(1,k)<=Pcs,-Pcs<=Pdis(1,k)<=0];%电池充放电约束,PCS功率是40kW

  Constraints = [Constraints, implies(Temp_cha(1,k),[Pbat(1,k)>=0,Pcha(1,k)==Pbat(1,k),Pdis(1,k)==0])];%充电情况约束

  Constraints = [Constraints, implies(Temp_dis(1,k),[Pbat(1,k)<=0,Pdis(1,k)==Pbat(1,k),Pcha(1,k)==0])];%放电情况约束

  Constraints = [Constraints, implies(Temp_static(1,k),[Pbat(1,k)==0,Pdis(1,k)==0,Pcha(1,k)==0])];%静置情况约束

  Constraints = [Constraints,Temp_cha(1,k)+Temp_dis(1,k)+Temp_static(1,k)==1];

%    sum_bat(1,k+1)=sum_bat(1,k)+Pcha(1,k)+Pdis(1,k);%计算SOC

  Constraints=[Constraints,Ebattery*(socmin - soc0)<=sum(Pdis(1,1:k)+Pcha(1,1:k))<=Ebattery*(socmax - soc0)] ;%SOC约束,电池容量300kwh,初始S0C为0.4,0.3<=SOC<=0.95

end

  Constraints=[Constraints,sum(Pdis+Pcha)==0] ;%ST=S0,始末SOC相等约束

%% 目标函数

 F=0;

%------------------总费用--------------------%

for k = 1:24

  F = F + 0.52*Pw(:,k)+0.72*Ppv(:,k)+C_buy(:,k)*Pbuy(:,k)+C_sell(:,k)*Psell(1,k)+0.2*Pdis(1,k);

end

ops=sdpsettings('solver', 'cplex');%参数指定程序用cplex求解器

optimize(Constraints,F,ops);

disp(['总费用=']);value(F) 

%% 画图

x=1:24;

PP=[Pbuy;-Pdis;Pw;Ppv];

PP_neg=[Psell;-Pcha];

figure

bar(PP','stack');hold on;

bar(PP_neg','stack');hold on;

plot(x,value(Load),'r','linewidth',2);

xlabel('时间(h)','FontSize',16);

set(gca,'xTick',(1:2:24),'yTick',(0:50:300));

ylabel('功率(kw)','FontSize',16);

legend('电网购电','蓄电池放电','风机出力','光伏出力','电网售电','蓄电池充电','负荷');

hold off;

figure

plot(x,value(Pbuy+Psell),'r-*','LineWidth',1.5);

hold on;

plot(x,value(Pdis+Pcha),'b-o','LineWidth',1.5);

hold off;

xlabel('时间(h)','FontSize',16);

set(gca,'xTick',(1:2:24),'yTick',(-120:20:60));

ylabel('功率(kw)','FontSize',16);

legend('电网交互功率曲线','储能交互功率曲线');

soc = zeros(1,25);

s = zeros(1,25);

soc(1)=soc0;

for k=1:24

    s(k)=value(sum(Pdis(1,1:k)+Pcha(1,1:k)))/Ebattery+soc0;

    soc(k+1)=s(k);

end

soc(1)=soc0;

xx=0:24;

figure

% yyaxis left

subplot(211)

plot(xx,soc,'b-*','LineWidth',1.5);

hold on

ylabel('soc值');

title('SOC曲线')

% yyaxis right

subplot(212)

bar(Pdis',0.5,'stack')

hold on

bar(Pcha',0.5,'stack')

xlabel('时间(h)');

title('蓄电池SOC状态');

legend('电池充电','电池放电');

⛄ 运行结果

⛄ 参考文献

[1]孔得壮. 计及动态需求响应的热电联产型微网竞价优化策略[D]. 重庆大学, 2019.

[2]王怡云, 吴雷. 基于改进天牛群算法的微电网优化调度[J]. 电子测量技术, 2020, 43(16):6.​

⛄ Matlab代码关注

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

❤️ 关注我领取海量matlab电子书和数学建模资料

 

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

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

相关文章

Unity—UGUI

每日一句&#xff1a;读数、学习 去更远的地方&#xff0c;才能摆脱那些你不屑一顾的圈子 目录 InputFiled输入框 例&#xff1a;用户名和密码 Toggle组件 案例&#xff1a;冷却效果 InputFiled输入框 Text Component 输入文本组件 Text输入内容 Character Limit 输入字符…

宝塔后渗透-添加用户_反弹shell

更新时间&#xff1a;2022年11月21日 1. 背景介绍 对于想拿到bt后台来说&#xff0c;非常的艰难&#xff1a;无非是通过bypass之后提权&#xff0c;直接拿到服务器的root权限&#xff0c;然后再去宝塔后台。 当然&#xff0c;还有一种运气十分爆棚的方法&#xff1a;发现了b…

Qt的Q_UNUSED()函数的功能

目录Qt Assistant&#xff08;Qt 助手&#xff09;构建场景其他一些平替方法参考Qt Assistant&#xff08;Qt 助手&#xff09; 函数名直译过来是【不用的&#xff1b;从未用过的】。 碰到陌生的函数不要慌&#xff0c;直接Qt Assistant查一哈。 Q_UNUSED(name) Indicates to …

负载均衡器 OpenELB ARP 欺骗技术解析

作者&#xff1a;大飞哥&#xff0c;视源电子运维工程师&#xff0c;KubeSphere 用户委员会广州站站长&#xff0c;KubeSphere Ambassador。 K8S 对集群外暴露服务有三种方式&#xff1a;NodePort&#xff0c;Ingress 和 Loadbalancer。NodePort 用于暴露 TCP 服务(4 层)&#…

基于5G智能网关的水泵远程监控系统方案

方案背景 水泵作为一种常见的水务设备&#xff0c;在日常的生产、生活中发挥重要的作用。为了保证生产、生活用水&#xff0c;也为了预防异常天气带来的过度降水&#xff0c;水泵具备的供水、排水作用都是不可忽视的。然而&#xff0c;很多地区的水泵管理模式依然停留在专人看…

毕业设计-基于机器视觉的手写字识别系统

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

变焦镜头内参数如何获得?

很多时候,我们是使用相应的棋盘格标定进行相机内参数的获取,但是对于相机而言,如果要是焦距范围是测量比较远的物体,那么我们要进行注意相应的内参数就是不能够使用棋盘格标定法进行获取,因为不准. 由于项目的需要,这里我就是需要进行探究一下,如何通过自己调试直接设定内参数…

CSS 实现卡片边框渐变动画

前言 &#x1f44f;CSS实现卡片边框渐变动画&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 父容器添加背景渐变色 <div class"card"></div>.card {background: linear-gradient(0deg, …

Tensorboader图片和模型可视化

非常简单&#xff0c;10分钟搞懂1 Tensorboader介绍2 进行写入和运行&#xff08;共2步&#xff09;3 图像显示3.1 显示图片3.2 显示模型3.3 动态显示学习率等参考文献1 Tensorboader介绍 它就是1个可视化工具&#xff0c;需要用pip进行下载&#xff1b; 下载以后进行显示&a…

SpringCloud框架(三):微服务优化,Feign的最佳实现方案

SpringCloud环境搭建&#xff1a;生产和消费 RestTemplate Spring章节复习已经过去&#xff0c;新的章节SpringCloud开始了&#xff0c;这个章节中将会回顾微服务相关 主要依照以下几个原则 每一个组件的Demo和Coding上传到我的代码仓库在原有基础上加入一些设计模式&#xf…

数据结构与算法之图的应用

一.树之习题选讲-Tree Traversals Again 树习题-TTA.1 题意理解 非递归中序遍历的过程 1. Push的顺序为先序遍历(pre)2. Pop的顺序给出中序遍历(in) 树习题-TTA.2 核心算法 上图分别是先序、中序、后序遍历通过规律我们可以看到他们之间的位置分配 //伪代码 void solve(int …

Zabbix在X86服务器上的部署流程

服务器资源:Centos7、X86架构 部署zabbix服务端 #设置SELinux 成为permissive模式临时关闭selinux防火墙 setenforce 0 #获取zabbix的下载源和更换阿里源 https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm #解压zabbix包 …

探花交友_第4章_MongoDB基础(新版)

探花交友_探花交友_第4章_MongoDB基础(新版) 文章目录探花交友_探花交友_第4章_MongoDB基础(新版)课程介绍1. 通用设置1.1 需求分析1.1.1 需求分析1.1.2 数据库表1.1.3 实体类SettingsQuestionBlackList1.2 查询通用设置1.2.1 接口文档1.2.2 代码实现vo对象tanhua-app-serverSe…

易知微11月更新速递 | 预案集如何实现“一屏多端”联动指挥体系

伴随着“2022Easy Future秋季产品发布会”的举行&#xff0c;易知微也迎来了EasyV6.0的全新升级&#xff0c;通过新产品、新服务&#xff0c;助力实现一个能“数智视融合&#xff0c;虚实人联动”的数字增强世界。近一个月我们依旧奋力于产品迭代优化&#xff0c;又给大家带来了…

留学生Paper写作怎么进行深度解析?

对于留学生Paper而言&#xff0c;要想文章显得井井有条&#xff0c;逻辑结构在这个时候就显得很重要&#xff01;为什么这样说呢&#xff1f;首先我们要认识到一点&#xff0c;就是Paper必须做到内容和形式上统一。内容就是文章的主题和材料&#xff0c;形式是指逻辑结构和语言…

视觉小目标检测论文速读

视觉小目标检测论文速读 本文主要针对三篇文章典型文章。 一. SuperYOLO Super Resolution Assisted Object Detection in Multimodal Remote Sensing Imagery 1. 主要工作: 首先去掉Focus模块取保持HR特征, 避免分辨率下降&#xff0c;有效克服小目标空间损失的减少。利…

(一) SpringCloud+Security+Oauth2微服务授权初步认识

一 引言 再前面的security专题中 我们学习了单体架构基于SpringSecurity实现的授权方案,这种在业务量较小及业务的复杂度较低时比较实用,随着业务的复杂度越来越高,微服务架构也越来越被更多的公司使用&#xff0c;本文就微服务中的主流授权方案及oauth2中基本概念做简要概述。…

厨神之蛋糕制作

失败了7次&#xff0c;成功了6次。成功的6次里有好有坏&#xff0c;总结一下蛋糕制作的过程与要点。 原料 低筋面粉&#xff08;筋度越高越偏向包子馒头的口感&#xff0c;松软度越低&#xff09;、白糖、鸡蛋、水&#xff08;也可以用牛奶或其他含水的物质&#xff09;、食用…

多目slam论文阅读系列一:MULTICOL-SLAM论文阅读

论文地址&#xff1a;https://arxiv.org/pdf/1610.07336.pdf 代码&#xff1a;GitHub - urbste/MultiCol-SLAM: This repository contains a multi-fisheye camera SLAM. The underlying SLAM system is based on ORB-SLAM.参考文档&#xff1a;【算法】跑MultiCol-SLAM遇到的效…

Java小区物业管理系统源码带本地搭建教程

技术架构 技术框架&#xff1a;springboot mybatis thymeleaf Mysql5.7 运行环境&#xff1a;jdk8 IntelliJ IDEA maven 宝塔面板 本地搭建教程 1.下载源码&#xff0c;本地电脑新建一个数据库&#xff0c;导入wuye.sql文件至数据库中。 2.使用IDEA打开wuyeadmin目录&…