1. 为什么氢能耦合系统必须用多目标优化:单目标根本算不清这笔账
先来个灵魂拷问:同样是做24小时优化调度,普通电热联供系统用单目标线性规划、混合整数规划就能搞定,为什么一引入氢能,整个问题的性质就变了?
我在实际搭建这套氢能-电能-交通多能耦合系统时,最深的一个体会是:氢能设备在系统里承担的不止一个角色,而是三个。电解槽既是可调负荷,又是燃料制备源;氢燃料电池既是电源,又是氢负荷;储氢罐是整个系统的"缓冲池",但它有容量上限和压力约束;掺氢燃气轮机一边吃氢一边发电,而掺氢比例又有硬性的燃烧稳定性红线。这种多重身份带来的直接后果就是:系统中存在大量不可公度的目标冲突。
如果用单目标来做,你必须把所有的成本、碳排放、弃风弃光全部折算成一个货币化的数字。问题在于,碳排放的社会成本、弃新能源的惩罚系数,这些折算系数谁说了算?折算系数一变,最优调度方案就面目全非。我见过不少论文在单目标框架里硬塞权重,实际上是把决策者的主观偏好强行塞进系数里,算法算出来的所谓"最优解"根本没有说服力。
打个比方,单目标优化就像让你用一把尺子同时量长度和重量,量出来的一定是个四不像。而氢能系统的核心矛盾刚好是两类典型的相互冲突目标:
- 经济性 vs 低碳性:多用电制氢能消纳可再生电力、降低碳排放,但电解槽设备投资和运行维护成本高,电价高时段制氢经济上不划算。
- 消纳能力 vs 系统安全:为了多消纳风光、减少弃电,希望电解槽功率跟随时变电源波动快速调节,但频繁调节会降低电解槽寿命和效率,储氢罐容量有限,氢产出多了没地方去。
这些问题天然是多目标优化问题。而在多目标算法里,NSGA-II是学术界和工程界验证最充分、落地最稳的算法之一。它不需要你事先指定权重,而是直接产出一组帕累托前沿解,把"成本、碳排放、弃电率"之间的权衡关系完整呈现出来,让调度人员根据当天电网情况、电价信号、政策导向去选一个折中方案。这才是实际工程里的真实决策逻辑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 设备建模是调度优化的地基:每个设备都是一条不能逾越的硬约束
很多新手拿到这类题目,第一件事就是急着写NSGA-II代码,结果模型里的设备约束一塌糊涂,算法跑出来的帕累托前沿形状怪异甚至不收敛。根本原因就是忽略了设备级建模的物理意义。NSGA-II只是求解器,它不会替你判断模型是否合理。模型错了,算法再高级也是垃圾进垃圾出。
2.1 风电与光伏的出力边界:不确定性下的时序曲线
风力和光伏出力在24小时调度中通常看作不可控的输入参数。工程上常用两种方式获取这些数据:一是基于历史实测数据的典型场景序列,二是用威布尔分布、贝塔分布拟合后做蒙特卡洛采样。实际建模仿真中,为了验证算法性能,经常用如下形式构造典型日出力曲线:
matlab复制% 风电出力标幺值典型曲线(夜间大、白天小)
Wind_pu = 0.3 + 0.6 * exp(-((t - 4) / 3).^2) + 0.2 * exp(-((t - 18) / 5).^2);
% 光伏出力标幺值典型曲线(中午大、早晚小)
PV_pu = max(0, sin((t - 6) * pi / 12) .^ 1.2);
需要注意的是,风光出力是硬性边界条件,调度算法只能在这个边界内决策,不能改变风光的物理出力。你唯一能做的是决定"消纳多少、弃掉多少"。弃风弃光也是对决策开放的变量,而不是一个固定值,这一点在目标函数设计时很关键。
2.2 电解制氢系统模型:效率不是常数,是功率的函数
电解槽建模是我踩坑最多的地方之一。很多简化模型把电解槽效率设成常数,比如直接取70%,这在设备处于额定工况附近时误差不大。但调度优化恰恰会让电解槽频繁工作在部分负荷区间,这时候碱性电解槽效率会显著偏离额定值。更贴近实际的模型是效率随负载率非线性变化:
matlab复制% 电解槽负载率
ratio = P_EL / P_EL_rated;
% 效率随负载率的拟合曲线(典型PEM电解槽)
eta_EL = eta_rated * (0.4 + 0.8 * ratio - 0.2 * ratio.^2);
% 产氢量(kg/h)
m_H2 = eta_EL * P_EL / LHV_H2;
其中,LHV_H2是氢的低位热值,约33.3 kWh/kg。如果你用高位热值(39.4 kWh/kg)算,产氢量会偏低约15%,而行业报告和标准里用的基本是低位热值,统一标准非常重要。
电解槽还有一个容易被忽略的约束:爬坡约束。电解槽的功率调整速率受制于电解槽的热惯性,通常每分钟只能调整额定功率的几个百分点。在15分钟或1小时调度步长下,爬坡约束等效为相邻时段功率差值的上限。我见过不少论文把这个约束漏掉,结果算法给出的调度曲线在相邻时段剧烈跳变,物理上根本不可能执行。
2.3 储氢罐与掺氢燃气轮机:压力边界和掺氢比的工程红线
储氢罐的建模类似电池SOC,用氢气质量或等效能量状态来递推:
matlab复制S_H2(t+1) = S_H2(t) + eta_ch * m_H2_in(t) - m_H2_out(t) / eta_dis;
约束条件包括储氢容量上下限、
