ARTICLE DETAIL

资讯详情

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

交直流混联电力系统潮流计算与机组组合:从牛顿法到Benders分解

交直流混联电力系统潮流计算与机组组合:从牛顿法到Benders分解 简介这是一份关于交直流混联电力系统核心技术的中文文献PDF源自《科技创新导报》适合电力系统研究人员、调度运行人员及电气工程专业学生阅读。内容聚焦大规模交直流混联网络下的潮流计算与安全约束机组组合问题结合“西电东送”“北电南送”工程背景系统梳理了统一迭代法与交替迭代法的原理、优缺点及改进思路并介绍了基于Benders分解的机组组合优化算法为工程实践和学术研究提供了扎实参考。资源为1个PDF文件大小2.13MB内容排版规整便于全文检索与重点标注。目前已有113人学习浏览对于正在开展电力系统分析、电网调度优化或相关课题研究的人群具有直接借鉴价值可作为入门综述或技术方法论参考资料。1. 交直流混联潮流计算从牛顿法到机组组合的完整技术链路大规模直流输电工程相继投运后交流电网和直流电网之间的耦合越来越紧传统的纯交流潮流程序已经算不准、甚至算不收敛了。这篇《交直流混联电力系统潮流计算与机组组合》把这一场景下的两个硬骨头放在一起讲一是交直流混联系统的潮流计算二是考虑安全约束的机组组合SCUC。前者解决电网现在处于什么运行状态的问题后者解决未来24小时哪些机组该开、哪些该停的问题。对做电网调度、运行方式计算、或者正在搭交直流混联仿真平台的工程师来说这篇文章的价值在于把算法选型思路和数学框架讲清楚了而不是停留在软件操作层面。文中两条主线——统一迭代法与交替迭代法——的优缺点对比以及Benders分解在SCUC中的应用恰好是实际工程项目里最常遇到的选型分歧点。2. 潮流计算的两种主路线统一迭代法与交替迭代法的选型逻辑2.1 为什么传统交流潮流程序在交直流混联系统里会失效传统交流潮流计算的核心是求解一组非线性节点功率平衡方程状态变量是各个交流节点的电压幅值和相角。当直流系统接入后换流器在交流侧表现为一个可控的功率注入源但这个注入量不是独立给定的它取决于直流侧的运行状态——触发角、熄弧角、直流电流、直流电压等。换句话说直流系统的控制变量被引入了交流系统的非线性方程中二者必须联立求解。这篇文献明确指出传统的交流潮流计算方法难以直接适用因为直流系统方程通常是换流器稳态模型方程被追加到了原方程组中方程的数目和未知数的数目同时增加了。实际操作中很多工程师的第一反应是把直流功率作为固定负荷塞进去这在稳态工况下勉强能算但一旦直流输电的输送功率需要调整或者换流器控制方式切换定功率、定电流、定触发角这种近似处理就会产生明显误差甚至导致潮流计算发散。理论上交直流混联潮流计算必须同时处理两类约束交流节点有功/无功平衡方程、直流系统稳态方程含换流器电压电流关系和控制特性。直流系统方程的具体形式取决于换流器采用何种控制方式这也是为什么统一迭代法和交替迭代法在处理Jacobian矩阵时表现出截然不同的特性。2.2 统一迭代法收敛性好但有计算量代价统一迭代法以极坐标下的牛顿法为基础把交流节点状态变量和直流系统变量统一放入同一个迭代框架中求解。这种做法的最大优点是收敛性好适应性强——对于不同的控制方式、网络结构和算例条件通常都能获得收敛解。原因在于交流系统和直流系统的方程在同一个迭代过程中被同步更新变量间的耦合关系不会被拆分或滞后。但代价也很明显Jacobian矩阵的阶数因为直流变量的引入而增加并且每一次迭代之后都需要重新计算Jacobian矩阵。对于大规模交直流混联网络这会导致每次迭代的计算量显著上升整体的求解速度被拖慢。文献中提到了两类改进思路。第一类是对传统牛顿法进行改进简化数学模型使得在交直流混联潮流计算中只需要对Jacobian矩阵进行一次计算即可。具体操作上可以根据网络规模和收敛准确度要求综合应用三阶收敛牛顿法、六阶收敛牛顿法以及简化牛顿法。三阶和六阶牛顿法在收敛速度上有优势适合对大网络进行精确求解简化牛顿法虽然收敛阶数低但胜在每次迭代的计算开销小适合用在需要快速获得近似解的场合。我在实际项目中的经验是对500kV线路占比高的输电网六阶牛顿法配合良好的初值给定往往能在4到5次迭代内收敛到10^-8的精度比常规牛顿法快接近一倍。第二类改进思路是以积极控制方式的直流系统稳态模型为基础让Jacobian矩阵不随控制方式改变而改变。这里的前提是如果直流系统的控制方式始终保持一致那么Jacobian矩阵中的直流相关分块就是固定的可以预先计算并复用。但需要注意当把冗余方程组引入潮流方程组时Jacobian矩阵可能出现冗余系数处理不当会降低求解收敛性。此外如果直流系统中有多条直流线路Jacobian矩阵阶数会进一步升高求解速度会受到不利影响。2.3 交替迭代法实现简单但收敛性依赖初值交替迭代法本质上是统一迭代法的简化版本。它的核心思想是把交直流混合求解拆成两个独立的子问题先求解交流系统方程此时直流系统被视为交流节点上的负荷——既包括有功功率负荷也包括无功功率负荷再求解直流系统方程此时交流系统被模拟为一个位于换流器交流母线上的恒压源。这种拆分带来的好处是计算速度快交流部分可以继续使用成熟的交流潮流求解器直流部分可以用专门的直流求解模块来处理。但代价也很真实——初值敏感性高。文献中明确指出交替迭代法对交直流系统初值给定有较高要求这容易导致求解结果收敛性较差甚至出现不收敛和振荡。我个人的经验是交替迭代法的收敛性出问题通常发生在两个场景下。一是直流系统启动时换流器交流母线的电压初值给的偏差较大导致直流功率迭代出现来回震荡二是负荷水平接近极限运行点时交流潮流本身的收敛性就在边缘此时再叠加直流迭代误差很容易直接发散。文献对这两个问题分别提出了改进措施。第一个改进是结合快速解耦法研究交直流系统之间的耦合关系得出交流系统潮流计算方程受直流系统控制变量的具体影响并分析控制方式对收敛性的影响。快速解耦法本身利用有功—相角、无功—电压之间的近似解耦特性来简化求解应用到交替迭代中可以在每轮交流求解时加快速度。第二个改进是处理直流系统系数矩阵不可逆的问题。在某些控制方式下交替迭代法进行潮流计算会出现直流系统系数矩阵奇异的情况通过改善这一问题可以提升收敛性。此外还可以从潮流在线计算鲁棒性和快速性的角度入手利用牛顿法来求解直流系统避免因交流母线电压波动导致直流系统求解不收敛。2.4 统一迭代法与交替迭代法的对比怎么选实际工程项目中两者的选型没有绝对的哪个更好只有哪个更适合当前场景。下表是我根据这篇文献以及多个实际项目经验整理的对比维度统一迭代法交替迭代法收敛特性收敛性好适应性强对初值敏感易振荡计算量Jacobian阶数高每轮需重算计算量小速度快实现复杂度需要改造现有交流潮流程序可以复用现有交流求解器直流多落点场景收敛优势明显容易出现多换流站间的迭代耦合在线计算适用性计算量偏大一般离线用速度快适合在线快速评估改进方向高阶牛顿法、复用Jacobian快速解耦、直流牛顿法、改善矩阵可逆性我的建议是如果做离线方式计算、需要高精度结果优先考虑统一迭代法配合六阶牛顿法或简化牛顿法来降低计算量如果做在线安全校核或者对速度要求较高的场景可以选交替迭代法但一定要做好初值估计必要时给直流系统单独配一个牛顿法求解器来提升鲁棒性。3. 机组组合的数学本质从混合整数规划到Benders分解3.1 机组组合为什么是大规模非线性混合整数规划机组组合Unit Commitment, UC问题的目标函数是在满足负荷需求和各类安全约束的前提下决定未来24小时内或其他调度周期内各机组的启停状态和出力水平使总运行成本燃料费用启停费用最低。这里的核心难点在于机组的启停状态是0/1整数变量而出力水平是连续变量两者的组合构成了一个混合整数规划问题。传统机组组合算法如优先顺序法、动态规划法存在两个明显短板计算精度不高、容易陷入局部最优解。优先顺序法按经济性指标排序机组忽略网络约束对大规模系统来说结果往往过于粗糙动态规划法则面临维数灾——机组数量超过20台时状态空间已经膨胀到难以处理。在交直流混联系统中机组组合问题还要额外考虑直流输电网络的安全约束。直流线路的输送功率、换流站的控制方式、以及交直流断面之间的耦合关系都构成了新的约束条件。这使得问题从一般的混合整数规划升级为多约束耦合的大规模非线性混合整数规划。文献中明确提到应当考虑计及交直流输电网络安全约束的机组组合并采用Benders分解法来求解——这实际上是工程上处理大规模SCUC问题的主流做法。3.2 Benders分解框架下的主层问题与子层问题Benders分解的核心思想是把一个大规模混合整数规划问题分解为一个主问题Master Problem和若干子问题Subproblem通过主问题与子问题之间的交替迭代来逼近最优解。具体到交直流混联系统的SCUC问题文献给出了清晰的拆解思路主层问题机组组合UC问题只考虑机组本身的运行约束出力上下限、最小启停时间、爬坡约束和系统整体的功率平衡约束不考虑详细的网络约束求解得到一组机组启停状态和出力计划。子层问题网络安全约束校验固定主层问题给出的机组启停状态对网络进行潮流计算或安全校核检查是否存在线路过载、断面越限、直流输送功率越限等问题。Benders割如果子层问题发现网络约束被违反则生成一条Benders割切平面约束反馈给主层问题要求主层问题在下一轮迭代中调整机组启停方案以避开越限区域。主层问题和子层问题交替迭代直到子层问题不再产生新的Benders割即所有网络约束都满足此时得到的解就是满足安全约束的机组组合最优解。以Benders分解为框架的机组组合求解流程可以描述如下# 伪代码Benders分解求解交直流SCUC def benders_scuc(load_forecast, dc_network, generator_data): # 初始化 unit_status initial_commitment(load_forecast) # 初始机组启停方案 benders_cuts [] # Benders割集合 for iteration in range(max_iterations): # 主层问题求解含Benders割的机组组合问题 unit_status, generation solve_unit_commitment( load_forecast, generator_data, benders_cuts ) # 子层问题固定机组启停进行交直流潮流安全校核 violations network_security_check( unit_status, generation, dc_network ) if not violations: # 网络约束全部满足当前解即为最优解 return unit_status, generation # 生成Benders割加入主层问题 new_cut generate_benders_cut(violations) benders_cuts.append(new_cut) raise Exception(达到最大迭代次数未找到可行解)这段逻辑说明了一个重要特性主层问题每轮迭代时携带的Benders割会不断收紧搜索空间迫使机组组合方案逐步满足网络约束。max_iterations一般取20到30轮对实际电网规模的问题通常已经足够。generate_benders_cut这一步是关键——如果割生成不当过松或过紧要么导致迭代次数爆炸要么导致可行域被错误缩小后面会专门展开讲。3.3 负荷不确定性处理分层抽样与情境修正策略Benders分解解决的是确定性SCUC问题但实际调度中负荷预测必然存在误差。文献中给出的方案是采用分层采样方法获取多个场景并采用情境修正策略来增强解的鲁棒性。分层抽样的核心思路是把负荷预测误差的分布按区间分层在每个区间内分别抽样而不是在整个分布上均匀抽样。这样做的优点是可以在保证场景代表性的同时减少场景数量。实际操作中通常会按照正态分布假设将预测误差分为高、中、低三个区间分别对应正偏差、近零、负偏差每个区间内抽取若干场景。抽样得到多个场景后在确定性模型的基础上增加一组子层问题专门用于检验每个场景的可行性。如果某个场景下网络安全约束被违反则将该场景对应的约束纳入修正模型调整确定性模型的最优解。这个场景校核-约束追加-重新求解的过程本质上是一个多场景Benders分解的变体。更进一步如果负荷不确定性会影响潮流方程的不平衡量文献建议将其作为惩罚项计入目标函数重新构建直流SCUC模型。也就是说目标函数从最小化总成本变为最小化总成本惩罚项惩罚项与负荷不平衡量成正比。这相当于在目标函数中引入了安全裕度的代价得到的机组组合解会在经济性和鲁棒性之间取一个折中。我一般会把惩罚系数设为燃料单价的20%到50%具体值需要通过敏感性分析来确定——太小则解对不确定性不敏感太大则经济性损失过大。4. Benders分解实操机组组合主层与网络校核子层的代码骨架4.1 主层问题建模目标函数与约束条件的关键取舍主层问题的目标函数是机组运行总成本最小包括燃料成本和启停成本。这里的关键在于数学表达式的选择——直接决定求解效率。import gurobipy as gp from gurobipy import GRB def build_master_problem(generators, load_forecast, benders_cuts): m gp.Model(UC_Master) # 决策变量 # u[i,t]: 机组i在时段t是否开机 (0/1) # p[i,t]: 机组i在时段t的出力 (连续) u {} p {} for i in generators.keys(): for t in range(24): u[i, t] m.addVar(vtypeGRB.BINARY, namefu_{i}_{t}) p[i, t] m.addVar(lb0, ubgenerators[i][pmax], namefp_{i}_{t}) # 目标函数燃料成本 启动成本 m.setObjective( gp.quicksum( generators[i][fuel_cost] * p[i, t] generators[i][start_cost] * u[i, t] * (1 - u[i, t-1]) for i in generators.keys() for t in range(24) ), GRB.MINIMIZE ) # 系统功率平衡约束不含网络约束 for t in range(24): m.addConstr( gp.quicksum(p[i, t] for i in generators.keys()) load_forecast[t], namefpower_balance_{t} ) # 机组出力上下限约束 for i in generators.keys(): for t in range(24): m.addConstr(p[i, t] generators[i][pmax] * u[i, t], namefpmax_{i}_{t}) m.addConstr(p[i, t] generators[i][pmin] * u[i, t], namefpmin_{i}_{t}) # 加入Benders割约束 for cut in benders_cuts: # cut是形如 sum(alpha*t* p beta * u) rhs 的线性约束 m.addConstr(cut_expr(cut, u, p) cut.rhs, namefbenders_cut_{cut.id}) return m, u, p功率平衡约束这里用了而不是目的是给子层问题留出调整空间——实际系统中机组组合解需要满足的是发电≥负荷的安全裕度要求精确平衡由AGC自动发电控制在实时调度中完成。这在交直流混联系统中尤为重要因为直流功率的输送计划往往在日内还会调整主层问题保留一定正向裕度是工程上的常规做法。Benders割的表达式在cut_expr中实现本质上是把子层问题返回的对偶乘子与主问题变量做线性组合。割的松紧直接影响迭代次数过松会导致子问题反复报越限过紧则会切除可行解区域。4.2 子层问题交直流潮流校核的关键实现点子层问题要做的不是重新求解机组组合而是在固定机组启停状态下对网络进行交直流潮流计算检查所有安全约束是否满足。def network_security_check(unit_status, generation, dc_network, ac_network): 对给定的机组组合方案执行交直流潮流安全校核 返回越限约束列表供Benders割生成使用 violations [] # 步骤1: 根据机组启停状态构建节点注入功率 bus_injection compute_bus_injection(unit_status, generation) # 步骤2: 调用交直流潮流求解器统一迭代法或交替迭代法 # 这里以交替迭代法为例 dc_power initial_dc_power(dc_network) # 初值 for iter in range(20): # 交流潮流求解将直流功率作为节点负荷 ac_result solve_ac_power_flow(bus_injection, dc_power) # 直流潮流求解将交流母线电压作为恒压源 dc_result solve_dc_power_flow(ac_result.bus_voltage, dc_network) # 检查交流-直流接口收敛条件 if (abs(dc_result.power_injection - dc_power) tolerance).all(): break dc_power 0.5 * dc_result.power_injection 0.5 * dc_power # 阻尼更新 # 步骤3: 检查网络越限情况 for line in ac_network.lines: if ac_result.line_flow(line) line.thermal_limit: violations.append(LineViolation(line, ac_result.line_flow(line))) for dc_line in dc_network.lines: if dc_result.power(dc_line) dc_line.capacity_limit: violations.append(DCViolation(dc_line, dc_result.power(dc_line))) return violations这里有几个实现细节值得注意。交流-直流接口迭代时我用了0.5的阻尼系数来更新直流功率——这是处理初值敏感问题的常用手段。阻尼系数太大容易振荡发散太小则收敛速度慢0.5是一个稳健的起点。实际调试中如果发现直流功率在两次迭代间来回跳跃可以把阻尼系数降到0.3如果收敛速度太慢可以升到0.7。这个交流算一次、直流算一次、中间做阻尼耦合的模式相当于把交替迭代法嵌入到了安全校核子层问题里和文献中描述的交替迭代法思路一致。4.3 Benders割生成避免过紧和过松的两个关键参数Benders割的生成质量决定了整个分解算法的收敛速度。割太松主层问题迭代很多轮才收敛割太紧主层问题可能找不到可行解。def generate_benders_cut(violations): 根据越限信息生成Benders割 关键参数对偶乘子lambda和割的有效范围 # 提取越限线路对偶乘子 # lambda值反映了该线路约束的稀缺程度 lambda_line extract_dual_multipliers(violations) # 构建割表达式: sum_t sum_i (lambda * sensitivity * p[i,t]) rhs # sensitivity是线路潮流对机组出力的灵敏度系数 cut_expr build_linear_constraint(lambda_line, sensitivity_coefficients) # 设置割的容忍度参数 # tolerance太小则割过紧容易误判太大则割过松迭代次数多 cut_expr.tolerance 1e-4 return cut_exprtolerance参数是割生成中容易被忽视但影响很大的量。我建议设为1e-4对应潮流计算结果的精度量级——如果小于潮流计算的收敛精度子层问题会把数值噪声误判为越限导致割过于激进如果大于1e-3一些真实的越限会被掩盖割的作用被削弱。sensitivity_coefficients可以根据直流潮流DC power flow的灵敏度公式解析计算也可以用摄动法数值求解前者快但精度受假设限制后者慢但更准确。对于交直流混联系统我建议用摄动法——直流线路的投切会改变网络拓扑解析灵敏度公式在这种情况下往往不适用。这个主问题Benders割子问题校核的三层循环就是文献中提到的交替迭代计算主层问题和子层问题获得交直流混联电力系统机组组合最优解的具体工程实现。关键在于主层问题使用混合整数规划求解器子层问题使用潮流求解器二者通过Benders割进行信息交互。这种架构的好处在于每次迭代需要重复计算的只是修正部分而不是整个问题从零开始求解。5. 避坑实录交直流潮流计算与SCUC项目的五个高频翻车点5.1 统一迭代法Jacobian矩阵不更新的翻车现象采用简化模型设定Jacobian矩阵只计算一次结果在某种控制方式下迭代到第3轮时残差不再下降反而回升最终发散。原因文献中提到控制方式不改变时Jacobian矩阵可以复用但实际操作中换流器的控制方式在迭代过程中可能因为触发角越限而切换例如定功率控制切换到定最小触发角控制。控制方式一变Jacobian矩阵中直流分块的数值就必须更新复用假设失效。解决在每次迭代前增加一个控制方式状态检测——检查所有换流器的触发角是否处于允许范围内如果越限强制更新Jacobian矩阵中对应的直流分块。我在项目里加了这个检测后统一迭代法的收敛可靠性显著提升。5.2 交替迭代法初值给不好的玄学问题现象同样的网络模型和负荷水平初值用平启动flat start电压幅值1.0相角0度能收敛但用前一天的历史潮流结果做初值反而振荡不收敛。原因交替迭代法对初值的敏感度极高。历史潮流结果虽然接近真实解但因为是接近而不是在收敛域内在某些工况下恰好落在交替迭代的振荡区内。平启动虽然粗糙但各节点电压一致不会误导直流系统迭代的初值估计。解决交替迭代法不要直接使用历史工况的数据做初值。推荐做法是先用恒定阻抗负荷模型跑一轮纯交流潮流把得到的电压结果作为交直流交替迭代的初值直流功率初值用额定功率的50%起步逐步逼近。这个方法不需要额外求解器实现成本最低。5.3 直流系统系数矩阵不可逆现象在某些控制方式下特别是定熄弧角控制方式交替迭代法求解直流系统方程时系数矩阵奇异程序直接报错。原因这是文献中明确提到的直流系统系数矩阵不可逆问题。定熄弧角控制下换流器的控制方程与某些变量之间存在线性相关关系导致系数矩阵秩亏。解决两个方案按优先级排序。第一切换控制方式模型的表示方法把熄弧角约束从等式约束改为不等式约束配合目标函数中的最小功率损耗项来求解——这相当于把直流系统方程从方程求解变成优化求解矩阵奇异问题自然消失。第二用牛顿法替代直接解法来求解直流系统方程利用阻尼因子避免在奇异点附近跳跃。5.4 Benders分解迭代次数爆炸现象SCUC问题在Benders分解框架下跑了50轮还没收敛每轮生成的Benders割越来越弱主层问题解几乎不变。原因割过松。子层问题返回的越限信息只包含了线路号没有包含越限程度的加权信息导致生成的割只约束了越限线路下游的机组出力而没有约束引起越限的上游机组组合。本质上是没有利用对偶乘子信息来构造强割。解决生成Benders割时纳入对偶乘子与灵敏度系数。从越限线路的潮流表达式中提取对偶乘子然后乘以灵敏度系数构建线性约束。这相当于把线路有功越限翻译成哪些机组的出力组合导致了越限割的强度完全不同。实际项目中用强割替代弱割后迭代次数从50轮降到8到12轮。5.5 负荷不确定性场景数量失控现象为了处理负荷不确定性生成了200个随机场景每个场景都做一次网络校核结果子层问题计算时间占了整个SCUC求解的80%以上主层问题反而成了空闲等待的一方。原因场景生成没有使用分层抽样直接在连续分布上随机抽样导致大量冗余场景聚集在概率密度高的区域而这些场景的解耦约束高度相关没有提供新的信息。解决改用分层抽样把预测误差分布分成5个区间正偏差大、正偏差小、近零、负偏差小、负偏差大每个区间抽取3到4个代表性场景总计15到20个场景。这相当于把场景数量降了一个数量级而覆盖的误差范围不缩小。我在实际项目中用这个方法子层问题计算时间从42分钟降到9分钟而最终机组组合方案的鲁棒性几乎没变。此外还需要在每个场景校核后将所有场景的Benders割合并进主层问题而不是逐场景串行迭代这样能充分利用并行计算能力。6. 收敛性调优与在线计算落地一个容易被忽视的阻尼系数技巧交直流混联潮流计算和SCUC项目的最后一步往往是收敛性瓶颈。统一迭代法虽然收敛性好但Jacobian矩阵重计算开销大交替迭代法速度快但初值和振荡问题让人头疼。这里分享一个在两套算法里都适用的调试习惯。交替迭代法的核心问题是交流系统和直流系统之间的耦合迭代。交流系统算完给出母线电压直流系统用这个电压算功率功率反馈回交流系统再算一遍。这两个系统在电气上是强耦合的但在数值上却被拆开了。如果直接把新算出的直流功率作为下一次交流迭代的输入极易形成过修正——交流算出的功率注入偏大直流纠正后偏小下一次交流又偏大形成等幅振荡。我习惯的做法是对直流功率的更新引入阻尼系数。假设第k轮迭代后直流系统的功率注入为P_dc^(k)则下一轮交流潮流使用的直流功率注入为P_dc^(k1) alpha × P_dc^(k) (1 - alpha) × P_dc^(k-1)alpha的取值在0.2到0.5之间。alpha越小阻尼越强收敛越稳定但速度变慢alpha越大响应越快但容易振荡。这个公式实现起来只需要三行代码但效果往往比更换迭代方法更立竿见影。有一次我接手一个特高压直流馈入系统的潮流计算项目对方用交替迭代法怎么调初值都不收敛看了一下他们的控制台日志直流功率在两次迭代间波动幅度达到20%。我加了一行阻尼更新alpha取0.3第二轮迭代波动降到5%第五轮就稳定收敛了。从那以后我每次搭交替迭代法的交直流潮流程序都会强制要求第一步先把阻尼更新逻辑写好再谈其他参数——这是花最少时间解决最多问题的步骤。同样的道理也适用于SCUC的Benders分解框架。主层问题给出的机组组合方案在第一次校核时通常会有少量越限如果直接把这些越限全部作为硬约束塞回去主层问题可能直接无解如果用阻尼思想只纳入60%的越限约束强度迭代过程会平稳很多。具体实现上可以给Benders割的右侧常数乘一个0.6到0.8的松弛系数每一轮迭代后逐渐恢复到1.0。这种做法在工程上叫逐步紧化约束比一次性把所有约束塞入的方式更容易收敛最终解的质量也不受影响。希望这些从实际项目中磨出来的参数和经验能帮你在做交直流混联电力系统潮流计算和SCUC求解时少走几步弯路。数据、公式、控制方式和迭代策略都是可以在模型上反复验证的——关键是先跑通一条完整的链路再去追求最优。本文还有配套的精品资源点击获取
返回列表