☰
风光柴储多目标联合调度:从数学建模到工程落地全解析
2026/10/3 4:54:24 网站建设 项目流程

“风光柴储多目标联合调度”这个话题,在微电网或离网电源圈子里但凡干过两年以上,一看就懂:这是给风、光、柴、储四种不同脾气的电源做“联合排班”,既要省钱、又要减排、还要保证不拉闸。别小看这四个字的组合——风机出力看天,光伏出力看太阳,柴油机想开就开但烧油心疼,储能能充能放但电池寿命有限,四者放到同一个系统里协同运行,本质上就是一个带着约束的多目标优化难题。这篇文章我会把问题拆开讲透,从数学建模、目标设计、求解方法到实际调度中的坑,一条条捋清楚,尤其适合刚入门的微电网工程师和做新能源调度的研究生。

1. 问题拆解:风光柴储联合调度到底在解决什么

1.1 四种电源的“性格”决定了问题难度

很多人第一次接触风光柴储调度时,以为就是“有太阳用光,有风用风,不够了烧油,还差就放电”。逻辑没错,真正落地的时候会发现每个电源都有自己的脾气。

风电最大的特征是波动性和反调峰性。白天用电高峰时风速往往不大,到了夜间风速反而上升。我实测过不少风电数据,15分钟级出力波动经常超过20%,而且这种波动是近乎随机的,很难提前精确预判。

光伏则完全相反,出力曲线基本跟着日照走,每天中午最高、夜间为零,但最怕云层快速移动——一片云过来,五分钟之内出力能掉一半。这两个可再生能源电源虽然天然存在互补(白天光伏强、夜间风电强),但它们的“互补”只是统计意义上的,无法当作确定性的调度依据。

柴油发电机组属于可控电源,理论上可以随时调节,但它有两个关键的物理限制:一是最小技术出力,通常不能低于额定功率的30%~40%,低了燃烧不稳定,排温下降,积碳严重;二是启停代价,每一次启动都有油耗和机械磨损,而且不允许频繁启停——你不可能让柴油机像开关灯一样隔几分钟就启停一次。

储能系统是这四者里最灵活的“缓冲垫”,能充能放,响应速度在毫秒级。但储能也不是万能的,SOC有上下限,充放电功率有上限,循环寿命有限,深度充放一次就有一次损耗。从调度经济性看,储能每一次动作都该折算成成本,而不是当作“免费”的调节资源。

把这四种电源放在一张时间表里统一排班,就是风光柴储联合调度。难点在于:它们各自的约束条件交织在一起,目标又互相打架,这是一个典型的多约束、多目标、带整数变量(柴油机启停)的组合优化问题。

1.2 多目标冲突的本质是资源分配

多目标联合调度里有几个核心目标,最常见的三个是经济性最优、环保性最优、可靠性最优。这三者并不是关系友好的三兄弟,而是经常互相拆台的竞争者。

经济性目标希望运行成本最低,核心是少烧油、减少柴油机运行小时数。环保性目标希望碳排放最低,本质上也是希望风光出力最大化、柴油机越少开越好。看起来这两个目标方向一致,但经济和环保并不完全绑定——如果单纯为了省钱,可以让柴油机在适合的高效区长时间运行,尽量减少启停次数;如果单纯为了环保,可以让柴油机在低负载下“点补丁式”运行填补新能源缺口,启停次数增加,总油耗未必高,但经济性一定会变差。

可靠性目标则让问题更复杂。风光出力不可控,要做到不拉闸、不失负荷,就必须留有足够的备用容量。这意味着要么柴油机保持在线,要么储能保持高电量待命。无论哪种,都会和“让风光多发点电、让储能多吞吐”的环保目标产生冲突。

用大白话说:你的风光资源越丰裕,调度方案里越容易省钱省排放,但系统可靠性就越依赖储能和柴油机。可调度资源越紧张,可靠性与经济环保的矛盾就越尖锐。这个矛盾本质上就是不确定性与确定性之间的资源分配博弈。

1.3 这类问题出现在哪些真实场景

这类调度问题最常见的落地场景有几类:偏远海岛独立微电网、山区边防站点、应急供电系统、工矿企业的孤立电网,以及部分以可再生能源为主的并网型微电网。

以海岛系统为例,柴油机组通常持续运行,因为船舶运输燃料成本高、油价波动大,运维队伍上岛又麻烦。很多岛上的微电网改造前,调度几乎靠老师傅“拍脑袋”——看天气、看经验、看负荷曲线,手动决定柴油机何时开、储能何时充放。改造为风光柴储联合调度后,系统可以在天气好的时候让柴油机停掉,用储能和风光保障供电;天气差的时候再提前启动柴油机,压缩燃料消耗。

