【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)

本文探讨了电力系统中机组组合(UC)优化问题的重要性和应用,该问题旨在最小化发电成本并满足各种技术约束。文章详细介绍了问题的数学模型,包括目标函数和约束条件,如出力约束、时间约束和功率平衡。采用Gurobi优化器结合Benders分解方法来解决这一混合整数线性规划问题,并提供了Matlab代码片段作为实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


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


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

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥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的分享
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值