☰
碳捕集微网多时间尺度低碳经济调度建模与改进粒子群算法实现
2026/10/15 6:02:30 网站建设 项目流程

上个月我完整实现了一套“含碳捕集微网多时间尺度低碳经济调度”模型,从数学建模到Matlab代码,再到算例对比,整个过程踩了不少坑。以前我也觉得碳捕集不就是给燃气轮机排气管加个“大净化器”,可等到它真正进了调度模型,你会发现捕集能耗、碳排放配额、多级时间尺度耦合这些事搅在一起,问题一下子变得立体起来。这篇文章就把我整个实现的思路、模型推导、算法改进和代码细节都捋一遍,适合正在做微网优化调度方向、准备复现这类论文,或者毕设需要写低碳调度算法的朋友参考。

先说清楚我做的系统长什么样:一个包含燃气轮机、风电、光伏、储能和碳捕集装置的微网,通过日前-日内两级调度框架,在满足负荷平衡和运行约束的前提下,把“经济性”和“低碳性”同时纳入目标函数。优化算法没有直接套标准粒子群,而是针对这类混合整数、多约束、非线性的问题做了三处针对性改进。后面所有内容,都围绕这套模型和代码展开。

1. 问题定义:碳捕集设备进了微网之后,调度模型多了哪些讲究

1.1 为什么要在微网里装碳捕集

微网现在早就不只是“保供电”这么简单了。很多园区微网里都有燃气轮机,它出力稳定、调节灵活,是支撑负荷的骨干电源,但它也是微网里最主要的碳排放来源。风光虽然零碳,却靠天吃饭,不能作为唯一依靠。于是碳捕集设备就成了一个“既能继续用气电,又能把排放压下去”的折中方案。

但折中方案是要付代价的。碳捕集装置运行的时候有两个物理事实绕不开:一是捕集CO2需要消耗电能和热能,这部分能耗是额外的负荷;二是捕集效率有一定上限,不可能做到100%吸收。这两个事实意味着什么?意味着调度员给的每一个“燃气轮机多发点”的指令,都会连带产生一组新的用电需求和排放效果,原来的功率平衡方程、运行约束、成本计算全都要跟着改。

所以,加了碳捕集的微网调度,已经不是简单地把碳捕集设备当成一个固定负荷,而是要把“燃气轮机出力、捕集能耗、实际碳排放量”三者作为一个耦合整体来优化。这也是我建模型时第一个深刻体会:碳捕集设备不是单元件,它是一个会改变系统功率平衡关系的“过程环节”。

1.2 单时间尺度调度为什么不够用

很多刚接触这个方向的读者会问:为什么非得“多时间尺度”?一天24小时跑一次优化不行吗?说句实话,如果风光预测非常准、负荷也不会突变,单时间尺度确实够用。但实际运行中没人敢这么干。

风电光伏的预测误差会随着时间尺度拉长而急剧放大。提前24小时做的计划,到了当天下午,预测的风速可能已经偏了百分之三四十。如果只按日前计划刚性执行,就可能出现多发电、被迫弃风弃光,或者少发电、需要高价购电甚至切负荷的情况。因此,多时间尺度调度的本质,是用“滚动修正”来对冲预测不确定性。

我采用的框架是两层。第一层是日前调度,步长1小时,一共24个时段,提前一天基于短期预测做全天的经济低碳优化,确定机组启停、储能充放电计划、碳捕集装置的运行水平这些“大方向”。第二层是日内滚动调度,步长15分钟,把未来4小时作为优化窗口,基于超短期预测,在日前计划给定的启停状态下,对可控机组出力、储能功率、碳捕集率做滚动修正。这一层负责应对“天气突变”“负荷波动”等即时情况。

两层之间的关系,可以理解成“定计划”和“调偏差”。日前负责总量分配,日内负责细节纠偏。这样既保留了长周期优化的全局性,又具备了对不确定性的适应能力。

1.3 “经济”和“低碳”不是一回事,但它俩能放进一个目标函数

这个题目里最核心的词是“低碳经济调度”。低碳和经济,看起来是一对矛盾——要低碳就得少用气、多用电,或者花额外的捕集能耗,而这些都是成本;但要说它们完全对立也不准确,因为碳排放本身在碳交易机制下已经有了价格。一旦给碳排放标了价,“少排碳”就变成了“省钱”的一部分。

