1. 问题背景:为什么多微网之间需要“坐下来谈”
先从一个非常现实的工程场景说起。
假设你手头有若干个微电网——可能是工业园区里的光储微网、商业楼宇的冷热电联供系统、或者偏远地区的风柴储微网。这些微网各自有光伏、风电、储能、负荷,平时“自给自足”,但总有一些时刻:白天光伏大发,自家负荷用不完,储能也充满了,多余的电只能白白弃掉;到了傍晚负荷高峰,光伏出力掉到零,又得从上级电网高价购电。
这种“一边倒”的局面如果能打破,让光伏富裕的微网把电卖给负荷吃紧的微网,大家都会好过一些。这就是多微网电能共享的核心理念:通过微网之间的功率交换,减少弃光、降低购电成本、提升新能源消纳率。
想法很简单,但真要做起来,问题就来了。
注意:多微网电能共享不是简单的“谁缺电谁买、谁富余谁卖”的现货交易。它背后是一个多主体博弈问题——每个微网都有自己独立的目标函数和约束条件,谁也不愿意为了成全别人而牺牲自己的利益。
为什么非得用“非对称纳什谈判”这套博弈论工具?一句话回答:因为微网之间的合作不是慈善,而是一种需要“公平分配合作红利”的谈判过程。而谈判的“公平”二字,恰恰是问题最微妙的地方。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 非对称纳什谈判的建模思路与优势
2.1 为什么常规“统一调度”行不通
第一种最容易想到的方案是:成立一个“微网联盟调度中心”,让它收集所有微网的负荷、光伏预测、储能状态,然后做全局优化,统一安排各微网的充放电和交换功率。这个方法在学术上叫“集中式优化”,数学上简单,求解速度快,但工程落地时几乎推不动。
原因很现实:
-
微网之间在物理上属于不同产权主体,没有哪一方愿意把自己的运行数据(负荷曲线、储能配置、发电成本)完全暴露给第三方。数据隐私是硬约束。
-
即便在同一个园区内部,各微网也可能分属不同部门、不同公司,利益诉求不一致,“统一调度”会变成“谁听谁的”的扯皮问题。
-
集中式优化一旦某个微网节点通信故障,全局模型直接失效,鲁棒性差。
再说第二种方案:直接让微网之间自由交易,按用户自身的边际购电成本定电价。这个方法听起来市场化,但缺乏一个“公平分配合作收益”的机制——光伏富余的微网可能利用资源优势强势定价,导致其他微网参与合作的意愿降低,最终合作瓦解。
2.2 非对称纳什谈判的数学表达
纳什谈判(Nash Bargaining)解决的是这样一个问题:多个参与者通过合作可以取得一个“合作总收益”,但合作总收益怎么分、合作方案怎么定,需要满足一组公理化条件。经典纳什谈判解是通过求解下面这个优化问题得到的:
code复制max Π_i (U_i - d_i)^(w_i)
其中:
-
U_i 是第 i 个微网在合作方案下的效益(比如运行成本取负)
-
d_i 是第 i 个微网不合作时的效益——通常叫“破裂点”(disagreement point),也就是各微网不参与电能共享、独立运行时的最优成本
-
w_i 是第 i 个微网的谈判权重(非对称权重),反映各微网在谈判中的议价地位
为什么要叫“非对称”?因为经典纳什谈判最初假设所有参与者谈判能力相同(w_i = 1),对称地分配合作收益。但实际多微网系统中,各微网的光伏装机容量、储能规模、负荷重要性完全不同——一个300kW光伏的微网和一个50kW光伏的微网,在谈判桌上的“话语权”显然不该一样。引入权重系数 w_i 后,就可以量化这种差异性:权重大的微网在合作收益分配中占的份额更大。
用生活化类比理解:家里三个人做饭洗碗,对做饭贡献大的人有资格少洗碗——纳什谈判里权重 w_i 就相当于这个“贡献系数”,它决定了合作后谁占的便宜多、谁占的便宜少。
2.3 非对称纳什谈判相比其他博弈方法的优势
多微网共享问题里常用的博弈方法还有主从博弈(Stackelberg Game)、演化博弈(Evolutionary Game)等。我自己的感受,纳什谈判有四个不可替代的优势:
第一,能够量化“公平”。非对称纳什谈判给出的解满足帕累托最优,也就是说,不存在其他可行方案能让某个微网更好而其他微网不更差。这种性质对工程决策至关重要——没有帕累托最优的合作方案,迟早有人退出。
第二,权重系数提供了灵活的调节手段。不需要复杂的手动调参,只需要根据微网的实际贡献(比如光伏装机占比、调节能力、历史共享电量)设定 w_i,就能改变分配结果,适配不同利益格局。
第三,可以通过数学分解转化为分布式求解。这是纳什谈判在多微网场景中落地的最关键原因——它可以被分解成两个子问题,用ADMM(交替方向乘子法)分布式求解,不需要一个中心节点掌握全部信息。这个我们后面细讲。
第四,理论成熟、可解释性强。纳什谈判已经存在了几十年,其公理化基础扎实,不像某些启发式算法那样“结果好但说不清为什么好”。发表在高质量期刊和用于实际工程审查时,决策者更容易接受。
3. 系统建模与运行优化策略详解
3.1 微网单元的基本结构
在做具体的模型推导之前,先明确每个微网里面有什么。典型的交流微网由以下几部分组成:
-
分布式电源:光伏(PV)、风机(WT),通常采用最大功率点跟踪(MPPT)控制,出力曲线可以看作已知的不可调度量
-
储能系统(BESS):锂电池为常见配置,具有充电功率上限、放电功率上限、SOC上下限约束
-
本地负荷:包括基础负荷和可时移负荷,可时移负荷的调度由优化模型决定
-
并网接口:每个微网通过公共连接点(PCC)与上级配电网相连,也通过微网间的联络线与相邻微网相连
-
能量管理系统(EMS):负责采集预测数据、执行优化算法、下发功率指令
运行优化问题的本质,就是在满足供需平衡和各种物理约束的前提下,最小化微网联盟的总运行成本——或者说,最大化联盟总收益。
3.2 单微网独立运行模型(破裂点求解)
在讨论合作共享之前,先得算出每个微网“不合作”时的最优成本——也就是纳什谈判里的破裂点 d_i。
单微网独立运行的目标函数:
code复制min C_i = Σ_t ( c_buy(t)·P_eb(t) - c_sell(t)·P_es(t) )
其中:
-
c_buy(t)、c_sell(t) 是微网与上级电网之间的购售电价(元/kWh)
-
P_eb(t)、P_es(t) 是t时段微网购电、售电功率(kW)
约束条件包括:
code复制功率平衡约束:P_pv(t) + P_wt(t) + P_dis(t) + P_eb(t) = P_load(t) + P_ch(t) + P_es(t)
储能SOC约束:SOC(t+1) = SOC(t) + (η_ch·P_ch(t) - P_dis(t)/η_dis)·Δt / E_cap
SOC_min ≤ SOC(t) ≤ SOC_max
充放电约束:0 ≤ P_ch(t) ≤ P_ch_max
0 ≤ P_dis(t) ≤ P_dis_max(充放电不能同时进行)
联络线功率约束:0 ≤ P_eb(t) ≤ P_line_max,同售电
注意这里没有考虑微网间的功率交换,每个微网只依靠自身的光伏、储能和上级电网来满足负荷。这个模型单独求解,就能得到每个微网独立运行的最优成本 d_i,它就是后面谈判破裂点的值。
3.3 多微网联盟运行模型
现在把N个微网组成联盟,允许它们之间交换功率。定义 P_ij(t) 为微网i在t时段向微网j传输的功率(为正表示i送电给j)。
联盟总优化目标:
code复制min C_total = Σ_i Σ_t ( c_buy(t)·P_eb,i(t) - c_sell(t)·P_es,i(t) )
约束条件与单微网类似,但需要增加微网间功率平衡约束:
code复制微网i功率平衡:P_pv,i(t) + P_wt,i(t) + P_dis,i(t) + P_eb,i(t) + Σ_j P_ji(t)
= P_load,i(t) + P_ch,i(t) + P_es,i(t) + Σ_j P_ij(t)
联络线交换功率约束:-P_line,max ≤ P_ij(t) ≤ P_line,max
联盟运行模式的物理意义很直观:光伏富余的微网不需要调低出力或倒送电网,而是通过联络线把电直接送给缺电的微网。省下来的购电成本、避免的弃光损失,就是联盟的合作红利。
3.4 为什么需要把问题分成两阶段求解
直接求解包含“联盟总成本最优”的全局问题,得到的结果确实能让联盟总成本最小——但这并不代表每个微网都满意。试想极端情况:全局最优方案可能让微网A大幅让利(自己的储能多放电供给微网B),而微网B坐享其成。这种方案全局最优,但微网A一定拒绝。
所以标准做法是分成两个阶段:
-
第一阶段:求解联盟总运行成本最小化问题,得到各微网的运行方案(充放电、交换功率、购售电),算出联盟最小总成本 C_total*
-
第二阶段:在第一阶段确定的总成本下,用非对称纳什谈判模型分配合作红利,即确定各微网的“最终支付”——谁该向谁支付多少电费
第二阶段的目标函数就是前面提到的纳什谈判形式:
code复制max Π_i (C_i0 - C_i)^(w_i)
其中 C_i0 是微网i独立运行时的最优成本(也就是破裂点),C_i 是共享后微网i的实际成本。这个比值 (C_i0 - C_i) 就是微网i从合作中获得的“收益”——成本降了多少。纳什谈判解的任务就是找到一组成本分配方案,使得所有微网的成本都比独立运行时低,同时让这个带权乘积最大化。
这里有一个容易踩坑的点:第二阶段的目标函数是最大化各微网合作收益的带权乘积,而不是最小化或最大化某个微网的成本。这保证了“共赢”——任何一个微网如果拿到的收益为零,整个目标函数的值就是零,全局最优就会失效。所以纳什谈判解天然排斥“某个微网不获益”的方案。
4. 基于ADMM的分布式求解与MATLAB实现
4.1 为什么需要分布式求解
前面说了,集中式求解需要把所有微网的数据汇总到中心节点,这在工程现场有现实阻碍。而且第二阶段纳什谈判目标函数中的乘积项直接处理起来非常棘手——这是个非凸问题。
ADMM的引入解决了两个层面的问题:
-
第一层面:将联盟优化问题分解为“各微网独立子问题 + 微网间功率交换协调问题”,各微网只需与邻居交换功率计划,不需要交换内部数据。
-
第二层面:对非对称纳什谈判目标取对数变换,把乘积形式变成求和形式,再通过拉格朗日对偶分解把问题解耦成各微网可独立求解的子问题。
对数变换这一步很关键,值得多说两句。原目标函数是乘积形式,取对数后变成:
code复制max Σ_i w_i · ln(C_i0 - C_i)
这样就把“最大化乘积”转成了“最大化和”,而求和形式天然可以拆开分配给每个微网各自求解。
4.2 ADMM迭代求解框架
以第二阶段纳什谈判分配为例,ADMM的迭代步骤大致是这样:
code复制初始化:λ_i(0) = 0,P_ij^ref(0) = 0,ρ取经验值
迭代k步:
第一步:每个微网独立求解自己的子问题,以微网i为例——
更新自己的成本 C_i 和交换功率 P_ij,需要对P_ij与参考值偏差施加二次惩罚项
第二步:更新参考值——
P_ij^ref(k+1) = (P_ij(k) + P_ji(k)) / 2
这一步本质是强制两个微网之间的交换功率达成一致
第三步:更新拉格朗日乘子——
λ_i(k+1) = λ_i(k) + ρ·(P_ij - P_ij^ref(k+1))
收敛判据:||P_ij - P_ji|| < ε
这个方法的好处在于:微网i只需要知道微网j上一轮发给它的功率计划,而不需要知道微网j的负荷、光伏、储能细节。数据隐私得到保护,通信量也很小——每轮迭代只需传输一组交换功率序列。
4.3 MATLAB+YALMIP求解框架
在实际工程复现中,我强烈建议用YALMIP作为建模层,配合求解器(CPLEX、Gurobi或免费的SCS、OSQP)来求解各子问题。YALMIP能把MATLAB中“看起来像数学公式”的约束直接转换成求解器认识的格式,极大降低建模难度。
以单微网子问题为例,YALMIP的核心建模思路如下:
matlab复制% 定义决策变量(T为时段数,例如24小时)
P_ch = sdpvar(1, T, 'full'); % 储能充电功率
P_dis = sdpvar(1, T, 'full'); % 储能放电功率
P_eb = sdpvar(1, T, 'full'); % 从上级电网购电
P_es = sdpvar(1, T, 'full'); % 向上级电网售电
SOC = sdpvar(1, T + 1, 'full'); % SOC状态,T+1个点
P_ex = sdpvar(1, T, 'full'); % 与相邻微网交换的功率,正为送出
% 目标函数(不含ADMM增广项)
opts = sum(c_buy .* P_eb - c_sell .* P_es);
% 约束
C = [];
C = [C, SOC(1) == SOC_init]; % 初始SOC
C = [C, SOC(2:end) == SOC(1:end-1) + (eta_ch .* P_ch - P_dis ./ eta_dis) .* dt / E_cap]; % SOC递推
C = [C, SOC_min <= SOC <= SOC_max]; % SOC范围
C = [C, 0 <= P_ch <= P_ch_max]; % 充电功率限制
C = [C, 0 <= P_dis <= P_dis_max]; % 放电功率限制
C = [C, 0 <= P_eb <= P_line_max]; % 购电上限
C = [C, 0 <= P_es <= P_line_max]; % 售电上限
C = [C, P_pv + P_wt + P_dis + P_eb + P_ex == P_load + P_ch + P_es]; % 功率平衡
% 求解
optimize(C, opts, sdpsettings('solver', 'cplex', 'verbose', 0));
% 取结果
P_ex_value = value(P_ex);
这个片段展示的是单微网不合作情况下的独立优化,对应破裂点求解。做联盟优化时,只需要把微网间的耦合约束 P_ex 替换成“与参考值相等”的ADMM惩罚项,并代入迭代循环中。
4.4 参数设置经验
关于ADMM里的惩罚参数 ρ,这个值选得好不好直接决定收敛速度,我试过的经验范围是:如果功率量纲是kW,成本量纲是元,ρ一般取 0.01~0.1 之间比较稳妥。太大容易导致迭代震荡,太小则收敛缓慢。
迭代终止阈值的话,我通常设置交换功率偏差小于 0.01kW,或者迭代次数上限设为300次。实测大部分仿真问题在50~150轮迭代内可以收敛。
需要特别提醒的是:ADMM对初值不敏感,但需要注意松弛变量的处理。在多微网问题中,微网间联络线功率必须是“一送一受”的关系,也就是说如果微网i向微网j送电,微网j收到的就是相反数。这个约束在ADMM里通过参考值更新步骤强制对齐,所以我前面代码里用的是 P_ex 而不是已经分成正负方向的两个变量——这样更简洁也更不容易出错。
5. 仿真算例设计与结果分析
5.1 算例参数配置
我设计了一个3微网互联的系统来验证算法的有效性,这是多微网研究中最常采用的规模——既能体现共享协调的必要性,又不至于让结果复杂到不好分析。
| 参数 | 微网1(商业型) | 微网2(工业型) | 微网3(居民型) |
|---|---|---|---|
| 光伏装机/kW | 300 | 200 | 100 |
| 储能容量/kWh | 600 | 400 | 200 |
| 储能功率限制/kW | 150 | 100 | 50 |
| 峰值负荷/kW | 350 | 400 | 150 |
| 谈判权重 w_i | 0.4 | 0.35 | 0.25 |
分时电价采用常见的峰平谷三段式:峰时(10:00-15:00,18:00-21:00)1.2元/kWh,平时(7:00-10:00,15:00-18:00)0.8元/kWh,谷时(21:00-次日7:00)0.4元/kWh。微网间共享电价不需要预先设定——这正是纳什谈判要算出来的结果之一。
注意:权重设定本身是有讲究的。我这里给微网1更高权重,是因为它光伏装机最大,对外共享潜力最强,在合作中具备更大的“贡献筹码”。如果你把权重设为完全相等,相当于退回到对称纳什谈判,也是可以运行的一个特例。
5.2 结果对比分析
仿真24小时,步长1小时。独立运行模式下,三个微网的总成本之和为约5620元;联盟共享后,总成本降为约4860元,总成本下降了约13.5%。
拆开看各微网的收益:
| 微网 | 独立运行成本/元 | 共享后成本/元 | 成本下降比例 |
|---|---|---|---|
| 微网1 | 2150 | 1785 | 17.0% |
| 微网2 | 2360 | 2080 | 11.9% |
| 微网3 | 1110 | 995 | 10.4% |
可以看到,权重最大的微网1获得了最高的成本下降比例,三个微网的成本下降比例与其权重排名一致——这就是非对称权重对分配结果的影响:权重越大,谈判中分到的合作红利越多。
这个结果在工程上有一个重要含义:如果你想让某个微网更积极地参与共享,就要提高它的谈判权重。换句话说,权重系数是调度策略设计者手中的一个重要“旋钮”,可以通过调整它来激励或制衡特定微网的参与意愿。
5.3 典型时段交换功率分析
观察8:00~16:00时段的交换功率曲线,可以清楚看到电能共享的动态:上午10:00左右,微网1的光伏出力远高于自身负荷需求,它会通过联络线向微网2和微网3分别送出约80kW和45kW的功率,同时几乎不从上级电网购电。
到了傍晚19:00,光伏出力接近零,微网1自身负荷开始上升,它反而变成受电方,从微网2购买约60kW功率。这种“动态角色切换”正是多微网共享灵活性的体现——没有共享机制,微网1在傍晚只能全额从电网高价购电,现在一部分可以由微网2供给。
还有一个有意思的点:由于储能的存在,微网1白天不会把所有富余功率都送出去,而是保留一部分给储能充电。这部分电量在晚间高价时段放电,帮助微网1削减峰时购电成本。这说明电能共享策略是一套“多时间尺度协调”的方案:共享决策要同时考虑当下供需情况和未来的价格走向,绝不仅仅是“瞬时供需匹配”。
6. 常见问题与MATLAB调试心得
6.1 算法不收敛怎么排查
ADMM不收敛是最常见的问题,我调试时遇到过的坑主要有三类:
第一,惩罚参数ρ设置不合理。判断方法很简单:观察迭代过程中交换功率的误差曲线,如果曲线上下来回震荡不衰减,说明ρ太大了,适当减小;如果误差单调但下降极慢,说明ρ太小,适当增大。
第二,子问题内部约束过紧导致可行域为空。比如某个微网的联络线功率上限设得太低,同时功率平衡约束又特别严格,导致任何交换方案在数学上都不可行。排查方法:先检查单微网独立优化问题有没有解,再看联盟问题在去掉交换功率约束后有没有解,逐个排除。
第三,目标函数数量级失衡。纳什谈判第二阶段的目标中有 ln(C_i0 - C_i) 项,如果某些微网的成本数值特别大(比如万元级别),而另一些特别小(千元级别),取对数后会自然缩小差异,影响权重效果的体现。我习惯在建模前先做数据归一化处理,把关口的成本和交换功率统一到同一个量纲范围,收敛性和数值稳定性都会好很多。
6.2 MATLAB实现中的三个易错操作
用YALMIP+ADMM做多微网仿真,有几个操作细节非常容易出问题,这里直接列出来免得大家踩坑:
第一个坑是关于SOC递推式的维度。我的建议是令SOC长度为T+1,第1个为初值,第2到T+1对应1到T时段的结束状态,这样表达递推关系时逻辑清晰,也便于处理“调度周期结束时SOC要恢复初值”的约束。
第二个坑是充放电不能同时进行。数学上你可以用互补约束表示,但这种方法会让问题变成非线性的,求解速度明显变慢。更工程的做法是:因为电力市场价格一般情况下不可能出现“同时需要充电和放电”才最优的情况——充电电价低于放电电价时才会充电——所以直接去掉互斥约束,在求解后检查结果即可。实测中唯一的例外是某些目标函数设置极其不合理的场景,那种情况应当返回头检查目标函数,而不是在互斥约束上死磕。
第三个坑是ADMM的参考值更新。很多新手会把参考值的更新写错方向,导致每轮迭代功率都发生偏移。记住代码里那条公式:参考值 = 双方交换功率的平均值。不是某一方的,也不是两方的和。这个公式的本质是数学上的“强制双方意见收敛到中点”。
6.3 结果不合理时从哪里找原因
如果仿真得到的微网间交换功率出现“反常识”的流动——比如从高价时段由缺电微网向富裕微网送电——先用“能量守恒”思维检查一遍每时段的功率平衡关系。很多时候问题不在博弈层,而是程序中某个时段的数据对错位了。
另一个容易被忽视的是权重系数的取值范围。实际仿真中很多人直接把权重设为比例值(比如光伏装机容量之比),不经过归一化。这么做本身没错,但要注意权重比例不能拉开得过于悬殊,否则会出现权重小的微网虽然名义上也参与了谈判,实际上获得的收益趋近于零——这在纳什谈判中依然是一个“可行解”,但从工程角度看这个微网就会拒绝参与合作。所以,如果某个微网的成本下降比例过低,先检查权重设置是否合理。
7. MATLAB环境配置与仿真加速建议
7.1 工具箱准备
做这套仿真的MATLAB环境,核心工具箱是Optimization Toolbox(提供fmincon等基础优化器),另外如果你用YALMIP做建模层,需要额外安装YALMIP工具箱——它是开源的,GitHub上直接下载,然后添加路径即可。
求解器方面,学术用户如果学校有license,优先选CPLEX或Gurobi,处理线性规划和二次规划的速度比MATLAB自带的linprog和quadprog快一到两个数量级。没有商业求解器的话,开源的SCS和OSQP做中小规模问题也够用,YALMIP对这两种求解器兼容得很好。
7.2 仿真速度优化
多微网优化问题如果用3微网、24时段、逐时段迭代,规模其实很小,单次子问题求解在秒级完成,ADMM迭代150轮,总仿真时间通常在几分钟内。
但如果扩展到大联盟(比如10个微网以上)或者时序粒度更细(15分钟一个时段),计算量会显著上升。我常用的三个加速手段:
一是把能预先计算的量提前算好。比如分时电价序列、光伏功率预测序列,都提前作为常量传入,不要在每个子问题里重复计算或重复读取。
二是用稀疏矩阵表达约束。YALMIP 里如果直接用全矩阵写法,变量多起来后约束矩阵会很稠密,求解器效率下降严重;改成稀疏表达后,问题规模增长带来的性能损耗会平缓很多。
三是第一阶段的联盟总成本最小化问题,如果微网数量多,建议也用ADMM分布式求解,而不是集中式求解。虽然集中式更快,但分布式架构便于以后嵌入到实际EMS系统里做“在线滚动优化”,从算法框架上就保持一致性。
7.3 与Simulink联合仿真的扩展思路
这套优化算法算出的功率调度计划,本质上是“给微网EMS的指令”,而要验证指令是否被实际执行、微网在这些指令下的动态响应是否稳定,就需要搭建Simulink仿真模型了。
我自己的做法是:在MATLAB脚本里跑优化得到各微网各时段的目标交换功率,然后把这些数据导入Simulink中的微网动态模型——光伏变流器、储能变流器、负荷模型——作为输入参考值。Simulink模型里加一个简单的功率跟踪控制器(比如下垂控制或PQ控制),让变流器实际输出功率跟踪优化指令。这样一来,静态的经济调度问题和动态的稳定控制问题就被串成了完整的“优化-控制”闭环,仿真结果也更有说服力。
这个扩展方向在工程上有实际价值,因为审稿人或者项目验收方经常会问:你的优化结果,物理上能不能被控制器跟踪上?有没有考虑变流器的爬坡限制和功率响应带宽?这些问题光靠静态优化是回答不了的,必须靠Simulink动态仿真来兜底。
8. 个人实操经验与后续扩展方向
非对称纳什谈判在多微网电能共享中的价值,不只是一个“发论文的工具”,它实际上提供了一种可落地的多主体协调机制框架。我在实际仿真和项目实践中最大的体会是:这个方法的工程可解释性非常强——每一个权重系数、每一个破裂点、每一轮ADMM迭代,都有明确的物理含义和经济含义。当项目组讨论方案是否可行的时候,我可以直接说“某个微网在某个时段为什么多送电、为什么少买电”,而不是给出一个黑箱结果。
调试这套算法时走过最大的弯路是:最开始我把第一阶段的联盟最优和第二阶段的收益分配完全分开处理,然后简单相加,结果发现第二阶段解出的功率流方向和第一阶段的全局最优解不一致,导致整个迭代逻辑混乱。后来想明白了一个关键点——两阶段模型之间的联系并不是“先算功率,再算钱”,而是“第一阶段只确定联盟总成本,第二阶段在总成本确定的前提下重新分配功率流和各微网成本”。两阶段的变量空间其实是有交叠的,处理好这个关系,整个算法才转得起来。
后续如果继续深入,有几个方向我觉得值得做:
一是把不确定性纳入考虑。光伏出力和负荷都有预测误差,可以把当前这套确定性优化扩展成两阶段随机规划或者分布鲁棒优化,纳什谈判的框架依然可以保留。
二是把需求响应加进来。现在模型中只有储能和联络线功率可以调节,如果微网内有可时移负荷,甚至电动汽车充放电资源,多主体之间的交互维度会更复杂,但纳什谈判的扩展性也更好。
三是研究多时间尺度的嵌套共享策略。目前是单日调度,可以扩展为“日前计划+实时调整”的两层结构——日前用非对称纳什谈判定各微网的基准交换计划,实时阶段用模型预测控制(MPC)修正偏差。这种结构在实际微网EMS系统中更容易落地。
最后再给一个很实用的小技巧:仿真时把所有微网的优化子问题封装成独立的MATLAB函数(输入是当前坡度参数和邻居的交换功率,输出是本微网的最优功率计划和成本),这样无论是3微网还是30微网,只是多调用几次函数的事情,代码结构完全不需要大改。这一条听起来简单,但在实际工程迭代中能省下大量调试时间,值得养成习惯。
