Matlab|基于氢储能的热电联供型微电网优化调度方法

ops/2024/10/25 10:26:29/

目录

1 主要内容

模型求解流程

2 部分程序

3 程序结果

日前调度

日内调度

4 下载链接


主要内容

该程序复现《基于氢储能的热电联供型微电网优化调度方法》,针对质子交换膜燃料电池和电解槽的热电联供特性,为避免氢能系统的热能浪费并进一步提高氢能系统的效率,搭建了一种考虑氢能系统的热电联供型光伏/风机/燃料电池/蓄电池/电锅炉/燃气锅炉微电网系统,提出一种包括日前调度与实时优化的两阶段优化调度方法。所建系统考虑了电氢转换时的余热回收,将氢能系统作为热电氢耦合设备,实现了电、热、氢能的协调利用与相互转换,有效提高了能量利用率。在第一阶段调度中,根据日前的风光发电出力及负荷需求预测,以微电网整体运行成本最小为目标,采用混合整数线性规划方法实现日前最优全局调度;在第二阶段调度中,根据超短期预测结果,使用模型预测控制嵌入混合整数二次规划算法,减小预测误差带来的经济性影响。程序采用matlab+yalmip(cplex作为求解器)进行求解,注释清晰,运行稳定,方便学习!

  • 模型求解流程

部分程序

    %% 各变量及常量定义Pwind=sdpvar(1,4,'full'); %风机出力Ppv=sdpvar(1,4,'full');%光伏出力Pbat=sdpvar(1,4,'full');%蓄电池出力Temp_cha=binvar(1,4,'full'); %充电标志Temp_dis=binvar(1,4,'full'); %放电标志Temp_static=binvar(1,4,'full'); %电池静置标志Pcha=sdpvar(1,4,'full');Pdis=sdpvar(1,4,'full');Phss=sdpvar(1,4,'full');%氢储能系统净功率Pfc=sdpvar(1,4,'full');Pel=sdpvar(1,4,'full');Psto=sdpvar(1,4,'full');Temp_fc=binvar(1,4,'full');%燃料电池工作标志Temp_el=binvar(1,4,'full');%电解槽工作标志Temp_Hstatic=binvar(1,4,'full'); %氢储能系统静置标志Peb=sdpvar(1,4,'full');%电锅炉电功率Qeb=Peb*0.9;%电锅炉热功率Pbl=sdpvar(1,4,'full');%燃气锅炉电功率Qbl=Pbl*0.73;%燃气锅炉热功率Qtst=sdpvar(1,4,'full');%蓄热槽热功率Qcha=sdpvar(1,4,'full');Qdis=sdpvar(1,4,'full');Temp_Qcha=binvar(1,4,'full'); %蓄热标志Temp_Qdis=binvar(1,4,'full'); %放热标志Temp_Qstatic=binvar(1,4,'full'); %蓄热槽静置标志Hel=sdpvar(1,4,'full');Hfc=sdpvar(1,4,'full');S=sdpvar(1,4,'full');E=sdpvar(1,4,'full');H=sdpvar(1,4,'full');Constraints = [];  for k=1:4Constraints =[Constraints,Pwindr(1,k)+Ppvr(1,k)-Pfc(1,k)==Ploadr(1,k)+Pel(1,k)+Pbat(1,k)+Peb(1,k)];%----------------------HSS约束--------------------%Constraints = [Constraints, -100<=Phss(1,k)<=100];Constraints = [Constraints, implies(Temp_fc(1,k),[Phss(1,k)<=0,Pfc(1,k)==Phss(1,k),Pel(1,k)==0])];%燃料电池约束Constraints = [Constraints, implies(Temp_el(1,k),[Phss(1,k)>=0,Pel(1,k)==Phss(1,k),Pfc(1,k)==0])];%电解槽约束Constraints = [Constraints, implies(Temp_Hstatic(1,k),[Pfc(1,k)==0,Pel(1,k)==0,Phss(1,k)==0])];%静置情况约束Constraints = [Constraints, Temp_fc(1,k)+Temp_el(1,k)+Temp_Hstatic(1,k)==1];%----------------------热约束--------------------%Constraints = [Constraints, 0.73*Pbl(1,k)+0.9*Peb(1,k)-Qtst(1,k)+0.25*Pel(1,k)-0.9*Pfc(1,k)==Qloadr(1,k)]; %热平衡约束0.73*Pbl(1,k)+0.9*Peb(1,k)-Qtst(1,k)+0.25*Pel(1,k)-0.9*Pfc(1,k)==Qload(1,k)Constraints = [Constraints, 0<=Qeb(1,k)<=54]; %电锅炉热功率约束Constraints = [Constraints, 10.95<=Qbl(1,k)<=51.1]; %燃气锅炉功率约束Constraints = [Constraints, -100<=Qtst(1,k)<=100];%蓄放热约束Constraints = [Constraints, implies(Temp_Qcha(1,k),[Qtst(1,k)>=0,Qcha(1,k)==Qtst(1,k),Qdis(1,k)==0])];%蓄热情况约束Constraints = [Constraints, implies(Temp_Qdis(1,k),[Qtst(1,k)<=0,Qdis(1,k)==Qtst(1,k),Qcha(1,k)==0])];%放热情况约束Constraints = [Constraints, implies(Temp_Qstatic(1,k),[Qtst(1,k)==0,Qdis(1,k)==0,Qcha(1,k)==0])];%静置情况约束Constraints = [Constraints, Temp_Qcha(1,k)+Temp_Qdis(1,k)+Temp_Qstatic(1,k)==1];%----------------------蓄电池约束--------------------%Constraints = [Constraints, -100<=Pbat(1,k)<=100];%电池充放电约束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];Constraints=[Constraints,0.2<=S(1,k)<=0.8];Constraints=[Constraints,0.2<=E(1,k)<=0.8];Constraints=[Constraints,0.2<=H(1,k)<=0.8];end

