锦
锦思新知编辑组
发布时间:2026/11/15 22:46:08
来源:锦思新知
阅读:知识向官网定制

做配电系统分析的人迟早会遇到一个不太好回答的问题风电场和光伏板给出的出力不是一个固定数我该用哪个数去做潮流计算最早我处理类似项目时习惯把历史数据取平均值叫“典型出力”然后跑一遍确定性潮流写报告。直到有一次评估配电网接纳分布式电源的电压越限风险对方追问我“你说电压不超最坏情况下呢能给出超限的概率吗”我才意识到典型值方法回答不了这个问题。于是重新换了一套思路基于蒙特卡洛的概率潮流计算在IEEE33节点系统上做算例把风光出力不确定性用随机抽样的方式完整纳入了潮流计算最后得到的不再是“一个电压值”而是一整套概率分布和风险指标。这篇分享就把这个项目当时的完整做法包括建模、采样、潮流计算到结果解读的每个环节原原本本写出来希望能给正在做新能源配电网分析的朋友一些可以直接参考的东西。1. 为什么风光一多确定性潮流就不够用了1.1 传统潮流只能回答“某一种工况”传统的确定性潮流无论用牛顿-拉夫逊还是前推回代法本质上都是求解一组代数方程。给定所有节点的注入功率包括负荷和发电让网络方程平衡求出稳态下的节点电压、相角和支路潮流。这个结果对应的是一个“瞬间快照”描述的是在某一组确切的输入数据下系统会处于什么状态。只要系统里的发电和负荷是可控且稳定的这种方法就非常够用。传统配电网里负荷曲线有规律电源是可调度的水电火电规划人员取最大负荷方式计算一下基本就能保证安全。可风光一进来前提就变了。1.2 风光出力不是“一个数”而是一堆可能风电和光伏从根本上改变了这个前提。光伏出力依赖于光照强度晴天正午可能接近满发云层一过几分钟内就能从满发跌到三成夜间直接为零。风机的出力曲线更陡切入风速通常在3m/s左右额定风速可能要到12m/s中间几倍的风速变化对应着完全不同的出力一旦风速超过切出风速还要停机。这些都不是小扰动而是可以从零到额定容量来回变化的量级差异。如果一个节点上接了额定容量500kW的光伏它某时刻的真实出力可能是500kW也可能是200kW也可能是0。你要问系统安不安全得先回答一个前置问题这个时刻的出力到底是多少可这个问题本身没有确定答案。1.3 典型场景法的误区在哪里常见的替代做法是取一个“典型出力场景”比如取光伏出力为额定值的70%风速取平均风速再做确定性潮流。这样做最大的问题是典型场景只是众多可能工况里的一个很可能对应的是一个中等水平的、并不危险的工况而真正导致电压越限或者线路过载的恰恰是那些不“典型”的工况。换句话说确定性潮流回答的是“某种情况下会怎样”而实际工程要回答的是“在所有可能的情况下危险情况发生的概率有多大”。概率潮流就是为了把这两者区分开而存在的它不追求给出一个确定的电压而是给出电压的概率分布比如“节点电压低于0.95pu的概率是1.6%”这才是规划决策能直接用的风险指标。我当时那个项目核心思路就是把这个理念用蒙特卡洛方法在IEEE33节点系统上落地。2. 蒙特卡洛概率潮流的整体实现框架2.1 蒙特卡洛方法扮演的角色蒙特卡洛方法是概率潮流里最朴素也最不容易出错的一类实现路径。它的思想很简单既然不知道下一次风速是多少但知道风速服从某个概率分布那么就从分布里抽很多次每次得到一个具体风速值进而得到一个具体的光伏或风电出力值把这个值代进潮流计算得到一组节点电压和支路功率。抽一万次就跑一万次确定性潮流得到一万组结果最后对一万组结果做统计。这样说起来有点笨拙但这种“笨”恰恰是优点只要抽样次数足够多结果就会收敛到真实概率分布而且不依赖太多数学假设。相比解析法动不动就要推导半不变量、级数展开蒙特卡洛把复杂的概率传播过程变成了最直观的“抽样-计算-统计”对工程人员非常友好。2.2 一次完整计算的五个环节整个计算过程可以分为五个环节输入变量统计建模根据历史数据确定风速、光照、负荷的概率分布形式和参数随机抽样从各分布中生成若干组相互对应的输入样本逐样本潮流计算把每组样本修改到潮流数据中调用确定性潮流程序结果汇集保存每次计算的输出电压幅值、相角和支路潮流统计分析计算均值、标准差、置信区间、越限概率等指标输出概率密度和累计分布曲线。如果涉及多个随机变量之间的相关性还需要在抽样环节额外处理相关系数这个我放到下一节细说。整体框架确定之后你会发现蒙特卡洛概率潮流并不神秘难点全在概率模型建得准不准、样本设计得合不合理以及潮流求解器在特殊样本下能不能稳定收敛。2.3 为什么我选了蒙特卡洛而不是解析法概率潮流还有另一条路线叫解析法或近似法常用的有点估计法、半不变量法和级数展开法。这些方法速度快计算量比蒙特卡洛小得多看起来更“高级”。但实际使用中有一个共性前提要么假设输入变量相互独立要么假设潮流方程可以近似线性化要么假设只保留前几阶矩就够了。配电网里R/X比值高、节点电压变化非线性较强某些假设很容易失效。蒙特卡洛方法不吃这一套。它不管你是线性还是非线性不管你的分布是什么形态只要概率模型和抽样做对了精度只受样本量影响没有原理性的偏差。我当时的项目时间紧、数据质量一般与其在解析法里抠数学细节不如选择蒙特卡洛这种“笨但稳”的路径先把结果算出来再说。实践证明这样的选择省去了大量调试数学推导的时间后期遇到问题时定位也更快。3. 风光出力不确定性建模概率模型选型与参数设定3.1 风速的威布尔模型与出力转换风电建模通常先拟合风速分布。双参数威布尔分布是最常用的模型其概率密度函数为f(v) (k/c) * (v/c)^(k-1) * exp[-(v/c)^k]其中v是风速k是形状参数c是尺度参数。一般可以通过历史风速数据用极大似然估计拟合出k和c值常见风场的k取值大致在1.8到2.5之间c值跟当地平均风速正相关。如果手头没有风速数据也可以用经验值先顶住后面有实测数据再替换。风速本身不是项目最终需要的量最终需要的是风电出力。从风速到出力用的是风机功率曲线典型的转换关系是分段函数风速低于切入风速vci或高于切出风速vco时出力为0风速在vci到额定风速vr之间出力按一次函数爬升风速在vr到vco之间出力恒定等于额定功率。我用典型参数举例vci3m/svr12m/svco25m/s。单独拟合风速分布后再套这个转换关系就得到了风机的出力随机数序列。这样处理的好处是保留了风速分布的真实信息而不是直接拿风电出力数据硬拟合物理过程更清楚。3.2 光伏的Beta分布模型光伏出力与光照强度近似成正比。光照强度经过归一化后普遍用Beta分布描述密度函数是一类带两个形状参数α和β的形式取值区间在0到1之间f(s) Gamma(αβ) / (Gamma(α)Gamma(β)) * s^(α-1) * (1-s)^(β-1)参数α、β可以由历史光照数据的均值μ和方差σ²反推α μ * (μ*(1-μ)/σ² - 1) β (1-μ) * (μ*(1-μ)/σ² - 1)如果手上只有光伏出力的实测数据也可以直接把出力除以额定容量作为归一化光照强度来拟合。我建议在项目初期先用Beta分布因为参数少、采样函数现成等有更长的时间序列再考虑非参数直方图采样后者精度更高但代码维护量大一些。光伏出力还有一个隐含的双峰特性晴天和多云天气都会造成出力集中在某些区间Beta分布对这种形态的适应能力比正态分布强不少。3.3 风光之间的相关性处理不能省同一区域的风电场和光伏电站出力往往存在相关性。比如有的地区白天风大晚上风小光伏恰恰是白天出力晚上为零两个变量之间是正相关也有的地区最热的中午风速反而小光伏满发时风机出力低呈现负相关。如果忽略相关性把风光当成两个独立随机变量抽出来的样本组合概率和实际情况不符计算出的电压越限概率就可能偏离真实值。常用的工程处理方式是拉丁超立方采样配合相关性控制。先按相关矩阵做Cholesky分解再对排序后的样本做对应调整让风光样本序列的秩相关系数与目标矩阵一致。这个过程实现起来不难我在后面代码框架里给出了处理思路。需要提醒的是相关性系数不能拍脑袋定最好根据至少一整年的风光出力实测数据来计算否则加了相关性的模型反而可能失真。3.4 负荷也不能当成铁板一块风光出力随机时负荷同样有波动。传统做法是把每个节点的负荷取成固定值但这样会低估电压越限风险恰好赶上负荷高峰、光伏低谷的时刻比“平均负荷平均出力”的时刻危险得多。我的做法是对每个负荷节点设置正态分布均值取典型负荷值标准差取均值的5%到10%。风、光、负荷三组随机样本生成后同一组内的数据才组成一个完整工况。这样每个样本都代表了一种可能的运行状态从轻载低出力的寒冷夜晚到满载高出力的酷热中午覆盖范围比固定负荷方案宽得多。需要注意的是各负荷节点之间也可能存在相关性比如同一个馈线下的负荷会同时上涨这个相关性同样可以通过相关矩阵控制但在小算例里通常先做简化处理。4. IEEE33节点系统搭建与算例构造4.1 测试系统怎么选IEEE33节点系统是配电网分析里使用非常广泛的一个公开测试算例。它是辐射状结构一个变电站出口带33个节点、32条支路还包含5条联络开关。基准电压12.66kV基准容量10MVA总负荷约3715kW加2300kvar节点1是平衡节点也就是变电站出口。配电网相比输电网最典型的特征就是R/X比值高线路电阻和电抗接近甚至更大这导致潮流计算对无功和电压更敏感非常适合用来验证分布式电源接入后的电压问题。选它做算例的原因还有一个数据公开、配置成熟论文和代码到处都能找到完整参数方便复现和对比。我的项目基于这套公开数据做了局部改造在指定节点接入了风电和光伏。下面是我整理的系统关键参数项目数值节点数33支路数32基准电压12.66 kV基准容量10 MVA总有功负荷3715 kW总无功负荷2300 kvar光伏接入节点及容量节点32600 kW风机接入节点及容量节点17500 kW4.2 风光接入位置和容量设置接入位置的选择直接影响结论。我当时的分析目标是评估风光接入后的末端电压风险所以特意选了供电半径末端附近的位置。光伏接在32号节点风机接在17号节点附近。这两个节点离变电站较远线路路径长电压降落大最容易暴露电压问题是评估分布式电源接入风险的典型位置。容量方面我设定光伏额定容量600kW风机额定容量500kW总分布式电源渗透率大约占系统总负荷的三成左右。这个比例不算高但配合末端接入方式已经足够产生明显的电压波动。容量如果再往上加算出来的越限概率会更高趋势性结论不会变只是数值上更极端不利于展示方法细节。对于刚接触概率潮流的读者建议先用中等渗透率把流程跑通再逐步加大电源容量观察系统行为变化。4.3 潮流求解工具怎么选蒙特卡洛概率潮流需要重复调用成千上万次确定性潮流底层算法选型很关键。我在项目里尝试了两条路。第一条是用现成的潮流求解工具基准格式里配电网也可以建模只需要把电压基准设置为12.66kV线路阻抗用标幺值表示。它的优点是牛顿-拉夫逊实现成熟各种节点类型都处理得好几乎不用自己写迭代框架。缺点是数据格式偏输电网风格配电网某些设置需要做转换。第二条是自己写一个配电网牛顿-拉夫逊求解器。IEEE33节点只有33个节点矩阵规模很小每次潮流计算用不了多少时间自己写反而更灵活。我最后实际采用的是自编求解器因为需要在每次迭代里处理分布式电源节点的无功限制现成工具对PV节点转PQ节点的处理逻辑调整起来没有自己写方便。如果你的项目只要求快速出结果直接用现成工具完全没问题如果像我的项目一样需要频繁修改节点类型建议自己封装一个潮流程。5. 蒙特卡洛采样与潮流计算的工程实现5.1 采样与潮流计算的主循环整个程序的主循环流程可以描述为先生成一组随机数转成一组潮流输入调用潮流求解保存结果循环若干次。以下是我项目里采用的简化框架用伪代码形式给出你换成自己熟悉的语言就能直接套用。import numpy as np # 固定随机种子保证结果可复现 np.random.seed(2025) N 5000 # 样本量 for i in range(N): v_sample weibull_rvs(k, c) # 采样风速 p_wind wind_power_curve(v_sample) # 换算风电出力 s_sample beta_rvs(alpha, beta) # 采样归一化光照 p_pv s_sample * pv_rated # 换算光伏出力 load_factor norm_rvs(1.0, 0.08) # 负荷波动系数 # 修改潮流数据中风机节点、光伏节点和各负荷节点的注入功率 # 调用潮流求解器得到节点电压V_i和支路潮流S_i # 保存样本结果判断是否收敛 end # 对全部样本的电压和潮流做统计分析 # 计算均值、标准差、越限概率绘制概率密度曲线与累计分布曲线这一层逻辑非常简单真正要注意的细节都在采样生成和潮流迭代的内部。建议初次实现时把随机数种子固定死跑通之后再放开否则调试过程中结果不断跳动很难判断改动是否有效。5.2 样本量怎么定才靠谱蒙特卡洛方法最容易被人问的问题就是到底要抽多少次才够这个问题没有绝对答案但可以给出一个实用的收敛判据。设某输出量的样本均值为μ_hat样本标准差为σ_hat则均值的标准误为σ_hat除以根号N。标准误与均值的比值就是变异系数工程上一般容忍它在1%到5%之间。如果变异系数超过5%就增加样本量继续算。我当时的处理是先用N500跑一个快速结果看变异系数然后逐步扩大到N1000、N5000、N10000观察关键节点电压均值和标准差的变化。实测下来对于IEEE33节点这种规模的小系统N5000时电压均值的变异系数已经降到很低的水平而N10000相比N5000结果几乎不再变化。这说明样本量5000在这个算例中已经足够。如果你做的是更大的系统、或者要精确捕捉极低概率事件样本量可能需要放大到几万甚至几十万那就得配合方差削减技术了。5.3 需要记录哪些输出量很多人算完只盯着节点电压均值其实浪费了大量信息。蒙特卡洛的每一样本都对应一个完整系统状态有价值的输出至少包括以下几类全部节点的电压幅值尤其是末端和分布式电源接入点的电压关键支路的首端功率和末端功率用来判断过载分布式电源接入节点的电压波动范围全网的有功损耗和无功损耗用来做经济性分析电压越限标志和支路过载标志用于统计概率。我建议保存结果时把所有节点电压存成一个大矩阵每一行是一个样本每一列是一个节点后续做概率密度曲线、相关性分析和灵敏度分析都会用到不要只保存几个汇总指标。我在第一次跑的时候只存了均值后来想回头分析某个节点的完整分布只能重跑一遍浪费了时间。5.4 计算效率的实用优化IEEE33节点系统规模小N5000次潮流用什么语言跑都很快。如果你后续扩展到上百节点的系统就需要开始考虑效率了。我的经验有三点第一事先把潮流计算里的雅可比矩阵非零结构固定下来减少每次迭代的索引开销第二如果用的牛顿-拉夫逊初始值选择要合理前一个样本的解可以作为下一个样本的初值能显著减少迭代次数第三有多核CPU时可以并行处理潮流计算每个样本之间互不依赖天然适合并行。再就是对极端分布区域做重点抽样这个属于方差削减的高级话题等基础方法跑熟之后再去碰也来得及。6. 计算结果怎么看概率信息与确定性结果的天壤之别6.1 节点电压的概率分布怎么读以我计算出的末端节点电压为例。用确定性潮流取典型日出力该节点电压算出来是0.968pu看起来离0.95pu的下限还有一段距离结论似乎是“没问题”。但蒙特卡洛结果给出的分布中该节点电压最低样本已经到0.925pu电压低于0.95pu的样本占比约为2.1%。这两个结论矛盾吗不矛盾。确定性结果只是说明了“平均来看还行”而概率结果暴露了“有2.1%的时间处于越限状态”。对一个全年8760小时的系统2.1%意味着超过180小时的违规运行时间这在规划审查中是完全不可接受的风险水平。这就是概率潮流的真正价值它把确定性计算里藏起来的风险重新摆到了台面上。6.2 支路过载概率的工程意义线路过载也是同样的逻辑。我选取了风光接入点附近的一条主干支路做统计该支路在样本中的最大潮流比额定载流量高约12%而超过额定值的样本占比约0.8%。单纯看典型场景该支路负载率只有76%你会认为裕度充足但概率结果显示存在接近1%的过载可能折算成年运行小时数也有几十个小时。对于这条结论规划部门可以直接作为增容改造的决策依据。需要特别说明的是越限概率不等于越限小时数因为样本是按照等概率抽取的运行状态不是按时间序列排序的。如果你需要时间维度上的小时数还需要给样本赋予权重或者引入时序采样这是另一个层面的问题。6.3 可视化的正确姿势结果展示我推荐画三种图概率密度曲线、累计分布曲线和电压越限概率分布图。概率密度曲线能直观看出电压分布的形态如果有双峰或重尾很容易发现累计分布曲线则方便读取特定电压值对应的概率比如0.95pu对应纵坐标是多少越限概率分布图是把各节点低于0.95pu的概率画成曲线或热力图一眼看出哪些节点是薄弱点。我的建议是报告中不要堆叠几十张概率密度图而是挑最有代表性的3到5个关键节点把确定性结果和概率结果放在同一张图里对比说服力最强。7. 调试和落地中的关键坑7.1 随机数种子决定能不能复现蒙特卡洛本身是随机过程如果不固定随机数种子每跑一次结果都略有不同。这件事在开发调试阶段非常烦人因为你很难判断一个改动是改善了结果还是随机波动。我的习惯是在每个程序入口固定随机数种子整个项目的所有结果都基于同一组随机序列生成这样不同方案之间的对比才是公平的。等到方案定稿后再随机换几个种子各跑一遍确认结论不随种子变化才算真正可靠。7.2 风光相关性矩阵出问题的处理相关性控制过程中最容易遇到的问题是你设定的相关矩阵在数学上不合法。比如三个变量之间两两相关系数都取0.8看起来合理实际组成的矩阵可能是非半正定的Cholesky分解直接报错。我的处理办法是对相关矩阵做特征值分解把负的特征值修正为一个小的正数再重建相关矩阵。这个操作会略微改变相关系数但能保证采样流程稳定。更稳妥的做法是在设定相关系数时查阅实测数据不要凭感觉取过高的一致性。7.3 风机停运状态不能忽略风速超出切出风速时风机出力为0风速低于切入风速时出力也是0这两种工况合起来在一年里可能占很大比例。如果你只用了连续型的威布尔分布而忽略了这部分的“离散零点”算出来的出力均值会比实际情况偏高导致电压分布整体偏乐观。正确的做法是在风速采样后单独统计切入切出区间的概率把那些样本的出力直接置零并保留零值计入统计。这个细节不做渗透率越高结果偏差越明显。7.4 配电网PV节点切换的收敛玄学分布式电源接入配电网时通常有两种建模方式PQ节点或PV节点。PV节点意味着节点电压幅值需要维持在设定值这要求电源有无功调节能力且容量足够。在蒙特卡洛大量样本中当风机或光伏处于高出力状态时无功上限可能突破算法会把PV节点自动转回PQ节点。如果求解器不处理这种状态切换就会出现一批样本不收敛或者电压异常。我的做法是在潮流迭代中加入节点类型转换逻辑超过无功上限就固定无功、释放电压约束等电压变化后再尝试恢复PV。这正是前面说我自己封装潮流求解器的原因。7.5 计算慢的时候先别急着上高级算法蒙特卡洛最大的软肋是计算量大尤其是大系统、大样本量的时候。不少人在这个阶段直接上重要抽样、马尔可夫链蒙特卡洛一类高级算法结果写代码的时间比节省出来的时间还多。我的建议是先花几小时把基础蒙特卡洛跑通看看样本量N5000时变异系数是否达标。如果输出量的变异系数已经很低基础方法就够了。只有当你需要分析的是“极低概率的极端事件”比如电压低于0.90pu的事件才值得考虑用重要抽样去定向增强那些危险样本。我最后一次跑这个算例时的体会是小系统的蒙特卡洛没有想象中那么慢瓶颈反而在数据处理和结果解读上。从确定性与概率性的这条分界线出发把方法改到蒙特卡洛概率潮流之后我在IEEE33节点系统上做的这个算例其实最后输出的并不只是若干概率指标而是一种分析问题的思路转变从“取一个值算一遍”到“把所有可能取值都算一遍再统计风险”。这种思路对新能源渗透率越来越高的配电网来说几乎是必然的选择。如果你也准备在论文或项目里复现类似分析我建议大家先按上面的流程搭好基础框架、固定好随机数种子、学会看变异系数再根据具体场景往里加相关性和高级采样技巧每一步都有迹可循比我当时东拼西凑要省力得多。
知识建站
内容驱动
阅读友好版式
SEO 精细化
线索转化
这篇内容对您有启发吗?
预约一次免费方案沟通,我们会根据您的行业给出可落地的站点架构建议。
立即预约沟通