115-自己编写完全复献可-阶梯碳下考虑P2G-CCS与供需灵活响应的IES优化调度-完全复现场景10 matlab+yalmip+cplex 主要内容:首先考虑氢能参与 IES 实现降碳减排并引入阶梯式碳机制进一步约束碳排放,然后考虑 P2G-CCS(power to gas and carbon capture system,P2G-CCS)耦合并建立电转气和碳捕集系统的模型,接着考虑氢燃料电池与燃气轮机共同实现热电联产,引入有机朗肯循环实现供应侧热电联产机组的灵活响应,需求侧考虑多元负荷的可转移和可替代性建立需求侧灵活响应模型,最后以购能成本、碳成本、需求响应补偿成本 、弃风成本之和最小为目标建立 IES优化调度模型 ,模型线性化处理后调用CPLEX求解器求解。 关键词:阶梯碳,需求响应,碳捕集,电转气,燃料电池
最近研究IES(综合能源系统)优化调度相关问题,感觉还挺有意思,今天就来跟大家唠唠基于matlab + yalmip + cplex实现的在阶梯碳下考虑P2G - CCS与供需灵活响应的IES优化调度,主要讲讲实现思路和代码示例。
降碳减排新思路:氢能参与+阶梯式碳机制
首先,我们把氢能参与IES作为降碳减排的重要手段,同时引入阶梯式碳机制,这就好比给碳排放上了个紧箍咒。为啥要阶梯式呢?打个比方,如果碳排放像用水用电一样,在一定额度内收费低,超出了不同额度就提高收费标准,这样可以更好地约束碳排放。在Matlab代码里,我们可以先定义一些碳排放相关的参数:
% 定义碳排放阶梯价格 carbon_price1 = 100; % 第一阶梯价格 carbon_price2 = 200; % 第二阶梯价格 % 定义碳排放阶梯界限 carbon_limit1 = 1000; carbon_limit2 = 2000;这里简单定义了两个阶梯的碳排放价格和界限,后续在计算碳成本的时候就会用到这些参数。
P2G - CCS耦合:电转气与碳捕集系统建模
接下来看看P2G - CCS,也就是power to gas and carbon capture system(电转气和碳捕集系统)。我们得建立它的模型,这一步很关键。电转气可以把多余的电能转化为气体能源存储起来,碳捕集系统则能捕获生产过程中的碳排放。在Yalmip建模里,可以像下面这样:
% 定义电转气模型相关变量 p2g_power = sdpvar(1, 1, 'full'); % 电转气消耗的功率 gas_production = sdpvar(1, 1, 'full'); % 产生的气体量 % 电转气转换关系 Constraints = [gas_production == p2g_power * conversion_efficiency]; % 定义碳捕集系统相关变量 ccs_carbon_captured = sdpvar(1, 1, 'full'); % 碳捕集量 % 假设碳捕集与某个生产过程相关联,比如与发电过程产生的碳排放相关 % 这里假设有一个碳排放产生量的变量emission emission = sdpvar(1, 1, 'full'); Constraints = [Constraints, ccs_carbon_captured <= emission * capture_rate];上面代码中,我们定义了电转气和碳捕集系统的相关变量,并建立了它们的基本关系约束。conversionefficiency是电转气的转换效率,capturerate是碳捕集率,这些都需要根据实际情况来设定。
热电联产新组合:氢燃料电池 + 燃气轮机
然后是热电联产部分,我们让氢燃料电池与燃气轮机共同实现热电联产,还引入有机朗肯循环来实现供应侧热电联产机组的灵活响应。同样在Yalmip里定义相关变量和约束:
% 氢燃料电池相关变量 fc_power = sdpvar(1, 1, 'full'); % 氢燃料电池发电功率 fc_heat = sdpvar(1, 1, 'full'); % 氢燃料电池产热功率 % 燃气轮机相关变量 gt_power = sdpvar(1, 1, 'full'); % 燃气轮机发电功率 gt_heat = sdpvar(1, 1, 'full'); % 燃气轮机产热功率 % 热电联产功率与热量平衡约束 Constraints = [Constraints, total_power == fc_power + gt_power, total_heat == fc_heat + gt_heat];这里totalpower和totalheat分别是总的发电功率和产热功率,它们与氢燃料电池和燃气轮机的功率、热量相关联,通过这些约束来确保能量的平衡。
需求侧灵活响应:多元负荷的可转移与可替代
需求侧也不能忽视,考虑多元负荷的可转移和可替代性建立需求侧灵活响应模型。比如说,有些工业负荷可以在一定时间范围内转移,以避开用电高峰。代码示例如下:
% 定义可转移负荷相关变量 shiftable_load = sdpvar(1, num_time_periods, 'full'); % 可转移负荷在每个时间段的量 original_load = [100, 150, 200, 180, 120]; % 原始负荷分布,这里简单假设了5个时间段 % 可转移负荷总量约束 Constraints = [Constraints, sum(shiftable_load) == sum(original_load)]; % 每个时间段负荷上下限约束 for t = 1:num_time_periods Constraints = [Constraints, shiftable_load(t) >= 0, shiftable_load(t) <= original_load(t)]; end这里定义了可转移负荷的变量,并且通过约束确保可转移负荷总量不变,同时每个时间段的负荷都在合理范围内。
构建IES优化调度模型与求解
最后,我们以购能成本、碳成本、需求响应补偿成本、弃风成本之和最小为目标建立IES优化调度模型。模型线性化处理后调用CPLEX求解器求解。
% 定义成本相关变量 purchase_cost = sdpvar(1, 1, 'full'); % 购能成本 carbon_cost = sdpvar(1, 1, 'full'); % 碳成本 dr_compensation_cost = sdpvar(1, 1, 'full'); % 需求响应补偿成本 wind_curtailment_cost = sdpvar(1, 1, 'full'); % 弃风成本 % 计算各项成本 purchase_cost = sum(purchase_power * purchase_price); % 根据之前定义的碳排放阶梯计算碳成本 carbon_emission = total_emission - ccs_carbon_captured; if carbon_emission <= carbon_limit1 carbon_cost = carbon_emission * carbon_price1; elseif carbon_emission <= carbon_limit2 carbon_cost = carbon_limit1 * carbon_price1 + (carbon_emission - carbon_limit1) * carbon_price2; else carbon_cost = carbon_limit1 * carbon_price1 + (carbon_limit2 - carbon_limit1) * carbon_price2 + (carbon_emission - carbon_limit2) * 300; % 假设第三阶梯价格 end dr_compensation_cost = sum(dr_load * dr_compensation_rate); wind_curtailment_cost = sum(wind_curtailment * wind_curtailment_price); % 目标函数 Objective = purchase_cost + carbon_cost + dr_compensation_cost + wind_curtailment_cost; % 求解模型 ops = sdpsettings('solver', 'cplex'); sol = optimize(Constraints, Objective, ops);以上代码构建了成本计算的逻辑,并定义了目标函数,最后调用CPLEX求解器来求解整个优化调度模型。
通过这样一步步的建模和求解,我们就能实现阶梯碳下考虑P2G - CCS与供需灵活响应的IES优化调度啦。希望这些内容对研究相关领域的小伙伴们有所帮助,大家一起交流探讨呀!
#关键词:阶梯碳,需求响应,碳捕集,电转气,燃料电池