基于阶梯碳交易的含P2G - CCS耦合和燃气掺氢的虚拟电厂优化调度探索

基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度 参考文献:基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度 matlab+yalmip+cplex 主要内容:代码针对 P2G-CCS 耦合和燃气掺氢子系统,建立了掺氢燃气轮机、掺氢燃气锅炉、两段式电转气和碳捕集系统的数学模型;其次,在低碳政策层面,建立了阶梯碳交易模型对系统碳排放进行约束;最后,在建模基础上,提出了以碳交易成本、购气和煤耗成本、碳封存成本、机组启停成本和弃风成本之和最低为目标函数的优化调度策略。 附带详细的复现过程说明文档!出图比所发文章更多更细致,额外考虑了各主体的功率平衡,复现了各情景下的情况。

最近在研究基于阶梯碳交易的含P2G - CCS耦合和燃气掺氢的虚拟电厂优化调度相关内容,和大家分享一下我的心得。

这次研究主要借助matlab + yalmip + cplex工具来实现。咱们先从代码针对的子系统数学模型说起。

一、子系统数学模型

1. 掺氢燃气轮机

它的运行特性需要精确建模,假设其输出功率P*{gt}与输入的掺氢燃气量F*{gt}以及氢气比例x_{h2}相关。在Matlab代码中,可以这样简单示意:

matlab 复制代码
% 假设已知的一些参数
eta_gt = 0.3; % 燃气轮机效率
LHV_gas = 50000; % 天然气低热值
LHV_h2 = 120000; % 氢气低热值

% 输入变量
F_gt = 10; % 输入的掺氢燃气量
x_h2 = 0.2; % 氢气比例

% 计算输出功率
P_gt = eta_gt * ( (1 - x_h2) * LHV_gas + x_h2 * LHV_h2 ) * F_gt;

这里通过燃气轮机效率eta_gt,以及天然气和氢气的低热值,结合输入的燃气量和氢气比例,算出输出功率。实际模型肯定更复杂,比如还得考虑温度、压力等因素对效率的影响,但这能让大家有个基本概念。

2. 掺氢燃气锅炉

它的模型重点在于热量转换,假设其产生的热量Q*{gb}与输入的掺氢燃气量F*{gb}和氢气比例x_{h2}有关。代码示例如下:

matlab 复制代码
% 假设已知参数
eta_gb = 0.8; % 燃气锅炉效率

% 输入变量
F_gb = 8; % 输入的掺氢燃气量

% 计算产生的热量
Q_gb = eta_gb * ( (1 - x_h2) * LHV_gas + x_h2 * LHV_h2 ) * F_gb;

这个代码通过燃气锅炉效率eta_gb来计算产生的热量,实际中也需要考虑更多细节,比如不同工况下的效率变化等。

3. 两段式电转气和碳捕集系统

对于两段式电转气,涉及到电转气效率、不同阶段的转换关系等。碳捕集系统则要考虑捕集效率、成本等因素。假设电转气总效率为\\eta*{p2g},输入电功率P*{in},产生的合成气量F_{s}

matlab 复制代码
% 假设已知参数
eta_p2g = 0.6;

% 输入变量
P_in = 20; % 输入电功率

% 计算合成气量
F_s = eta_p2g * P_in / LHV_s; % LHV_s为合成气低热值

碳捕集系统假设捕集效率为\\eta*{ccs},碳排放E,捕集的碳量E*{captured}

matlab 复制代码
% 假设已知参数
eta_ccs = 0.8;

% 输入变量
E = 100; % 碳排放

% 计算捕集的碳量
E_captured = eta_ccs * E;

二、阶梯碳交易模型

在低碳政策层面,建立阶梯碳交易模型来约束系统碳排放。简单来说,碳排放总量E*{total}如果在某个阈值E* {threshold1}以下,碳交易价格为C*{1};超过E* {threshold1}但在E*{threshold2}以下,碳交易价格为C*{2},以此类推。Matlab代码中可以通过条件判断来实现:

matlab 复制代码
% 假设已知参数
E_threshold1 = 500;
E_threshold2 = 800;
C_1 = 10;
C_2 = 20;

