去年在某园区做综合能源系统改造的时候,遇到一个特别典型的场景:调度算法给出的“最优方案”为了压低运行成本,把夏季室内温度目标调到27℃甚至更高,结果项目上线第三天就收到好几条用户投诉,说办公区又闷又热。这事让我反思了很久——很多优化调度模型在设计时根本没有把“人”这个因素放进去,默认用户对温度不敏感,默认舒适度可以无限让步于经济性。但实际上,一个让用户体感很差、频繁投诉的系统,无论经济指标多漂亮,都算不上真正的“最优”。
这也是我后来投入大量精力去搭建“基于用户舒适度的冷热电多能互补综合能源系统优化调度模型”的原因。这个模型不是简单地在传统经济调度上加一个温度约束,而是把用户舒适度、碳排放交易机制、多能互补设备特性和经济成本目标放到同一个优化框架里统一求解。本文就把这套模型的思路、核心数学表达、仿真结果和落地时容易踩的坑完整梳理一遍,希望能给正在做综合能源系统调度、园区能源管理或双碳相关项目的朋友一些可参考的经验。
1. 调度模型里有没有“人”:舒适度指标从约束变成目标的思路转变
1.1 传统模型为什么总在牺牲用户体验
常规的综合能源系统优化调度,目标函数基本都是经济成本最小化——买电的钱、烧气的钱、设备维护的钱,加起来求最小。约束条件里确实会有温度约束,但往往是给一个宽泛的区间,比如夏季室内温度18℃到28℃,冬季16℃到26℃。问题在于这个区间太宽了,算法为了省钱,一定会把温度往边界上顶——夏天顶到27.5℃,冬天顶到17℃,因为这样冷热负荷最小,运行成本最低。
我在实际项目中见过太多这样的案例。有一次是某商业综合体,夏季电制冷机在电价峰值时段被算法压到最低出力,室内温度一路从24℃升到26.5℃,系统觉得没问题,因为没超约束;但人在这个温度下已经明显感觉不舒服了,尤其是刚从室外进来的人,体感落差很大。用户不会关心你是不是为了省电费,用户只会投诉“空调不凉”。
问题出在哪?出在约束式舒适度模型的天然缺陷:只要温度在区间内,目标函数对它没有任何感知,算法没有动力去改善舒适度;而一旦温度偏离区间,又直接变成硬约束让问题无解。这种“非黑即白”的处理方式,既不符合人体热舒适的实际规律,也给调度结果留下了牺牲用户体验的空间。
1.2 PMV到温度区间的落地映射:两种可操作的量化方案
要把用户舒适度写进优化模型,第一步是把它量化。学术界最常用的是Fanger提出的PMV指标——预测平均投票值,它综合考虑空气温度、相对湿度、风速、服装热阻和新陈代谢率,输出一个-3到+3之间的值,0代表中性热感觉,正数偏热,负数偏冷。PPD(预测不满意百分比)则是从PMV推导出来的,PMV在±0.5以内时,PPD大约在10%以下,这是ISO 7730标准里B级舒适水平;PMV在±0.7以内对应C级,约20%不满意率。
但在工程调度模型里,直接用PMV做决策变量非常麻烦,因为PMV计算公式是非线性的,涉及湿度、风速等多个变量,这些变量在日前调度阶段很难精确预测。所以工程上更常用的做法是简化映射:在典型室内风速、服装热阻和相对湿度条件下,把PMV指标近似映射到室内空气温度区间。
以夏季工况为例,假设室内风速0.15m/s,人员服装热阻0.5clo,相对湿度60%,新陈代谢率1.2met,对应PMV在-0.5到+0.5之间的温度区间大约在24℃到26℃,PMV在+0.5到+0.7对应26℃到27℃。冬季工况则通常是20℃到24℃。这样做的好处是,模型里只需要引入室内温度变量,把舒适度目标表达成“温度偏离舒适区间的惩罚”,避开了非线性的人体热舒适方程,计算上友好很多。
1.3 舒适度进目标函数还是进约束:一个需要想清楚的问题
我见过很多论文把舒适度写成约束,比如“温度不得高于26℃”,然后目标函数只算经济成本。这种做法在数学上没有问题,但调度结果会非常僵硬——如果某个时段电价极高、冷负荷极大,系统宁可花更高成本去满足26℃这个硬约束,也不会有任何弹性空间的折中考量;反之如果约束放宽到28℃,系统又会完全无视舒适度一路顶到边界。
更合理的做法是把舒适度作为一个惩罚项放进目标函数。温度偏离舒适区间时产生一个惩罚成本,偏离越大惩罚越大,这样算法会在“省电费”和“保舒适”之间自动寻找平衡点。什么时候多花点钱保舒适,什么时候牺牲一点舒适省钱,完全由惩罚系数和电价的相对大小决定,调度结果自然更贴近实际需求。
这个思路转变是整个模型的灵魂。它不是简单地在数学上多了一个项,而是让算法有了“人的感知”:当电价不贵的时候,系统愿意把温度维持在舒适区间;当电价尖峰且冷热负荷紧张时,系统会适度放宽舒适度以降低峰值费用,但不会无限度地牺牲用户体验。
2. 冷热电系统的物理模型:母线上的能量守恒与设备特性数学化
2.1 典型系统拓扑与能量流
做优化调度之前,必须先把系统物理模型搭清楚。这里讨论的是一个典型的园区级冷热电联供系统,能源输入端有两条:电网购电和天然气。天然气进入燃气轮机(或内燃机)发电,发电后的高温烟气进入余热锅炉回收热量,产生蒸汽或热水;这部分热量一部分直接供给热负荷(供暖、生活热水),另一部分进入吸收式制冷机驱动制冷,满足冷负荷。如果余热不够,还有燃气锅炉补燃供热;如果冷负荷还不够,电制冷机直接用电补冷。同时系统配置电储能和蓄热/蓄冷罐,用来平移负荷峰谷。
从能量流的角度看,这个系统可以抽象成三条母线:电母线、热母线和冷母线。电母线上连接着燃气轮机发电、电网购电、电储能放电、电制冷机和电负荷;热母线上连接着余热锅炉产热、燃气锅炉产热、蓄热罐和热负荷;冷母线上连接着吸收式制冷机产冷、电制冷机产冷、蓄冷罐和冷负荷。所有设备都通过母线耦合,母线节点上的功率平衡就是整个系统运行的基本约束。
我在实际项目中习惯先用一个表格把设备特性和耦合关系理清楚,再动手写模型。下面这个表基本是我做这类项目时的标准配置,参数取值适合一个中等规模园区(建筑面积约8-10万㎡),供参考。
| 设备 | 输入 | 输出 | 转换效率/COP | 额定容量 | 说明 |
|---|---|---|---|---|---|
| 燃气轮机 | 天然气 | 电 | 电效率35% | 1000kW | 热电比约1.3,余热可供回收 |
| 余热锅炉 | 烟气余热 | 热 | 效率80% | 700kW | 不额外消耗燃料 |
| 燃气锅炉 | 天然气 | 热 | 效率90% | 800kW | 余热不足时补燃 |
| 吸收式制冷机 | 热 | 冷 | COP 1.2 | 600kW | 用余热驱动,不耗电 |
| 电制冷机 | 电 | 冷 | COP 3.5 | 800kW | 用电驱动,响应快 |
| 电储能 | 电 | 电 | 充放电效率95% | 500kWh/200kW | SOC范围10%-90% |
| 蓄热罐 | 热 | 热 | 效率98% | 800kWh | 日循环 |
| 蓄冷罐 | 冷 | 冷 | 效率95% | 600kWh | 日循环 |
2.2 主要设备的输入输出模型与效率参数
设备模型是调度决策的物理边界,核心是建立起输入与输出之间的关系。
燃气轮机是最重要的设备。在稳态调度中通常用简化线性模型描述:发电功率等于消耗天然气热值乘以电效率。这里有一个关键点——热电比不是固定不变的,负载率越低,电效率越低,相应的热回收比例会变化。工程上可以做分段线性化处理:比如负载率100%-80%时电效率35%,80%-50%时降到32%,50%以下降到28%。这种做法比恒定效率模型准确得多,而且仍然是线性约束,不会增加求解难度。我在参数标定时会仔细核对不同负载率下的效率曲线,这直接决定了燃气轮机什么时候该开机、以什么功率运行。
余热锅炉回收的热量正比于燃气轮机发电功率和热电比。注意这里的烟气余热不是想回收多少就回收多少的,它有一个上限——发电功率越大,可回收余热越多。这个耦合关系是冷热电联供系统的核心特征,也是调度模型里最需要精确表达的部分。
吸收式制冷机和电制冷机的关系需要特别留意。吸收式制冷机虽然省电,但COP只有1.2左右,而且需要消耗大量余热;电制冷机COP高达3.5,用电但效率高。调度模型的价值就在于根据电价、气价和余热资源的实时状态,决定冷负荷在两种制冷方式之间如何分配。电价便宜时多用电压缩机,余热富裕时优先用吸收式,这个决策在模型中体现为两种出力变量的比例分配。
2.3 储能模型的时序耦合约束
储能设备最大的特点是时序耦合——今天充的能量,明天才能放,运行决策在不同时段之间是相互关联的。电储能的模型核心是SOC(荷电状态)递推方程:SOC(t+1) = SOC(t) + 充电功率×充电效率 - 放电功率/放电效率,同时SOC要限制在10%到90%之间,避免过充过放缩短寿命。
蓄热罐和蓄冷罐的建模类似,区别在于热/冷储能的自损耗率更高一些,通常按每小时0.5%-1%考虑。日循环约束一般设为调度周期结束时SOC回到初始值,这样模型可以用于多日连续滚动调度,不会把能量“透支”到第二天去。
储能模型看起来简单,但实际调度时它是最容易出现误操作的环节。有一个非常常见的错误是把充电功率和放电功率写成同一个连续变量,然后让SOC递推公式自动处理正负——这在公式层面可以成立,但求解时会出现“同时充放电”的虚假最优解:充电又放电,净功率为零,白白浪费了转换损耗,还能制造出“看似合理”的SOC轨迹。正确做法是把充电功率和放电功率定义成两个非负变量,再加一个0-1变量确保两个变量不同时大于零。这一步虽然增加了整数变量的数量,但能保证结果的物理可实现性。
2.4 建模时故意做的简化与边界
做工程模型一定要克制,不能什么都往模型里塞。我通常在建模初期就明确以下简化假设:设备效率只随负载率分段变化,不随时间老化;管道传输损耗折算到母线侧的固定比例;冷热负荷在15分钟到1小时的时间尺度内近似恒定;机组启停过程简化为最小运行时间和最小停机时间约束,不详细建模温度爬坡过程。
这些简化在工程上是可接受的,因为优化调度本身就是基于预测数据做前向决策,预测误差带来的不确定性远比这几个次要物理效应大得多。把有限的精力放在设备启停状态、储能SOC轨迹和碳交易成本这些真正影响成本的关键约束上,性价比要高得多。
3. 碳交易机制的数学化:配额分配、阶梯碳价与调度耦合
3.1 碳排放从哪里来:运行层面的三个排放源
在冷热电联供系统的运行层面,碳排放主要来自三个部分。第一部分是外购电力的间接排放——电网的电来自火力发电为主的结构,购买一度电就相当于在上游产生了相应的碳排放,需要乘电网平均排放因子。第二部分是天然气燃烧的直接排放——燃气轮机和燃气锅炉烧天然气直接产生二氧化碳。第三部分是系统自身的制冷剂泄露等间接排放,这个在运行调度层面占比很小,通常忽略不计,如果要算全生命周期那另当别论。
外购电的排放因子很关键,它直接决定了“用电”和“用气”之间的碳成本博弈。我参考国内电网平均排放因子的数据,取0.581 kgCO₂/kWh作为基准值。这个数值意味着如果电价与气价的比价关系不合适,系统仅从经济角度考虑就可能大量购电,碳排却未必最优。碳交易机制存在的意义,恰恰就是给这部分“看不见的碳成本”一个价格信号。
3.2 免费配额分配方法怎么选:历史法还是基准线法
碳交易机制的第一件事是确定碳排放配额。两种主流分配方式是历史法(祖父法)和基准线法。历史法简单直接:以企业过去几年的历史排放量为基准,乘一个逐年下降的调整系数,得出当年配额。它的好处是数据容易获取,但缺点也很明显——历史排放越多,配额越多,等于变相奖励了“排得多”的企业。
基准线法更先进一些:不看你历史排了多少,而是按行业先进水平的单位产出排放基准来分配,生产多少产品、用多少能源,乘以基准排放强度,就是你的免费配额。这种方法的激励方向很明确——谁的单位能耗水平高,谁就有富余配额可以卖钱;谁技术落后、排放超标,谁就要花钱买配额。对综合能源系统这种新建项目,我更倾向于用基准线法建模,因为这符合“双碳”政策的方向,也能激励系统通过多能互补去降低单位供能的碳排放强度。
建模时还需要考虑配额核算边界。综合能源系统的输出有电、热、冷三种,不能简单用“总能源”去乘一个基准,因为不同能源品种的碳排放强度差异很大。我通常将配额分为发电配额和供热配额,分别按各自的基准线强度核算。比如发电配额按每kWh发电量对应的碳排放基准(如0.35 kgCO₂/kWh)计算,供热配额按每kWh热量对应的基准(如0.22 kgCO₂/kWh)计算。实际上分配多少配额,取决于系统实际生产了多少电和热,产出越多免费配额越多。这种产出驱动型的配额计算方式,为调度模型提供了一个直接的目标导向:增加单位碳排放效率更高的能源产出,可以换取更多配额空间,减少配额购买压力。
3.3 阶梯碳价模型及其在目标函数中的分段线性化
碳交易成本等于实际碳排放量减去免费配额后的差额乘以碳价。如果引入阶梯碳价机制,情况就更有意思了——排放超标部分走高价位,超标越多单价越高。这种阶梯式设计在激励效果上比固定碳价更明确:它给调度模型一个惩罚梯度,促使系统不仅做到“配额内不超标”,还要尽量避免进入高端价位的区间。
阶梯碳价模型通常分三档。第一档:排放量在配额以内,碳排放成本为0,还有富余配额可以出售获得收益。第二档:排放量超出配额0-10%,超出部分按基础碳价计费,比如50元/吨CO₂。第三档:超出10%-20%的部分按第二档价格购买,如80元/吨;超出20%以上按第三档价格购买,如100元/吨。
把这个阶梯函数写进目标函数时要做分段线性化处理。因为碳排放量本身是运行决策(购电量、天然气用量)的线性函数,引入代表“是否进入某一档”的0-1变量后,碳成本可以表达成一组线性约束和线性目标项的组合。具体来说,将碳排放超额量拆分成三段,每段对应一个价格,加上确保“先填满低档再进入高档”的排序约束——这在MILP框架下用大M法可以实现,求解上没有什么困难。
阶梯碳价相比固定碳价的优势在于它更接近未来全国碳市场的发展方向——配额逐步收紧、惩罚逐步加大。调度模型里有这个机制,对系统运行策略的影响是深远的,后面我会用仿真结果具体说明。
3.4 碳价政策参数对调度策略的传导路径
碳价不是孤立的一个参数,它是通过改变各技术路径的相对成本来影响调度决策的。传导路径可以概括成三条:第一条,碳价抬高外购电成本,间接推高电制冷机的运行成本,让吸收式制冷机在冷负荷高峰期更有竞争力;第二条,碳价提高了燃气轮机的碳排放成本,但燃气轮机的热电联产效率高、单位供能的碳排放强度低,所以相对外购电和燃气锅炉仍然有优势;第三条,当碳价高到一定程度时,系统的经济最优解会主动调整设备组合——比如提高燃气轮机负荷率以替换部分外购电,或者在冷负荷低谷时多用余热驱动吸收式制冷、减少电制冷出力。
理解了这三条传导路径,就明白为什么碳交易机制必须建在优化模型里面而不能事后折算——因为碳价会改变所有设备的经济排序,深层次影响每一台设备在每个时段的出力决策。只有把它放进目标函数,与购电成本、购气成本、舒适度惩罚一起联合优化,才能真正反映运行层面的碳价信号。
4. 完整优化调度模型:目标函数、约束矩阵与求解方案
4.1 目标函数的多项成本构成与权重处理
整套模型的核心是一个多目标权衡问题——我们最终要最小化的总成本由五个部分构成:
- 购电成本:各时段从电网购电的功率乘以分时电价,再按时段累加
- 购气成本:燃气轮机和燃气锅炉消耗的天然气量乘以气价
- 设备运维成本:各设备出力乘以单位运维成本系数
- 碳交易成本:基于阶梯碳价模型计算的碳排放成本
- 舒适度惩罚成本:室内温度偏离舒适区间的惩罚,分冷偏离和热偏离分别计罚
目标函数表达式可以写成:
min C_total = Σ(C_grid(t) + C_gas(t) + C_om(t)) + C_carbon + C_comfort
其中 C_comfort = λ_cool × Σmax(T_room(t) - T_cool_max, 0) + λ_heat × Σmax(T_heat_min - T_room(t), 0)
λ_cool和λ_heat就是舒适度惩罚系数。它们在数值上表示“每让用户体验恶化1℃,系统愿意承担多少隐形代价”,这个系数的标定需要结合项目实际情况来处理,我在后面专门讲。
需要说明的是,五个部分的量纲都是“元”,可以直接相加。但它们的量级可能相差很大——一个大型园区的购电成本一天可能几十万元,舒适度惩罚如果设置不当则可能要么完全不起作用、要么反过来主导调度。所以权重标定在这个模型里不是小问题,需要结合历史运行数据反复校核。
4.2 逐条梳理约束条件
约束条件可以分成四类:功率平衡约束、设备运行约束、储能时序约束和政策约束。我把每一类列清楚:
功率平衡约束方面,电母线上要求燃气轮机发电加外购电加电储能放电等于电负荷加电制冷机耗电加电储能充电;热母线上要求余热锅炉产热加燃气锅炉产热加热储能放热等于热负荷加吸收式制冷机耗热加蓄热罐充热;冷母线上要求吸收式制冷机产冷加电制冷机产冷加蓄冷罐放冷等于冷负荷加蓄冷罐充冷。这三条是硬约束,任何时刻都必须满足。
设备运行约束方面,每台设备有出力上下限,燃气轮机和燃气锅炉还有爬坡速率限制。机组有最小运行时间和最小停机时间约束,这个在求解中会引入0-1变量,防止模型为了追逐短时的价格优势频繁启停设备,既伤设备又不符合实际运行规则。
储能时序约束方面,主要是SOC递推方程、SOC上下限、充放电功率上下限,以及调度周期末SOC回到初始值的日循环约束。
政策约束方面,碳排放量等于外购电量乘以电网排放因子加天然气用量乘以天然气排放因子;碳交易量等于实际排放量减去免费配额;阶梯碳价的分段逻辑通过辅助变量和0-1变量实现。
4.3 模型性质判定与线性化处理
把上述模型列全之后,需要判断模型类型,这决定了求解方案。目标函数里的舒适度惩罚项如果是线性惩罚,整个模型就是混合整数线性规划——MILP。如果采用温度的二次惩罚,比如偏离越高惩罚越剧烈、更逼近人体舒适度的非线性感受,目标函数就变成二次型,模型升级为MIQP。
MIQP的求解难度比MILP高不少,对大规模园区来说求解时间可能从秒级增长到分钟级甚至更久。工程上我倾向于先把舒适度惩罚设为线性,用MILP跑通整个框架,验证调度策略合理后再评估是否有升级为二次惩罚的必要。二次惩罚也可以用分段线性化逼近——把温度偏离区间切分成若干小段,每段一个线性斜率,段数越多越逼近二次曲线。这种做法的好处是保持MILP性质不变,求解速度快,精度也可控。我一般取4段分段线性化,效果已经相当不错。
另外要特别注意大M法的数值问题。引入0-1变量时的大M值设置,应该取约束物理意义的合理上界而不是一个极大的数。比如碳排放“进入某一档”的判断约束,M值取全年最大可能排放量就够了,不要随便写个1e6,否则容易出现数值病态,导致求解器收敛困难。
4.4 求解工具选型与计算效率控制
模型搭好之后就是求解环节。我的经验是:用YALMIP或Pyomo做建模层,Gurobi或CPLEX做求解器,这是最成熟的搭配组合。YALMIP的语法对MILP模型的表达非常直观,调试方便;Pyomo的优势是开源、可嵌入Python生态,方便和上游的负荷预测、下游的结果可视化无缝衔接。
对于单日24小时、15分钟一个时段(96个时段)的中等规模园区模型,整数变量通常在两三百个以内,连续变量一两千个,Gurobi在默认参数下几秒到几十秒就能求解到最优或接近最优。即使要加滚动优化——比如每15分钟滚动一次、每次优化未来4小时——计算量也完全在可接受范围内。
当模型规模变大,比如多园区联合优化、或者时间粒度细化到5分钟(一天288个时段),求解时间会明显上升。这时候可以选两个策略:一是把时间粒度调整到30分钟或1小时,先把日前调度跑出来,再做15分钟级的日内滚动修正;二是对整数变量做预求解,比如根据负荷预测和电价雏形预先判断哪些机组在哪些时段一定不开机,把这些整数变量直接固定,规模可以压缩三分之一以上。
5. 典型日仿真结果:三个关键对照组揭示的调度规律
5.1 场景设置与基础参数
为了把模型的运行规律讲清楚,我这里设计一个典型夏季日的算例。参考某个夏热冬冷地区的商业园区:日最高气温36℃,冷负荷峰值约1200kW出现在下午3点,热负荷只有生活热水需求,约150kW,电负荷峰值约900kW,也出现在下午。电网分时电价采用峰平谷三段:峰段8:00-22:00电价1.2元/kWh,平段6:00-8:00和22:00-24:00电价0.8元/kWh,谷段0:00-6:00电价0.4元/kWh。天然气价格2.5元/立方米(折合约0.258元/kWh热值)。燃气轮机额定功率1000kW,电效率35%,热电比1.3。各种碳交易参数采用第三章节设定的数值。
在这个参数组合下,天然气的“电成本”——即燃气轮机发一度电所消耗天然气成本约0.74元/kWh,相比峰段电价1.2元/kWh有明显优势,即使考虑碳成本,燃气轮机在峰段也具备开机的经济性。
5.2 对照组一:有/无碳交易机制的系统运行差异
第一个对照实验是观察碳交易机制对调度策略的影响。在没有碳交易机制的情况下,燃气轮机的主要驱动逻辑很简单:峰段电价高就多发,谷段电价低就少发甚至停发,改从电网买便宜电。仿真结果显示燃气轮机在峰段满发1000kW,平段降到约600kW,谷段停机,电储能谷充峰放,利用峰谷价差套利。
加入碳交易机制之后,情况发生了明显变化。由于外购电隐含了较高的碳排因子0.581 kgCO₂/kWh,而燃气轮机的单位发电碳排放强度约0.24 kgCO₂/kWh(天然气燃烧直接排放除以发电量),碳交易机制实际上抬高了外购电的隐性成本,使得燃气轮机即使在没有碳价时“不划算”的工况下也有了运行价值。仿真中燃气轮机在平段的出力从600kW提升到750kW左右,谷段也不再完全停机,而是保留约200kW的低负荷运行,用于维持系统热平衡并产生余热供吸收式制冷机使用。
从碳排放总量看,有碳交易机制时的总排放量比无碳交易时下降了约13%,但总运行成本反而只上升了2.1%左右——代价不大,减排效果显著。这说明碳交易机制对调度策略的引导确实是有效的,它通过价格信号让系统主动往低碳方向调整。
5.3 对照组二:舒适度权重变化对成本与温度的影响
第二个对照实验聚焦舒适度惩罚系数的灵敏度分析。我将λ_cool从0逐步增大,从0元/℃、50元/℃、100元/℃一直增加到300元/℃,观察室内温度设定和总成本的变化规律。仿真结果非常直观。
λ_cool为0时,模型完全没有舒适度感知,室内温度被推到约束上限27℃附近,系统运行总成本最低,此时一天的总成本约为12.6万元。λ_cool提升到50元/℃时,温度被拉回到26.3℃左右,总成本上升约3%。λ_cool继续升高到100元/℃,温度稳定在25.5℃附近,总成本相比无舒适度惩罚时提高约6.5%。当λ_cool到300元/℃以后,温度继续回落的幅度就很小了,基本稳定在24.5℃左右,因为继续降温需要开启更多制冷设备,边际成本急剧上升,但舒适度惩罚的边际收益却在变小。
这个曲线非常典型——舒适度提升带来的成本增量刚开始很小、越往后越陡峭,呈现明显的边际递减规律。工程上可以根据项目预算和用户满意度的关系,在曲线上找一个合理的平衡点。对商业办公类园区,我一般建议选在“温度25-26℃、成本增量不超过5%”这个区间,性价比最高。
5.4 对照组三:碳价阶梯弹性对设备出力的影响
第三个实验看碳价水平变化的作用。将基础碳价从0元/吨逐步提高到50元/吨、100元/吨、150元/吨,观察燃气轮机和电制冷机的出力变化。
碳价为0时,系统纯按经济成本调度,峰段电价高、气价相对便宜,所以燃气轮机在峰段满发;平段和谷段视电价和气价的相对关系部分开机。电制冷机承担了主要的冷负荷,特别是谷段电价便宜时,大量用电制冷,此时碳排处于高位。
碳价提升到50元/吨后,燃气轮机发电的隐性成本上升,但外购电的隐性成本上升更快——因为外购电的排放因子高于燃气轮机。这个不对称的碳成本反而不利于外购电,仿真结果显示燃气轮机的总发电量反而比碳价为0时增加了约5%,而外购电量下降了约9%。系统用更高自发电比例来规避外购电的高碳排和碳成本。
碳价继续提升到150元/吨时,变化规模就没有那么大了,说明系统已经在在役设备约束下基本达到了低碳运行的结构性极限——想要进一步减排,光靠运行调度已经难以实现,需要从设备层面做改造,比如增加光伏、扩容储能、更换效率更高的机组。
6. 从论文模型到工程落地:参数标定与实施中的几个坑
6.1 舒适度惩罚系数的标定要结合季节与建筑功能
舒适度惩罚系数λ不是一个可以随便拍脑袋定的数,它直接决定了调度结果,不同季节、不同建筑功能都要分别标定。夏季的λ_cool和冬季的λ_heat要分开设置,因为夏季过冷和冬季过热在人体热舒适里感受很不同,而且与能耗代价的方向也不同。
我的标定方法是:先收集系统历史运行数据,把过去一年每天的室内温度、室外温度、能耗、投诉率放在一起对比分析,找到“投诉明显增加”对应的室内温度临界点。比如某写字楼的投诉数据表明夏季温度高于26℃时投诉率快速上升,那么这个26℃就是舒适区间的边界。然后进行反推:在模型里设置不同的λ值,看调度结果能否把温度控制在26℃以内,同时成本增量在预算范围之内。通过几次试算,就能确定一个让结果落在项目目标范围里的λ区间。
还有一点要特别注意:温度舒适不仅与空气温度有关,还与室内湿度、辐射温度、风速有关。模型里如果只以空气温度作为舒适度变量,实际运行时的体感可能与设定有偏差。工程上可以做一个修正:在湿度特别高的地区,把舒适度阈值适当下调0.5-1℃,因为高湿度下同样的温度体感会更闷热。
6.2 负荷预测误差面前,优化结果只是参考
这个模型再精细,依赖的都是输入预测数据。冷热电负荷预测如果有偏差,优化出来的调度方案就可能出现某些时段电不够用、冷不够用的局面。我遇到过的情况是:冷负荷预测系统给的预测值比实际值低15%,模型按预测值只开了吸收式制冷机的60%容量,结果下午最热那阵室内温度一路飙到28℃才被舒适度惩罚项拉回来,但水温系统的响应速度跟不上负荷变化,温度波动了将近一个小时才恢复。
解决这个问题需要给模型加上“鲁棒性口袋”。两种做法实践中比较好用:一是做日内滚动修正,每个小时根据最新的负荷实测结果重新求解未来3-4小时的调度,这是最有效的手段;二是给关键约束加安全裕度,比如冷/热母线平衡约束上预留5%-10%的旋转备用容量,牺牲一点经济性换取抗风险能力。用这个模型做实时调度时,一定要把它嵌进滚动优化的框架里,不能直接拿日前调度的结果去执行一整天。
6.3 与既有能量管理系统的数据接口设计
学术模型跑通了,落地到园区实际控制系统还有一层接口适配的鸿沟。大部分园区已经有BA系统、能源监控平台或SCADA系统,优化调度模型需要从这些系统取数——负荷实时值、设备运行状态、室内温度实测值——然后把调度指令下发到设备控制器。看似简单,实际遇到的第一个问题是数据口径不一致:BA系统里的“冷负荷”可能是从冷冻水流量和温差计算的,而调度模型里的“冷负荷”是末端需求的等效冷量,两者之间存在管网损耗和传输延迟的差异。
我在项目里处理这个问题的方式是加一个数据预处理层:把BA系统上来的原始数据做滤波、归一化、偏差校准之后,再送入优化模型。反向下发调度指令时,也加一个“指令翻译层”,把模型输出的“燃气轮机出力750kW”翻译成具体的导叶开度或燃料阀门控制信号,同时校验执行机构是否已经到位。这个中间层的开发工作量,说句实话比模型本身还大,但它决定了模型能不能真正在工程现场跑起来。
6.4 模型规模控制:时段颗粒度的实际选择
最后谈谈时间颗粒度的工程选择。模型里时段划分越细,对负荷波动和电价变化的响应越精确,但计算代价和预测精度的要求也越高。5分钟颗粒度看起来很美,但负荷预测在5分钟尺度上的精度很差,优化结果反而不稳定——前后两个时段可能给出差异很大的设备调度指令,执行机构频繁调节,磨损加快。
我的推荐方案是“日前面1小时+日内滚动15分钟”的两级调度架构:日前尺度用1小时时段做全局规划,确定机组启停组合、储能充放策略的大方向;日内滚动优化用15分钟时段,基于最新的负荷实测和预测数据修正各设备的出力计划。这样既保证了计算效率,又兼顾了对实时负荷变化的响应速度。从实际运行效果看,这个组合与纯15分钟颗粒度的方案相比,经济性差异在1%-2%以内,但计算时间缩短到原来的四分之一,稳定性好很多。
做综合能源系统优化调度这个方向,最容易犯的毛病是沉迷于模型的数学技巧而忽略了它服务的是物理系统和真实用户。这套模型的核心价值不在于它用了多高级的求解算法,而在于把“用户的冷热感受”和“看不见的碳排放”真正放进了调度决策的框架里,让每一点温度的取舍、每一度电和每一方气的选择背后都有一个明确的成本对标。它不一定是最完美的方法,但一定是让系统运行真正贴近实际需求的一种有效思路。如果有同行正在搭建园区级的多能互补调度系统,建议先把本文这套基础框架跑通,再根据自己项目的政策环境和负荷特性去扩展完善。