👨🎓 个人主页: 研学社的博客
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥
🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳ 座右铭:行百里者,半于九十。
📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
能源管理系统(EMS)有助于优化微电网中分布式能源(DER)的使用,特别是在涉及可变定价和发电时。本文使用预测定价和负荷条件来优化存储/销售来自电网规模电池系统的能量。演示了两种方法:启发式状态机策略和基于线性程序的优化方法。
![](https://i-blog.csdnimg.cn/blog_migrate/6cd32d3b9c745b8cbce0baacf94fc95f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2ead52e49646a3927d848fcff07225a8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/daec5cbecc58131742a19952e45d2bf7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0a641ad2e098c0897322afc3289bcb4a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5bc0286e4370ad704c03e5bcaee7b32e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/74411103ba3b87407c94195664cf8a60.png)
![](https://i-blog.csdnimg.cn/blog_migrate/510a45696b7f5d89b622e319edb0a8ad.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b2b781f5f572c66a5aa193c7e3a5575.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6acede24852bf6cee440c3098f7d83ce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8929de1523652d12fe22e0ed99a2a592.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f8ca0eb639f1ed2747ef6ec0a77ddf4e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/314309cd37ef7267a15907d16a747828.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a9535634ea9f96264542fa47b63557af.png)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8601eb8fcb2fb5d32e0be902c72c1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e35b03c0123262ae7422990598020d67.png)
![](https://i-blog.csdnimg.cn/blog_migrate/eab57811c842e033ff6a87a34ad2c09d.png)
📚2 运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/3bbda2991e85cf63f37af64abeac4e4d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fe3656f75c86c27a6f1cd3c9b7fbb843.png)
![](https://i-blog.csdnimg.cn/blog_migrate/54c14bfc587f5e07ae82c35ec85e2dbb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2926f6f61e8f24c429ff444ab1e432d8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d3c7667b2128f68b00ca7f26db3233b5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/17fb2fae53e97a78b8feeeec76b181c5.png)
for i = 1:numSim
if i <= numOffset*numel(pvDataSet)
heuristicCost(end+1) = out(i).logsout{1}.Values.Data(end);
else
optCost(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;
![](https://i-blog.csdnimg.cn/blog_migrate/092368747ee02bd092e7a4131b21becb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/89804e80da4f5fc22dcaa091ec633313.png)
![](https://i-blog.csdnimg.cn/blog_migrate/87d78fa572ebfb03a5d3497ef6fd7d10.png)
部分代码:
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.