这类系统的规模并不一定很大,几兆瓦以内居多,但麻雀虽小五脏俱全。它涉及到预测、优化、实时控制、设备保护等多个环节,是一个极具工程综合性的小微系统。对工程技术人员来说,把这类问题吃透,再去做大电网的新能源消纳调度,方法论是完全打通的。

2. 核心建模思路:目标函数与约束条件的取舍

2.1 目标函数怎么写从需求倒推

调度问题的建模起点不是数学公式,而是业务需求。首先要分清你做的是日前调度、日内滚动还实时调度,这决定了时间分辨率和决策变量粒度。

最常用的经济性目标函数是分钟级运行成本最小化,表达式大致为:

总成本 = 柴油机燃料成本 + 柴油机启停成本 + 各设备运维成本 + 储能损耗折算成本

燃料成本可以用油耗曲线拟合。柴油发电机组的油耗并非线性,而是分区间变化的,低负载区间油耗率明显偏高。工程上常用二次曲线或分段线性函数来描述油耗与出力之间的关系,然后用发电功率乘以油耗率再乘以油价,换算成燃料成本。

碳排放目标就是把柴油发电量乘以碳排放因子。常规柴油机每发1kWh电的CO2排放量约为0.8~0.85 kg,具体数值取决于机组效率和负载率,不同厂家差异不大,工程计算直接用这个常数即可。

可靠性目标处理方式有两种:一种是把失负荷概率LPSP建模为软约束,再以罚函数形式放进目标函数;另一种是把可靠性作为硬约束,要求全天失负荷电量不超过某个阈值。如果是做研究,建议先把LPSP量化出来,再考虑是用罚函数还是硬约束。

需要特别提醒:多目标线性加权是常见的简化方式,但三个目标的量纲完全不同。成本是元,排放是kg,可靠性是百分比,直接加权毫无意义。必须先各自归一化到0~1之间,再乘以权重。归一化基准通常取各单目标优化下的最优值——也就是经济单目标跑出来的最低成本作为成本目标的归一化分母,以此类推。

2.2 约束条件里最能看出水平

目标函数定得再精细,约束条件建得不到位,整个模型依然废掉。我审过不少方案,很多问题都出在约束写得不够全面。

功率平衡约束是第一个必须满足的等式约束:风电出力加光伏出力加柴油机出力加储能放电功率,等于负荷功率加储能充电功率。这个约束看起来简单,但很多人忘了把损耗加进去——线路损耗、变流器损耗,在离网系统中通常按负荷的3%~5%估算。

然后是各设备自身的上下限约束。柴油机除了功率上下限,还必须加上最小运行时间和最小停机时间约束。这两条约束很关键,少了它们,求解器会给出“柴油机每隔15分钟启停一次”的荒谬方案,因为从数学上看频繁启停能精确跟踪负荷,但实际上机组根本受不了。

储能约束要注意SOC边界和功率边界。SOC一般限制在0.2~0.9之间,避免过放保护触发。充放电功率受PCS容量限制,这个比较容易理解。容易遗漏的是调度周期末SOC的回归约束——如果只做24小时调度且对末时刻SOC无约束,模型会把储能电量“白嫖”到最低点,第二天根本没有电可用。正确的做法是让调度周期的SOC末值等于初始值,或者考虑跨周期衔接。

备用容量约束也容易被遗漏。系统必须保有一定的旋转备用,以便在风光骤降或负荷突增时维持频率。对于离网系统,这个备用通常由柴油机和储能共同承担,建议预留当天最大负荷的10%~15%作为备用容量。

2.3 调度时间尺度未必只有一个

实际工程中,风光柴储联合调度很少只做一个时间尺度,因为预测误差随着时间尺度缩小而显著减小。常用的架构是两层:

日前计划按1小时分辨率滚动优化,决定柴油机启停计划、储能各时段的充放电计划、可再生能源的预测出力基准。这里面的决策变量包含0-1整数变量(柴油机开还是停)和连续变量(各设备出力),这就是混合整数规划问题。

日内修正按15分钟或5分钟分辨率执行,基于最新的超短期预测数据和实际运行状态,对日前计划进行修正。日内修正最常用的是模型预测控制(MPC)思路:每个周期向前滚动预测一段时域,求解有限时域优化问题,只执行第一步,然后滚动推进。