% 计算出的碳排放总量
E_total = 600;

if E_total <= E_threshold1
    C = C_1;
elseif E_total <= E_threshold2
    C = C_2;
else
    % 更多阶梯的情况
    C = 30;
end

三、优化调度策略

在上述建模基础上,提出优化调度策略,目标函数是让碳交易成本、购气和煤耗成本、碳封存成本、机组启停成本和弃风成本之和最低。假设碳交易成本Cost*{carbon}、购气和煤耗成本Cost* {gas\\*coal}、碳封存成本Cost* {sequestration}、机组启停成本Cost*{start\\* stop}、弃风成本Cost*{wind\\*curtailment}

matlab 复制代码
Cost_carbon = C * E_total;
Cost_gas_coal = price_gas * F_gas + price_coal * M_coal; % price_gas和price_coal分别为气价和煤价,F_gas为购气量,M_coal为煤耗量
Cost_sequestration = cost_sequestration * E_captured; % cost_sequestration为单位碳封存成本
Cost_start_stop = sum(start_stop_cost); % start_stop_cost为每次机组启停成本数组
Cost_wind_curtailment = price_wind * P_wind_curtailment; % price_wind为风电价格,P_wind_curtailment为弃风量

Total_cost = Cost_carbon + Cost_gas_coal + Cost_sequestration + Cost_start_stop + Cost_wind_curtailment;

四、复现过程及出图

这次还附带详细的复现过程说明文档哦。在出图方面,比所发文章更多更细致,而且额外考虑了各主体的功率平衡,复现了各情景下的情况。比如通过Matlab的绘图函数plot,我们可以绘制不同情景下各子系统的功率变化,像这样:

matlab 复制代码
% 假设已经计算出不同时间点的子系统功率
time_points = 1:10;
P_gt_values = [10, 12, 15, 13, 14, 16, 18, 17, 15, 14];
P_gb_values = [8, 9, 10, 9, 11, 12, 11, 10, 9, 8];

figure;
plot(time_points, P_gt_values, 'r', 'DisplayName', '燃气轮机功率');
hold on;
plot(time_points, P_gb_values, 'b', 'DisplayName', '燃气锅炉功率');
xlabel('时间点');
ylabel('功率 (MW)');
legend;
title('不同时间点燃气轮机和燃气锅炉功率变化');

这样就能直观地看到不同子系统在不同时间的功率情况,对于分析系统运行状态很有帮助。

通过这些数学模型、策略以及复现过程,我们对基于阶梯碳交易的含P2G - CCS耦合和燃气掺氢的虚拟电厂优化调度有了更深入的理解和实践。希望对大家有所启发!

相关推荐
风华同学17 小时前
【环境搭建篇】ARM+Linux环境搭建
linux·运维·arm开发
猫猫的小茶馆2 天前
【ARM】BootLoader(Uboot)介绍
linux·汇编·arm开发·单片机·嵌入式硬件·mcu·架构
番茄灭世神2 天前
升级新版arm-none-eabi-gcc的方法
linux·运维·arm开发
猫猫的小茶馆2 天前
【ARM】ARM体系结构与开发基础
arm开发·stm32·单片机·嵌入式硬件·mcu·物联网
研华嵌入式2 天前
用Edge Impulse开启你的边缘AI之旅
arm开发·图像处理·嵌入式硬件·目标检测·视觉检测·边缘计算
研华嵌入式2 天前
从零到边缘:在AOM-2721 OSM开发套件上构建基于Edge Impulse的优化物体检测方案
arm开发·目标检测·计算机视觉·视觉检测
猫猫的小茶馆2 天前
【ARM】eclipse 中创建汇编工程
c语言·汇编·arm开发·stm32·单片机·嵌入式硬件·eclipse
Geek__19922 天前
GD32 4G模块通信调试记录
c语言·arm开发·stm32·单片机
猫猫的小茶馆2 天前
【ARM】ARM的介绍
c语言·开发语言·arm开发·stm32·单片机·嵌入式硬件·物联网