交直流混联潮流计算的交替迭代法:原理与工程实践

发布时间:2026/10/12 8:18:20
交直流混联潮流计算的交替迭代法:原理与工程实践 村里断电的时候整个电网的调度员都在骂骂咧咧而我抱着一沓潮流计算书觉得他们骂得有理。电力系统这东西平时不声不响一到大负荷或故障工况交直流混联的潮流计算能不能收敛就成了生死问题。这几年新能源直流外送、跨区互联工程铺开单纯算交流潮流已经不够用必须把直流输电的功率方程也叠进去。今天这篇就聊聊我折腾交替迭代法做交直流混联潮流计算的过程包括思路、公式、踩坑和最后能稳定复现的实操方案给准备入坑或正在被收敛性折磨的同行一点参考。1. 交直流混联潮流计算到底在算什么1.1 潮流计算的基础逻辑潮流计算说白了就是给电网拍一张稳态“CT片”。给定发电机出力、负荷大小、网络拓扑和变压器分接头位置求出所有节点的电压幅值、相角和支路功率。这事的本质是解一组非线性方程组节点功率平衡方程是核心交流系统里每个节点要满足有功和无功的注入等于流出的关系。纯交流系统的潮流计算已经非常成熟牛顿-拉夫逊法、快速解耦法、PQ分解法工具箱一抓一大把甚至Excel加个小宏都能算个三五节点的算例。但一旦系统里出现直流输电线路情况就变了。直流线路不再是简单的“一根线”它通过换流站与交流系统耦合换流站的运行状态由触发角、熄弧角、直流电压、直流电流这些变量共同决定而这些变量又反向影响交流节点的注入功率。这就形成了两个物理过程相互嵌套的混联系统。所谓交直流混联潮流计算本质就是同时在一次计算里求解交流网络的节点方程和直流网络的换流器方程让两者在同一组运行工况下达到一致的平衡点。听起来就是“把方程列一起解”但做起来远没有这么简单难点在于两个子系统的边界变量需要反复校正以及换流器方程的强非线性带来的收敛问题。1.2 混联系统带来的新问题如果只是把直流方程强行塞进雅可比矩阵会面临两个尴尬。第一是雅可比矩阵的规模急剧膨胀每增加一个换流站就要多出一组状态变量和对应的残差方程矩阵结构和稀疏性被破坏程序写得复杂不说数值特性也变差。第二是直流变量和交流变量在数量级上不一致直流电压动辄几百千伏功率上百兆瓦混在一个矩阵里做迭代很容易导致病态。交替迭代法是绕开这两个尴尬的经典思路。它的核心思想是“分而治之”先把直流系统当成交流节点上的一个可控注入功率源用交流潮流求出节点电压再把求出的电压交给直流子系统去解换流器方程得到新的直流功率然后把这个功率重新注入到交流节点上继续算如此反复直到两个子系统的解都稳定下来。这种处理的工程价值非常明显。它不用改动成熟的交流潮流核心程序只是在外围加一层迭代控制项目开发工作量小调试也方便。直流部分的计算还可以独立验证把换流器方程单独测试通过了再接入整体框架排错路径清晰。我实际做下来这种方案在工程交付和学术研究里都是首选尤其适合团队里已有交流潮流程序存量代码的场景。2. 交替迭代法的设计思路与选型逻辑2.1 为什么不用统一迭代法在做技术选型的时候统一迭代法和交替迭代法之间是要权衡的。统一迭代法把所有交流节点变量、直流变量放在一个大的牛顿法框架内同时求解理论上是收敛性最好、最“优雅”的方案二次收敛特性让人心动学术界很多论文也是这么做的。但我劝你在工程落地时冷静一点。统一迭代法对初始值极其敏感直流变量初值给不好雅可比矩阵在第一步就可能奇异。而且编程实现的复杂度高每换一种换流器控制模式就要重新推导雅可比矩阵中对应位置的偏导数稍不留神就出错。维护这套代码的成本远远超出“多写几行矩阵装配”的账面工作量。交替迭代法牺牲了一些理论上的收敛速度换来了实现层面的高度解耦。我可以把交流潮流的求解器当作黑盒使用无论后台是牛顿法、PQ分解法还是其他什么都不影响上层迭代逻辑。直流子系统的方程也相对独立便于单独测试和换用不同的求解策略。对于一个需要持续演进、可能要接入多种换流器拓扑LCC、VSC的项目来说这种模块化带来的灵活性和可维护性是纯理论收敛优势换不来的。2.2 交替迭代法的整体框架交替迭代法的整体框架可以概括为外循环和内循环的双层结构。内循环是交流潮流迭代使用标准的牛顿-拉夫逊法完成一次完整的交流系统潮流求解外循环则负责交流与直流的耦合校正每次交流潮流算完后把换流器交流侧的节点电压提取出来传给直流子系统去算新的直流功率再更新交流节点的注入功率重新跑交流潮流。这套框架的边界变量选择是成败的关键。我用的方案是换流变压器高压侧母线作为交流节点直流功率P_dc和无功消耗Q_dc作为注入量换流器交流侧电压作为直流子系统的输入。直流的待求变量是直流电压V_d、直流电流I_d、触发角α、熄弧角γ和换流器控制角根据控制模式的不同部分变量会被约束成定值剩下的通过解方程组求出。外层收敛判据我取的是相邻两轮外迭代之间换流器交流侧母线电压幅值的最大偏差小于某个阈值以及直流功率偏差同步满足阈值。这两个判据必须同时成立只盯电压不盯功率的话可能出现电压不动但功率还在漂的情况这在理论上是不收敛的。2.3 收敛判据与振荡抑制交替迭代的收敛本质上是两个映射之间找不动点天然存在振荡或者发散的可能。我实测的现象是当交流系统比较弱、换流站接入点短路比偏低时外迭代特别容易在两组解之间来回跳表现为换流站交流母线电压一会儿高一会儿低直流功率也忽大忽小就是不落定。这种情况下最常见的对策是引入阻尼因子。具体做法是在更新直流功率注入量时把新旧值做加权混合新注入值等于λ乘本轮计算值加(1-λ)乘上一轮值。λ的取值范围一般在0.5到0.9之间系统越弱λ取值越保守。这个做法的物理直觉并不复杂——给迭代过程加入“惯性”防止控制变量一步更新过大造成发散。我做过几次参数扫描强系统下λ取0.8能实现快速收敛弱系统降到0.5才能稳住个别的极端算例甚至要低到0.3。另一个需要注意的是交流潮流内循环的收敛精度。外层迭代里每跑一次内循环都对应一轮完整的交流网络状态方程求解内循环精度设置得过严计算时间成倍增加设置得过松外层看到的电压值是“假的”即使外迭代判据满足最终得到的解也是失真的与真实平衡点偏差很大。我自己一般把内循环的收敛阈值设在1e-8标幺值外循环的判据设在1e-5到1e-6之间既保证了整体精度也不至于让计算时间失控到一个让人崩溃的程度。3. 核心环节实操实现3.1 换流器基本方程与假设动手写代码之前先把换流器的稳态数学建模说清楚。经典的LCC换流器分析基于以下四点假设三相电压对称、换流变压器漏抗均匀、直流侧电流平直无谐波、晶闸管导通与关断瞬时完成。实际系统中这些假设不严格成立但在潮流计算这个尺度上误差完全可接受。在这组假设下换流器的核心方程可以写成直流电压与交流电压、触发角的关系V_d (3√2/π) * V_ac * cos(α) - (3/π) * X_c * I_d其中V_ac是换流变压器阀侧空载电压X_c是换相电抗I_d是直流电流。有功功率守恒关系不计换流器损耗时P_ac V_d * I_d。无功消耗关系Q_ac P_ac * tan(φ)功率因数角φ满足cos(φ) ≈ cos(α) - (X_c * I_d) / (√2 * V_ac)。写方程的时候我习惯用标幺值这样各换流站的数值范围一致也方便设置统一的收敛阈值。用有名值的话每个站的电压等级不同阈值就得单独设比较繁琐。3.2 直流网络求解直流网络部分相对简单但恰恰是这里我见过很多人栽跟头。直流输电线路本质上是电阻网络有时还有电感稳态下电感不起作用连接各个换流站和接地极。对一个两端直流系统直流网络方程就是两个换流站之间的电压降关系V_d1 - V_d2 R_dc * I_dR_dc是直流线路电阻。多端直流系统稍微复杂一点需要建立直流网络的节点导纳矩阵把每个换流站的直流节点电压、电流关系写成矩阵方程。求解直流网络用的是典型的线性方程组求解高斯消元或者LU分解都能胜任不需要迭代。这里要注意直流网络节点电压必须有参考点——一般取一个换流站的直流负极为参考或者把某个定电压站的电压直接作为已知量。直流子系统的求解顺序是先根据控制模式确定哪些变量是已知量比如定功率控制站的P_dc已知、定电压控制站的V_d已知然后以交流侧电压V_ac为输入联立换流器方程和直流网络方程求解出未知的直流电压和电流以及每站的触发角或熄弧角。这里的关键技巧是先猜一组触发角的初值再用方程校核而不是直接试图解六七个变量的非线性方程组后者在初值不好时极其容易发散。3.3 交流系统节点注入功率更新交替迭代的“交替”二字就体现在每次直流系统解完之后要把结果转换成交流潮流所需的节点注入量。对于连接在交流母线i上的换流站k它在交流侧的有功注入P_i和从交流系统吸收的无功Q_i分别按如下方式更新P_i P_dc,k P_loss,k计及换流器和换流变压器损耗时不考虑损耗则直接取P_dc,kQ_i Q_dc,k无功消耗方向根据整流/逆变的运行状态取正负号。整流站从交流系统吸收有功P_i前面取正逆变站向交流系统馈入有功P_i就要取负。正负号搞反了是新手最常犯的错误而且它不会导致程序报错只是结果完全对不上排查起来特别隐蔽。更新完所有换流站的注入量后重新求解交流潮流。这里有一个容易忽视的细节换流变压器分接头的变化会影响V_ac到阀侧电压的变换关系进而影响直流电压。如果固定分接头位置计算上没什么问题如果模拟实际系统的自动调压分接头位置本身也应该作为变量参与迭代这会显著增加外层迭代的轮数我在工程实践中一般先固定分接头位置跑通整体流程再考虑是否放开这一层。3.4 收敛流程与初值选择完整的交替迭代计算流程我整理成以下步骤设直流功率初值为0跑一次纯交流潮流得到无直流接入时的全网电压分布作为后续迭代的参考初值。将直流控制模式给定的功率或电压值代入直流子系统结合当前交流侧母线电压求解得到直流电压、直流电流和各换流器控制角。根据直流子系统的解计算各换流站在交流侧的注入有功和无功。更新交流系统的节点注入量重新运行交流潮流求解。比较本轮与上一轮的交流母线电压和直流功率偏差若均满足收敛判据输出结果否则回到步骤2继续迭代。这套流程写起来不难真正影响成败的是第1步的初值策略。把直流功率初值设为0这个操作很关键相当于让交流系统先在“没有直流”的状态下充分松弛得到一个合理的电压分布。如果一上来就把直流功率设成额定值交流节点注入量突变太大第一轮交流潮流就很不容易收敛后面的迭代自然全盘皆输。初值选择还有一条经验换流器控制角的初值按典型工况设整流侧α设15度左右逆变侧γ设18度左右不要从0度或者90度开始那些边界值对应的功率因数接近0换流器方程求出来的中间变量容易溢出尤其注意cos函数和tan函数的数值稳定性。4. 常见问题与排查技巧实录4.1 收敛失败怎么定位干过潮流计算的人都知道不收敛不算故障算不出能解释的结果才让人抓狂。交替迭代法最常见的失败原因我归纳成三类。第一类是交流潮流内循环本身就不收敛。这种情况的典型特征是外迭代第一轮就挂掉换流站注入功率更新后交流潮流压根解不出来。排查方向是检查换流站的注入量是否超出了交流网络的承载范围比如把整流站的功率加到某条联络线上导致线路严重过载节点电压跌到0.5以下牛顿法在这种极端工况下很容易不收敛。处理方法要么调整初值让功率逐步加载上去要么检查网络参数是否有错误。第二类是外循环振荡不收敛。前面提到过特征是电压和功率在两个值之间反复横跳。这时候先别急着改代码把阻尼因子λ从默认的0.8往下降观察振荡幅度是否衰减。另一个实用技巧是给所有换流站的注入功率加上“斜坡加载”前几次外迭代只注入目标功率的某个百分比逐步提升到100%这种方法对弱交流系统尤其有效本质上和发电机爬坡的概念类似给系统一个自然过渡。第三类是直流子系统解不出来内层报错。这种情况往往被外层框架的日志掩盖住程序表现为整个流程中断但真正的问题出在换流器方程上。我遇到过的过敏因素是触发角越界——求出来的α小于5度或大于90度这在物理上都不合理。程序里必须加上对控制角的范围检查一旦越界就报错退出而不是让它带着非法值继续算否则后续的解全是垃圾。4.2 换流器控制模式相关的坑换流器的控制模式简直是各种诡异错误的温床。定功率、定电流、定触发角、定熄弧角、定直流电压模式一换方程组的结构就变了已知量和未知量的数量都要重新匹配。我踩过的一个典型坑是整流侧用定功率控制逆变侧用定熄弧角控制我一开始只把整流侧的P_dc设为已知忘了逆变侧的熄弧角约束也要进方程组结果直流电压解出来明显不对程序却不报错全靠对结果的合理性判断才发现问题。另一个控制模式的坑是关于定电压控制站的参考节点。多端直流系统如果有一个换流站采用定直流电压控制那么直流网络方程里它的直流电压就是已知量参考点也随之确定如果所有换流站都是定功率控制直流网络电压就缺一个锚点方程组会奇异。这种情况下必须在程序里显式处理指定某个站的直流电压为固定值或者增加一个虚拟的直流平衡节点否则矩阵求逆直接失败报错信息还不能一眼看出来问题所在。控制模式的切换还牵涉到收敛性的突变。我实测过同一个算例整流侧从定功率切到定触发角收敛所需的迭代轮数几乎翻倍。原因在于定功率控制对系统施加的约束更强换流器方程中可调的变量自由度更少整体对初值更敏感。遇到这种情况我会把外层阻尼因子调小一档同时适当放宽外循环的收敛阈值等收敛后再逐步收紧这种思路和数值计算里的延续法异曲同工。4.3 参数与迭代技巧分享几个实际测试下来比较管用的参数策略和迭代技巧。标幺值基值的选择容易被忽略。电压基值取换流变压器阀侧的额定电压功率基值取全系统统一的基准功率直流电阻的标幺值计算要基于直流侧的电压电流基值。如果直流部分的基值与交流部分不一致换流器功率方程里的数值会出现数量级的偏差外迭代的收敛判断也会失真。这方面宁可多花10分钟统一口径也不要在调试时面对一堆相差10的幂次的小数挠头。迭代顺序存在优化的空间。标准的交替迭代是交流一次、直流一次、再交流但我试过把直流子系统内部做多次迭代后再回到交流某些工况下能显著减少外循环轮数。这背后的原因是直流子系统内部迭代充分收敛之后返回给交流的注入量更加“自洽”交流潮流一次就能到位。代价是单轮计算时间变长整体节省的总时间需要测试评估两者之间的取舍没有一定之规算例规模大时值得做一次对比实验。最后一个技巧是关于诊断信息的输出。交替迭代法的中间变量很多——每个换流站的注入功率、控制角、直流电压、母线电压——我建议在调试阶段把每轮外迭代的这些量全部打印出来。我排查过最棘手的一次问题最终就是靠着打印出的电压序列发现某个换流站在第3轮和第4轮迭代之间控制角突然跳了30度进而定位到是交流电压初值在该工况下计算偏差导致的。做数值计算数据可视化能力比公式推导能力更能救命。5. 后记从能用走向好用这套交替迭代法框架我已经在多个交直流混联算例上验证过从双端LCC直流到三端VSC直流从强交流系统到短路比2左右的弱系统都跑出了稳定可复现的结果。相比统一迭代法它的收敛速度不占优势极端工况下需要手动调参的情况也不少但胜在工程可控、排错清晰尤其适合团队里已经有了成熟交流潮流程序的场景。最后再分享一个小技巧是我调参时屡试不爽的把交流潮流的迭代上限从默认的10次改成50次外层交替迭代的上限从20次改成100次同时把每一步的精度打印到日志里。这样既不会因为内循环偶尔多几步就误报失败又能在外循环卡住时从日志里看出问题到底出在交流侧还是直流侧。做工程计算稳定和可排查永远比纯粹的理论优雅更值钱这套方法帮我扛过了不少交付节点希望你也能少走我走过的弯路。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询