做研究时只做单尺度还说得过去,做工程落地时单尺度基本不可用。我曾经在一个项目中只用日前的1小时分辨率调度,结果夜间风电骤增时段调度计划完全跟不上,储能SOC被打穿。后来改成15分钟滚动修正,问题就解决了。误差不是均匀分布的,风光变化最剧烈的时段恰恰是调度最困难的时段,多时间尺度协作比任何高深算法都管用。

3. 求解方法论:从数学规划到智能算法

3.1 混合整数线性规划是工程首选

对于离网微电网的规模,风光柴储联合调度问题用混合整数线性规划(MILP)求解通常最可靠、效率也最高。柴油机的启停用0-1整数变量表示,各设备出力用连续变量表示,约束条件线性化后,交给成熟的商业求解器或开源求解器处理,几分钟内就能找到全局最优解。

MILP最大的好处是确定性和可复现性。同一份数据和同一组约束,求解结果百分之百一致,这在工程验收和调度审计中非常关键。智能算法跑十遍可能有十个不同的结果,谁去签字负责?所以现场调度我首选MILP。

难点在于目标函数中的非线性项必须线性化。比如柴油机油耗曲线是二次曲线,可以分段线性化作近似处理;储能寿命损耗与充放电深度关系也是非线性的,可以用线性递减模型或分段近似。这些线性化处理不会带来太大的精度损失,却能换来稳定的可解性。

对于非线性的目标函数或约束,还有一个思路是采用混合整数非线性规划(MINLP),但求解难度大,工程实践中除非必要一般不用。能线性化的尽量线性化,这是做调度建模的铁律。

3.2 多目标处理的三种主流套路

多目标调度问题怎么处理,取决于最终要什么形态的决策结果。

线性加权法最简单:把归一化后的三个目标乘以权重再加总。坏处是非凸Pareto前沿上权重法的解可能漏掉中间的折中区域,且权重选择主观性强。对工程实践来说通常够用,因为调度员本来就希望得到一个明确的优化结果。权重怎么定?可以参考运营方偏好:燃料成本高就放大经济权重,环保考核严就放大环保权重。

ε-约束法是另一种常用方法:把最关心的目标保留为目标函数,其余目标作为约束上界。比如把运行成本作为目标函数,碳排放不得超过某个阈值,LPSP不得超过0.001。这种方法能得到更丰富的Pareto前沿,也便于和业主讨论“减排多少对应增加多少成本”的边际关系。

多目标智能优化算法如NSGA-II、MOPSO则是追求一次运行得到一整条Pareto前沿。优点是可视性好,能看到三个目标互相制约的全貌。缺点同样明显:参数敏感、结果不稳定、计算耗时,在大规模工程问题中可能无法保证每次都能收敛。

我的建议是:方案论证阶段用NSGA-II把Pareto前沿画出来和决策层讨论,工程落地阶段用MILP把最优决策固定下来。算法本身不是目的,可解释、可执行、可复核才是调度方案的生命线。

3.3 智能算法的适用边界和调参经验

很多初学的人喜欢一上来就NSGA-II,以为用了进化算法就“高级”了。但智能算法在真实调度场景中有明显的适用边界。

如果你的系统规模很小(比如3个以内柴油机、几十个决策变量),MILP完全可以解决,根本不需要进化算法。如果你的系统规模非常庞大(比如几十台分布式机组),MILP可能求解时间过长,这时候启发式智能算法才显示出优势。但请记住要用大规模邻域搜索、问题分解等手段配合,而不是“裸跑”遗传算法。

如果确实要用NSGA-II做研究,给你几个我实测的参数参考:种群规模在50~100之间,交叉概率0.8~0.9,变异概率0.05~0.1,最大迭代次数200~500。变异概率别太小,小了容易早熟收敛到某一目标极端区域。同一组数据建议用多个随机种子重复跑8~10次,观察Pareto前沿的稳定性。如果每次跑出来的前沿差异巨大,说明约束条件可能设置有误,或者目标函数归一化做得不对。

还有一种现代趋势是用深度强化学习(DRL)做在线调度,把调度问题建模为马尔可夫决策过程,训练一个策略网络,根据当前状态直接输出调度动作。这个方向适合动态环境下的实时决策,尤其是预测误差大、需要快速响应的场景。但工程上对训练数据的真实性要求极高,虚拟环境与现场设备特性偏差会导致“训练时天下无敌、上线时一塌糊涂”,我目前只在预研项目中探索过,真正敢拍板上线的项目还很少见。

