【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞⛳📋📋📋本文目录如下:🎁🎁🎁目录💥1 概述1.1 问题描述在电力系统中,高效的资源调度,对于在集中式或竞争性环境中实现经济可靠的能源生产和系统运行是必要的。
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥
🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳ 座右铭:行百里者,半于九十。
📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
1.1 问题描述
1.2 数学符号
1.3 数学模型
1.4 整体数学模型
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
1.1 问题描述
在电力系统中,高效的资源调度,对于在集中式或竞争性环境中实现经济可靠的能源生产和系统运行是必要的。
机组组合 (Unit Commitment, UC)优化问题旨在于电力系统运行时,给定以及调整发电机组的启停状态以及实时出力,使发电机组的总运行成本最小,且满足一定的安全技术约束 [1],包括发电机出力约束、启停时间约束、启停状态逻辑约束和功率平衡约束等。
1.2 数学符号
1.3 数学模型
1.3.1 目标函数
1.3.2 约束条件
机组出力约束
启停时间约束
启停状态逻辑约束
功率平衡约束
1.4 整体数学模型
📚2 运行结果
部分代码:
%% Step 3: Solve MP2 to obtain a new lower bound solution z_LB w.r.t. y_hat
r_MP=gurobi(MP,MP.params);
assign(recover(r_model.used_variables(Ind_y)),r_MP.x(2:end)); % exclude varialbe z in MP
s_u_BD((3*iter-2):3*iter,:)=value(u);
s_v_BD((3*iter-2):3*iter,:)=value(v);
s_w_BD((3*iter-2):3*iter,:)=value(w);
z_LB=r_MP.objval;
iter=iter+1;
% abs_error=abs((z_UB-z_LB)/z_UB);
% display(['Upper Bound: ', num2str(z_UB),' Lower Bound: ', num2str(z_LB),' Gap: ',num2str(round(abs_error*100,2)),'%']);
end
t_BD_e = toc(t_BD_s);
display(['采用Gurobi+benders分解所用计算时间: ',num2str(round(t_BD_e,2)),' s']);
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1] G. Morales-España, J. M. Latorre and A. Ramos, ”Tight and Compact MILP Formulation
for the Thermal Unit Commitment Problem,” in IEEE Transactions on Power Systems,
vol. 28, no. 4, pp. 4897-4908, Nov. 2013, doi: 10.1109/TPWRS.2013.22514
🌈4 Matlab代码实现
链接: https://pan.baidu.com/s/1_3F1iNePbQAuvSS3iovDVA
提取码:3tel
--来自百度网盘超级会员V3的分享
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)