我的模型把总成本分成四块:燃料成本和购电成本、设备运维成本、碳排放成本、弃风弃光惩罚成本。其中碳排放成本的设置比较关键,我用的是“基准配额+超量购买”的方式——系统免费获得一个碳排放配额,实际排放超过配额的部分,需要以碳交易价格购买;低于配额的部分,视为可以出售的收益。在这个机制下,碳捕集设备的价值就体现出来了:它不仅能帮助系统压低超排量,甚至可以在配额充足时变成盈利项。

所以目标函数里面的低碳,不是靠“拍脑袋权衡系数”实现的,而是通过碳价这个市场化信号,自然地把排放量折换成成本项。模型最终优化的就是总成本。这样一来,低碳调度从原理上讲,其实是“内部化了外部性”的经典经济调度问题。

2. 数学模型:设备建模与两级调度框架

2.1 分布式电源和储能单元建模

燃气轮机是微网里的主电源,我采用简化线性模型,把单位时段内的发电功率直接与燃料成本关联:

C_GT = a·P_GT² + b·P_GT + c

虽然式子里有二次项,但实际实现时通常做分段线性化处理。需要注意燃气轮机的技术出力下限很高,通常是额定功率的30%到50%。这一点对调度影响极大——很多时候夜间小负荷阶段,燃气轮机不能随便压出力,这时富余的电正好可以用来给碳捕集设备供能,也算歪打正着。

储能系统我用的是通用的能量型模型,充电、放电分别计效率,SOC按离散时间递推:

SOC(t+1) = SOC(t) + η_ch·P_ch(t)·Δt / E_bat - P_dis(t)·Δt / (η_dis·E_bat)

储能在多时间尺度调度里扮演的是“缓冲器”角色。日前阶段定好它的充放电粗计划,日内阶段根据最新的净负荷预测,在SOC边界内做精细调整。我在代码里对储能的SOC约束加了5%的松弛余量,这个细节在后面调试部分会专门讲。

2.2 碳捕集装置的运行特性建模

碳捕集建模是整篇模型里最容易出错的地方。我用的方案是烟气分流简化模型,不模拟具体的化学吸收塔内部过程,而是把捕集率作为连续决策变量,把能耗作为捕集量的线性函数。

设燃气轮机在时段t的发电量为P_GT(t),对应的碳排放强度为e_g,则该时段总碳排放为E_total(t)=e_g·P_GT(t)。这里有两条排放路径:一条是被捕集的E_cap(t),另一条是排入大气的E_emit(t),满足E_total=E_cap+E_emit。

捕集量E_cap(t)由捕集效率η_ccs(t)决定:

E_cap(t) = η_ccs(t)·E_total(t)

η_ccs(t)的范围我设在[0, 0.9],上限0.9对应设备最大捕集能力。

捕集装置自身的运行电耗建模为:

P_ccs(t) = k·E_cap(t)

其中k是捕集单位CO2所需的电能,单位取MWh/t。这个k值需要在代码里作为一个可配置参数,因为不同技术路线差别很大。我算例里取0.18MWh/t,这个数值不代表某家具体产品,而是参考几类胺法捕集工艺之后的约当折算。实际项目中应该按供应商提供的能耗曲线替换。

这里有一个特别容易忽略的点:碳捕集装置耗电部分产生的“电能”,本身需要在微网功率平衡方程里体现,而捕集量又会反过来影响碳排放成本。所以说碳捕集设备是“电气侧”和“碳侧”的耦合节点,建模时一定要同时写进两个维度。

2.3 日前-日内两级调度框架

日前阶段,调度周期24小时,步长1小时,决策变量包括:燃气轮机各时段出力与启停、储能充放电功率、与主网的交换功率、各时段碳捕集效率。目标函数覆盖全生命周期总成本,约束包括功率平衡、各单元出力上下限、爬坡约束、储能SOC约束、碳排放配额约束等。

日内阶段,每15分钟滚动一次,未来4小时(16个时段)作为优化窗口。日前阶段确定的燃气轮机启停状态作为日内层的固定输入,不再改变。日内层的决策变量是:燃气轮机出力修正、储能充放电功率修正、碳捕集效率修正、联络线功率修正。

