电力系统中的最优潮流(OPF)基础讲解

本文给出电力系统中的最优潮流(OPF)的基础讲解。➡️


在电力系统中,OPFOptimal Power Flow(最优潮流) 的缩写。

粗略对比可以这样记:

  • 潮流计算(PF, Power Flow / Load Flow)
    在给定发电出力、负荷、电压设定的前提下,计算电压、电流、功率在系统中的分布
  • 最优潮流(OPF, Optimal Power Flow)
    在满足潮流方程和各种运行约束的前提下,通过调整发电出力、无功补偿、变压器分接头等决策变量,使某个目标最优(如成本最小、网损最小、电压偏差最小等)。

1. OPF 在解决什么问题?

在给定的电网拓扑、网络参数、负荷水平下,OPF 关心的是:

  • 要“调什么”(决策变量)
  • 要“最优什么”(目标函数)
  • 要“守哪些规矩”(约束条件)

1.1 决策变量(Decision Variables)

典型的决策变量包括:

  • 各发电机有功出力:
    \[P_{G,i}\]
  • 各发电机无功出力:
    \[Q_{G,i}\]
  • 各节点电压幅值与相角(尤其是 PV / 平衡母线):
    \[|V_i|, \ \theta_i\]
  • 其他可调设备:
    • 变压器分接头
    • 并联电容/电抗投入量
    • FACTS / 柔性直流控制变量
    • 可调负荷 / 需求响应功率
    • 储能有功出力 / 电动汽车充放电功率等

1.2 目标函数(Objective Function)

根据调度需求不同,常见目标包括:

  1. 发电成本最小
    设第 \(i\) 台机组成本函数为 \(C_i(P_{G,i})\),典型 OPF 目标为: \[ \min \sum_{i} C_i(P_{G,i}) \]

  2. 有功网损最小 设系统总有功网损为 \(P_{\text{loss}}\),可写成: \[ \min P_{\text{loss}} \] 或按支路求和: \[ P_{\text{loss}} = \sum_{\ell} P_{\ell} \]

  3. 电压偏差最小 \[ \min \sum_{i} \big(|V_i| - V_i^{\text{ref}}\big)^2 \] 其中 \(V_i^{\text{ref}}\) 为节点电压参考值(如 1.0 p.u.)。

  4. 多目标综合优化
    例如: \[ \min \ \alpha C_{\text{gen}} + \beta P_{\text{loss}} + \gamma J_{\text{volt}} \] 通过加权系数 \(\alpha,\beta,\gamma\) 在成本、网损、电压质量之间折中。

1.3 约束条件(Constraints)

OPF 的约束大致分三类:

(1)潮流方程(功率平衡)

对每个节点 \(i\)

  • 有功平衡: \[ P_{G,i} - P_{L,i} = \sum_{j} f_{ij}(V,\theta) \]
  • 无功平衡: \[ Q_{G,i} - Q_{L,i} = \sum_{j} h_{ij}(V,\theta) \]

其中 \(P_{ij}(V,\theta)\)\(Q_{ij}(V,\theta)\) 由 AC 潮流公式给出,是电压幅值与相角的非线性函数。

(2)设备运行约束(Operation Limits)

  • 机组有功出力上下限: \[ P_{G,i}^{\min} \le P_{G,i} \le P_{G,i}^{\max} \]
  • 机组无功出力上下限: \[ Q_{G,i}^{\min} \le Q_{G,i} \le Q_{G,i}^{\max} \]
  • 节点电压约束: \[ V_i^{\min} \le |V_i| \le V_i^{\max} \]
  • 线路热稳定约束(潮流不超线): \[ |S_{ij}| \le S_{ij}^{\max} \]
  • 变压器分接头、有载调压器、并联电容/电抗投切、开关状态等的约束。

(3)其他系统级约束

例如:

  • 区域功率平衡/备用约束
  • 上下坡率约束(多时段 OPF 中)
  • 储能 SOC 演化约束
  • 电动汽车接入/离开时间、SOC 约束等

2. 标准形式下的 OPF 数学模型

从优化理论角度看,OPF 可以抽象写成:

  • 所有决策变量(发电出力、电压、分接头等)组合成向量: \[ x = \big(P_G, Q_G, V, \theta, \dots \big) \]
  • 则 OPF 的标准形式为:

\[ \begin{array}{ll} \displaystyle \min\limits_{x} & f(x) \\[0.3em] \text{s.t.} & g(x) = 0 \quad \text{(潮流方程、功率平衡方程)} \\ & h(x) \le 0 \quad \text{(机组出力、电压、线路容量等约束)} \end{array} \]

其中:

  • \(f(x)\):代价函数(发电成本、网损、电压偏差、排放,或它们的加权组合)
  • \(g(x)=0\):AC 潮流方程,一般是非线性等式约束
  • \(h(x)\le 0\):设备与系统的不等式约束

由于 AC 潮流本身是非线性的,OPF 一般是一个 非线性约束优化问题,整体多是 非凸问题,求解难度较大。


3. OPF 与普通潮流(PF)的区别

从工程角度,对比 OPF 与 PF 有助于直观理解:

对比项 PF(潮流计算) OPF(最优潮流)
主要目的 找到一个可行的运行点(满足潮流方程、设备约束) 在所有可行运行点中,找到目标函数最优的那一个
输入已知量 发电出力、负荷、电压设定、分接头等 电网结构、负荷、成本函数/网损模型/电压指标、以及各项运行约束
输出结果 节点电压、电流、支路功率、网损等 上述结果+“最优”的发电出力/无功出力/分接头/无功补偿等决策
数学本质 非线性方程组求解问题 非线性约束优化问题
工程语境 “看看当前运行是不是合格、潮流怎么走” “在合格的前提下,怎么调度才最省钱/最安全/电压最好/网损最小”等

可以用一句话总结:

PF:给定发电和控制设定,求电网状态。
OPF:在满足潮流和运行约束前提下,顺带帮你决定最合适的发电和控制设定


4. 常见 OPF 变体

根据建模精度与应用场景不同,OPF 有很多变体。常见几类如下。

4.1 AC OPF(交流最优潮流)

  • 完整采用 AC 潮流方程:
    • 同时考虑有功、无功
    • 电压幅值、相角都参与
  • 优点:物理精度高,适合评估电压、无功、配电网等细节问题。
  • 缺点:问题非线性、非凸,求解难度大,算法收敛性/全局最优性不易保证。

4.2 DC OPF(直流近似最优潮流)

在高压输电网中,为了简化计算,经常使用 DC 潮流近似,假设:

  • 电压幅值约为 1 p.u.
  • 线路电阻忽略(\(R \ll X\)
  • 相角差较小,\(\sin(\theta_i - \theta_j) \approx \theta_i - \theta_j\)

此时:

  • 只考虑有功与相角,潮流方程近似为线性
  • OPF 可以写成线性规划(LP)或二次规划(QP)
  • 优点:求解速度快,适合大规模电力市场出清、调度仿真
  • 缺点:忽略无功、电压幅值,精度有限

4.3 多时段 OPF / 动态 OPF

当需要考虑多个时段 \(t=1,\cdots,T\) 的耦合时(如储能 SOC、机组爬坡约束、电动汽车充放电过程等),就得到多时段 OPF:

  • 决策变量变为 \(x_t\)(每个时段的潮流状态与控制量)
  • 目标函数累加多个时段: \[ \min \sum_{t=1}^T f_t(x_t) \]
  • 约束包含:
    • 每个时段的潮流与运行约束
    • 时段间耦合约束(如 SOC 演化、机组爬坡、负荷跟踪等)

4.4 含分布式电源 / 新能源 / EV 的 OPF

在配电网和新型电力系统中,OPF 常常要考虑:

  • 多个分布式电源(DG)的有功/无功可调出力
  • 光伏出力随机性
  • 电动汽车(EV)的充放电控制
  • 储能系统(ESS)的充放电/能量约束
  • 可中断/可移峰负荷等

此时,OPF 可以表示为:

  • 在潮流约束基础上,增加 DG/EV/ESS 的功率与能量约束;
  • 目标函数可包括:
    • 网损成本
    • 节点电压质量指标
    • 用户充电/放电成本或收益
    • 决策灵活性、鲁棒性等。

4.5 多目标 OPF(Multi-Objective OPF)

当调度目标不止一个时,常见做法包括:

  • 加权和法
    把多个目标加权合并为一个标量函数;
  • 分层优化
    先满足安全约束,再优化经济性(或相反);
  • Pareto 前沿分析
    通过参数扫描得到一族折衷解,并进行权衡选择。

5. 仿真工具中的 OPF:以 MATPOWER 为例

在常用的电力系统仿真工具中:

  • MATPOWER(Matlab 环境)
    • runpf(mpc):求解潮流(PF)
    • runopf(mpc):求解最优潮流(OPF)
  • PYPOWER(Python 版 MATPOWER)
    • 提供类似的 OPF 接口
  • pandapower(Python)
    • net 模型基础上调用 OPF 函数进行最优调度

在这些工具中,一般流程是:

  1. 建立或加载一个网络模型(如 case14, case33bw 等);
  2. 在数据结构中配置:
    • 机组成本函数
    • 电压上下限
    • 线路容量
    • 其他约束等
  3. 调用:
    • runpf:只做潮流计算;
    • runopf:执行最优潮流,自动调整机组出力、电压等,使设定的目标函数最优。

可以简单记为:

  • runpf:在给定出力条件下,“算一遍潮流”;
  • runopf:在设备与安全约束内,“帮你决定怎么发电/怎么调无功/怎么调分接头才更优”。

6. 小结

  • OPF(最优潮流) = 潮流方程 + 运行约束 + 优化目标。
  • 它不仅求解“电压、潮流怎么分布”,还自动“帮你调”发电、无功、分接头、灵活负荷等,使成本、网损、电压等指标达到最优。
  • 从数学上看,OPF 是一个以 AC/DC 潮流方程为约束的非线性(常常是非凸)优化问题。
  • 工程实践中,OPF 是机组组合、经济调度、电压/无功优化、含分布式电源/电动汽车调度等问题的基础工具,也是 MATPOWER、PYPOWER、pandapower 等电力仿真平台的重要功能模块。

后续可能会在本讲基础上再写:

  • “基于 MATPOWER 的 OPF 实例(如 case33bw + runopf)”
  • “以电压偏差最小为目标的 OPF 建模与代码”
  • “含 EV 充放电的配电网 OPF 建模”
    等扩展博文。

电力系统中的最优潮流(OPF)基础讲解
https://nanana-szz.github.io/OPF/
作者
John Doe
发布于
2025年12月9日
许可协议