基于阶梯碳交易的含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耦合和燃气掺氢的虚拟电厂优化调度有了更深入的理解和实践。希望对大家有所启发!

相关推荐
CQ_YM2 小时前
ARM中断
arm开发·嵌入式硬件·arm
猫猫的小茶馆2 小时前
【Linux 驱动开发】一. 搭建开发环境
linux·汇编·arm开发·驱动开发·stm32·嵌入式硬件·mcu
猫猫的小茶馆3 小时前
【Linux 驱动开发】嵌入式 Linux 开发概念
linux·服务器·arm开发·stm32·单片机·嵌入式硬件·mcu
猫猫的小茶馆3 小时前
【Linux 驱动开发】二. linux内核模块
linux·汇编·arm开发·驱动开发·stm32·嵌入式硬件·架构
算力魔方AIPC4 小时前
DeepX OCR:以 DeepX NPU 加速 PaddleOCR 推理,在 ARM 与 x86 平台交付可规模化的高性能 OCR 能力
arm开发·人工智能·ocr
小鹿软件办公14 小时前
首批搭载 Windows 系统的 ARM PC 及英伟达处理器今年面世
arm开发·armpc
切糕师学AI20 小时前
ARM 中的 SVC 监管调用(Supervisor Call)
linux·c语言·汇编·arm开发
陌上花开缓缓归以20 小时前
linux jiffies 初始化不为0问题分析
linux·arm开发
天骄t1 天前
裸机开发:ARMv7-A中断驱动LED/蜂鸣器实战
arm开发
秋深枫叶红1 天前
嵌入式第四十九篇——ARM系列——IMX6ULL开发板
arm开发·嵌入式硬件