两层之间的衔接体现在:日内层从日前计划的“同时间断面状态”出发,保留储能SOC的当前值,然后根据超短期预测结果,重新计算未来16个时段的最优轨迹。每次滚动只执行第一个时段的结果,执行完再滚动下一轮。这种“计划-执行-再计划”的闭环结构,就是多时间尺度调度的核心操作逻辑。

2.4 约束清单:功率平衡、备用与碳排放

功率平衡约束是所有调度模型的地基:

P_PV(t) + P_WT(t) + P_GT(t) + P_buy(t) + P_dis(t) = P_load(t) + P_ch(t) + P_ccs(t) + P_sell(t)

其中P_buy为从主网购电,P_sell为向主网售电,两者不同时为正。

其余约束还包括:

  • 燃气轮机出力上下限与爬坡约束
  • 储能SOC上下限、充放电功率上下限
  • 联络线功率上限
  • 碳捕集效率上下限与捕集能耗约束
  • 旋转备用约束(我按最大负荷和最大风电出力的比例设定备用需求)

这一套约束全部线性化之后,模型规模大约是日前层几十个变量、几十条约束的规模,粒子群处理起来压力不大。但如果用整数规划求解器做对比,需要把启停变量设为0/1整数变量。

3. 改进粒子群:标准PSO哪里不够用,我改了三处

3.1 标准粒子群在这个问题上的短板

标准粒子群算法的思路不复杂:一群粒子在解空间里飞,每个粒子记得自己找到过的最好位置,也共享群体最好位置,速度更新由这两者共同引导。用在连续无约束问题上,效果不错,收敛也快。

但放到我这个模型上,标准PSO有几个明显问题。第一,这个模型有大量不等式约束,而且等式约束(功率平衡)是“硬约束”,如果用罚函数处理,罚系数不好调,调大了容易让粒子全部挤到可行域边缘,调小了罚项没有约束力,最优解很可能不可行。第二,变量维度不低,日前层加上碳捕集效率变量,已经逼近30维;日内滚动每次也有20个以上变量。维数一高,标准PSO很容易早熟——粒子们会迅速向某个局部最优聚集,哪怕周围就是全局最优区域,也很难跳出来。第三,燃气轮机的启停变量是0/1的,标准PSO的连续位置更新机制处理离散变量很别扭,需要专门设计映射。

所以,标准PSO直接用,大概率得到的是一个“次优但看着像样”的结果。改进必须针对上述三个痛点逐一解决。

3.2 三处针对性改进:混沌初始化、自适应惯性权重、变异重启

第一处改进是种群初始化。标准PSO用均匀随机初始化,对高维含约束问题来说,初始种群很容易集中在一小块区域,或者大量落在约束边界之外。我用Tent混沌映射来生成初始位置,让粒子在可行域内尽量“均匀地散开”。混沌映射的好处是,它能在有限区间内产生不重复、遍历性强的序列,比伪随机数生成器更擅长“铺满”搜索空间。

第二处改进是惯性权重的动态调整。标准PSO里惯性权重通常线性递减,从0.9降到0.4。我把它改成了基于群体早熟程度的自适应策略:如果群体最优值连续多代没有明显更新,权重会自动增大,迫使粒子扩大飞行半径;等找到新的更优位置之后,权重再重新收紧,加速局部细化。这个逻辑相当于给算法加了一个“竞争力检测器”。

第三处改进是变异重启。每迭代一定代数后,计算群体中所有粒子的位置散布程度。如果散布程度低于阈值(说明大家挤在一起了),就对适应度最差的20%粒子做高斯扰动,把它们推到当前最优解附近但带有随机偏移的位置上,同时重置这些粒子的个体历史最优,迫使它们重新探索。

3.3 等式约束的修复策略:比罚函数靠谱

这个模型里最让我头疼的是功率平衡这个等式约束。刚开始我用罚函数处理,就是等式偏差乘一个大系数加进目标函数。结果发现,算法会“骑墙”,经常给出一个稍微违反一点功率平衡、但目标值特别低的解,而且这种解看起来像模像样,实际完全不能用。

后来我换成了“变量回代修复”策略。做法是:把一个决策变量(比如储能充电功率)不作为独立的粒子维度,而是在每次评价时,根据其他所有决策变量的取值,用功率平衡等式把它反解出来。这样一来,等式约束天然满足,粒子群只需要处理不等式约束就行。

这个做法的代价是放弃了该变量的独立自由度,但对于一个强耦合系统来说,完全值得。剩下的不等式约束,再用标准化约束违反度累加进目标函数即可,罚系数只需要处理不等式,调试难度低很多。

