当前位置: 首页 > news >正文

【微电网_储能】基于启发式状态机策略和线性程序策略优化方法的微电网中的储能研究【给定系统约束和定价的情况下】(Matlab代码实现)

👨‍🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

能源管理系统(EMS)有助于优化微电网中分布式能源(DER)的使用,特别是在涉及可变定价和发电时。本文使用预测定价和负荷条件来优化存储/销售来自电网规模电池系统的能量。演示了两种方法:启发式状态机策略和基于线性程序的优化方法。

📚2 运行结果

for i = 1:numSimif i <= numOffset*numel(pvDataSet)heuristicCost(end+1) = out(i).logsout{1}.Values.Data(end);elseoptCost(end+1)= out(i).logsout{1}.Values.Data(end);end
end
histogram(heuristicCost); hold on;
histogram(optCost);
legend('Heuristic','Optimization');
xlabel('Cost per Day ($)'); hold off;

部分代码:

function [Pgrid,Pbatt,Ebatt] = battSolarOptimize(N,dt,Ppv,Pload,Einit,Cost,FinalWeight,batteryMinMax)

% Minimize the cost of power from the grid while meeting load with power

% from PV, battery and grid

prob = optimproblem;

% Decision variables

PgridV = optimvar('PgridV',N);

PbattV = optimvar('PbattV',N,'LowerBound',batteryMinMax.Pmin,'UpperBound',batteryMinMax.Pmax);

EbattV = optimvar('EbattV',N,'LowerBound',batteryMinMax.Emin,'UpperBound',batteryMinMax.Emax);

% Minimize cost of electricity from the grid

prob.ObjectiveSense = 'minimize';

prob.Objective = dt*Cost'*PgridV - FinalWeight*EbattV(N);

% Power input/output to battery

prob.Constraints.energyBalance = optimconstr(N);

prob.Constraints.energyBalance(1) = EbattV(1) == Einit;

prob.Constraints.energyBalance(2:N) = EbattV(2:N) == EbattV(1:N-1) - PbattV(1:N-1)*dt;

% Satisfy power load with power from PV, grid and battery

prob.Constraints.loadBalance = Ppv + PgridV + PbattV == Pload;

% Solve the linear program

options = optimoptions(prob.optimoptions,'Display','none');

[values,~,exitflag] = solve(prob,'Options',options);

% Parse optmization results

if exitflag <= 0

Pgrid = zeros(N,1);

Pbatt = zeros(N,1);

Ebatt = zeros(N,1);

else

Pgrid = values.PgridV;

Pbatt = values.PbattV;

Ebatt = values.EbattV;

end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Jonathan LeSage (2023). Microgrid Energy Management System (EMS) using Optimization.

🌈4 Matlab代码实现

http://www.lryc.cn/news/25784.html

相关文章:

  • rk3288-android8-IR-mouse
  • 2023-03-01干活小计
  • 客户服务软件推荐榜:28款!
  • Spring注入和注解实现IOC
  • Python统计Labelme标注文件信息并绘制散点图
  • 远程接入方案 OpenText Exceed TurboX(ETX) 客户案例——ET Innovations
  • Django4.1.7通过djongo1.3.6链接mongoDB6.0.4
  • 如何使用FindFunc在IDA Pro中寻找包含指定代码模式的函数代码
  • 【C++】讲的最通透最易懂的关于结构体内存对齐的问题
  • Stochastic Approximation 随机近似方法的详解之(一)
  • 软件自动化测试工程师面试题集锦
  • 智合同丨教你做一个懂AI的法律人
  • 如何判断自己使用的IP是独享还是共享?
  • 跳石头
  • 上传gitee教程,Gitee怎么上传代码到仓库
  • netstat命令详解
  • 数据库三范式
  • K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
  • Vue2和Vue3响应式的区别
  • 模型实战(6)之Alex实现图像分类:模型原理+训练+预测(详细教程!)
  • 【大数据】最全的大数据Hadoop|Yarn|Spark|Flink|Hive技术书籍分享/下载链接,持续更新中...
  • RIG Exploit Kit 仍然通过 IE 感染企业用户
  • GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化进阶
  • SQL SERVER中SCHEMA的詳解
  • 【LeetCode】剑指 Offer(13)
  • 帮助小型企业实现业务增长的7种数字营销策略
  • 互联网行业的高级产品经理和普通产品经理有哪些区别?
  • aardio - 【库】简单信息框
  • 程序员必备!最值得收藏的宝藏网站大盘点
  • Android 10.0 Settings 关掉开发者模式