程序结果

4 下载链接


http://www.ppmy.cn/ops/128304.html

相关文章

毕业设计:python美食菜谱数据分析可视化系统 爬虫+Echarts 可视化 Django框架 大数据(源码+文档2)✅

python美食菜谱数据分析可视化系统 爬虫Echarts 可视化 Django框架 大数据✅ 1、项目介绍 技术栈&#xff1a; Python语言、Django框架、vue框架、Echarts 可视化、MySQL 数据库、豆果美食网、html css js juery 基于django的美食菜谱数据分析可视化系统 2、项目界面 &…

从 IP 源地址入手,如何预防 DDoS 攻击?

分布式拒绝服务攻击&#xff08;DDoS&#xff09;是网络安全的一大威胁。DDoS 攻击通过大量的虚假请求&#xff0c;使目标服务器资源耗尽&#xff0c;无法正常为合法用户提供服务。而从 IP 源地址入手&#xff0c;是预防 DDoS 攻击的一个重要途径。 一、了解 DDoS 攻击与 IP 源…

K8s曝9.8分漏洞,黑客可获得Root访问权限

近日&#xff0c;安全研究人员Nicolai Rybnikar 发现Kubernetes镜像构建器中存在严重安全漏洞&#xff08;CVE-2024-9486 &#xff0c;CVSS &#xff1a;9.8&#xff09;&#xff0c;攻击者可在特定情况下获得Root级访问权限&#xff0c;从而导致系统出现问题。 Nicolai Rybnik…

接口测试(八)jmeter——参数化(CSV Data Set Config)

一、CSV Data Set Config 需求&#xff1a;批量注册5个用户&#xff0c;从CSV文件导入用户数据 1. 【线程组】–>【添加】–>【配置元件】–>【CSV Data Set Config】 2. 【CSV数据文件设置】设置如下 3. 设置线程数为5 4. 运行后查看响应结果

Go 语言基础教程:7.Switch 语句

在这篇教程中&#xff0c;我们将学习 Go 语言中的 switch 语句&#xff0c;它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …

深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南

文章目录 引言GET 方法POST 方法PUT 方法DELETE 方法小结适用场景与特点总结最佳实践 在 API 设计中的重要性 引言 HTTP 协议的背景&#xff1a;介绍 HTTP&#xff08;超文本传输协议&#xff09;作为互联网的基础协议&#xff0c;自 1991 年发布以来&#xff0c;成为客户端和…

并发基础知识

并发基础知识 进程和线程的区别 进程 每一个进程都拥有自己独立的内存空间等系统资源。进程与进程之间是相互独立的&#xff0c;都有自己的虚拟地址空间&#xff0c;一个进程出现问题崩溃&#xff0c;不会影响到其他的进程。进程与进程之间的通信比较复杂&#xff0c;一般是…

AIGC智能提示词项目实践(1):深入MySQL高级语法,提升开发效率

AIGC智能提示词项目实践-1&#xff1a;深入MySQL高级语法&#xff0c;提升开发效率 1.读取数据表中的字段进行脱敏(*加密)2.自动获取对应的数据表和字段3.表单有数据才进行更新的条件语句(构成数组)4.动态更新字段且进行条件判断5.动态更新数据表和字段6.字段自身1的操作7.多关…