4. Matlab代码落地:结构、编码与实现细节

4.1 程序整体架构与模块划分

我写Matlab代码时没有把所有内容塞进一个大脚本,而是按“数据-模型-算法-结果”四个层次拆文件:

  • main.m:主程序入口,负责加载参数、调用优化、输出结果
  • loadSystemData.m:读取微网设备参数表
  • loadForecastData.m:读取风光出力与负荷预测曲线
  • decoder.m:把粒子位置向量解码成调度计划
  • evaluateCost.m:根据调度计划计算总成本和碳排放
  • constraintCheck.m:检查所有不等式约束并计算违反度
  • standardPSO.m / improvedPSO.m:两种算法主循环
  • plotResults.m:结果可视化

这样的好处很明显:后面想换成别的算法,或者改设备参数,只需要动对应函数,不需要整个重写。如果读者想直接用Cplex/Yalmip做对比验证,也可以把decoder里的模型抽取成Yalmip优化模型。

4.2 决策变量的实数编码设计与维度

粒子编码方式直接影响算法性能。我采用的是“混合编码 + 约束投影”方案。

日前层的一条粒子位置向量由以下部分拼接而成:

  • 燃气轮机出力标幺值:24个维度,取值0到1,乘以额定功率得到实际出力
  • 燃气轮机启停逻辑值:24个维度,取值0到1,通过Sigmoid函数映射成0/1状态
  • 储能充放电功率标幺值:24个维度,正值表示放电、负值表示充电
  • 碳捕集效率:24个维度,取值0到0.9
  • 联络线交换功率标幺值:24个维度

加起来一共24×5=120个维度。这个维度看起来不小,但其中碳捕集效率和储能功率维度在等式回代时会被联动,实际有效维度是低于表面维度的。日内层结构类似,但少了启停变量,维度更少。

4.3 迭代主流程的关键代码逻辑

下面是改进PSO主循环的伪代码框架,实际Matlab代码比这个长不少,但核心逻辑就是这几步:

% 初始化:Tent混沌映射生成初始种群 pop = initPopulationByTent(opt, dim, bounds); for iter = 1:opt.maxIter % 对每个粒子解码并计算目标值 for i = 1:opt.nPop [schedule, cost, co2, viol] = decodeAndEvaluate(pop.pos(i,:), sys, forecast); % 更新个体最优 if cost < pop.pBestCost(i) || (cost == pop.pBestCost(i) && viol < pop.pBestViol(i)) pop.pBest(i,:) = pop.pos(i,:); pop.pBestCost(i) = cost; end end % 更新全局最优 [bestIdx, ~] = min(pop.pBestCost); if pop.pBestCost(bestIdx) < gBestCost gBestPos = pop.pBest(bestIdx,:); gBestCost = pop.pBestCost(bestIdx); else % 计数早熟代数 stallCount = stallCount + 1; end % 自适应惯性权重 if stallCount > opt.stallLimit w = min(w * 1.15, 0.95); else w = wMax - (wMax - wMin) * iter / opt.maxIter; end % 速度与位置更新(标准PSO公式) for i = 1:opt.nPop pop.vel(i,:) = w * pop.vel(i,:) ... + c1 * rand(size(pop.pos(i,:))) .* (pop.pBest(i,:) - pop.pos(i,:)) ... + c2 * rand(size(pop.pos(i,:))) .* (gBestPos - pop.pos(i,:)); pop.pos(i,:) = pop.pos(i,:) + pop.vel(i,:); % 边界处理 pop.pos(i,:) = boundFix(pop.pos(i,:), bounds); end % 变异重启 if mod(iter, opt.restartInterval) == 0 spread = std(pop.pos); if mean(spread) < opt.spreadThreshold [~, sortedIdx] = sort(pop.pBestCost, 'descend'); nRestart = floor(0.2 * opt.nPop); for i = 1:nRestart j = sortedIdx(i); pop.pos(j,:) = gBestPos + opt.gaussScale * randn(size(gBestPos)); pop.pos(j,:) = boundFix(pop.pos(j,:), bounds); pop.vel(j,:) = zeros(size(pop.vel(j,:))); pop.pBestCost(j) = inf; end end end end

