ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

综合能源系统P2G-CCS-CHP联合建模与Matlab优化调度

综合能源系统P2G-CCS-CHP联合建模与Matlab优化调度 这个题目我拿到手的时候第一反应是终于有人把这三个东西放在一个框架里聊了。综合能源系统、电转气Power to GasP2G、碳捕集系统CCS再加一个热电联产CHP这四样单拎出来任何一个都能水好几篇论文但真正要在Matlab里把它们联合建模、写成能跑出调度结果的优化程序却是另一回事。我去年用Matlab码了三个多月前后迭代了四个版本把里面能踩的坑基本都踩了一遍。这篇就把完整思路、数学模型、代码架构、求解器坑点全部拆开讲代码片段可以直接抄作业参数也是我实际调试过的经验值保证比论文附录里的伪代码实用得多。这项目适合谁一类是做综合能源系统规划或调度的研究生尤其是刚入门还不懂怎么把P2G和CCS抽象成约束方程的人另一类是已经写了基础IES模型、想往上加碳流耦合的工程师。只要你有Matlab基础会看sdpvar和optimize剩下的就是跟着我的建模思路走。我不会上来就甩一堆矩阵而是先把物理过程掰开揉碎讲清楚再转换成数学表达最后落到代码。这样你拿到任何算例都能改而不是只会跑通一个demo。1. 项目整体设计思路为什么要把P2G和CCS绑在一起建模1.1 热电联产的传统困局以及P2GCCS的解围逻辑先想想传统热电联产的问题在哪。燃气轮机或内燃机发出来的电和热是强耦合的冬季热负荷高机组就得抬高出力多出来的电在低谷时段根本没人要最终被弃掉。更麻烦的是只要烧天然气就会排碳碳排现在可是真金白银的成本。所以整个系统的痛点其实是三个风电光伏出力的波动没法消纳、热电联产的“以热定电”导致电出力不灵活、碳排放成本越来越高。P2G和CCS的组合恰好对应这三件事。P2G的本质是电解水制氢再加一步甲烷化把氢和二氧化碳合成甲烷相当于用电造气。低谷时段电价便宜甚至为零正好让P2G把多余电能变成天然气存储起来这套东西如果放在CHP旁边就等于给热电厂装了一个“电转气”的缓冲罐。CCS则是从烟气里把二氧化碳抓回来抓回来的CO2正好是甲烷化的原料。这样一来整个系统就形成了一个闭合的碳循环CHP排碳CCS捕碳P2G用捕到的碳合成天然气合成气又回到CHP里发。模型里最值钱的设计就是这一步碳捕集系统不仅要算成本和能耗还要作为P2G的“碳源”参与物料平衡。我做的这个项目里系统拓扑是外部电网、天然气网、燃气锅炉、CHP机组、P2G厂站电解槽甲烷化反应器储氢罐储气罐、CCS装置吸收塔再生塔压缩机、电储能和热储能再加上风机光伏。这完全是国内园区级综合能源系统的典型配置可以直接对应到实际项目。1.2 电网、气网、热网和碳流四网耦合怎么建模这种系统最迷人的地方在于能量流的交叠。电网管电气网管天然气热网管热负荷碳流虽然看不见但它是连接CHP和P2G的“暗线”。在建模之前我先把每一条流画出来电网CHP发电、风机光伏、P2G耗电、电储能充放电、电负荷。气网上级天然气网购气、P2G产气、燃气锅炉耗气、CHP耗气、储气罐。热网CHP余热、燃气锅炉供热、热储能、热负荷。碳流CHP烟气CO2、CCS捕集CO2、P2G甲烷化消耗CO2、直接排放CO2。四条流之间靠设备耦合矩阵串起来。比如CHP这台设备它同时出现在电网输出电功率、气网消耗天然气、热网输出热功率、碳流产生CO2四个方程里。这种多网耦合的建模最忌讳的就是把四个平衡方程分开写忘了同一台设备的四个输出其实是绑定的。我第一版代码就是这么干的结果调度结果里CHP的电、热、气和碳四个变量对不上账后来花了很久才把耦合约束理顺。建模的核心思路是“设备出力特性决定其角色网络约束决定其空间分布优化目标决定其运行策略”。这句话听起来像废话但真写到代码里就明白了设备特性抽象成可行域网络约束抽象成节点平衡优化目标抽象成成本函数。三者缺一个模型就跑飞。1.3 为什么用混合整数线性规划而不是非线性规划这个问题我开题时纠结了很久。真实物理过程没有一个是线性的。天然气管道流量和压差是二次关系Weymouth方程电解槽效率随负载率变化CHP的可行域是多边形碳捕集再生塔的热耗与再沸器温度强相关。如果全部还原成非线性模型Matlab里也不是不能建问题是求解器会慢到怀疑人生而且很容易陷入局部最优发论文审稿人也质疑全局最优性。我的选择是混合整数线性规划MILP。凡是涉及设备启停、储罐充放状态、分段线性化区间的判断全部用0-1整数变量表达凡是非线性的性能曲线全部用分段线性化逼近凡是逻辑关系比如“储氢罐不能同时充和放”用大M法转成线性不等式。这样整个模型最终是一个标准MILP扔给Gurobi或CPLEX在一个园区级算例里几百个变量完全能在可接受时间内收敛。这里有个经验要单独说MILP的求解质量和建模功力直接挂钩。同样的物理过程线性化切分方式不同求解时间可能差一个数量级。我见过有人把电解槽效率曲线切了20段导致分支变量爆炸实际上切到5到6段精度已经足够调度使用了。2. 核心设备建模细节把物理过程翻译成约束方程2.1 电解槽P2G链条的第一环也是最大的电老虎P2G里的电解槽负责把电能转化为氢能我用的是碱性电解槽模型效率取0.62到0.75之间随负载率变化。调度层面的核心约束就是输入电功率和产氢功率的比例关系氢功率 电解槽输入电功率 × 动态效率(负载率)动态效率我用分段线性化处理分5段。为什么因为电解槽在低负载下的效率明显下降如果简化成常数效率就会让优化器在低谷时段拼命压低电解槽出力因为效率低了不划算但实际调度时电解槽恰恰应该在低谷期多运行来消纳新能源。这个偏差会导致弃电率计算结果失真所以我宁可加几个整数变量也要分段逼近。电解槽运行域还有一条硬约束不允许深度持续低于30%的负载。这是电解槽的物理安全限制我把它写成了上限下限约束乘以启停状态。注意这里的启停状态是0-1变量如果要用“启停连续负载”的组合就必须用大M法写出两个约束负载功率 ≤ 最大负载 × 启停状态 负载功率 ≥ 最小负载 × 启停状态这两条约束分开写很多人写成一条不等式结果优化器偷偷让电解槽在停机状态下输出25%的负载解出来数值对不上物理实际。这种错误极其隐蔽我最后是画曲线图才发现的。2.2 甲烷化反应器氢气和CO2合成天然气这一步的关键约束甲烷化反应方程是CO2 4H2 → CH4 2H2O这意味着1摩尔CO2需要4摩尔氢气。从质量流和能量流的角度我用化学计量比约束来保证碳原子和氢原子平衡。这个约束的作用是防止优化器出现“白嫖”行为——比如捕集了CO2却不用它合成甲烷或者合成了甲烷却没有消耗相应CO2。从能量角度看甲烷化反应是放热反应这部分热量在详细仿真里要计入热平衡。但我做的是调度层面的简化模型为了不让模型复杂度失控我把甲烷化反应器当作一个带效率的转换器来处理反应放热没有单独建模而是在热负荷富余时段由热储能兜底。这么做是有代价的当系统热负荷极小、而P2G产气量很大的时候模型的解会偏向产气因为忽略了这部分可回收热实际上P2G产气速率会受到反应器温度上限的约束。甲烷化反应器还有一个约束我一开始完全忽略单位时间的产气速率不是无限的它受催化剂床层温度限制。我给它加了产气功率上限作为固定上限约束。如果你拿到别人的代码发现没有这条约束多半是作者偷懒了这会导致优化调度中P2G在低谷时段满负荷产气在工程上并不可行。2.3 碳捕集系统能耗特性绝对不能用常数碳捕集是整套系统建模里最容易翻车的环节。很多论文把CCS建模成“捕集每吨CO2消耗固定热量和固定电力”这种简化在纯经济评估里还能接受但在优化调度里会出问题——因为CCS捕集量本身是决策变量如果捕集能耗是常数比例那成本函数就成一个线性项优化器会把CCS的捕集量当成一个简单的比例阀捕碳越多成本越高完全忽略了实际捕集装置还有一个“运行区间”和“最低能耗”的概念。我采用的是化学吸收法MEA溶液的参数捕集1吨CO2的再沸器热耗大约2.5到3.5 GJ电耗约0.1到0.2 GJ能耗不是一个固定值而是随着捕集率升高而上升捕集率上限是90%。这条曲线我用分段线性夹逼处理再把能耗放进热平衡和电平衡方程里。注意CCS的热耗不是从天上掉下来的它要么从CHP的余热里来要么从燃气锅炉补充供热。如果建模时只算CCS的碳收益不算它的热成本最终的调度结果会把系统总成本算低。碳捕集还有一个时间尺度问题吸收塔和再生塔的动态响应比较慢在小时级调度里通常直接忽略动态过程认为捕集装置可以即时调节到任意稳态工况。这一点必须在代码注释里写明白不然读者会问为什么没有蓄热约束。2.4 CHP机组与储能设备热电联产可行域和SOC动态CHP机组我用抽凝式燃气轮机的经典可行域来建模这个可行域是一个凸多边形顶点对应不同的电热比工况。我把可行域写成线性不等式组电出力下限 ≤ P_chp ≤ 电出力上限 热出力下限 ≤ H_chp ≤ 热出力上限 P_chp 和 H_chp 的组合约束比如H_chp ≥ k1 × P_chp - b1这类线性不等式这个多边形可行域比传统的“电热比值固定”的背压式模型灵活得多因为它允许热出力在电出力的一个区间内浮动优化器可以自由地在“多发电”和“多供热”之间折中。我是用了午休的时间把Korneev的CHP可行域那篇论文读懂的他提出的建模方法表述了一套多边形约束实现起来非常干净。电储能和热储能我用的是标准SOC荷电状态模型SOC(τ1) SOC(τ) (充电功率 × 充电效率 - 放电功率 / 放电效率) × 时间步长储能模型里我额外加了两个约束充放不能同时进行用0-1变量以及调度周期末SOC要回到初始值或者等于初始值看算例设置。干细胞第一版代码里我偷懒没加“充放互斥”约束结果MILP求解器给出的最优策略是同一时刻又充又放白白消耗效率损失成本反而更高那个解居然不如加了互斥约束的解原因是效率损失让“充放同做”在物理上不产生任何净效益但求解器可能在数值上钻了空子。后来我把互斥约束加上并用大M法转成不等式问题瞬间消失。3. 优化模型的完整数学表述目标、约束、线性化3.1 目标函数究竟怎么选才对调度模型的目标函数我选的是系统总运行成本最小化。总成本包括向上级电网购电成本分时电价向天然气网购气成本设备启动成本CHP和P2G机组启动时额外计费设备运行维护成本碳排放惩罚成本这是CCS和P2G带来的收益项弃风弃光惩罚成本这一项一定要加否则优化器不会主动消纳新能源碳排放成本单独列出来用“直接排放量 × 碳价”表示。直接排放量是CHP总排放量减去CCS捕集量。这样目标函数天然激励优化器多用CCS捕碳同时把捕到的碳交给P2G合成天然气形成利益闭环。这个设计非常关键它让CCS和P2G不再是两个割裂的设备而是在目标函数的驱动下自动协同运行。我实际算过碳价从200元/吨涨到500元/吨时系统会让CCS捕集率从60%升到85%同时P2G产气量明显增加CHP总出力基本不变。这说明碳价信号能有效驱动碳循环而不会让CCS变成奢侈品只在碳价极高时才启动。3.2 约束体系能量平衡、设备爬坡、储气动态约束体系分五层第一层是电功率平衡每一时段系统总发电外部购电储能放电 总负荷 P2G耗电 CCS耗电 储能充电。这一条约束是全局电平衡必须严格成立。第二层是热功率平衡CHP余热燃气锅炉供热热储能放电 热负荷 CCS再沸器热耗。注意CCS热耗一定出现在热平衡方程的左侧作为需求这是很多人漏掉的地方。第三层是天然气平衡上级气网购气甲烷化产气储气罐放气 CHP耗气燃气锅炉耗气储气罐充气。天然气网我采用节点平衡模型忽略管网压降动态因为小时级调度的空间尺度通常不大压降影响远小于设备特性影响。第四层是碳平衡CHP排放CO2总量 CCS捕集量 直接排放量。同时CCS捕集量 ≤ 甲烷化消耗量 碳存储量。如果算例里有CO2储罐可以加碳存储动态如果没有就默认捕集的二氧化碳全部实时送进甲烷化反应器。第五层是设备运行约束上下限、爬坡率、储罐SOC范围、启停逻辑。这里有个反直觉的地方爬坡率约束要不要加如果只做经济调度ED爬坡率可以忽略但如果做的是机组组合UC那么爬坡率必须加否则优化器会让CHP在相邻两个时段从零跳到满负荷这在物理上绝对不可能。我的算例是机组组合级别的所以CHP的爬坡率我设了每分钟2%额定功率折合成每小时就是120%额定功率最多大约半小时从零到满。如果代码里不写爬坡约束效率再高的求解器也算不出工程上可信的结果。3.3 非线性项的线性化处理分段线性化与大M法的落地姿势整个模型里的非线性项不多但每一个都要处理干净。第一个是电解槽效率分段线性化。用SOS2约束特殊有序集在YALMIP里可以直接用sos2声明也可以手动引入0-1变量加“分层权重和等于1”。简单切口太多反而慢所以我只在效率变化最剧烈的0.3到0.6负载区间多切了几段其余区间用线性近似。第二个是CCS能耗曲线。捕集能耗是关于捕集率的凸函数我用三段分段线性近似因为凸函数的分段线性化不会引入局部最优求解器很喜欢这类结构。第三个是产品之间互斥逻辑充放同时、启停同时用大M法写成线性不等式。注意M的取值不能随便给一个特别大的数因为过大的M会带来数值病态M取该变量物理上限的1.1倍就够了。比如某个储气罐最大充气功率是10MW那M就取11既保证逻辑约束的惩罚效果又不影响数值稳定性。第四个是目标函数里的绝对值项比如弃风惩罚是“最大可出力 - 实际出力”的非负部分这个直接用两个非负变量差的方式替代即可。一句话能不用绝对值就不用用了必出病态。做完这几步整个模型我清点了一遍连续变量大概300个0-1变量34个主要是启停和互斥变量约束约700条。这个规模在Gurobi里属于幼儿级两分钟内一定能拿到全局最优解但前提是你没有漏掉逻辑关系或者写错维度。4. Matlab实现架构从数据到结果的完整干活路径4.1 代码目录和文件划分少走半年弯路我做项目有一个习惯第一版代码从来不是一个巨型main.m而是按功能拆分成模块。用我的项目结构举个例子main.m主程序负责把所有模块串起来跑完就出图。case_data.m基础参数函数返回一个struct包含系统拓扑、设备参数、负荷曲线、风光出力、电价气价碳价。build_model.m构建优化模型输入是数据struct输出是YALMIP的决策变量结构体和约束条件cell数组。solve_problem.m调用求解器Gurobi或CPLEX求解返回求解状态、目标值和耗时。plot_results.m出图脚本画出电平衡、热平衡、P2G运行状态、CCS捕集量、储罐SOC等曲线。verification.m结果校核脚本检查能量平衡误差、SOC末尾值、所有变量的上下限。这个结构的最大好处是换算例时只改case_data.m的参数模型文件一行都不用动。我第一版代码把参数和模型揉在一个文件里后来想对比3个园区算例改了半小时参数还担心改错第二版拆分后10分钟就能换一套数据重新跑。4.2 用YALMIP搭建优化模型的核心代码模板YALMIP是我最推荐的Matlab建模工具箱因为它把变量声明、约束拼接、求解器调用做得极其简洁。核心代码骨架如下%% 决策变量定义 P_chp sdpvar(n_chp, T); % CHP电出力 H_chp sdpvar(n_chp, T); % CHP热出力 P_p2g sdpvar(n_p2g, T); % P2G耗电 F_h2 sdpvar(n_p2g, T); % 产氢功率 F_ch4 sdpvar(n_p2g, T); % 甲烷化产气功率 F_co2_capture sdpvar(n_ccs, T); % CCS捕集CO2功率 SOC_elec sdpvar(n_ees, T1); % 电储能SOC u_chp binvar(n_chp, T); % CHP启停 u_p2g binvar(n_p2g, T); % P2G启停 u_ees_c binvar(n_ees, T); % 电储能充电标志 u_ees_d binvar(n_ees, T); % 电储能放电标志 %% 约束定义 C []; % 电功率平衡 C [C, P_from_grid sum(P_chp,1) P_wind P_pv P_ees_d ... P_load sum(P_p2g,1) P_ees_c P_ccs_elec]; % CHP可行域约束 C [C, P_chp_min .* u_chp P_chp P_chp_max .* u_chp]; C [C, H_chp_min .* u_chp H_chp H_chp_max .* u_chp]; % 电解槽效率分段线性化以分段权重变量接入 C [C, F_h2 rho_elec .* P_p2g]; % 占位写法实际用分段线性化替代 % 充放互斥约束 C [C, u_ees_c u_ees_d 1]; C [C, 0 P_ees_c P_ees_max .* u_ees_c]; C [C, 0 P_ees_d P_ees_max .* u_ees_d]; %% 目标函数 objective sum(P_from_grid .* price_e) sum(P_gas * price_g) ... sum(P_chp .* om_chp) sum(P_p2g .* om_p2g) ... sum(F_co2_emit .* price_c) sum(curtail .* penalty_wind); %% 求解 ops sdpsettings(solver, gurobi, verbose, 2, debug, 1); optimize(C, objective, ops);这段代码是理想化的骨架实际运行时要对维度做矩阵运算尤其要小心sdpvar的维度方向。YALMIP里T作为时间维度放在第二维是最省心的如果放在第一维很多矩阵操作会绕到怀疑人生。我建议一开始就统一“变量维度 (设备数量 × 时段数)”的格式不要中途换方向。4.3 算例设计与参数怎么定才能让模型跑出合理结果我用的算例是典型工业园区数据24小时调度周期时间步长1小时。冬季典型日热负荷高电负荷也高关键是夜间电价低谷时段风电出力大这是P2G发挥作用的最佳场景。核心参数如下CHP机组额定电功率100MW热电比可行域下限0.8上限1.5爬坡率每15分钟最大30%。燃气锅炉额定热功率80MW效率0.92。电解槽额定功率30MW效率范围0.62至0.75最小负载率0.3。甲烷化反应器额定产气功率25MW对应天然气的热功率。储氢罐/储气罐容量按24小时P2G额定产气量的70%配置初始SOC取50%。CCS装置捕集能力30吨/小时捕集能耗按分段线性最高捕集率0.9。风电装机80MW冬季大风光伏装机40MW冬季较弱。分时电价低谷0.25元/kWh平段0.55元/kWh高峰0.95元/kWh。天然气价格2.8元/立方米折合热价大约0.28元/kWh。碳价300元/吨CO2。这套参数跑出来的结果非常有代表性低谷时段电价便宜风电大发P2G满载运行把多余电变成天然气储起来同时CCS捕集CHP排出的CO2供给甲烷化反应器高峰时段储气罐放气CHP满发满足电热负荷储氢罐SOC白天明显比夜间低。整个调度曲线呈现清晰的“夜间储、白天放”特征验证了模型的有效性。4.4 结果后处理与图表绘制判断模型好坏的标准模型解出来不等于建模成功还要做验证。我写了专门的verification.m脚本逐项检查第一能量平衡误差。把每一时段的电、热、气平衡方程左边减去右边看残差是不是接近零10的负6次方量级。如果残差有一个明显偏差那就是约束写漏或者维度错了。第二储罐SOC连续性。SOC(1)到SOC(24)的大小应严格等于每时段充放功率累计的结果我画SOC曲线时如果看到跳变说明SOC递推方程绑错了时间索引这是最常见的bug。第三所有变量是否在上下限内。这个检查看着多余但你只要有一次见过负的天然气流量就不会觉得它多余了。负流量的出现往往是目标函数里某个成本项前面符号写反了。第四启停状态与出力的一致性。u_chp等于0的时段P_chp必须恰好是0如果YALMIP输出的结果表明u_chp为1但P_chp为0那说明约束里少了“启停状态对出力的强制下限”或者你写了P_chp的上下限各乘以u_chp但其中乘错了一个。出图方面我推荐统一出六张图电功率平衡堆叠图、热功率平衡堆叠图、天然气流平衡堆叠图、P2G各设备运行状态图氢功率、甲烷化功率、储罐SOC、CCS捕集量与直接排放量柱状图、弃风弃光率曲线。这六张图放在论文里直接就能当结果分析用也可以用来给导师展示“模型确实work”。5. 实操中踩过的坑求解、调参、排查的完整经验5.1 求解器报infeasible怎么办先查这五个地方MILP报无解是家常便饭但绝大多数时候不是模型坏了而是某个约束把可行域给夹成了空集。按我排查顺序的优先级是这样先看SOC初始值约束。比如你要求SOC(1) 0.5末尾SOC(24) SOC(1)如果储罐容量太小低谷蓄不满、高峰放不空系统可能无解。解决办法是把末尾SOC约束放宽为“不小于初始值的90%”。再看电平衡。如果你在目标函数里加了弃风惩罚但电平衡方程里少写了P2G耗电项那所有时段的风电CHP发电都大于负荷任何解都违反平衡直接infeasible。三看启停状态与上下限的乘子。上下限乘u_chp很常见但如果这两个乘子写在了P_chp的两侧并且P_chp_min大于P_chp_max那约束本身就不成立。四看气平衡里的储气罐物理顺序。储气罐不能同时充放用M约束时如果M太小会强制两个0-1变量永远不同时为1但实际物理上“既不充也不放”是允许的M太小会误伤。五看CCS捕集量和甲烷化消耗量的耦合。如果你把CCS捕集量设成了从烟气中来的上限但同时要求甲烷化消耗量等于CCS捕集量而不是≤那么当甲烷化反应器容量不足时就会无解。正确做法是CCS捕集的碳可以瞬时储存用“存储量”作为缓冲。我用一个笨办法快速定位infeasible源头把约束一层层注释掉重新求解先解纯电平衡能解了再加CHP可行域再加P2G再加CCS最后再加储气。哪一层开始infeasible问题就出在哪一层。这个过程可以用脚本自动化但人工做一次就能对模型结构理解更深。5.2 求解时间暴涨的三个元凶分段数、大M值、对称性有一次我的模型从几秒直接飙到半小时Gurobi说optimal gap停在5%下不来。排查后发现是三个问题叠加第一个是电解槽效率分段线性化里用了SOS2约束YALMIP自动生成了很多0-1变量单元格太多导致分支树爆炸。解决方法是把分段数从8段减到5段并把分段点放在效率变化最明显的低负载区。第二个是储能充放互斥的M值我一开始用了1000结果数值条件数恶化Gurobi在数值上一直挣扎。把M改到12后求解时间立刻下降了三分之一。第三个是模型存在对称性。两座相同的CHP机组它们的启停状态在优化器眼里完全等价导致搜索空间重复。解决办法是让两台机组采用不同的效率和启动成本参数哪怕只是差0.5%都能打破对称性大幅减少分支。5.3 结果里出现“边发电边耗电”的悖论怎么破我在第一次联调时发现最优解里出现了P2G耗电和CHP发电同时增加的现象经济上怎么看都不合理既然电价低谷时从电网买电本身就是便宜的为什么还要让本地CHP多发电去喂P2G后来检查目标函数才发现我把“本地发电成本”和“购电成本”写反了CHP的发电边际成本加上了天然气价格权重而电价低谷时段电价远低于天然气的成本优化器为了满足热负荷不得不让CHP多发电多出来的电卖给P2G这笔交易在数学上并不划算。但事实上CHP在热负荷约束下必须运行多出来的电用于P2G反而避免了弃电。这个现象说明了一个关键点耦合设备的边际收益必须考虑“耦合约束的影子价格”。如果只砍掉CHP成本却不考虑热平衡约束解就错了。为了让模型结果更直观我在结果里额外输出了各设备每一时段的边际电价拉格朗日乘子这样一眼就能看出什么时段P2G该开、什么时段该关。这个边际电价输出也是我做报告时的杀手锏。5.4 参数敏感性分析怎么快速判断模型逻辑对不对最后检验模型逻辑是否正确的黄金标准是参数敏感性分析。我的经验是先在基准参数下跑出一个结果然后只改一个参数观察结果是否符合直觉预期。比如把碳价从300元/吨升到500元/吨CCS捕集量应该上升P2G产气量应该上升直接碳排放下降。如果结果相反碳平衡约束必有bug。把P2G效率从0.65提高到0.8低谷时段P2G出力应该更大、弃电率更低。如果没变化说明P2G在低谷时段本来就受其他约束限制比如储气罐容量满了这本身也是一个有意义的信息。把储气罐容量翻倍储气SOC的波动范围应该变大CHP在高峰时段的出力可以更灵活。如果SOC曲线没变化说明储气罐根本没有起到时间平移作用。这套敏感性分析脚本我放在verification.m里每次改完模型先跑一遍再决定要不要深入调参数。它可以自动生成几个关键对比图是说服自己和审稿人“模型逻辑合理”的最低成本手段。现在这套模型还在我的测试库里随时可以换参数跑新算例。要我说P2G加CCS耦合热电联产这个方向最大的价值不在于把单个设备建模得多精细而在于它把电、热、气、碳四条流放到同一个优化框架里审视——这种“用一套模型同时管四条能量流”的思维才是综合能源系统优化真正有意思的地方。后面如果有空我会把这个模型继续扩展加上需求侧响应和新能源出力不确定性场景再跟大家分享。
返回列表