4. 实操案例:一个小型离网微电网的调度赛马

4.1 一个典型的离网系统参数设定

为让整个建模和求解过程更直观,我搭建一个典型的离网型海岛微电网算例。系统包含:

  • 风电:额定800 kW
  • 光伏:额定2000 kW
  • 柴油机组:单台1200 kW
  • 储能:1000 kW / 2000 kWh
  • 峰值负荷:1500 kW,日用电量约16 MWh

电价和成本参数按实际工程经验取值:柴油价格按6.5元/升估算,柴油机发电油耗率取0.21 L/kWh(对应约1.37元/kWh的燃料成本,换算成0.55元左右再叠加运维,实际可按0.6元/kWh计入),柴油机运维成本0.05元/kWh,CO2排放因子0.85 kg/kWh。风电运维成本0.03元/kWh,光伏运维成本0.02元/kWh,储能寿命损耗按每充放1 kWh折算0.12元成本。

这些数字看起来琐碎,但它们直接决定调度结果的风向。比如储能寿命损耗如果按0.12元/kWh计入,比风电运维成本高4倍,那么调度模型就会倾向于少用储能。如果储能损耗参数设置得过低,模型会让储能疯狂充放,表面上风光利用率提升了,实际上电池寿命损耗带来的隐性成本被无视了。

4.2 三种权重下的调度结果对比

我分别测试了三组目标权重,观察调度行为的差异:

方案A“纯经济倾向”:经济权重0.7,环保0.2,可靠0.1。归一化后目标函数给出结果:柴油机全天开机约14小时,负荷高峰和低谷都靠柴油机托底,储能只做浅充浅放。风力光伏尽量消纳但无须追求极致。结果日均运行成本约14800元,碳排放约8900 kg,LPSP接近于0。

方案B“纯环保倾向”:环保权重0.8,经济0.1,可靠0.1。结果让柴油机只在傍晚负荷高峰开后半夜停机,储能一天深度循环超过2.5次,风电光伏满发追踪。成本上涨到17500元,碳排放降至约3200 kg,但因为储能SOC在下午已跌到下限,夜间风电骤降时出现了约0.004的失负荷概率,相当于一天之内有几分钟供电缺口。

方案C“三方平衡”:经济0.4,环保0.3,可靠0.3。柴油机启停两次——中午光伏大发时停掉,傍晚负荷爬坡前再启;凌晨风电大发时储能充电蓄能,白天储能配合放电压峰。最终成本约15600元,碳排放约5600 kg,LPSP小于0.001。三者都不是最优,但实现了可接受的折中。

这是最典型的“多目标赛马”演示:权重改变,调度行为截然不同。方案B看起来最环保,却牺牲了可靠性;方案A成本低但排放高;只有当约束条件完备、权重设置符合运营需求时,调度结果才是真正能落地的。

4.3 日前调度与滚动修正的配合

上述结果属于日前调度计划。为了提升执行效果,我按15分钟时间窗口做日内滚动修正。

具体做法是:以日前计划作为参考轨迹,每15分钟根据最新的风电超短期预测、光伏实时出力和负荷实测数据进行一次窗口长度为4小时(16个步点)的优化。修正时只把第一步的指令下发到PCS和柴油机控制器,下一个周期再滚动计算。

举一个典型波动案例:某日12:30云层遮光,光伏出力从1.6 MW在10分钟内掉到0.9 MW。日前计划中该时段光伏预测出力为1.4 MW,如果不做滚动修正,系统会有接近500 kW的缺口。滚动修正检测到偏差后,立即在下一个周期增加储能放电和柴油机补出力,同时削减非关键负荷。整个过程持续约十分钟,系统频率控制在49.8~50.2 Hz之间。

滚动修正的另一大好处是能处理柴油机启停延迟。柴油机从收到启动指令到并网输出额定功率,通常需要1~3分钟,因此滚动窗口必须把启停决策的“提前量”考虑进来。我的经验是:日前计划就预判好启停窗口,日内滚动只在原计划基础上做小幅修正,而不是推倒重来。推倒重来会导致柴油机频繁启动,产生大量不必要油耗。

5. 常见问题与排查技巧实录

5.1 量纲不一致和目标无法比较的问题