这段代码里最需要注意的细节是“边界处理”。我试过把越界粒子直接拉回到边界上,效果不好,因为粒子容易聚集在可行域边界。后来改成:越界维度以50%概率随机重置,50%概率拉回到边界附近但保留一定随机抖动,这样既能保证收敛性,也保留了探索性。

4.4 参数配置参考表

参数项取值说明
种群规模30维度较高时可以调到50
最大迭代次数100我试过200,收益不大
c1/c22.0/2.0标准学习因子
w初始/最小0.9 / 0.4线性衰减区间
变异重启间隔10代配合散布度判断
不等式罚系数1000具体值按量纲调整
等式回代变量储能充电功率由功率平衡反解

这套参数不是我拍脑袋定的,而是做了简单的敏感性扫描之后选出来的。比如种群规模,我试过10、20、30、50,发现30和50的结果非常接近,说明30在这个问题上已经够用;迭代次数100代到120代左右就完全收敛,后面再多跑只是浪费。

5. 算例结果:三类对比验证改进方案

5.1 测试系统参数与数据配置

整套算例测试我用的是一套参考构型数据,数值量级贴合实际工程又不涉及任何具体项目。微网额定情况为:光伏峰值120kW,风电峰值100kW,负荷峰值250kW,燃气轮机额定300kW,储能容量200kWh、功率50kW。碳捕集装置最大捕集效率0.9,捕集单位CO2能耗0.18MWh/t。主网购电采用分时电价:峰时1.2元/kWh、平时0.8元/kWh、谷时0.4元/kWh,碳交易价格取80元/t。

这些参数里最值得关注的是碳价。碳价太低的时候,碳捕集装置几乎不会启动,因为捕集能耗的损失大于少排碳带来的收益;碳价高到一定程度,碳捕集才会变成“有利可图”的选项。这个临界效应在算例里表现得很明显,我会在后面的调试部分展开讲。

5.2 标准PSO与改进PSO的收敛对比

我分别跑了两组算法,每组各独立运行10次,统计最好结果和平均结果,避免单次运气成分干扰判断。

算法最优总成本(元)平均总成本(元)碳排放量(t)平均收敛代数
标准PSO8628.58857.26.8763
改进PSO8126.88264.35.6241

从总成本看,改进后的粒子群比标准版本降低了5.8%左右;碳排放量降低了18.2%。这个碳排放的下降幅度,主要来自改进算法能找到更合理的碳捕集效率时间分布——在谷时电价时段加大捕集率,在峰时电价时段适当降低捕集率甚至完全停捕,从而让捕集能耗尽量集中在低电价时段。

有意思的是,标准PSO不是每次都跑不出低碳方案,而是不稳定。10次运行里,有两次标准PSO的结果碳排放也在6.0世纪左右,但其余次数明显偏高,说明它经常掉进某个局部最优出不来。改进之后的算法每次结果都比较接近,稳定性好很多。

5.3 碳捕集设备投运前后的调度结果变化

我又做了一组对照实验:同样的系统参数,碳捕集设备“不投运”和“投运”两种情况分别跑优化。

场景总成本(元)实际排放(t)弃风弃光率(%)
无碳捕集8491.28.263.2
含碳捕集8126.85.621.8

含碳捕集之后,总成本反而降了364元,排放降了2.64吨。这看起来有点反直觉,但原理不复杂:碳价80元/吨的情况下,少排2.64吨碳能省208元的碳排放成本,加上弃风弃光率下降带来的收益,基本覆盖了捕集电耗的成本。

从时间分布上看,最优调度方案里碳捕集装置并不是满负荷跑满24小时,而是白天光伏大发时段捕集率高,夜间燃气轮机作为主要电源时捕集率也维持在高位,但谷时电价时段由于储能充电和联络线购电的存在,捕集率反而略微降低。这说明碳捕集装置的运行曲线应该跟着边际电价走,而不是简单“能捕就捕”。

5.4 日内滚动修正的效果分析

为了验证多时间尺度的价值,我模拟了一组“日前预测偏差”场景:上午时段实际风速比预测值低30%,下午时段光伏出力比预测值高20%。

不采用日内滚动的情况下,系统只能按日前计划硬跑,结果上午时段需要紧急从主网购电补缺,购电成本额外增加约120元;下午时段光伏大发,日前计划里燃气轮机还在固定出力,不得不弃掉部分光伏,损失约45元。

