ARTICLE DETAIL

资讯详情

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

电网规划核心技术:直流潮流模型与三类规划方法实战解析

电网规划核心技术:直流潮流模型与三类规划方法实战解析 简介这份PPT课件面向电力系统及其自动化专业的本科生、研究生与电力规划从业者系统讲解电网规划的核心理论与工程方法帮助读者建立从负荷预测、电源规划到网架方案决策的完整知识框架。资源为单个pptx文件压缩包约3.15MB内容以讲义幻灯片形式组织便于课堂讲授与自学查阅。课件围绕电网规划概述、直流潮流模型、输电线路输送能力、电压等级选择、变电站站址与容量选择、导线截面选择与校验以及网络结构规划的常规方法、优化规划方法与启发式规划方法逐层展开并重点剖析直流潮流模型如何将非线性潮流问题线性化以适应规划阶段大量反复的过负荷校验计算。目前已有80人学习适合需要夯实电网规划理论、理解交直流输电适用边界与规划方法优缺点的读者参考。1. 电网规划到底在规划什么从一份 PPT 讲透主网网架决策链很多人第一次接触电网规划以为就是画几条线、标几个变电站真到项目上才发现完全不是这么回事。这份《电力系统规划与可靠性-3电网规划.pptx》把整条决策链拆得很清楚以负荷预测和电源规划为基础解决在何时、何地投建或改造何种类型的输电线路及其回路数问题。说白了它要回答的是“钱花在哪、线架在哪、什么时候架”这三个问题而且要在满足技术指标的前提下让总投入最少。它适合电网规划岗的入门者、做输电网扩展研究的同学以及需要快速补齐规划方法论的从业者。整份 PPT 覆盖了直流潮流模型、电压等级选择、变电站站址与容量、导线截面校验以及传统、优化、启发式三类规划方法是一条完整的主网规划技术路线。2. 直流潮流模型把非线性潮流掰成线性方程的那几步简化2.1 为什么规划阶段不用牛顿-拉夫逊法稳态分析课上学的牛顿-拉夫逊法和高斯-塞德尔法都是交流潮流计算方法需要多次迭代求解非线性方程组精度高但计算量大。规划阶段要做的是大量过负荷校验同一个网络结构可能要反复算几十上百次潮流而且原始资料本身就不精确用高精度方法属于杀鸡用牛刀。直流潮流模型把非线性电力潮流问题简化为线性电路问题牺牲一点精度换来计算速度的大幅提升在输电网规划里这个交换是划算的。核心逻辑在于电网规划最关心的是有功功率从电源处怎么输送到负荷处架线方案首先要保证有功潮流的输送能力。输电线上的无功潮流相对较小近似认为它对有功潮流分布没有影响。基于这个判断只反映有功潮流分布的直流潮流模型就成立了。2.2 四个简化条件与推导过程从交流潮流方程到直流潮流方程PPT 里列了四个简化条件每一步都有明确的物理依据简化条件数学表达物理含义电阻远小于电抗Rij Xij取 Gij ≈ 0高压输电线路的电阻通常只有电抗的几分之一到十几分之一相角差不大cosθij ≈ 1sinθij ≈ θij输电线路两端电压相角差一般小于 10 度节点电压标幺值为 1Ui ≈ 1规划阶段假定各节点电压在额定值附近运行忽略接地支路和非标准变比tij ≈ 1简化变压器模型对接地支路的影响把以上条件代入节点有功功率注入的交流潮流方程经过推导可以得到直流潮流方程的核心形式import numpy as np def dc_power_flow(B_matrix, P_injection, slack_bus0): 直流潮流计算P B * theta B_matrix: 节点导纳矩阵的虚部部分n x n已去掉平衡节点 P_injection: 节点有功注入向量n-1 维不含平衡节点 slack_bus: 平衡节点编号 返回各节点电压相角弧度 n B_matrix.shape[0] # 去掉平衡节点对应的行和列 mask np.ones(n, dtypebool) mask[slack_bus] False B_reduced B_matrix[np.ix_(mask, mask)] P_reduced P_injection[mask] # 求解线性方程组 B * theta P theta_reduced np.linalg.solve(B_reduced, P_reduced) # 还原完整相角向量平衡节点相角设为 0 theta np.zeros(n) theta[mask] theta_reduced return theta def branch_active_power(theta, branch_from, branch_to, x_branch): 根据相角差计算支路有功功率 theta: 节点相角向量 branch_from, branch_to: 支路两端节点编号数组 x_branch: 支路电抗数组 返回各支路有功功率 P_branch (theta[branch_from] - theta[branch_to]) / x_branch return P_branch这段代码的逻辑很直接直流潮流方程 P Bθ 是一个线性方程组B 矩阵由网络拓扑和支路电抗决定P 是节点注入有功功率θ 是待求的节点电压相角。求解时把平衡节点去掉解完再还原。支路有功功率等于两端相角差除以支路电抗这也是直流潮流的核心结论。参数说明B_matrix 的构造方式是 Bii Σ(1/xij)Bij -1/xij其中 xij 是支路 i-j 的电抗。P_injection 的正负号约定为发电机注入为正负荷为负。slack_bus 一般选主调频厂或大容量机组所在的节点。2.3 节点导纳矩阵的组装与自导纳互导纳关系直流潮流模型里节点导纳矩阵 Y 的组成元素需要特别注意。互导纳 Yij -yij自导纳 Yii Σyij其中 yij 1/zijzij Rij jXij。在直流潮流简化下只保留电抗部分所以 B 矩阵的元素就是 1/xij 的组合。PPT 里特别强调了一个关系节点导纳矩阵 Y 中每一行的对角元素 Yii 等于同一行其他非对角元素 Yij 之和的负值。这个性质在组装 B 矩阵时非常有用可以用来校验矩阵是否组装正确。我一般会写一个校验函数组装完 B 矩阵后检查每一行是否满足这个关系不满足就说明有支路参数填错了。def build_b_matrix(n_bus, branches): 组装直流潮流的 B 矩阵 n_bus: 节点数 branches: 支路列表每个元素为 (from_bus, to_bus, x) 返回B 矩阵n_bus x n_bus B np.zeros((n_bus, n_bus)) for from_bus, to_bus, x in branches: b 1.0 / x B[from_bus, from_bus] b B[to_bus, to_bus] b B[from_bus, to_bus] - b B[to_bus, from_bus] - b # 校验对角元素应等于同行非对角元素之和的负值 for i in range(n_bus): off_diag_sum sum(B[i, j] for j in range(n_bus) if j ! i) assert abs(B[i, i] off_diag_sum) 1e-10, f节点 {i} 的 B 矩阵行不满足自导纳关系 return B这个校验步骤看起来简单但在实际项目中能省掉大量排查时间。我遇到过因为支路电抗填成标幺值而基准值不统一导致 B 矩阵对角元素关系不满足的情况如果没有这个校验可能要等到潮流结果明显不合理才会发现。3. 从电压等级到导线截面电网规划的参数选择与校验流程3.1 电压等级选择的经济性判据电网电压等级的选择不是拍脑袋决定的它直接影响到输电能力和建设成本。PPT 里给出的原则是在输电方式上我国现阶段仍以交流输电为主只有在 500kV 及以上电压时才考虑直流输电的必要性。这个判断背后是经济性比较——直流输电的换流站成本高只有输送距离足够长、输送容量足够大时直流线路节省的投资才能抵消换流站的额外成本。实际规划中电压等级的选择通常参考输电容量和输送距离的对应关系。常见做法是根据规划年度的负荷预测结果确定各分区之间的功率交换需求然后对照不同电压等级的输电能力上限选择满足需求且投资最省的电压等级组合。这里有一个经验数据220kV 线路的经济输送容量一般在 100-200MW500kV 线路在 500-1000MW但这个数值会随线路长度和走廊条件变化。3.2 变电站站址与容量选择的操作步骤变电站的站址和容量选择是电网规划里最需要现场经验的部分。PPT 里把变电站布局和规模确定列为电网规划的主要内容之一但具体怎么做需要结合负荷分布和地理条件。我一般按以下步骤推进第一步根据负荷预测结果在地理接线图上标出各负荷点的位置和大小。负荷点通常按行政区或供电分区聚合避免过于分散导致计算量爆炸。第二步用重心法或聚类方法初步确定变电站的候选站址。重心法就是按负荷大小加权求地理重心聚类方法可以用 K-means 把相邻负荷点归并到同一个供电区域。第三步对每个候选站址根据供电半径和容载比要求确定变电站容量。容载比一般取 1.8-2.2具体数值看地区负荷增长速度和可靠性要求。第四步校验站址的可行性——是否落在基本农田、是否靠近水源保护区、进出线走廊是否通畅。这一步经常被忽略但实际项目中因为站址不可行而返工的情况并不少见。3.3 架空送电线路导线截面的选择与校验导线截面的选择要同时满足三个条件发热条件、电压损耗条件和机械强度条件。PPT 里把导线截面的选择和校验单独列为一节说明这是规划中必须逐条线路落实的工作。发热条件校验的核心是确保导线在最大输送功率下的载流量不超过允许值。常见做法是查导线型号的载流量表然后根据规划年度的最大输送功率反算需要的截面。电压损耗条件校验是计算线路在最大负荷方式下的电压降落确保末端电压在允许范围内。对于 220kV 及以上线路电压损耗一般控制在 5% 以内对于 110kV 线路可以放宽到 7%-10%。机械强度条件主要是最小截面要求比如 110kV 线路导线截面一般不小于 150mm²220kV 不小于 240mm²。这个条件在山区或大跨越段尤其重要。def check_conductor(current, rated_current, voltage_drop, max_drop, min_section, actual_section): 导线截面三项校验 current: 最大输送电流A rated_current: 导线允许载流量A voltage_drop: 计算电压损耗% max_drop: 允许电压损耗% min_section: 机械强度要求的最小截面mm² actual_section: 实际选用截面mm² 返回校验结果字典 result {} result[thermal] current rated_current result[voltage] voltage_drop max_drop result[mechanical] actual_section min_section result[all_pass] all(result.values()) if not result[thermal]: print(f发热校验不通过电流 {current}A 允许载流量 {rated_current}A需增大截面) if not result[voltage]: print(f电压损耗校验不通过{voltage_drop}% 允许值 {max_drop}%需增大截面或调整无功补偿) if not result[mechanical]: print(f机械强度校验不通过截面 {actual_section}mm² 最小要求 {min_section}mm²) return result这个校验函数可以直接嵌入规划流程对每条候选线路自动执行。参数说明rated_current 需要根据导线型号和环境温度查表获取voltage_drop 需要先做潮流计算得到min_section 根据电压等级和线路类型确定。4. 三类规划方法的选型逻辑传统、优化与启发式怎么选4.1 传统规划方法的适用边界传统规划方法以方案比较为基础参与比较的几个方案由规划人员根据经验提出。优点是方法简单易操作不需要复杂的数学模型和计算工具。缺点是方案的拟定完全依赖规划者的经验主观性大所提出的若干个可行方案很可能不包含理论上的最优方案。我个人的经验是传统方法适合网络规模小、规划人员经验丰富的场景。比如一个县级电网的年度改造项目线路条数不多规划人员对当地负荷分布和电网结构非常熟悉用传统方法快速比选几个方案就能满足要求。但如果是省级主干网架规划涉及几百个节点和上千条候选线路传统方法就力不从心了。4.2 优化规划方法的建模三要素与求解困难优化规划方法运用运筹学中的规划理论将电网规划的实际问题描述为数学优化模型包含变量、目标函数、约束条件三个要素。变量通常是待选线路的投建状态0-1 变量和潮流分布目标函数是总投入费用最小约束条件包括功率平衡约束、线路输送容量约束、节点电压约束等。理论上优化规划方法可以自动形成规划问题的全部可能存在方案并一定包含最优方案。但实际应用中面临两个困难一是电网规划的变量数很多、约束条件复杂求解困难在建立数学模型时不得不做大量简化二是有些规划决策因素难以用数学模型表达比如走廊协调难度、政策限制、环境约束等导致数学上的最优解未必是符合工程实际的最优方案。常见做法是把优化规划方法作为方案生成工具用它算出一组候选方案再由规划人员结合工程实际做筛选和调整。这样既利用了数学优化的全局搜索能力又保留了人工决策的灵活性。4.3 启发式规划方法的灵敏度分析机制启发式规划方法以直观分析为依据通常基于系统某一性能指标对可行路径上的一些线路参数进行灵敏度分析根据一定原则选择最有效的线路加入系统进行网络扩展。灵敏度分析的核心思路是计算每条候选线路对系统性能指标的改善程度然后按改善程度从大到小排序优先选择改善效果最明显的线路。常用的性能指标包括过负荷程度、电压偏差、网络损耗等。def heuristic_expansion(candidates, base_network, performance_metric, max_lines): 启发式网络扩展按灵敏度排序逐条加入线路 candidates: 候选线路列表每个元素为 (from_bus, to_bus, x, cost) base_network: 基础网络数据 performance_metric: 性能指标计算函数输入网络返回指标值 max_lines: 最大新增线路数 返回选中的线路列表 selected [] current_network base_network.copy() base_metric performance_metric(current_network) for _ in range(max_lines): best_line None best_improvement 0 for line in candidates: if line in selected: continue # 临时加入该线路计算性能改善 test_network current_network.copy() test_network.add_branch(line) new_metric performance_metric(test_network) improvement base_metric - new_metric if improvement best_improvement: best_improvement improvement best_line line if best_line is None: break selected.append(best_line) current_network.add_branch(best_line) base_metric performance_metric(current_network) print(f第 {len(selected)} 条选中线路{best_line}性能改善 {best_improvement:.4f}) return selected这段代码的逻辑是贪心策略每次从候选线路中选一条对性能指标改善最大的加入网络重复直到达到最大线路数或没有可改善的线路。参数说明performance_metric 可以定义为过负荷线路总容量、网络总损耗或电压偏差平方和具体用哪个指标取决于规划关注的重点。启发式方法的缺点是难以选择既容易计算又能真正反映规划问题实质的性能指标并且网络规模较大时指标对于一组方案差别都不大难以优化选择。5. 避坑与排查电网规划实操中的五个血泪教训5.1 直流潮流结果与交流潮流偏差过大现象用直流潮流算出的线路有功功率与交流潮流结果相差超过 15%导致过负荷判断失误。原因直流潮流的简化条件在重载线路或电压偏离额定值较大的情况下不成立。特别是当线路两端相角差超过 10 度时sinθ ≈ θ 的近似误差急剧增大。解决对直流潮流筛选出的过负荷线路用交流潮流做二次校验。如果偏差超过 10%需要检查该线路的负载率和电压水平必要时调整规划方案。5.2 节点导纳矩阵组装时遗漏接地支路现象潮流计算不收敛或者平衡节点注入功率异常大。原因组装 B 矩阵时只考虑了输电线路遗漏了变压器接地支路和并联电容电抗。虽然直流潮流简化下接地支路影响较小但在某些网络结构中忽略它们会导致 B 矩阵奇异。解决组装 B 矩阵前先列出所有支路包括变压器支路和接地支路逐条确认是否纳入。对于变压器非标准变比在直流潮流中一般取标幺值 1但需要在文档中记录这个简化。5.3 电压等级选择时忽略走廊条件现象规划方案在技术上可行但实际建设中因为走廊无法落实而被迫修改。原因电压等级选择时只考虑了输电容量和距离没有核实线路走廊的可行性。高电压等级线路对走廊宽度的要求更高在城市建成区或山区可能无法满足。解决在电压等级比选阶段就加入走廊可行性评估对每个候选方案标注走廊获取难度。常见做法是准备一个走廊难度系数表把规划方案按难度分级优先选择难度低的方案。5.4 导线截面校验只做发热条件现象线路投运后发现末端电压偏低或者导线在覆冰条件下发生断线。原因只校验了发热条件忽略了电压损耗条件和机械强度条件。发热条件决定的是导线能承受的最大电流但电压损耗决定的是电能质量机械强度决定的是安全裕度。解决建立三项校验的标准化流程每条线路必须同时通过发热、电压损耗、机械强度三项校验才能进入下一阶段。我一般会做一个校验清单逐项打勾确认。5.5 启发式规划的性能指标选择不当现象启发式方法选出的扩展方案与人工经验方案差异很大或者不同候选线路的灵敏度指标差别很小难以排序。原因性能指标没有真正反映规划问题的实质。比如用网络总损耗作为指标在负荷分布均匀的网络中各候选线路对损耗的改善差别不大导致排序困难。解决根据规划阶段选择不同的性能指标。在解决过负荷问题时用过负荷线路总容量作为指标在解决电压问题时用电压偏差平方和作为指标在解决可靠性问题时用负荷削减量作为指标。必要时可以同时用多个指标做综合评估。6. 把规划方案从 PPT 落到工程一个灵敏度排序的实操技巧前面讲了直流潮流模型和三类规划方法最后落到一个具体技巧上怎么用灵敏度排序快速筛选候选线路。这个技巧在省级电网规划中特别实用因为候选线路动辄几百条不可能每条都做详细计算。我的做法是分两轮筛选。第一轮用直流潮流做快速扫描计算每条候选线路对过负荷指标的改善程度按改善程度排序取前 20% 进入第二轮。第二轮用交流潮流做详细校验同时考虑电压约束和暂态稳定约束最终确定推荐方案。def two_stage_screening(candidates, base_network, dc_metric, ac_metric, top_ratio0.2): 两轮筛选直流快速扫描 交流详细校验 candidates: 候选线路列表 base_network: 基础网络 dc_metric: 直流潮流性能指标函数 ac_metric: 交流潮流性能指标函数 top_ratio: 第一轮保留比例 返回最终推荐线路列表 # 第一轮直流潮流快速扫描 dc_scores [] for line in candidates: test_network base_network.copy() test_network.add_branch(line) score dc_metric(test_network) dc_scores.append((line, score)) dc_scores.sort(keylambda x: x[1], reverseTrue) top_count max(1, int(len(candidates) * top_ratio)) first_round [line for line, _ in dc_scores[:top_count]] print(f第一轮直流扫描{len(candidates)} 条候选保留 {top_count} 条) # 第二轮交流潮流详细校验 ac_scores [] for line in first_round: test_network base_network.copy() test_network.add_branch(line) try: score ac_metric(test_network) ac_scores.append((line, score)) except Exception as e: print(f线路 {line} 交流校验失败{e}) ac_scores.sort(keylambda x: x[1], reverseTrue) final [line for line, _ in ac_scores] print(f第二轮交流校验{len(first_round)} 条候选通过 {len(final)} 条) return final这个两轮筛选的逻辑是直流潮流计算速度快适合做大规模初筛交流潮流计算精度高但速度慢适合做小规模详校。参数说明top_ratio 一般取 0.2-0.3具体看候选线路总数和计算资源。dc_metric 可以用过负荷线路总容量ac_metric 可以用综合成本或可靠性指标。从那以后我每次做电网规划都强制走一遍“直流初筛 交流详校”的流程再急的项目也不跳过。这个习惯帮我避免了好几次因为直流潮流精度不足而误判过负荷的情况。希望帮到你。本文还有配套的精品资源点击获取
返回列表