简介:本资源面向能源系统建模与优化领域的研究生、科研人员及电力/燃气/热力行业工程师,提供一套完整的电-气-热综合能源系统多网耦合优化调度MATLAB实现方案。针对电网、气网与热网协同运行中的非线性耦合难题,代码构建了含10机39节点电网(采用直流潮流模型)、比利时20节点配气网(经线性化处理)及热网的联合调度模型,支持YALMIP调用CPLEX或Gurobi求解器进行高效求解,适用于综合能源系统规划、运行仿真与低碳调度研究场景。压缩包为RAR格式,共16.66MB,包含核心建模脚本、参数配置文件、算例数据及完整求解流程代码,无文档类文件,所有内容聚焦于可直接运行的数值优化实现。目前已有3666人学习下载,读者可直接复现多能流耦合建模、跨网能量交互约束设置、线性化技巧应用及大规模混合整数规划求解全过程,具备强工程落地参考价值。 做综合能源优化调度这几年,我手上攒了不少资料,其中一份标记着“20-电-气-热综合能源系统优化调度”的压缩包,算是我最常翻出来参考的合集之一。它的名字很直白,里面装的正是电-气-热三类能源耦合系统的优化调度模型、代码和文档。今天我把这份资料的核心内容、我用它复现调度方案时踩过的坑,以及从建模到求解的完整思路整理出来,给正在做综合能源系统、园区级多能互补或者微电网优化调度的朋友一个可直接上手的参考。
这份资料适合谁?简单说,三类人最需要:一是刚入门综合能源、想找一个标准算例练手的硕士生,二是做园区能源规划、需要快速搭建日前调度方案的工程师,三是想对比不同求解器、不同建模风格的研究人员。它能帮你解决的问题也很具体:风电光伏怎么消纳、CHP机组和电锅炉怎么配合、气网和热网的约束怎么进模型,以及最关键的——多能源耦合的优化问题到底怎么又快又稳地求出最优解。
1. 电-气-热联供系统:先搞清楚我们在优化什么
1.1 为什么要把电、气、热放在同一个模型里
传统电力系统调度只看电源和负荷,天然气管网和热力管网往往各管各的。但到了综合能源系统里,这三张网是绑在一起的:天然气进燃气轮机发电,余热进余热锅炉供热;电锅炉可以把低谷电变成热;P2G(电转气)装置又能把富余风电变成天然气。任何一个环节的波动都会沿着耦合设备传导到另外两张网里。
所以电-气-热联合调度的本质,是把三张网的运行约束放到一个优化问题里同时求解,而不是分开算完再人为协调。分开算的问题在于:电网调度看到的风电消纳空间,可能因为气网供气不足而实际达不到;热网按自己的热负荷曲线安排热电联产机组出力,又可能反过来挤压电网的调峰空间。只有联合优化,才能把这种耦合关系真正体现出来。
打个比方,单独调度就像三个人各端各的盘子排队打菜,联合调度则是三个人一起商量着怎么把菜打得不浪费。对系统运行者来说,联合优化带来的是真金白银的收益——燃料成本更省、弃风弃光更少、设备出力更均衡。
1.2 这份资料里的系统框架和典型拓扑
资料包里的模型基准拓扑是这样的:电网侧有常规火电机组、风电场、光伏电站,通过母线向电负荷供电;气网侧有气源节点、天然气管道和储气罐,向燃气轮机供气;热网侧有燃气锅炉、余热锅炉、电锅炉和蓄热罐,通过供热管道向热负荷供热。关键的耦合设备有三组:
- CHP机组(热电联产):天然气进去,电和热同时出来,是电热气三网耦合最核心的设备。模型里通常用热电比可调或者定热电比两种方式描述。
- P2G装置:消耗电能生产天然气,实现电到气的单向转换。在新能源渗透率高的场景下,它是消纳弃风的利器。
- 电锅炉和热泵:用电产热,相当于在电网上加了一个灵活的热负荷,可以主动调节用电时段来配合新能源出力。
这套拓扑不是随便拍的,它覆盖了综合能源系统最常见的几种耦合方式:气到电(燃气轮机)、气到热(燃气锅炉)、电到热(电锅炉)、电到气(P2G)、热到电(热回收后再发电的情况相对少见,但CHP机组本身就内含这个逻辑)。照着这套拓扑建模型,做完之后要扩展到更复杂的系统,只需要在节点和支路上做加法就行,不用推翻重来。
1.3 优化调度的目标函数:成本、碳排和能效怎么权衡
优化调度的目标函数是模型的心脏。资料里给出的典型目标是最小化系统总运行成本,主要包括:
- 购能成本:从电网买电的费用、从气网购天然气的费用。
- 燃料成本:火电机组的煤耗成本,CHP机组和燃气锅炉的耗气成本。
- 运行维护成本:各设备的单位出力运维费用。
- 弃风弃光惩罚成本:新能源实际出力低于预测出力时,按弃电量加惩罚。
- 碳排成本:如果做碳排放约束,需要把CO2排放量乘以碳价计入目标。
有些场景还会把目标设成最小化碳排放、最大化新能源消纳率,或者多目标同时考虑。资料里给了一个双层模型的框架,上层做容量配置,下层做运行调度——但如果你只是做运行优化,不需要动上层,直接用下层模型就行。
我个人的建议是:第一版模型先只做单目标(经济性最优),把约束全部跑通再逐步加碳约束、加多目标。一上来就搞多目标,目标函数权重的处理会让人非常头疼,而且不利于调试。我见过太多人在第一步就因为目标函数太复杂,后面建模全乱套。
2. 建模的关键细节:这三张网的约束必须这么写
2.1 电网约束:节点功率平衡之外的三个隐藏坑
电网部分的约束,最基础的是节点功率平衡方程,即各电源出力之和等于各负荷消耗之和加网损。基础归基础,实际建模时有三个坑很常见:
坑一:没有区分决策变量和参数。风电、光伏出力在调度模型中通常作为已知参数(预测值)输入,而不是决策变量。如果你把它们设成决策变量,求解器会自己“调整”风电出力去凑平衡,出来的结果就是弃风率为零,完全失真。
坑二:忽略爬坡约束。火电机组和CHP机组不是想发多少就发多少,一分钟内出力变化有限制。很多新手写的模型里只有出力上下限,没有爬坡约束,结果调度方案里机组出力跳来跳去,现场根本执行不了。
坑三:备用约束缺失。实际调度必须留出旋转备用容量应对预测误差。资料里这个模型至少考虑了负荷备用和事故备用,我在做工程化改造时还加了新能源预测误差带来的备用需求,效果更稳妥。
电网部分的约束写完之后,建议做一个自检:把CHP机组出力置零,跑一下纯电网模型,看结果是否符合常规电力系统调度逻辑。这一步能很快暴露功率平衡和约束写错的问题。
2.2 气网约束:Weymouth方程线性化是最大分水岭
气网和电网最大的不同在于:电网的潮流方程在常规工况下可以近似线性,而气网管道流量和节点压力的关系是强非线性的。典型的气网稳态模型里,管道流量由Weymouth方程描述,它把流量平方和管道两端压力平方差挂钩。这个非线性项如果直接丢给求解器,求解速度会非常感人。
所以资料里的模型采用了分段线性化的办法:把管道流量分成若干段,在每一段内将压力平方差与流量的关系线性近似,引入0-1变量表示流量方向。这样处理后,原本的非线性规划(NLP)问题就变成了混合整数线性规划(MILP)问题,CPLEX、Gurobi这些商用求解器就能很快求解。
还有一个容易漏的约束是气源供气能力约束,包括气源最大供气量和供气爬坡速率。很多园区级综合能源系统里,气网被简化为一个“无限气源”,但这在工程上是站不住脚的——尤其是北方冬季采暖季,气源本身就很紧张,天然气的供应会实实在在影响热电联产机组的出力上限。
2.3 热网约束:温度动态和节点混合模型
热网建模是整个系统里最容易被低估的部分。很多人以为热网约束就是热功率平衡,其实严格来说不只是一定时段的平衡,还包括供热介质的温度传递过程。
资料里的热网模型采用的是节点法(nodal method),核心变量是各节点的供水和回水温度。热网约束主要包括:热源和热负荷节点的热量平衡、管道温降方程(热水在管道里流动会散热的)、节点温度混合约束。管道温降和温度混合约束使得热网具有“惯性”——热负荷的波动不会瞬间反映到热源,这给了蓄热罐很好的调节空间。
对于做运行优化的公众号资料来说,节点法已经足够用了。如果你要做的是短期(小时级)调度,可以把热网简化为准稳态模型,即认为每个调度时段内温度场是稳态的,只考虑时段间的能量累积。但如果你做的是秒级或分钟级控制,就必须建热网动态模型,用偏微分方程描述温度波在管道中的传播,那个复杂度会上一个台阶。
热网还有一个特性:热负荷的预测精度通常比电负荷差。所以做调度时,热负荷的预测误差处理一定要在模型里留出裕度,否则实际运行中供热温度会飘。
2.4 耦合设备约束:CHP、P2G、储热罐的运行域建模
耦合设备是综合能源系统区别于单一能源系统的本质所在。它们的约束写得准不准,直接决定了优化结果靠不靠谱。
CHP机组的建模有两种常见方式:定热电比模型和可行域模型。定热电比简单,但会限制机组调节的灵活性。资料里用的是可行域模型——把CHP机组的电出力和热出力构成一个二维多边形可行域,机组只能在这个多边形内部运行。这个约束用一组线性不等式就能表达,非常适合MILP求解。CHP还有启停状态的约束,包括最小开停机时间,这部分非常重要,因为频繁启停机组在工程上是不允许的。
P2G装置的核心约束是电转气的效率(通常3.5-5 kWh电转1立方米天然气)和爬坡约束。很多模型还会考虑P2G产出的天然气直接注入燃气管网,与气网耦合。这里有个容易被忽略的细节:P2G产出的天然气组分与天然气管网里的天然气不完全一致,热值有差异,严格来说气网混入P2G气体后需要在节点处做热值修正。但从优化运行的角度,大多数研究都简化处理为直接等热值注入,工程上采用这种方式问题不大。
蓄热罐的建模核心是能量状态约束(SOC),类似于电池的荷电状态,包括充放热功率限制、容量限制和启停限制。蓄热罐最大的价值在于解耦热负荷与热电联产机组——白天电价高时让CHP多发电,多余的热量存进蓄热罐;夜间电价低时用蓄热罐放热,CHP少发电。这个“移热”逻辑是综合能源系统经济性的重要来源之一。
3. 求解实践:从MATLAB+Yalmip到真实数据,完整跑通一个案例
3.1 工具选型:为什么我推荐MATLAB+Yalmip+求解器
资料包里附带的代码是用MATLAB写的,我需要说明代码中使用的建模工具是Yalmip工具箱,求解器用的是CPLEX和Gurobi。这套配置在国内学术界和企业仿真验证中几乎成了事实标准,原因有三:
- Yalmip语法极其友好:写约束就像写数学公式,变量定义、约束添加、求解调用都非常直观,调试体验远好于直接调CPLEX的C API。
注意:MATLAB R2021a以后版本对Gurobi的支持需要额外配置,建议先装Yalmip再装求解器,Yalmip新版会自动检测求解器路径。
CPLEX和Gurobi的MILP求解性能在同类求解器中处于第一梯队:对于上千个变量、几千条约束的综合能源优化模型,通常几十秒到几分钟就能求出全局最优解。
后处理方便:优化结果直接是MATLAB数组,画Gantt图、负载曲线、热力出力图都极其顺手,不用像Python那样再转一遍数据结构。
如果不想用MATLAB,Python的Pyomo或者调用Gurobi的Python接口也可以替代。但我个人体会是,做这类典型的能源系统优化调度问题,MATLAB+Yalmip的调试效率还是最高的——尤其是你需要快速验证一个约束写法是否正确的时候,MATLAB的断点调试和变量查看功能帮了大忙。
3.2 典型日前调度模型的结构和参数设置
资料里的核心算例是一个典型冬季日的日前调度,时间尺度为24小时,步长1小时。系统参数大致如下:
| 设备 | 容量/参数 | 说明 |
|---|---|---|
| 火电机组 | 200 MW × 2台 | 爬坡率20 MW/h |
| CHP机组 | 电出力40-120 MW,热出力0-80 MW | 可行域多边形描述 |
| 燃气锅炉 | 0-60 MW热出力 | 效率0.9 |
| 电锅炉 | 0-50 MW热出力 | 效率0.95 |
| 风电场 | 装机100 MW | 预测出力曲线输入 |
| 光伏电站 | 装机50 MW | 预测出力曲线输入 |
| P2G装置 | 0-20 MW电输入 | 效率0.6 |
| 蓄热罐 | 容量200 MWh,最大充放热功率50 MW | 初始SOC 50% |
负荷侧,电负荷曲线昼高夜低,峰值约280 MW;热负荷曲线受温度影响,夜间和清晨较高,峰值约180 MW。
目标函数是最小化总运行成本,约束包括三网的平衡约束、设备约束、备用约束和网络安全约束(这里简化处理为不越限)。写代码时把系统参数全部集中定义在结构体变量里,方便统一修改和灵敏度分析。
3.3 关键代码结构:Yalmip建模的核心三段式
用Yalmip建模综合能源优化问题,代码结构基本是固定的“三段式”:定义变量、写约束、调求解器。我把资料里的核心逻辑抽取出来,供大家参考。
%% 定义决策变量 % 火电出力 P_thermal = sdpvar(2, 24, 'full'); % 2台火电机组,24小时 % CHP电出力与热出力 P_chp = sdpvar(1, 24, 'full'); % CHP电出力 H_chp = sdpvar(1, 24, 'full'); % CHP热出力 % 燃气锅炉热出力 H_gb = sdpvar(1, 24, 'full'); % 电锅炉热出力 H_eb = sdpvar(1, 24, 'full'); % 弃风弃光量 curtail_w = sdpvar(1, 24, 'full'); curtail_pv = sdpvar(1, 24, 'full'); % 蓄热罐SOC和充放热功率 soc_tes = sdpvar(1, 25, 'full'); % 注意是25个时刻,0-24 charge_tes = sdpvar(1, 24, 'full'); discharge_tes = sdpvar(1, 24, 'full'); % 购电量和购气量 buy_e = sdpvar(1, 24, 'full'); buy_gas = sdpvar(1, 24, 'full'); %% 约束条件 Constraints = []; % 1. 电功率平衡 for t = 1:24 Constraints = [Constraints, ... sum(P_thermal(:, t)) + P_chp(1, t) + P_w(1, t) - curtail_w(1, t) + ... P_pv(1, t) - curtail_pv(1, t) + buy_e(1, t) == ... P_load(1, t) + H_eb(1, t) / 0.95 + P_p2g(1, t)]; end % 2. 热功率平衡 for t = 1:24 Constraints = [Constraints, ... H_chp(1, t) + H_gb(1, t) + H_eb(1, t) + ... discharge_tes(1, t) - charge_tes(1, t) == H_load(1, t)]; end % 3. CHP可行域约束(简化写法) for t = 1:24 Constraints = [Constraints, ... 0 <= P_chp(1, t) <= 120, ... 0 <= H_chp(1, t) <= 80, ... P_chp(1, t) + 0.5 * H_chp(1, t) >= 40, ... P_chp(1, t) + 0.5 * H_chp(1, t) <= 160]; end % 4. 蓄热罐SOC递推 for t = 1:24 Constraints = [Constraints, ... soc_tes(1, t+1) == soc_tes(1, t) + ... (charge_tes(1, t) * 0.95 - discharge_tes(1, t) / 0.95)]; end %% 目标函数与求解 objective = sum(sum(thermal_cost .* P_thermal)) + ... sum(gas_price * (buy_gas + gas_chp + gas_gb)) + ... sum(penalty_w * curtail_w + penalty_pv * curtail_pv); options = sdpsettings('solver', 'gurobi', 'verbose', 2, 'gurobi.MIPGap', 0.005); optimize(Constraints, objective, options);这段代码的结构非常清晰,核心就是把每个设备的决策变量定义好,然后逐类写约束,最后调用Gurobi求解。这里有三个细节需要特别提示:
- SOC的维度要比调度时段多1:因为0时刻有初值,24时刻有末值,25个点才有24个递推关系。
- 充电和放电同时为正会浪费目标:目标函数里运行成本没有直接惩罚充放同时进行,但这种情况会通过效率损失自动被排除,如果实际运行中还是出现,需要加一个二进制变量约束充放互斥。
- MIPGap参数很关键:实际算例规模较大时,Gurobi默认MIPGap(相对对偶间隙)设到0.01就够用,但如果你追求更高精度的全局最优解,调到0.001或更小,代价是求解时间可能变长。
3.4 求解结果解读:从数字到可执行的调度方案
优化求解完成后,不要急着画图,先做三件事:
第一,检查求解状态和最优性间隙。Yalmip返回的optimize状态如果是“Successfully solved”不代表一定有解精度足够好,要查看Gurobi终端输出的MIPGap是否达到预期。一般MIPGap在0.5%以内就足够工程使用了。
第二,核对系统平衡。把每小时的电源出力加起来,减去负荷和电锅炉/P2G用电,应该等于零。热网同理。这一步能快速发现模型写错或者数据不一致的地方。
第三,分析调度策略的合理性。典型的结果应该是:夜间风电大发时,P2G和电锅炉多用电,蓄热罐充电;白天电价高峰期,CHP满发,蓄热罐放热;火电机组做基核和调峰配合。如果结果出现“谷时段CHP满发、峰时段停机”这种违反直觉的局面,多半是约束条件遗漏或者目标函数系数有问题。
资料里还有两个改进版本的代码,一个加了储气罐模型,另一个加了需求响应(电负荷和热负荷的部分可调度性)。这两个版本可以作为进阶练习,建议先跑通基础版再逐步加。
4. 实际项目中最常见的五个坑
4.1 数据单位不统一,结果完全失真
综合能源系统涉及多种能源介质,单位的坑特别多。天然气单位立方米(Nm³)和能量单位千瓦时(kWh)之间要乘热值(典型值9.97 kWh/Nm³),热负荷单位可能是MW也可能是GJ/h,电价的单位可能是元/MWh也可能是元/kWh,一个不留神,结果就差了数量级。
我的做法是:在所有参数进入模型之前,先统一转换成国际单位制,功率统一用MW,能量统一用MWh,热量统一用MWt(热功率),天然气统一用MWh(按热值折算)。在代码开头做一个单位转换表,明确标注每个参数的原始单位和转换后的单位,能避免90%的低级错误。
4.2 热网模型太简化,调度结果现场执行不了
资料里的基础版热网模型,对热网采用定温度或者简单温降模型。但实际热网尤其是多热源环形管网,热源之间的压力耦合和流量分配很复杂,运行中经常出现模型预测的热负荷分配和实际不一致的情况。
解决思路是:调度模型用简化热网,短期预测模型用精细热网。调度软件输出的是各热源的总热出力,精细热网模型根据总热出力做全网水力计算和温度分布计算,再把计算结果反馈给调度模型做边界修正。这种“粗调度+细校核”的模式在工程上非常实用。
4.3 忽略网络约束,优化结果过于乐观
大多数综合能源优化调度的学术论文为了简化计算,不考虑电网的线路潮流约束。但实际园区里,线路容量和变压器容量往往是瓶颈。如果模型不考虑这些约束,优化结果里可能出现某一台变压器过载、某一条10 kV线路越限的情况。
工程化的方案是:在传统节点功率平衡之外,增加关键断面的传输功率限制约束。你可以先做一次不考虑网络约束的优化,检查结果里哪些线路会越限,然后把这些线路的最大功率限制加入模型迭代求解,两三轮就能收敛到一个考虑网络约束的可行方案。
4.4 求解时间过长,怎么调都不收敛
MILP模型求解时间过长通常有三个原因:一是整数变量太多(比如每个设备每个时段都设了启停变量),二是约束写得过宽导致搜索空间太大,三是求解器参数没有调优。
我的经验是:先用“松弛连续化”去定位问题——把所有0-1整数变量允许实数化,看松弛后的LP问题是否能在几秒内求解。如果LP问题本身就慢,说明是约束或数据的问题;如果LP快但MILP慢,问题在整数变量规模和分支策略上,这时候优先考虑减少整数变量数量。例如,CHP机组如果不需要考虑启停,就不要加0-1变量;蓄热罐的充放状态,有时候可以靠效率损耗天然排除同时充放,就不需要额外增加互斥变量。
4.5 多重时间尺度耦合问题,单层模型无法描述
实际运行中,电网调度是分钟级甚至秒级的,热网过程则是小时级的,气网更慢。把这三种时间尺度塞进一个小时级模型里,本质上是一种近似。资料后面的进阶版本里加入了一个双层模型:上层做日前小时级调度,下层做日内15分钟级修正,能在一定程度上缓解这个问题。
做这类多层模型时,最需要注意的是上下层变量的传递一致性。很多人在上层模型里定了机组启停状态,下层却因为负荷变化临时又启停机组,导致两层结果矛盾。建议下层模型把上层的启停变量作为固定参数,只优化出力大小,而不是全部放开。
5. 资料包里的拓展价值与实操建议
5.1 从基础算例到工程项目的迁移路径
资料包里的基础算例虽然规模不大,但它是整个综合能源优化调度问题的“最小完备集”。你把它彻底跑通、吃透之后,往实际工程项目迁移的路径是清晰的:
- 换成真实拓扑:把单母线扩展为多节点网络,加入支路潮流约束。
- 换成真实数据:用SCADA的历史数据、天气预报数据、气网供气数据替换示例数据。
- 加入更多设备:储能电池、冷热电三联供、地源热泵、氢储能等。
- 对接控制系统:把优化结果传给EMS(能量管理系统)作为运行计划。
这一步一步的扩展,每一步都在基础模型上加代码、加约束,但整体的建模框架和求解思路保持不变。我用这套路径带过不少新人,基本都能在两个星期内从零跑到能复现论文结果的水平。
5.2 压缩包的完整性和校验
再补充一个跟压缩包本身相关的小提示。我在网上下载这类资料时踩过几次坑,文件没下完整导致解压失败,或是解压时杀毒软件误删了里面的可执行文件(通常是破解版求解器的dll文件)。所以拿到“20-电-气-热综合能源系统优化调度.rar”这类资料包,建议按这个顺序处理:
- 解压前先校验压缩包大小,与发布页标注的大小对照。
- 解压时暂时关闭杀毒软件实时监控,解压完成后再扫描。
- 解压路径不要带中文和空格,很多MATLAB工具箱和求解器对路径极敏感。
- 先看README或说明文档,确认所需的MATLAB版本、工具箱版本、求解器版本,再决定后续环境配置。
如果压缩包比较大(超过2GB),可以考虑用分包压缩的方式,把大文件拆成多个小分卷,下载时一个卷一个卷确认完整性,避免单文件下载失败导致整个包作废。
5.3 后续可以自己扩展的方向
如果你跑通了这套算例,还想再进一步,我强烈建议自己做这样三个扩展:
- 加一个储能电池:储能电池的SOC递推和蓄热罐很像,但电约束和热约束的耦合带来新的优化空间。你会发现加了储能后,系统的经济性又提升一个档次。
- 做一次灵敏度分析:把气价、碳价、新能源渗透率分别做±20%的波动,观察系统总成本和各设备出力的变化,这是写论文时最常用的分析工具。
- 换一个求解器对比:同样的模型用CPLEX和Gurobi分别求解,对比求解时间和内存占用,这对你理解求解器差异非常有帮助。
这些扩展工作做完,你对综合能源优化调度的理解就会从“会跑代码”提升到“会设计模型”的层次。
6. 频繁被问到的细节问题速查
这部分把大家常问的问题做一个快速解答,方便后续查阅。
Q1:为什么我的模型一直提示不可行?A:先查约束是否矛盾。最常见的是电功率平衡约束里,负荷加电锅炉用电加P2G用电超过了所有电源最大出力之和。把每个时段的可再生出力置最大值、火电CHP置最大值,算一下出力和负荷的差值,能很快定位。
Q2:蓄热罐SOC的初值和末值应该怎么设置?A:日前调度建议初值设为50%左右,末值不约束或者约束为不低于初值。如果末值必须回到初值(比如做多日连续调度),需要在模型里加soc_tes(1,25) == soc_tes(1,1)这个约束。
Q3:P2G的效率系数怎么取值?A:电转氢效率约70%-80%,氢再与CO2反应制甲烷效率约50%-60%,整个过程电转天然气的综合效率在45%-60%之间。模型里一般取0.5-0.6比较合理。取值不同,P2G的利用率和系统的弃风率都会有明显变化,可以做效率灵敏度分析。
Q4:风功率预测曲线和实际偏差很大,模型怎么处理?A:这里有两条路。一是把风电出力作为区间数,做鲁棒优化;二是做场景随机优化,给预测曲线加误差场景。资料里基础版是确定性模型,进阶版加了场景削减技术(基于K-means聚类),把1000个误差场景削减到10个典型场景参与优化,这个方法非常实用。
Q5:CHP机组的热电比约束是按定值写还是按可行域写?A:如果你的CHP是背压机组,热电比基本恒定,用定值写没有问题。但如果是抽汽凝汽式机组,热电比可在一定范围内调节,必须用可行域建模。资料里两种写法都提供了,我倾向于建议优先用可行域写法。
Q6:模型能扩展到冷-热-电联供吗?A:可以。在现有电热气模型基础上,加一个吸收式制冷机和电制冷机,把冷负荷加进平衡方程,再加一个蓄冷罐,模型就扩展成冷热电联供(CCHP)了。冷网的特性介于电网和热网之间,建模比热网略简单。
这些问题是这几年做咨询带新人的时候反复被问到的,几乎每一个都能写一篇单独的文章。如果你在跑通这份资料的时候遇到其他问题,建议先查建模约束再查数据,然后检查求解器设置——大多数问题出在这三个环节里的某一个。
我个人在实际操作中的体会是,做综合能源优化调度,代码能力只是基本功,最核心的能力是把物理系统的运行逻辑准确翻译成数学约束。这份“电-气-热综合能源系统优化调度”资料包的价值,恰恰在于它把这个翻译过程演示得足够清楚——从目标函数到约束条件,从设备模型到求解实现,每一步都能对照着代码反推物理含义。你把它彻底吃透之后,再去看任何复杂的综合能源项目,脑子里都会有一个清晰的建模框架在兜底。
本文还有配套的精品资源,点击获取