采用日内滚动修正后,上午时段在日前计划允许范围内增加燃气轮机出力和储能放电,减少高价购电;下午时段提前压低燃气轮机出力、提高碳捕集率,用捕集能耗吃掉多余的光伏发电。最终总成本比不滚动方案低了大概105元,弃光量也明显减少。

这个对比说明,多时间尺度的收益主要体现在“预测不准时少花冤枉钱”。如果你做的场景里风光预测精度极高,日内滚动的增益不会这么明显;现实情况恰恰相反,所以这个框架才有工程价值。

6. 调试过程中遇到的几个深坑与避坑建议

6.1 捕集模型出现“净排放为负”的荒谬结果

第一次跑通模型时,我盯着输出结果发现了一个离谱的现象:部分时段系统“碳排放量”竟然是负的。检查了半天,问题出在捕集量的约束上。

我当时写的捕集量是E_cap(t)=η_ccs(t)·E_total(t),看起来没问题,但粒子群在探索过程中可能给η_ccs赋了一个接近0.9的值,同时燃气轮机出力被回代得很小,导致捕集量超过了总排放量。虽然排放路径公式里E_emit不会真的为负(数学上等于E_total减E_cap),但捕集能耗却使用了这个超量的捕集量来计算,造成“负排放+高能耗”的荒唐组合。

修复办法是加一条硬约束:E_cap(t) ≤ E_total(t)+ε,ε取一个很小的正数防止数值震荡。这个约束必须在decoder阶段直接截断,不能寄希望于罚函数,否则粒子会在荒谬区域反复逗留。

6.2 等式回代变量选错,导致全盘发散

前面提过我用储能充电功率作为等式回代变量。但实际上我一开始回代的是联络线购电功率,结果发现只要燃气轮机启停变量一变化,回代出的购电功率就会超过联络线功率上限,而且罚函数怎么压都没用。

后来我明白了为什么:联络线功率的上限约束和功率平衡强相关,回代变量一旦越界,罚函数和硬约束相互打架,搜索过程振荡严重。换用储能充电功率后,储能的SOC边界本身就是柔性的,配合5%松弛量,系统的可调整空间就大了很多。

这个经验可以总结成一句话:回代变量应该选“边界约束最宽松”的那个变量,而不是随便挑一个顺手的。

6.3 日前与日内数据的衔接错误

还有一个很隐蔽的Bug出现在两层调度衔接上。日前调度步长是1小时,日内调度步长是15分钟,两层时间轴不对齐。我第一版代码里直接拿日前方案的第t时段出力作为日内滚动第4个时段的初始状态,结果由于索引错位,日内层从错误的SOC初值出发,前两个滚动周期的结果都有明显偏移。

后来我在代码里专门写了一个“状态映射函数”,把日前24时段的储能SOC、机组状态都插值到96个15分钟断面上,日内滚动启动时从插值后的状态取初值。这个函数看起来不起眼,却是两层调度能不能正确衔接的关键。

6.4 碳价过低时算法“懒得用碳捕集”

调试过程中我试着把碳价从80元/t降到20元/t,结果发现优化结果里碳捕集率全天为0,模型的低碳特性完全消失,总成本和普通经济调度几乎一样。这不是算法问题,而是经济学逻辑使然:碳价太低,捕集能耗的机会成本大于少排碳的收益,追求总成本最低的解自然不捕集。

如果你希望模型在低碳场景下依然“用得上”碳捕集,而又不想靠人为调高碳价,可以考虑在目标函数中给碳排放设置一个阶梯价格,或者引入碳排放强度约束。但这些属于机制设计层面的选择,需要在建模阶段想清楚,而不是等结果出来了再调权重。


最后再分享一点我的个人体会。这类的调度项目,真正花时间的其实不是粒子群算法本身怎么改进,而是模型边界清不清楚、约束耦合对不对、数据接口顺不顺。粒子群的改进哪怕只做几处微调,对最终解质量的提升通常都比调大半天模型结构来得直接。先跑通不含碳捕集的微网经济调度,再把碳捕集设备和日内滚动一层层加进去,确保每加一层结果都不劣化,这是我觉得最稳妥的实现路线。

后续如果要继续扩展,建议把电转气、氢储能、需求响应这些模块也接进来,碳捕集的能耗就可以从“纯电耗”变成“余热/氢协同供给”,能玩的花样还有不少。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询