这是新手最容易掉进去的坑。成本、排放、可靠性三个目标,量纲完全不同,直接加权做优化,权重实际是在充当量纲转换系数,而非真正的偏好系数。举例:成本8000元、排放6000 kg,各归一化后才能在同一个量纲下比较。如果不归一化,成本目标天然会被排放目标“淹没”或反过来。归一化的分母取单目标最优值之外,另一个工程上稳妥的做法是取一个固定的盈亏平衡基准,比如把成本基准设为“全年纯柴油供电总成本”,排放基准设为“等于风光出力为零时的总排放”,这样基准物理意义清晰,不会随着单目标优化结果漂移。

5.2 SOC初值与末值约束缺失

做单日起始调度时,如果不设定储能SOC初值和末值的关联,模型会在凌晨把储能放干,以便全天成本最低。这解决了“今天”,却毁掉了“明天”。正确的做法是把储能SOC的历史衔接纳入模型,或者直接加约束要求末时SOC等于初值。工程上还有一种处理方式是让初值由“上一日滚动修正最后一个时段的状态”决定,这才是真正意义上的连续调度。

注意:SOC约束别只设上下限。如果不考虑循环次数和DOD惩罚,储能会被当成大容量电池任性使用。寿命损耗折算进目标函数或者能耗成本之后,调度方案才更贴近电池的实际运营方式。

5.3 柴油机启停和最小运行小时被忽略

不少模型里柴油机只有简单的出力上下限约束,没有最小运行时间约束,结果优化方案会出现柴油机每半小时启停一次的情况。从数学模型看这是合理可行的,但在物理现场根本不可能执行——频繁启停会大幅增加维修成本和停机风险。

解决方法是给每台柴油机增加“最小开机时间”和“最小停机时间”约束,通常工程值为2~4小时。同时还要考虑启动过程对备用容量影响,柴油机启动瞬间并网会造成冲击,需要在目标函数中加入启停惩罚项或约束条件,对启动次数上限做限制。

5.4 算法早熟与结果不稳定

如果选择智能算法求解,最让人头疼的就是结果不稳定。我从实践中总结几个排查顺序:

第一,看种群多样性和交叉变异参数,变异概率太低容易早熟,建议先提高到0.1试跑一遍。

第二,看目标函数是否“陷阱过多”。如果Pareto前沿大部分区域全是非可行解,说明约束条件过于苛刻,需要放宽部分约束或增加松弛变量。

第三,用多随机种子重复实验。如果不同种子跑出的结果差异超过5%,优先怀疑归一化和目标方向出了问题。我曾经遇到一次智能算法结果“完美”但完全异常——后来发现是碳排放目标的方向写反了,模型在帮系统“多排碳”。这种事在调试中真的会发生,别高看自己,该做单元测试就做单元测试。

5.5 数据颗粒度和预测误差带来伪最优

风光资源数据是调度模型的“原料”。有人在建模时用平均风速来近似风电出力,这就相当于用“全年平均温度”设计空调——在工程上就是胡闹。风电出力是有强非线性的:切入风速3 m/s,切除风速25 m/s,额定风速一般在10~12 m/s。风速从9涨到11 m/s,出力可能翻倍。必须用15分钟或更细颗粒度的时序风速数据,再通过实际机组的功率曲线转换成功率序列。

光伏出力还要考虑温度系数和组件衰减,虽然光照是主变量,但温度升高会让组件效率下降。预测误差不可避免,手段是滚动修正和场景分析。我建议至少做三组调度场景:预测场景、乐观场景、悲观场景,对比调度方案的鲁棒性。悲观场景下如果系统还能满足功率平衡和备用约束,这个方案才算“站得住”。

写在最后的一些体会

把风光柴储多目标联合调度问题走完一整套流程之后,我最深的感受是:这个问题的瓶颈通常不是算法,而是建模的准确度和约束的完备度。花了大量时间调NSGA-II的参数,不如花半小时去核算柴油机的油耗曲线是否准确、储能的SOC会不会实现跨日衔接、预测数据是不是真实反映当地的风光资源特征。

另一个让我反复强调的点是,多目标调度没有绝对最优解。所谓“最优”,是在特定成本、政策、运维条件下,各方妥协出来的一个可执行方案。研究阶段可以把Pareto前沿画得很漂亮,工程上必须拍板选择一组权重或一组优先级,把多目标问题变成可以执行的单目标问题,这是学术走向工程必须跨越的一道坎。

最后分享一个我自己的小习惯:每次做调度方案之前,先跑一遍纯柴油机供电的基准场景当作“底线”;再跑一遍风光新能源满发、储能最大限度参与的“理想场景”。两条线一夹,调度方案的改善空间和改进方向就很清楚了。多目标调度的价值,本质上就是在底线与理想之间,找到一条真实可以走的路。

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

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

立即咨询