综合能源系统优化 数据来源《考虑需求响应的社区综合能源系统两阶段优化调度_刘蓉晖》 %% 风电+储能+电网交易+燃气轮机+燃气锅炉+电制冷机+(%燃料电池FC+溴化锂制冷机LBR+余热锅炉) 有电负荷+热负荷+冷负荷 加上环境成本 没有后面的二阶段哦! 简单 注释清楚 MATLAB+yalmip+cplex平台
在综合能源系统优化领域,我们今天聚焦于基于《考虑需求响应的社区综合能源系统两阶段优化调度_刘蓉晖》的数据来展开探讨。这个系统涵盖了多种能源设备,像风电、储能、电网交易、燃气轮机、燃气锅炉、电制冷机,还有燃料电池FC、溴化锂制冷机LBR以及余热锅炉等,同时需要满足电、热、冷三种负荷需求,并且将环境成本也纳入考量范围。
整体思路
我们要通过优化调度这些能源设备,在满足负荷需求的前提下,实现总成本(包含环境成本)的最小化。在MATLAB结合Yalmip和CPLEX的平台上进行建模与求解。
MATLAB + Yalmip + CPLEX 配置
首先,确保你已经安装好了MATLAB,并且成功配置了Yalmip和CPLEX求解器。Yalmip是一个强大的建模语言扩展,能让我们更方便地在MATLAB中构建优化模型,而CPLEX则是高效的求解器来处理这些模型。
数据准备
假设我们已经从论文相关资料中获取到了各类设备的参数数据,例如风电的功率预测、不同时段的负荷需求、各种设备的效率、成本系数等。我们可以将这些数据整理成MATLAB中的矩阵或向量形式。
% 假设风电功率预测数据,每小时一个数据,共24小时 wind_power_prediction = [100 120 150 180 200 220 250 280 300 280 250 220 200 180 150 120 100 80 60 50 40 30 20 10]; % 电负荷需求,同样每小时一个数据 elec_load = [200 220 250 280 300 320 350 380 400 380 350 320 300 280 250 220 200 180 160 150 140 130 120 110]; % 热负荷需求 heat_load = [100 120 140 160 180 200 220 240 260 240 220 200 180 160 140 120 100 80 60 50 40 30 20 10]; % 冷负荷需求 cool_load = [50 60 70 80 90 100 110 120 130 120 110 100 90 80 70 60 50 40 30 25 20 15 10 5]; % 燃气轮机发电效率 gt_efficiency = 0.3; % 燃气锅炉制热效率 gb_efficiency = 0.8; % 电制冷机制冷效率 er_efficiency = 0.7; % 燃料电池发电效率 fc_efficiency = 0.4; % 溴化锂制冷机制冷效率 lbr_efficiency = 0.6; % 余热锅炉制热效率 hpb_efficiency = 0.7; % 燃气价格 gas_price = 3; % 购电价格 elec_buy_price = 0.5; % 售电价格 elec_sell_price = 0.3; % 环境成本系数,例如每兆瓦时排放对应的成本 env_cost_coefficient = 10;变量定义
接下来,我们定义优化模型中的变量。
% 定义时间周期,假设为24小时 T = 24; % 风电出力 wind_generation = sdpvar(T, 1); % 从电网购电量 elec_buy = sdpvar(T, 1); % 向电网售电量 elec_sell = sdpvar(T, 1); % 燃气轮机发电量 gt_generation = sdpvar(T, 1); % 燃气轮机消耗天然气量 gt_gas_consumption = sdpvar(T, 1); % 燃气锅炉制热量 gb_heat_generation = sdpvar(T, 1); % 燃气锅炉消耗天然气量 gb_gas_consumption = sdpvar(T, 1); % 电制冷机制冷量 er_cool_generation = sdpvar(T, 1); % 燃料电池发电量 fc_generation = sdpvar(T, 1); % 燃料电池消耗天然气量 fc_gas_consumption = sdpvar(T, 1); % 溴化锂制冷机制冷量 lbr_cool_generation = sdpvar(T, 1); % 余热锅炉制热量 hpb_heat_generation = sdpvar(T, 1); % 储能系统的充放电功率,正值为充电,负值为放电 es_power = sdpvar(T, 1); % 储能系统的电量状态 es_soc = sdpvar(T, 1);约束条件
- 功率平衡约束
-电力平衡:
\[windgenerationt + gtgenerationt+ fcgenerationt - elecsellt+ espowert - elecbuyt = elecloadt\]
% 电力平衡约束 power_balance_constraint = []; for t = 1:T power_balance_constraint = [power_balance_constraint, wind_generation(t) + gt_generation(t) + fc_generation(t) - elec_sell(t) + es_power(t) - elec_buy(t) == elec_load(t)]; end- 热力平衡:
\[gbheatgenerationt+ hpbheatgenerationt = heatloadt\]
% 热力平衡约束 heat_balance_constraint = []; for t = 1:T heat_balance_constraint = [heat_balance_constraint, gb_heat_generation(t) + hpb_heat_generation(t) == heat_load(t)]; end- 冷量平衡:
\[ercoolgenerationt+ lbrcoolgenerationt = coolloadt\]
% 冷量平衡约束 cool_balance_constraint = []; for t = 1:T cool_balance_constraint = [cool_balance_constraint, er_cool_generation(t) + lbr_cool_generation(t) == cool_load(t)]; end- 设备性能约束
-燃气轮机:
\[gtgasconsumptiont=\frac{gtgenerationt}{gtefficiency}\]
% 燃气轮机性能约束 gt_performance_constraint = []; for t = 1:T gt_performance_constraint = [gt_performance_constraint, gt_gas_consumption(t) == gt_generation(t)/gt_efficiency]; end- 燃气锅炉:
\[gbgasconsumptiont=\frac{gbheatgenerationt}{gb_efficiency}\]
% 燃气锅炉性能约束 gb_performance_constraint = []; for t = 1:T gb_performance_constraint = [gb_performance_constraint, gb_gas_consumption(t) == gb_heat_generation(t)/gb_efficiency]; end- 电制冷机:
\[ercoolgenerationt = erefficiency * (elecbuyt - elecsellt - espowert)\]
% 电制冷机性能约束 er_performance_constraint = []; for t = 1:T er_performance_constraint = [er_performance_constraint, er_cool_generation(t) == er_efficiency * (elec_buy(t) - elec_sell(t) - es_power(t))]; end- 燃料电池:
\[fcgasconsumptiont=\frac{fcgenerationt}{fcefficiency}\]
% 燃料电池性能约束 fc_performance_constraint = []; for t = 1:T fc_performance_constraint = [fc_performance_constraint, fc_gas_consumption(t) == fc_generation(t)/fc_efficiency]; end- 溴化锂制冷机:
\[lbrcoolgenerationt = lbrefficiency * hpbheatgeneration_t\]
% 溴化锂制冷机性能约束 lbr_performance_constraint = []; for t = 1:T lbr_performance_constraint = [lbr_performance_constraint, lbr_cool_generation(t) == lbr_efficiency * hpb_heat_generation(t)]; end- 余热锅炉:
\[hpbheatgenerationt = hpbefficiency * gtgasconsumption_t\]
% 余热锅炉性能约束 hpb_performance_constraint = []; for t = 1:T hpb_performance_constraint = [hpb_performance_constraint, hpb_heat_generation(t) == hpb_efficiency * gt_gas_consumption(t)]; end- 储能约束
-电量状态更新:
\[essoct = essoc{t - 1}+ \eta{charge}espowert\Delta t-\frac{espowert * \Delta t}{\eta{discharge}}\]
假设充电效率etacharge = 0.9,放电效率etadischarge = 0.9,时间间隔Delta t = 1小时
eta_charge = 0.9; eta_discharge = 0.9; Delta_t = 1; soc_update_constraint = [es_soc(1) == 0.5]; % 初始电量假设为50% for t = 2:T soc_update_constraint = [soc_update_constraint, es_soc(t) == es_soc(t - 1) + eta_charge * es_power(t) * Delta_t - es_power(t) * Delta_t/eta_discharge]; end- 充放电功率限制:
\[ -P{discharge,max}\leq espowert\leq P{charge,max}\]
假设最大充电功率Pchargemax = 100,最大放电功率Pdischargemax = 100
P_charge_max = 100; P_discharge_max = 100; power_limit_constraint = []; for t = 1:T power_limit_constraint = [power_limit_constraint, -P_discharge_max <= es_power(t) <= P_charge_max]; end- 电量限制:
\[SOC{min}\leq essoct\leq SOC{max}\]
综合能源系统优化 数据来源《考虑需求响应的社区综合能源系统两阶段优化调度_刘蓉晖》 %% 风电+储能+电网交易+燃气轮机+燃气锅炉+电制冷机+(%燃料电池FC+溴化锂制冷机LBR+余热锅炉) 有电负荷+热负荷+冷负荷 加上环境成本 没有后面的二阶段哦! 简单 注释清楚 MATLAB+yalmip+cplex平台
假设最小电量SOCmin = 0.2,最大电量SOCmax = 0.8
SOC_min = 0.2; SOC_max = 0.8; soc_limit_constraint = []; for t = 1:T soc_limit_constraint = [soc_limit_constraint, SOC_min <= es_soc(t) <= SOC_max]; end目标函数
我们的目标是最小化总成本,总成本包括购气成本、购电成本、售电收益以及环境成本。
\[Cost=\sum{t = 1}^{T}(gasprice(gtgasconsumptiont+ gbgasconsumptiont+ fcgasconsumptiont)+elecbuypriceelecbuyt - elecsellpriceelecsellt+envcostcoefficientemissiont)\]
假设排放与燃气消耗成正比,例如排放系数emission_coefficient = 0.5(每立方米天然气消耗对应的排放量)
emission_coefficient = 0.5; emission = []; for t = 1:T emission = [emission, emission_coefficient * (gt_gas_consumption(t) + gb_gas_consumption(t) + fc_gas_consumption(t))]; end obj = sum(gas_price * (gt_gas_consumption + gb_gas_consumption + fc_gas_consumption)+elec_buy_price * elec_buy - elec_sell_price * elec_sell+env_cost_coefficient * emission);模型求解与结果分析
将所有的约束条件整合起来,然后使用Yalmip和CPLEX进行求解。
constraints = [power_balance_constraint, heat_balance_constraint, cool_balance_constraint, gt_performance_constraint, gb_performance_constraint, er_performance_constraint, fc_performance_constraint, lbr_performance_constraint, hpb_performance_constraint, soc_update_constraint, power_limit_constraint, soc_limit_constraint]; optimize(constraints, obj, sdpsettings('solver', 'cplex'));求解完成后,我们可以分析各个变量的最优值,例如不同时段的风电出力、设备的能源转换量、储能系统的充放电情况等,从而了解综合能源系统的优化调度策略,怎样在满足负荷需求的同时实现成本最小化和环境友好。
通过以上步骤,我们在MATLAB - Yalmip - CPLEX平台上完成了一个简单的综合能源系统优化调度模型的构建与求解。当然,实际情况可能更为复杂,还需要进一步考虑更多的因素和约束条件,但这个基本框架为我们后续深入研究提供了一个很好的起点。