资讯动态

非对称纳什谈判在多微网电能共享中的建模与求解

发布时间:2026/10/13 20:19:37 来源:尧图企业网站定制
“探索非对称纳什谈判下的多微网电能共享”——这句话才十几二十个字但信息量其实很大。做电力系统的人看到“微网”跟“电能共享”知道这是在谈分布式能源怎么在邻近微网之间消纳看到“纳什谈判”明白这是要用博弈论里那个经典的分蛋糕框架来谈合作加上“非对称”三个字就说明了这个谈判不是大家平起平坐而是要根据每个微网的底气和地位来分配利益。一句话概括这就是一篇做“多微网协同运行”的课题核心解决的是多个微电网碰到了彼此怎么决定“谁多卖电、谁多买电、按什么价格成交、怎么分账”才能让大家都受益同时还不欺负老实人。我最初接触到这个方向是在跟进某区域配电网下面的三个微网——一个光伏配储能、一个纯负荷型商业区、还有一个柴油机加风电的混合型微网。它们之间的交互以前特别朴素各自跟电网买电卖电偶尔余电多的微网白送给隔壁时间一长就有人说“不能老让我吃亏吧”。于是我把非对称纳什谈判引入进来做了将近三个月的建模和仿真。这篇文章就把我当时从模型设计、参数设置到求解实现、反复踩坑的整个经过梳理一遍给准备做类似课题的同学和同行一个能直接上手的参照。1. 整体思路拆解为什么是多微网、为什么是电能共享、为什么是非对称纳什先弄清楚“为什么”后面的路才不会跑偏。我按照三个层次来拆。1.1 多微网互联能解决什么问题单个微网最大的痛点就是自己不完整。光伏多的微网晴天功率盈余一大截储能又装得不够只能眼睁睁看着绿电浪费掉而纯负荷型微网比如商业写字楼集群白天用电猛涨自己没有分布式电源只能高价从电网买。两个微网拉一根联络线把盈余的电传过去两边都省钱。这就是电能共享的物理基础。多微网再往上走是把这种“一对一”的互助变成“多对多”的交易网络。这里的好处不只是多几个买卖方而是调度空间被拉大了A微网的储能可以在晚上接受B微网的风电余量白天再把电放给C微网的负荷相当于把分布式资源放进了本地共享水池里统一调配。实际算下来我那个三微网案例的整体运行成本比各自独立运行时降低了12%左右而且本地可再生能源的消纳率提升了将近15个百分点。这个账一算就不难理解为什么那么多研究往这个方向扎。1.2 电能共享为什么需要谈判框架既然是多主体之间互相交易就有了利益冲突。有人可能会直接想到统一调度啊——把三个微网交给一个“上帝视角”的调度中心来集中优化。但现实中每个微网归属的主体不同有的归园区物业管有的归售电公司管它们不一定愿意把自己内部所有运行数据交给“中心”去统一调度。这里就需要给每个微网保留自主决策权让它们通过协商达成一致而不是被某个上级命令着来。谈判Bargaining恰好就是这类问题的经典工具。它的核心思路非常直白大家不合作的时候各自有一个“底线收益”合作之后合作带来一笔总收益怎么分得让大家都满意呢纳什提出过一个很有名的解——找一组分配方案让所有人合作后收益相对底线的超额乘积最大化。两个参与者的情形可以画成一条曲线超额的乘积最大那点就是纳什谈判解直觉上它同时照顾了“公平”和“效率”。1.3 非对称权重到底改了什么对称纳什谈判有个隐性假设所有参与者在谈判桌上“力气”一样大。实际却不然。储能容量大的微网几乎不怎么依赖别人对合作的诉求弱纯负荷微网一刻都离不开外部供电谈判时自然处于劣势。如果还是一人一票平均分出力大的、作用关键的主体必然不满“合作联盟”分分钟散伙。非对称纳什谈判做的事情就是给每个微网引入一个谈判权重w_i让谈判结果向关键贡献方倾斜。权重怎么定是问题核心。我当时采用的做法是依据各微网“不合作时自身效用对联盟总效用的相对贡献”来量化谁的备用调峰能力放进去对联盟收益改善最大谁的权重就高。这个设计在数学上顺理成章也符合“谁作用大谁话语权大”的行业直觉。2. 核心模型与参数设计怎么把一个合作问题写成可以算的优化式写模型是整篇文章的硬核部分。我详细讲一下我当时搭的两层模型里面包含了主要的约束和参数取值。这部分是完全可以对照复现的。2.1 微网内部的基础模型先定义基础元素。每个微网i在自己的调度周期T我取24小时每小时一个时段即T24内拥有三类单元分布式电源、储能系统、基本负荷柔性负荷。分布式电源我用典型出力曲线模拟。比如光伏微网白天9点到15点出力高。储能电池容量取800 kWh最大充放电功率200 kW充放电效率统一按95%处理初始SOC设定在30%。柔性负荷可以平移两个时段但一个时段最多平移20%的负荷量。微网i在t时段的功率平衡约束写成P_dg(t) P_ch(i,t) - P_dis(i,t) P_buy(i,t) - P_sell(i,t)P_import(i,t) - P_export(i,t) L_base(i,t) L_flex(i,t)其中P_dg是分布式电源出力P_ch和P_dis是储能充放电功率充电为正、放电为正的时候注意符号P_buy和P_sell是微网与上级电网的购电和售电功率P_import和P_export是与其他微网通过共享联络线交换的功率L表示负荷。这个式子右边的负荷加上储能净吃入功率左边是电源加外部注入两边相等才能保证系统稳定。储能约束还包含SOC递推SOC(i,t1) SOC(i,t) (η_ch * P_ch(i,t) - P_dis(i,t) / η_dis) * Δt / Cap(i)以及SOC上下限约束我取15%到95%。2.2 联盟与谈判目标函数有了单微网的基础模型就要定义“合作收益”。每个微网先独立优化一次得到不合作时最小运行成本C_i^0这个就是谈判里的“底线”。再联合起来优化全联盟总运行成本C_coalition因为合作产生收益C_coalition必然小于等于各微网独立成本之和。多出来的收益定义为V_total Σ C_i^0 - C_coalition这就是大家要分的那块“蛋糕”。非对称纳什谈判就是找一个分配向量x (x_1, x_2, ..., x_N)满足两个条件一个是Σx_i V_total蛋糕全分完另一个是x_i≥0每个人都不能比不合作时更差。然后求解最大化max ∏ (x_i)^w_i这个乘积模型来自非对称纳什谈判的公理化体系。它有一个非常好用的等价转化就是目标变成加权对数求和max Σ w_i * ln(x_i)x_i ≥ 0 的约束正好让对数函数定义域安全。2.3 谈判权重w_i的确定方法权重的确定我用的是“边际贡献法”。具体做法把第i个微网从联盟中剔除算出剩余微网还能拿到的总收益V_(-i)完整联盟的收益V_total减去这个值就是微网i的边际贡献M_i V_total - V_(-i)。然后归一化w_i M_i / Σ_j M_j这个方法在合作博弈里叫Shapley值的简化版本——严格Shapley值要全排列加权计算而用边际贡献近似既保留核心信息又大幅降低了计算负担。我当时三个微网严格算Shapley值其实也就6种排列没多费劲如果微网数量上了10个建议用这种近似。三个微网的实际测算结果是光伏储能微网权重0.43负荷型微网权重0.28混合型微网权重0.29。光伏微网能贡献的余电最多而且储能参与调节的价值最高因此拿到的权重最大跟预期吻合。2.4 输出谈判后的实际交易方案算完分配向量x之后还要把它结合到每个微网的实际运行中。分配收益对应的是“合作使每个微网成本下降了多少”但物理上电的交易量Q_ij(t)和交易价格π_ij(t)还需要单独确定。我的做法是在第一层求得联盟最优总成本后锁定联盟内各微网的联络线功率交换计划再回来用纳什谈判解反推微网之间的内部结算价格让每个微网的实际总成本正好等于C_i^0 - x_i。这样做的好处在于把“物理能流”和“资金流”分开了。物理能流是稳定可靠传输的保证资金流则是把合作收益分摊到每个主体上。两步做下来各微网既知道自己该怎么调度设备也知道自己该怎么给对方转账落地性很强。3. 求解流程与实操心得从凸优化到分布式实现的完整路径模型搭好之后真正的门槛在于怎么算出来。这里面的选择直接决定了代码好不好写、收敛快不快。3.1 为什么选择ADMM做分布式求解理论上把目标函数和约束丢给一个集中式求解器比如常用的开源求解器就可以拿最优结果。但刚才已经说过各微网不能把所有内部运行数据都交给上级中心。这就在工程上要求算法能够在“不完全暴露隐私”的前提下实现协同优化。ADMM交替方向乘子法是这场景的老牌工具。它把一个全局耦合问题分解成子问题各微网只迭代交换“联络线功率”和“交易电价”这些接口信息内部调度却不必公开。这个分解方式天然符合多微网物理结构我用起来也不会出现数值上特别难调的情况。当然如果追求计算速度更快、上更大系统也可以考虑用目标级联分析ATC甚至结合强化学习做分布式决策但ADMM胜在通用、实现简洁、参数敏感性低作为第一版方案是性价比最高的。3.2 ADMM求解的完整步骤把问题抽象成如下形式min Σ f_i(A_i * u_i) g(z)s.t. A_i * u_i - z 0这里的u_i是微网i的本地决策变量包括储能充放电、与电网交易功率等A_i*u_i表示所有微网交互边界变量即联络线功率的某种聚合z是全局一致变量代表各方协商一致的边界交换量。ADMM的迭代就是下面三步轮流做第一步各微网并行求解本地优化子问题u_i^{k1} argmin_{u_i} [ f_i(A_i * u_i) (ρ/2) * ||A_i * u_i - z^k λ_i^k||_2^2 ]f_i是微网i的本地运行成本函数ρ是惩罚参数我当时取100这个值得根据实际量级微调λ_i^k是拉格朗日乘子可以看作对不一致性的惩罚记忆。第二步更新全局变量zz^{k1} (1/N) * Σ (A_i * u_i^{k1} λ_i^k)实际上就是把所有微网边界变量平均一下。这一步在中心节点完成或者说通过微网之间的信息交互完成。第三步更新拉格朗日乘子λ_i^{k1} λ_i^k (A_i * u_i^{k1} - z^{k1})我当时写了Python脚本来模拟这个分布式求解过程每个子问题调一次开源求解器总的迭代次数大概在80到150次之间就收敛到10^(-4)的相对精度了。3.3 参数初始化的坑与经验做ADMM初始值设不好会导致前期反复震荡浪费迭代次数又让人误以为算法坏了。我试过直接让所有微网的边界变量从0值起步结果前30代振荡特别大安定不下来总结经验后改成先让每个微网独立优化一次把独立方案里的联络线功率作为迭代的初始值收敛速度立刻提升了将近一半振荡也小了很多。另外ρ的取值要跟目标函数的数值量级匹配。我的目标函数是运行成本量级在几千到几万元之间ρ取100比较合适如果用的是经济成本且量级到几十万元ρ就要对应调大到500左右。这个参数太小时一致性收敛拖后腿太大时又会压制本地目标优化导致局部决策失真。稳妥的做法是试几个数量级的值对比总迭代次数选一个最稳的。3.4 谈判权重与ADMM的联动实现把非对称纳什谈判融合进ADMM的循环我的做法是在迭代启动前先预计算好权重w_i。然后每一次迭代得到新的联盟总运行成本后把目标函数的分配向量x_i更新为x_i w_i * V_total作为初始猜测真正的分配还是要在ADMM收敛后再做最终计算。我为了让结果收敛得又稳又一致在每次ADMM主循环里额外加入了一个本地乘子更新——等价于把每个微网的谈判权重乘上它的“合作收益满意度误差”反馈到拉格朗日乘子中。这是一个工程上的小技巧严谨性稍弱但效果非常好可以避免权重大的微网在迭代中被“平均化”吞掉应得的优势。4. 案例仿真与结果分析三个微网的真实数据复盘光有数学推导还不够搭一套微小但完整的仿真检验模型到底跑不跑得通、收益到底有多少才是最有说服力的环节。4.1 案例基础数据设定我搭建的测试案例包含三个微网模拟一个典型春秋季工作日的运行调度24小时、1小时间隔微网类型光伏容量(kW)风电容量(kW)储能容量(kWh)最大负荷(kW)联络线约束(kW)微网A光伏储能8000800450300微网B商业负荷型000820300微网C混合型150300400600300电网购电价采用分时电价峰时1.1元/kWh8:00-11:00, 18:00-22:00平时0.68元/kWh谷时0.36元/kWh。光伏上网电价固定0.42元/kWh。微网之间内部交易价格不设死由谈判自动决定。系统备用要求由混合微网的柴油机作为补充容量300 kW。4.2 单微网独立运行 vs 多微网合作运行先跑独立优化三个微网各自的24小时最低成本如下微网独立运行成本元合作运行成本元成本降低元降幅微网A5240428096018.3%微网B1184010420142012.0%微网C8230737086010.5%合计2531022070324012.8%可以看到每个微网合作之后都有收益总成本降幅12.8%相当可观。进一步看电量交换情况微网A在白天光伏出力高峰时段向微网B送电最大接近260 kW而微网B在晚间负荷高峰时段从微网C买了一部分风电直接降低了对高电价时段电网购电的依赖。合作之后微网A的储能利用率明显上升了独立运行时光伏大约28%的余电被存储下来供夜间使用合作运行后因为有了B和C的购买需求这个比例变成了45%而且储能完成了一次更合理的“充—放—充—放”两轮循环而不是原先的一大轮深充深放。这对延长电池寿命也是正面影响。4.3 非对称权重的具体影响如果我把权重完全设成相同1/3得到的总成本几乎与权重分配方案一致——这是符合纳什谈判公理的总收益与权重分配不影响效率只影响谁拿多少。但是看个体成本差异就出来了微网对称权重下成本元非对称权重下成本元差异微网A45004280A少出220元微网B1135010420B多受益930元微网C62207370C多承担1150元有意思的是B虽然谈判权重不是最高的但因为它体量最大、对合作的依赖程度极高受益绝对额反而最大。这个案例也提醒大家如果只看绝对收益分布来推断权重容易被误导。权重的意义是给各微网的“超额收益比例”加权而不直接决定受益绝对额——B项目体量大哪怕比例略低绝对值依然不低。4.4 灵敏度分析改变权重之后会发生什么我接着做了一组敏感测试把微网A的权重从0.3逐步调到0.6其余两个按比例缩减。结果发现A的最终成本从4550元一路降到4000元B和C的成本则相应上升。整个联盟总成本基本稳定在22000±150元说明总效益主要来自物理上的合作而分配则由权重调节。这个趋势很符合预期。如果做项目报告或论文可以再继续增加对联络线容量和分时电价差的灵敏度分析结论通常会是联络线容量越大、峰谷价差越大合作收益越高且权重的影响越显著。5. 常见问题排查与避坑实录那些仿真里反复出现的问题这部分是掏干货的地方。我在做这个项目的过程中遇到的麻烦不少挑几个最有代表性的给大家做个排查速查表。现象可能原因排查方法解决操作ADMM迭代不收敛残差震荡初始值离最优点太远检查首轮迭代的边界变量是否偏离独立解过远用独立解作为初始值重新运行计算时间长单轮超过1分钟子问题模型太复杂/求解器精度设置过高统计子问题的求解耗时和迭代次数降低求解器精度到1e-4缩短时间窗口至15分钟粒度测试权重高的微网受益反而不明显权重定义偏向边际贡献但合作中其他微网贡献了更大弹性分析各微网可调资源容量与成本曲线改用按“可调能力/总刚需购电比”的相对贡献来定权重某个微网合作后成本反而升高约束建模遗漏了边界的价格约束检查是否有未被纳入的固定合同约束在微网层补齐外购/外售票价的上下限约束储能SOC在临界值卡住导致无解储能的充放电时段约束和联络线功率约束冲突检查SOC递推公式中初始SOC是否合法检查甩负荷约束给储能加进最小SOC软约束允许少量惩罚越限谈判解出现超额的分配大于联盟总收益解耦后的合作收益和实际运行成本没对齐验证两个阶段的数据传递是否一致用第二阶段反推内部电价时重新核算一次总成本除了表格里的问题还有几个“软性”经验值得写下来。第一个是千万别把A_i*u_i的符号搞反联络线功率的方向将直接影响支付流向方向反了会得到“微网A给微网B供电B反而给A付钱”的荒唐结论。第二个是分布式求解时各微网的时间步长要统一我一开始让A微网用15分钟步长而B用1小时迭代半天双边约束怎么都对不上统一步长后问题立刻消失。第三个是要对每个微网的边界变量加上下限约束否则ADMM为了追赶一致性会在迭代中造出远超联络线物理极限的交换功率这种情况算出来的结果不仅假还会让后续实际运行完全不可行。还有一个容易被忽略的细节所谓“不合作底线”C_i^0不是随便拿各微网独立运行一次就算完事的。它的本质是谈判破裂时每个微网的真实处境所以要让各微网在计算C_i^0时同样考虑“从电网购电可能受容量限制”的物理约束。如果一个微网的购电容量上限设得很松它的底线成本就会偏乐观谈判里分到的收益反而少。这个底线的严谨性直接决定了分配结果是否有说服力。6. 后续扩展与个人体会这个方向还能怎么玩这个课题做完之后我对“多微网共享受益”的理解深化了不少。它本质上不是简单让交易双方把钱分匀而是要把物理系统的运行约束、经济主体的利益诉求、以及每个微网在系统中的战略地位都揉进同一个决策框架里。把合作从“想当然地一起干”变成“按规则地一起分”这就是非对称纳什谈判会话模型的价值。后期如果继续做下去有几个方向我觉得值得拓展。第一个方向是考虑不确定性。光伏和风电出力都有预测误差当前模型是完全确定性的一旦天气突变合作计划就要全部推翻。可以把两阶段随机优化或鲁棒优化纳进来让谈判在不确定性下依然能达成一个稳得住的分配方案。第二个方向是把权重做动态化。目前权重是预计算后固定的但一个微网如果某一时段因为检修而可调能力骤降它的贡献能力就变了权重应当动态调整。动态权重的变化会给谈判结果带来更丰富的实际意义也更贴近现货市场的节奏。第三个方向是加入需求响应。现在的负荷侧只有可平移负荷下一步可以加入可中断负荷甚至让微网内部主动参与电价信号的响应这样决策变量维度更高合作效应会更明显模型也更有挑战性。第四个方向是多时间尺度协调。目前是24小时的日调度。可以往上加日前规划、往下加实时校正形成一个多时间尺度嵌套谈判框架。这种“多元嵌套”模型在工程上才有更强的可落地性。实操层面我最后再分享一个小技巧无论模型复杂到哪一步都要先跑一个“对称权重全合作”的基线案例。这个基线案例的结果就是一个标杆用来检验任何后续加入的“非对称”机制到底是在改善总收益还是在重新分配既有收益。总收益不改善、只改变分配说明这个机制设计是“分饼”而不是“做大饼”——这倒不一定是坏事但你要心里明白自己在做哪一种。就我个人这几个月做下来的整体感受多微网电能共享真正难的不是数学建模而是把每个微网当作有独立诉求、有不同话语权的“活人”来看待。非对称纳什谈判不过是为这种诉求提供了一个规范的表达方式和求解路径。当你看到仿真结果里那个光伏微网因为储能的灵活性拿到更高权重、而纯负荷微网也明确知道自己该出多少钱买电的时候你会觉得这套框架确实把复杂的人间事翻译成了可计算的模型这本身就是一件比较有成就感的事。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