
多微网电能共享这几年在园区级综合能源项目里被反复提起。但我做这类项目时发现一个更扎心的问题几个微网之间互相送电、调剂余缺技术上并不难难的是省下来的钱怎么分。分不好联盟马上散调度指令再漂亮也没人执行。后来我把这个问题完全纳入优化框架用的就是非对称纳什谈判Asymmetric Nash Bargaining这条路线。这篇文章把整个策略的模型结构、分布式求解方法、算例结果和工程落地时的坑完整盘一遍给正在做多微网群协调、微电网集群调度的工程师和研究生一个可参考的完整闭环。我默认你看过微网的基本运行模型知道储能SOC、功率平衡这些概念。如果都没问题我们直接进入正题。1. 为什么多微网要抱团电能共享独立运行的痛点和联盟的账本1.1 独立微网运行的钱都亏在哪先说一个我常举的例子。某园区微网装了一大批屋顶光伏白天发电高峰基本集中在10点到15点但园区本身的负荷高峰在上午9点和下午17点以后午间反而是低谷。独立运行时光伏出力超过负荷和储能可充电功率的部分只能弃掉。到了晚高峰光伏归零园区只能从电网高价购电储能如果白天没有充够就只能硬扛峰价。隔壁还有一栋商业楼宇微网负荷特性刚好相反白天商业活动多午间冷负荷、照明负荷都不小晚间闭店后负荷骤降。如果这两个微网能互济园区午间的富余光伏送去给办公楼办公楼晚间的柔性负荷调整配合园区储能的放电路径两边都能少买高价电。这类时间互补性在多微网集群中是非常普遍存在的不利用起来确实可惜。独立运行的隐性亏损还不止电费。每个微网为了保证自身可靠运行都要按自己的最大负荷预留足够的备用容量储能配置也是按照自身最不利场景设计。N个微网各自为政相当于N份备用容量互相不共享冗余资源严重叠加。负荷特性差异越大这种叠加浪费越明显。1.2 互联共享带来的四笔看得见的收益把多个微网通过联络线连成一个电能共享联盟后收益可以拆成四块新能源消纳收益富余光伏、风电在联盟内部被吸收弃电率下降光伏投资的回收周期缩短。购售电价差收益峰时段从联盟内其他微网购电替代从电网高价购电谷时段把富余电卖给邻居而不是低价返送电网。容量费用收益多微网聚合后对上级电网的峰值功率需求被削平基本电费需量电费/容量电费下降。储备冗余收益储能、备用电源可以共享容量理论上总储能配置需求下降甚至延缓储能扩容投资。我们做过一个粗略估算假设某联盟一天原本从上级电网购入5000 kWh改造后降到3500 kWh峰谷价差平均按0.4元/kWh算一天光电量电费就能省600元如果还需量电费按需量峰值降低300 kW、每kW每月40元算一个月又是12000元。对一个几十兆瓦等级的园区集群年化收益非常可观。1.3 电能共享的最后一公里其实是利益分配既然联盟能省钱为什么实际落地还是难因为联盟运行计划一旦执行必然要求某些微网调整自己的最优行为。比如一个微网白天本来可以把光伏卖给电网现在为了联盟整体利益它要把光伏卖给邻居价格如何算一个装了储能的微网被要求频繁充放电承担循环寿命损耗这部分成本如何补偿如果没有合理的利益分配机制所有成员都会倾向于搭便车而不出力。所以多微网电能共享运行优化必须包含两部分第一步是把联盟总运行成本最小化把蛋糕做大第二步是设计一套分配规则把合作剩余公平分给各成员。分配规则必须保证每个微网加入联盟后的成本不高于独立运行成本否则个体理性不满足联盟一定解体。这就是博弈论里谈判问题登场的场景。2. 非对称纳什谈判到底在谈什么公理基础与谈判力的数学含义2.1 谈判破裂点是整套模型的地基博弈论里谈谈判首先要定义谈判破裂点disagreement point。在多微网场景中破裂点很容易设定联盟没有达成合作时各微网各自独立运行此时微网i有一个最优运行成本记为C_ind,i。这个成本是它自己单独优化运行得到的最低值。谈判开始时每个微网会问自己一个问题加入联盟之后我的成本是多少记为C_coal,i。如果C_coal,i高于C_ind,i我为什么要加入所以必须要满足C_coal,i C_ind,i, ∀i这个约束在文献里叫个体理性约束Individual Rationality是所有合作博弈解的前提。进一步地我们可以定义微网i的合作收益节约额为s_i C_ind,i - C_coal,i谈判的核心问题就变成在联盟总节约一定的情况下如何把S Σ s_i分配给各微网使得所有成员都满意、联盟稳定。2.2 从对称NBS到非对称NBS权重不是拍脑袋是谈判筹码纳什谈判解Nash Bargaining SolutionNBS给出的分配方式是最大化各成员相对破裂点的效用增量乘积max ∏_{i1}^N (s_i)^{β_i}s.t. s_i 0Σ s_i S这里的β_i就是第i个微网的谈判力权重。当所有β_i相等时目标函数退化为max Σ ln(s_i)是对称纳什谈判解讲究的是在满足个体理性前提下的尽量均分。为什么实际工业项目里对称NBS不够用因为微网与微网之间从来不是同质的。一个投了巨大储能容量的微网在联盟中承担了更多充放电损耗和电池循环寿命成本一个新建联络线、承担了基础设施投资的微网理应在收益分配中获得更多回报一个新能源装机占比高、把大量富余可再生电力输送给邻居的微网也天然有更强的议价筹码。如果强行对称分配这些高投入成员会觉得我扛了最重的担子分钱却跟别人一样积极性立刻下降。非对称NBS正是把这种谈判力差异显式引入权重β_i。从数学上看对目标函数取负对数变成求解凸的最小化问题min -Σ_{i1}^N β_i ln(s_i)在约束s_i 0和总节约固定的情况下KKT条件会给出一个非常重要的结论如果各微网的成本函数都是线性的且联盟最优调度固定不变那么合作剩余s_i与β_i近似成正比。也就是说权重β_i直接决定分账比例。这个性质让权重变得非常敏感必须谨慎标定。我需要强调一点权重不是有人拍脑袋定出来的它本质上反映的是各微网在联盟中可贡献资源的稀缺性和不可替代性。实际操作中我见过比较成熟的标定方法是取三个子项的归一化加权储能可调容量占比、可中断/柔性负荷占比、新能源富余电量贡献占比。每一项都可以定量计算最终通过协商确定子项系数。2.3 为什么不用Shapley值或核仁经常有人问分配博弈收益Shapley值不是更经典吗确实Shapley值满足边际贡献公理能严格做到各成员收益之和等于联盟总收益。但它有非常现实的问题计算Shapley值需要对所有子联盟逐一评估子联盟数量随微网数N呈指数增长。N10时已经有1023个子联盟N30时基本不可能在线求解。且默认Shapley解不引入非对称谈判力——所有成员在对称位置除非你人为定义一整套加权Shapley那复杂度更高。核仁Nucleolus需要评估所有联盟的不满意程度约束数量同样指数膨胀工程实现难度更大。反观非对称NBS它只需要三样东西各微网独立运行成本破裂点、联盟最优运行成本、一组权重β_i。计算量集中在一次联盟级优化上权重参数可以灵活调整以适配谈判场景最适合做成可解释、可协商、可复核的分配机制。3. 两阶段优化模型先做大蛋糕再谈如何分蛋糕3.1 第一阶段多微网联盟运行成本最小化第一阶段解决的问题是如果这些微网完全合作作为一个虚拟整体运行最优的功率调度是什么目标函数是联盟总运行成本最小min Σ_{t1}^T Σ_{i1}^N [ c_t^b P_{i,t}^b - c_t^s P_{i,t}^s α_i^{om}(P_{i,t}^{PV} P_{i,t}^{chr} P_{i,t}^{dis}) ]其中P_i,t^b是微网i在时段t向上级电网购电功率P_i,t^s是返送电网的售电功率c_t^b和c_t^s分别为分时购电、售电电价α_i^{om}是单位运维成本系数P_i,t^{PV}是光伏出力P_i,t^{chr}、P_i,t^{dis}是储能充放电功率。约束条件包含如下几类功率平衡约束P_i,t^{PV} P_i,t^{dis} P_i,t^b Σ_j P_{j→i,t} P_i,t^{load} P_i,t^{chr} P_i,t^s Σ_j P_{i→j,t}储能SOC递推SOC_i,t1 SOC_i,t η_chr P_i,t^{chr} Δt - P_i,t^{dis} Δt / η_dis储能容量上下限、充放电功率上下限联络线传输功率上限|P_{i→j,t}| P_{ij,max}购售电互斥约束线性化P_i,t^b * P_i,t^s 0工程上用两段变量加整数约束处理这里有个容易被忽略的细节联络线损耗。如果微网之间通过公共配电网线路互联共享电能是有线损的。严谨做法是在功率平衡中加入传输效率η_ijP_{i→j,t} * η_ij ≈ P_{j→i,t}虽然这会让模型非线性程度增加但在实际项目中建议至少把等效损耗系数考虑进去否则第二阶段按理想联络线算出的分账会出现实际亏空。第一阶段求解完成后我们得到的是联盟整体最小成本C_total^coal以及每个微网在各时段的功率计划。注意此时C_coal,i是物理成本——它只包含购售电和运维成本不包含微网间的电能结算。因此还不能回答每个微网最终花多少钱这个问题。3.2 第二阶段基于非对称NBS的收益分配第二阶段把第一阶段求得的联盟最优调度固定下来在这个物理计划之上引入微网间电能交易结算记账找到一组交易结算方式使各微网的成本节约额满足非对称纳什谈判解。记交易结算价格为λ_{i,j,t}微网i向j送电的结算电价则微网i的联盟最终成本可以写成物理成本加上交易收支C_coal,i C_phys,i Σ_{j,t} λ_{i,j,t} P_{i→j,t}其中C_phys,i通过第一阶段结果算出来P_{i→j,t}也是第一阶段已知量。于是各微网的节约额s_i C_ind,i - C_coal,i成为λ的线性函数非对称NBS问题变成min -Σ_i β_i ln( C_ind,i - C_phys,i - Σ_{j,t} λ_{i,j,t} P_{i→j,t} )s.t. C_coal,i C_ind,i并且确保联盟内部结算收支为零Σ_i Σ_j λ_{i,j,t} P_{i→j,t} 0联盟整体不通过内部交易额外盈利。注意第二阶段中调度计划P不再变化可变化的只有结算价格λ。这是个低维度优化问题求解代价远小于第一阶段。3.3 两个阶段为什么可以解耦又靠什么耦合两阶段能够解耦的理论基础是联盟总成本已经由第一阶段达到最小只要总成本S固定NBS只负责把S重新分配不改变物理调度。换句话说饼有多大由第一阶段决定饼怎么分由第二阶段决定两者不互相牵扯。但两阶段之间不是完全独立它们通过物理调度计划P_{i→j,t}和独立运行成本C_ind,i耦合。C_ind,i需要先用独立运行优化算一遍得到破裂点P_{i→j,t}需要第一阶段算完传给第二阶段。这也是为什么这个方法天然适合分步实现多个模块解耦算法工程师可以分别调试。如果你不想分两阶段也可以把第二阶段NBS目标直接加进第一阶段目标函数里统一求解。但那样目标函数会变成包含对数项和大量非线性结算变量的混合优化求解难度明显上升而且一旦某个微网退出联盟整个大模型需要完全重算工程维护成本很高。两阶段方案在实用性和可解释性上都更优。4. 用ADMM把模型拆到每个微网本地隐私保护与分布式求解实战4.1 集中式求解在工程现场为什么不吃香第一阶段和第二阶段理论上都可以用集中式求解器比如将多微网所有运行数据汇总到一台服务器统一建立优化模型求解。问题是实际多微网往往分属不同业主有各自的EMS、各自的数据权益边界。要人家把内部负荷曲线、储能SOC、设备效率参数全部交到一个中央平台商业上很难谈拢。调度数据跨系统传输链路长一旦某微网内部参数变动中央模型就要改责任边界也不清。ADMM交替方向乘子法正好解决这个痛点。它允许每个微网保留全部内部模型和数据只向外交换少量边界变量——联络线计划功率和交易结算价格。中央协调层只做非常简单的变量同步与乘子更新不触碰各微网内部约束。4.2 ADMM的迭代框架与需要交换的信息以第一阶段为例。耦合约束写为P_{i→j,t} - z_{ij,t} 0 P_{j→i,t} z_{ij,t} 0这里的z_{ij,t}是协调层维护的共享变量表示联络线ij上时段t的参考交换功率。配合符号约定两个微网的边界计划必须与z一致且互为相反数。构造增广拉格朗日函数后ADMM迭代分三步每个微网i并行求解本地子问题在自身约束下最小化本地成本 与邻居联络线有关的线性项和二次罚项。协调层更新共享变量z取交互双方计划功率的平均值使双方尽可能一致。协调层更新拉格朗日乘子λ这个乘子在物理意义上就是微网间交易结算的影子价格并计算收敛残差。一个简化版伪代码如下# 伪代码第一阶段ADMM的协调层循环 # lam: 交易价格/影子价格初始化为上级电网分时购电电价 # z: 联络线共享功率初始化为0 for k in range(max_iter): # 并行求解各微网本地子问题 result [] for i in range(N): p_ij, cost_i solve_local_mg( mg_idi, lamlam[:, k], z_refz[:, k], internal_datamg_data[i] ) result.append((i, p_ij, cost_i)) # 更新共享联络线功率两个微网计划的中间值 for edge in edges: i, j edge z[edge, k 1] 0.5 * (p_ij[i][edge] - p_ji[j][edge]) # 注意符号约定实际以双方净交换一致为准 # 更新拉格朗日乘子影子价格 lam[:, k1] lam[:, k] rho * (p_ij_all[:, k] - z[:, k1]) # 收敛判定原始残差和对偶残差 r_prim abs(p_ij_all[:, k] - z[:, k1]) r_dual abs(z[:, k1] - z[:, k]) if norm(r_prim) eps_prim and norm(r_dual) eps_dual: break伪代码只是示意工程实现还要大量处理数据接口、单位量纲、越限处理等细节但整体骨架就是这个。第二阶段NBS也可以用类似框架区别是本地子问题中新增了结算价格变量协调层还要保证内部交易结算收支平衡的约束。需要交换的信息量很小每轮迭代每个联络线传送一个功率值和一个价格标量。比如三条联络线的三微网系统迭代400轮总共也不过2400个标量数据相比内部数千维优化变量通信负担可以忽略。这才是ADMM在实际工程里最讨喜的地方。4.3 调参经验与几个不容易发现的坑ADMM最让人头痛的永远是惩罚参数ρ。ρ太小迭代需要几千轮ρ太大前期振荡明显甚至不收敛。以kW为功率单位、元为成本单位时我的个人经验是ρ从20到50起步比较稳。判断方法是看前50轮原始残差曲线如果出现周期性振荡说明ρ偏大降到10以内如果残差单边缓慢下降但最后收敛太慢说明ρ偏小可以慢慢加。没有通用的万能值关键是要做两三轮试算再定。初始值也很有讲究。交易价格λ的初始化用什么最省事的做法是直接用上级电网分时购电电价。如果你把它初始化成0前期迭代几乎全在解决价格从0爬到真实边际成本的过程白费几十轮。联络线功率z初始化成0则十分合理因为没有任何共享计划时还是独立运行为准。收敛判据我建议原始残差控制在联络线容量的万分之一左右。假设联络线1000 kW原始残差阈值取0.1 kW即可对偶残差可以放宽5~10倍。如果你用了0.01 kW这种过于严格的阈值迭代次数会显著增加但收益微乎其微因为日前级的调度计划本来就有预测误差没必要死磕。权重β差异大时需要额外小心。非对称NBS目标函数里有一个β_i ln(s_i)如果β_i差别过大比如0.6对0.1目标梯度在不同微网之间严重失衡第二阶段ADMM会出现振荡。解决方法有两个一是把β_i按最大值归一化到0.2~0.6区间二是在第二阶段给对数项加一个小的线性正则项防止s_i逼近0时梯度发散。还有一个工程上容易翻车的点如果第一阶段模型里把购售电互斥约束建模成0-1整数变量整个问题变成非凸混合整数规划ADMM的收敛性就失去理论保证了。我的做法是第一阶段直接用商用求解器比如Gurobi的分布式MIP能力或集中式求解第二阶段再拆ADMM或者将互斥约束用互补松弛的罚函数连续化但参数不好调建议谨慎使用。5. 三个算例跑完后的结果对比与权重敏感性分析5.1 算例场景设计我按下述结构搭了一套三微网算例光伏和负荷数据采用公开测试系统的典型日曲线时间分辨率1小时优化周期24小时。三个微网特性差异很大方便观察互补效果。MG1园区型微网光伏装机较大配有1 MW/2 MWh储能负荷白天为主午间有较明显光伏富余。MG2商业楼宇微网光伏很小无储能负荷集中在白天和傍晚晚高峰明显。MG3小型工业微网负荷平稳配备0.5 MW燃气轮机和0.5 MW/1 MWh储能运行方式相对灵活。联络线容量取500 kW。分时电价用常见的峰谷电价峰时段0.95元/kWh平时段0.62元/kWh谷时段0.34元/kWh光伏上网电价按0.39元/kWh计算。5.2 对称与非对称权重下的成本分配对比先让三个微网独立运行得到独立最优成本再跑联盟总成本最小化得到联盟最优运行成本。结果如下微网独立运行成本元/日联盟运行后物理成本元/日可分配节约额元/日MG11150095002000MG214200113002900MG312800112001600合计38500320006500注意联盟运行后物理成本是第一阶段算出的各微网实物成本第二阶段要再做交易结算形成最终账面成本。联盟总节约6500元相对独立运行成本节约率约16.9%。从物理成本看MG2获益最大2900元因为它的晚高峰负荷被MG1的富余光伏和MG3的燃气轮机共同压下来减少了大量高价购电。再看第二阶段两种权重下的最终分配微网对称β(1/3,1/3,1/3) 账本成本元非对称β(0.4,0.3,0.3) 账本成本元对称节约额元非对称节约额元MG19333890021672600MG2120331225021671950MG3106331085021671950对称权重下三个微网节约额完全相同账面成本都明显低于独立运行成本联盟稳定。非对称权重下MG1因为有储能和光伏调节贡献谈判权重提到0.4节约额上升最终账本成本降到8900元MG2、MG3各拿1950元虽然比对称时少了一些但仍然远低于独立运行成本。这里要着重解释一个现象第二阶段NBS权重变化并不改变第一阶段的物理调度MG1、MG2、MG3实际怎么充放电、怎么交换功率完全是同一套方案。变的只是内部结算价格和最终账本也就是说分账的公平性和物理效率是解耦的。这个性质在现场讨论中非常重要——业主最怕调度方案因为分账吵了一次就要重算一遍两阶段框架下完全不用。5.3 权重标定规则对联盟稳定性的影响如果把权重进一步调成β(0.6,0.2,0.2)会出现什么情况按比例结构推算MG1节约额接近3900元MG2、MG3各只有1300元。MG2的独立成本是14200元联盟物理成本11300元若额外付出一笔交易费用最终省了1300元理论上还是正的但安全裕度已经很小。实际运行中只要出现一次意外偏差比如光伏预测误差达到5%这1300元可能直接被吞掉MG2就会认为联盟没有意义。所以权重的标定绝不是强势方多拿这么简单必须给每个成员留出足够的节约裕量。我实际操作时有个经验权重标定完成后先做一个最坏场景校验——把光伏出力下调10%、负荷上调10%重新核算各微网节约额看是否仍全部为正。如果有成员发生负收益就说明权重方案太激进需要谈判调整。另一个经验是权重定期校正。储能老化、光伏增容、负荷结构变化都会改变各成员的实际贡献能力权重如果一年不更新第二年分账就会失真。建议每季度跑一次贡献评估把储能实际放电量、新能源富余输送电量、柔性负荷调节量拉出来统计按统计结果微调β_i保持权重跟着贡献走。6. 落地到配电网工程时我踩过的几个坑6.1 日前计划与日内控制的衔接问题很多人跑完NBS模型拿着结果就想直接当成实时控制下发。这是不对的。非对称纳什谈判的电能共享方案本质上是日前或日内滚动的计划层工具计算出的是未来24小时或4小时每个微网的联络线交换功率计划和结算方案。到了实时运行那一步负荷和光伏都在波动联络线实际功率必然偏离计划值需要本地EMS的实时控制逻辑去跟随。工程上我建议把ADMM收敛后的联络线计划当作协议曲线实时控制目标就是跟踪协议曲线偏差部分单独计为不平衡电量。不平衡电量的结算价格要在多微网合作协议里提前写清楚。常见做法是偏差在允许死区比如±5%内按内部结算价平账超出死区部分按实时现货价或惩罚电价结算。没有这个机制理论分账和实际账单永远对不上。6.2 通信失败与迭代不收敛的兜底策略ADMM再轻量也依赖微网和协调层之间的通信。现场总会出现交换机故障、网线松动、EMS宕机的情况。如果某微网在某一轮迭代迟迟没有上报协调功率协调层不能一直在那儿等。我踩过的坑是第一次试验时某微网通信中断了协调层还在继续更新乘子结果其他微网全部跟着发散最后整个优化任务超时。后来改成超时阈值机制——协调层等待超过30秒收不到某微网的联络线功率就广播一条本次优化终止的消息所有微网自动切换回独立运行模式。等到通信恢复后以当前独立运行方案作为新的破裂点重新启动NBS迭代不要尝试接着之前的乘子继续算。重新初始化虽然浪费一点时间但能避免乘子历史信息被污染导致的发散风险。6.3 网络损耗和电压约束从铜板假设回到真实电网多微网系统在物理上往往不是孤岛而是通过公共配电网的若干馈线连接。论文里常假设微网之间是理想铜线连接但实际电能从MG1送到MG2可能要经过三段馈线、两台变压器线损和压降都不容忽视。工程上建议分两步修正一是在第一阶段功率平衡约束中加入等效传输效率先让调度计划在宏观上有功平衡二是做完优化后用配电网潮流模型做一次校验确认各节点电压在合理范围。如果共享计划导致某段馈线末端电压越限要么削减联络线功率上限要么把部分无功补偿投入计划加进去。最稳妥的做法是在第一阶段优化时直接采用线性化的DistFlow潮流约束把电压幅值约束显式建模除非你所在的项目配电网拓扑非常弱。另外联络线容量不要按额定值直接卡上限。要考虑N-1校核和运行冗余通常建议预留10%~15%的容量余量。说白了不能为了追求优化结果漂亮就让联络线贴着热稳定极限跑现场调度人员不会同意的。再补充一个关于无功的细节海外文献里很多多微网共享模型结算的是综合电能有功无功但国内配网计量和交易习惯通常只结算有功无功由本地无功补偿装置就地平衡。既然市场结算只认有功建议NBS模型里的交易变量也只建有功功率无功部分不要在NBS框架内处理否则会引入不必要的维度和解释难度。这套方案从学术模型走到实际多微网项目路径是清晰的。非对称纳什谈判真正解决的问题不是算出最优功率流而是在多主体利益冲突面前给了一个可解释、可协商、可验证的分配规则。我第一次做试点时强烈建议先用对称权重跑一遍让每个成员看到自己分到的节约额再按实际贡献调整成非对称权重并且把每一版权重的分配结果公示。当大家发现权重跟着贡献走、节约额跟着权重走的时候谈判就不再是吵架而是变成一个可量化的机制设计问题。这也是我觉得这个方法最有价值的点。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。