ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

交直流潮流计算实战:统一法、交替法与最优因子法

交直流潮流计算实战:统一法、交替法与最优因子法 1. 从一条直流线路说起交直流潮流的模型基础拿到“交直流输电网潮流计算”这个题目很多人的第一反应是把直流线路等效成恒功率负荷或者恒功率电源塞进已有交流潮流程序里跑一遍不就行了如果只是课程设计或者简单预研这种近似确实能交差。但真正面对一条几百千伏的高压直流输电线路时整流站和逆变站的控制方式、换相重叠角、直流线路电阻压降、换流变压器分接头位置这些因素全都与交流侧母线电压相互耦合。我在实际项目里踩过不少坑也把统一法和交替法分别编码验证过这篇就顺着工程实现的过程把两类方法的原理、矩阵组装、迭代细节以及收敛性调优一次说透。1.1 换流器准稳态模型工程上唯一实用的简化直流输电系统的核心元件是换流器。工程潮流计算中普遍采用准稳态模型也就是忽略换流器内部的暂态过程只保留基波分量和直流分量之间的关系。以6脉动换流桥为例三个基本方程是绕不开的。理想空载直流电压由换流变压器阀侧交流线电压决定V_do (3√2 / π) · E_ac其中E_ac是换流变压器阀侧空载线电压的有效值。实际运行中晶闸管触发角不是零换相过程还会造成等效压降所以整流侧实际直流电压为V_dr V_do · cosα − R_c · I_d逆变侧同样满足结构相同的方程只是把触发角换成关断角V_di V_do · cosγ − R_c · I_d这里的R_c不是真实电阻而是换相电抗的等效电阻数值上等于3X_c/πX_c是换流变压器的漏抗折算到阀侧的值。直流线路本身还要满足欧姆定律V_dr V_di R_d · I_d这四个方程放在一起基本上就构成了单端直流系统的准稳态模型。一个很容易被初学者忽略的地方是V_do并不是固定值它与换流变压器阀侧电压成正比而阀侧电压跟着交流母线电压和变压器变比变化。在交替法里交流潮流每更新一次母线电压V_do就必须重新计算这个耦合关系就是交直流潮流的核心难点。1.2 控制方式决定方程数量和边界条件的关键直流系统不能像普通交流电源那样随便给定有功和无功它必须通过控制方式来确定运行点。最常见的控制组合有三种整流侧定电流控制逆变侧定关断角控制。这是最经典的两端直流配置整流器维持直流电流恒定逆变器维持关断角恒定。整流侧定功率控制逆变侧定电压控制。多端直流和柔性直流里更常见。两端都定电压或都定电流的不常见组合主要用于特殊工况分析。每一种控制方式都会给方程组增加一个约束方程。比如整流侧定电流就增加“I_d − I_spec 0”逆变侧定关断角就增加“γ − γ_spec 0”。控制方式的选择直接影响统一法的变量选取和交替法的迭代方向这一点在下一节会展开讲。我个人的经验是动手写代码之前一定要先把换流站的控制方式列成一张表明确哪个站定什么量再确认待求变量个数是否等于方程个数。否则矩阵组装到一半发现秩亏缺排查起来非常痛苦。2. 统一法把交直流方程塞进一个雅各比矩阵2.1 核心思路不再区分交流变量和直流变量统一法的出发点是把交流系统的潮流方程和直流系统的稳态方程视为一组联立方程所有变量一起参与牛顿-拉夫逊迭代。对经典牛顿法来说修正方程的形式是[ΔP_ac] [H N B] [Δθ_ac] [ΔQ_ac] [J L C] [ΔV_ac] [ΔR_dc] [D E F] [ΔX_dc]其中ΔP_ac和ΔQ_ac是交流节点的有功、无功不平衡量ΔR_dc是直流系统方程残差Δθ_ac、ΔV_ac是交流电压幅值和相角的修正量ΔX_dc是直流变量修正量。这里的关键在于扩展矩阵的右下角出现了F块它由直流方程对直流变量的偏导构成右上角B块和左下角D块、E块则反映了交流与直流之间的耦合偏导。实际编写代码时变量选取有相当大的自由度。我比较习惯的选法是把整流侧触发角α_r、逆变侧关断角γ_i和直流电流I_d选为直流独立变量而V_dr、V_di不单独作为未知量而是在残差计算时通过方程临时求出来。这样一来牛顿迭代的未知量就是ΔX [Δθ_ac¹, Δθ_ac², …, ΔV_ac¹, ΔV_ac², …, Δα_r, Δγ_i, ΔI_d]ᵀ直流残差方程包括整流器电压方程、逆变器电压方程、直流线路方程和各控制方程。控制方程根据控制方式不同而不同定电流控制的残差就是I_d减去给定值。2.2 扩展雅各比矩阵里的偏导怎么算统一法最大的门槛是偏导数的计算。交流侧对θ和V的偏导与普通交流潮流完全一致可以直接复用。麻烦的是两类交叉偏导。第一类是交流方程对直流变量的偏导。换流站接入交流节点时该节点的注入功率包含直流部分的P_dc和Q_dc。以整流站为例P_dc V_dr · I_d而V_dr又依赖α_r和I_d所以∂P_dc/∂α_r需要通过链式法则求取。换流器方程本身有闭式表达式求导不困难但手工推导容易漏项。我自己的做法是先写出完整表达式再用符号计算工具验证一遍确认无误后再固化到代码里。第二类是直流方程对交流变量的偏导。核心耦合点是V_do随交流母线电压变化即V_do k_t · V_ac其中k_t是换流变压器变比相关的系数。于是直流方程中所有包含V_do的项都对V_ac有偏导。这部分偏导如果不写到矩阵里牛顿迭代的收敛性会下降一个档次甚至在重负荷条件下直接发散。2.3 统一法的程序实现要点统一法的程序结构反而比想象中简单因为它本质上就是“一个大矩阵求解”。关键步骤只有四步第一步组装交流节点功率不平衡量这部分和常规潮流一模一样。第二步组装直流残差向量。按顺序扫描每个换流站计算V_dr、V_di、I_d把残差填入对应位置。第三步计算扩展雅各比矩阵。交流块直接复用交叉偏导单独写函数。第四步求解线性方程组更新所有变量检查收敛。收敛判据建议同时看交流不平衡量和直流残差的最大绝对值别只盯一个。这里的性能瓶颈在线性方程组的求解。交直流混联系统的雅各比矩阵往往是一个大规模稀疏矩阵直接用稠密消元在几百个节点时就已经很吃力。工程实现中建议用稀疏存储加KLU或UMFPACK这类求解器不要自己写稠密高斯消元。一个200节点系统稠密矩阵的内存开销大概是200×200×8字节等于320K看起来不大但每轮迭代要冒多次O(n³)的运算速度会明显拖后腿。换成稀疏格式后实际填充量可能只有1%左右差距不是一星半点。3. 交替法隔离复杂度复用成熟的交流程序3.1 核心思路你算你的我算我的两边对账交替法在工程界更受青睐原因是它的模块化思路非常符合人的直觉交流系统交给交流潮流求解器直流系统单独维护一套小规模的求解器两者之间通过换流站节点的等效注入功率来传递信息。每次外迭代里先根据当前交流电压求解直流系统把直流状态换算成交流侧的注入功率再带着新的注入功率去跑交流潮流如此往复直到两边都收敛。对已经有成熟交流潮流程序的组织来说交替法几乎是零成本的扩展。不需要动交流核心代码只增加一个直流模块和一层外循环。这也是我最早在项目里选交替法的主要原因。3.2 直流等效注入功率的计算交替法的核心数值转换是把直流方程的解折算成交流侧的P和Q。整流站和逆变站的折算方向不同很多新手在这里搞错正负号。整流站从交流系统吸收有功P_ac,r V_dr · I_d同时整流站吸收无功Q_ac,r P_ac,r · tanφ_r其中tanφ_r可以通过电压关系近似计算cosφ_r ≈ V_dr / V_do逆变站向交流系统输出有功P_ac,i −V_di · I_d但逆变站也需要从交流系统吸收无功Q_ac,i −|P_ac,i| · tanφ_i交流潮流程序处理这些注入时只需在换流站节点上把P和Q作为固定注入量处理。注意整流站和逆变站的Q都是“吸收”方向所以在交流系统里看到的效果是这两个节点比普通负荷更容易电压偏低这是直流输电影响交流电压稳定性的最直接体现。3.3 完整迭代流程与收敛判据交替法的外循环流程可以这样描述第一步初始化交流母线电压通常取交流潮流初值比如全系统1.0标幺电压和零相角。第二步根据当前交流母线电压计算各换流站的V_do更新直流系统的输入参数。第三步用牛顿法求解直流系统方程得到α_r、γ_i、I_d和V_dr、V_di。第四步计算各换流站对交流系统的注入功率P_ac和Q_ac。第五步调用交流潮流求解器得到新的母线电压和相角。第六步检查收敛条件。条件包括交流不平衡量小于容差同时直流变量比如I_d和触发角前后两次外迭代的差值小于容差。第七步若不收敛回到第二步继续循环。这个流程看起来很简单但真正跑起来以后会发现收敛速度和直流系统的控制方式、交流系统强度有强烈的依赖关系。整流侧定电流、逆变侧定关断角的传统两端直流通常3到5次外迭代就能收敛。如果换成定功率控制外迭代次数往往会翻倍。3.4 收敛性隐患强耦合下的振荡问题交替法最典型的失败模式是外循环振荡。原因也不难理解直流注入功率P和Q依赖于交流母线电压而交流母线电压又反过来由P和Q决定。当交流系统比较强短路容量大时这种反馈环比较稳定当交流系统很弱或者直流输电容量占系统比例很高时反馈环可能出现正反馈导致电压和注入功率交替震荡。处理这个问题的标准手段是引入松弛因子或低通滤波。具体做法是算完直流系统后不直接用本次的注入功率而是取本次和上次注入的加权平均P_new λ · P_current (1 − λ) · P_oldλ的取值范围通常在0.3到0.7之间我通常在0.5起步震荡明显就调小。另外还有一个容易被忽视的细节交流潮流求解器本身的内迭代收敛容差要设置得比外循环更严格。如果外循环收敛判据设为1E-4交流内迭代最好收敛到1E-6否则外循环可能迟迟无法收敛。这个道理就跟舍入误差累积一样每一层迭代都要给下一层流出足够的精度余地。4. 统一法与交替法的实战对比4.1 收敛性对比抛开理论直接看数值表现。我在一个包含3条直流线路的39节点测试系统上分别实现了统一法和交替法有几点观察值得写下来。统一法从平坦启动所有母线电压1.0相角0开始通常6到8次牛顿迭代就收敛到1E-8几乎不依赖直流系统的初值。但它的迭代次数会随系统重负荷程度增加而明显恶化特别是某些母线电压低于0.9时同一个初值下可能直接发散。这本质上是牛顿法的固有特性与是否包含直流系统无关。交替法在同样算例下内循环交流潮流每轮4到5次迭代外循环4到10次总计算量通常比统一法高50%到100%。不过在系统负荷较轻、直流耦合较弱时交替法的总耗时反而可能更低因为交流内迭代次数少而且直流子问题规模很小单次求解几乎不消耗时间。一个有意思的对比结果是统一法对“不可行运行点”更敏感。当直流控制目标无法满足时比如定电流值过大导致逆变侧触发角越过最小关断角限制统一法表现为雅各比矩阵奇异或迭代不收敛但现象不明显需要仔细看残差才能定位。交替法则不同外循环中直流子问题会直接报错错误信息更明确这对工程调试反而是个优势。4.2 开发成本与可维护性对比统一法的开发成本明显更高。最大开销在于扩展雅各比矩阵的交叉偏导计算。每增加一种控制方式就要推导一组新的偏导公式并编码验证。交替法没有这个烦恼直流模块是独立的交流模块完全复用新增控制方式只需要修改直流子系统的方程不影响交流部分。存储和计算资源方面统一法的扩展矩阵维数等于交流节点数乘以2再减去交流参考节点数然后加上直流变量个数。以一个交流节点数N500、直流变量数M10的系统为例统一法矩阵维数约1010交替法的交流矩阵维数约1000。差别看似不大但统一法的交叉块引入了额外的非零元素稀疏度会下降一些因子分解的计算量增长不能忽略。4.3 选型建议如果只做工程评估或者交流系统比较强、直流容量占比较低我建议直接选交替法开发速度快维护成本低出错也容易定位。如果做研究课题或者系统是弱交流系统、多端直流、含柔性直流的多点馈入结构就值得投钱做统一法。现在很多商业软件内核同时提供两种方法但是它们的底层实现和适用范围都有明确边界使用时务必看清楚文档里的说明。多端直流场景里交替法有一个天然劣势多个换流站之间的功率分配由直流网络决定而直流网络方程和每个换流站的注入功率强耦合外循环很容易出现“牵一发动全身”的震荡。统一法把整个直流网络方程一起求解自然避免了这个问题。柔性直流VSC-HVDC因为可以独立控制有功和无功情况稍有不同我后面单开一段说。5. 最优因子法给交直流潮流装一个收敛加速器5.1 最优因子法到底在优化什么潮流计算里最常见的发散场景不是方程写错了而是迭代初值太差导致牛顿法的修正量过大一步就把迭代点推到了方程的定义域之外。这在交直流潮流里更明显因为直流方程里含有cosα、cosγ这类三角函数α或γ一旦越界残差会变得非常离谱。最优因子法也叫最优乘子法的思路很简单牛顿法算出的方向Δx通常是对的但步长不一定非得是1。我们把每一步迭代改写为x_k1 x_k μ_k · Δx_k其中μ_k称为最优因子。与传统牛顿法固定μ1相比这一步的改动很小却能显著改善收敛鲁棒性。事实上普通潮流计算里很多发散现象并不是方向错而是步子迈得太大最优因子法就是专门解决这个问题的。5.2 最优因子的求取方法求μ_k有一个非常经典的目标函数。定义潮流方程的全残差为F(x)构造如下一元函数G(μ) 0.5 · Σ_i [ f_i(x_k μ · Δx_k) ]²目标就是在修正方向上找一个μ让G(μ)最小。把f_i在x_k处泰勒展开到二阶f_i(x_k μ · Δx_k) ≈ a_i b_i · μ c_i · μ²其中a_i f_i(x_k) b_i J_i(x_k) · Δx_k c_i 0.5 · Δx_kᵀ · H_i(x_k) · Δx_kH_i是第i个方程的海森矩阵。带入G(μ)并对μ求导得到一个关于μ的三次方程。实际实现时并不需要精确求这个三次方程的所有根只取0到2之间使G(μ)最小的那个实根即可。程序上可以用抛物线插值或者牛顿法快速迭代求解。工程上有一种更粗糙的近似做法是只保留一阶项即令c_i0此时G(μ)是关于μ的二次函数解析解为μ − Σ(a_i · b_i) / Σ(b_i²)这个近似的计算量微乎其微在某些场景下已经够用。但从我的测试来看保留二阶项的“完整版”在交直流潮流里效果明显好于一阶近似尤其当残差曲面比较陡峭时一阶近似给出的步长仍然偏大。5.3 在交直流潮流中的实践最优因子法可以直接嵌入统一法或交替法的交流牛顿迭代内部。实现时只需要在每次求出Δx之后多做一个函数调用计算μ_opt然后用μ_opt替换1.0更新变量。开销是一次额外的残差计算和少量向量内积相比雅各比矩阵填充和因子分解几乎可以忽略。我在交替法外循环振荡的算例里做过对比不加速情况下外循环迭代12次还在震荡在交流内迭代里加入最优因子法后交流内迭代有时会多花1次但外循环收敛到稳定点的次数降到了5次总耗时反而下降。最直接的价值体现在重负荷场景国网和南网的实际工程中很多节点电压接近临界值没有最优因子法保护的牛顿迭代动不动就在修正量上“翻车”加了之后至少不再轻易发散。另一个值得推荐的做法是把最优因子法用于“预测-校正”流程。交替法外循环收敛前每轮换流站的注入功率变化很大如果直接把交流潮流解到很严格精度是一种浪费。更聪明的做法是先用最优因子法配合宽松容差跑出粗略解再用全步长牛顿法进行最终精确收敛。在交直流互供比接近1:1的极端场景里这套组合策略能显著减少无效迭代。6. 工程实现中的常见问题与排查6.1 直流方程无解或不可行实际中经常会遇到直流子问题报无解的现象。最常见的原因是整流侧定电流值设置过大导致逆变侧关断角逼近甚至小于最小关断角限制。准稳态方程在物理上给出了一个最大传输功率点一旦超过方程本身仍然可能有数学解但cosγ会大于1或者γ变成负值显然不满足物理约束。排查时先把直流子问题单独拎出来固定交流电压用φ-试探法或者曲线扫描画出V_dr-I_d曲线看看目标工作点是否落在可行域内。更系统的做法是在直流求解器里加入不等式约束检查每次迭代后检查cosα和cosγ的取值超出范围就报错并给出建议的调整方向。这条建议项目实战里救了我很多次。6.2 交替法外循环震荡外循环震荡的表现是I_d或者P_dc在两个值之间来回跳交流电压也呈周期性波动。处理优先级依次是先检查收敛容差和滤波系数。把λ从1.0改到0.5往往立竿见影。其次检查直流控制方式是否正确。我遇到过逆变侧本来是定电压控制代码里写成了定电流控制导致直流系统产生了不存在的负阻尼。最后检查交流系统的短路比如果换流站接入点的短路比低于3就需要认真考虑加装无功补偿装置或者调整直流运行点了。6.3 初值选取的学问统一法对初值非常敏感。我的建议是不管系统多大都先用直流参数设计值做一次“冷启动试探”给定α15°、γ18°、I_d0.5倍额定值求解直流方程得到初始V_dr和V_di再回代得到交流注入功率用交流潮流算出的电压作为迭代初值。这个两步启动法几乎不会失败。交替法的初值敏感性相对低但有一点要特别注意直流系统初值必须与控制方式一致。定功率控制时初值I_d应该按照P_spec/V_dr估算而不是随意填一个额定值。6.4 代码实现里的几个隐藏坑换流站节点编号的排序会影响稀疏矩阵的填充顺序但对行列式的数值精度影响不大。真正的坑是单位制。直流方程里如果用有名值V_dr是kV级、I_d是kA级、R_c是Ω级三者相乘得到MW级量级差异尚可。但进入雅各比矩阵后不同变量的量级差异可能造成矩阵病态。建议全部换成标幺值基准功率取100MVA或系统基准交流电压基准取母线额定电压直流电压基准取额定直流电压电流基准由功率基值和电压基值推导。标幺值处理之后矩阵条件数普遍能改善一个数量级。另一个坑是换流变压器的分接头调节。部分工程潮流计算会考虑分接头自动调压这相当于增加了一个离散调节变量。统一法处理起来比较麻烦因为离散变量破坏连续可微性交替法可以通过外循环嵌套分接头迭代来处理。如果初期实现不考虑分接头务必在文档里写明假设避免后续误用。对于柔性直流VSC-HVDC的部分我忍不住多说几句。VSC换流站的有功和无功可以独立控制其准稳态方程与LCC完全不同更接近交流源模型。目前工程实践中VSC-HVDC的潮流计算普遍采用交替法把VSC站处理成可控PV或PQ节点控制目标直接嵌入交流潮流效果很好。统一法处理VSC时交叉偏导的推导会更复杂但优势在于能统一协调多个VSC之间的直流网络耦合。对规划阶段的交直流混合电网如果有两个以上VSC站我会毫不犹豫地选择统一法。最后再分享一个实际调试心得。我建议在任何交直流潮流程序里都加一个“诊断模式”每一轮迭代结束后把最大的5个残差对应的方程编号、变量名和数值输出到日志。这个功能花费不到半天时间却能极大缩短定位问题的周期。我的经验是90%的“不收敛”其实是方程编号错位、正负号反了或者控制方式写错诊断模式一眼就能看出来。另一个值得养成的习惯是拿标准算例验证程序。IEEE 14节点系统加一条单极直流线路是验证统一法最经典的组合。把直流功率设为零交直流潮流结果应当与纯交流潮流完全一致设置一个已知直流功率手动算一遍整流器和逆变器四个基本方程比对P_dr、P_di、V_dr、V_di的数值。这两步全过了程序再拿去跑大系统才靠谱。
返回列表