基于牛顿-拉夫逊法的含变压器支路电力系统潮流计算系统
项目简介
本程序是一个基于MATLAB开发的电力系统稳态潮流计算工具。它采用经典的牛顿-拉夫逊法(Newton-Raphson Method),专门针对包含变压器支路的复杂电力网络进行设计。程序能够精确构建考虑非标准变比的节点导纳矩阵,并通过迭代求解非线性功率方程组,最终获得电网的电压幅值、相角分布以及功率流动情况。
该系统的核心算法逻辑经过严格编写,算例数据直接模拟《电力系统分析》(下册,华中科技大学出版社)第66页的典型3节点系统,验证了程序在处理变压器支路和PV/PQ节点类型时的准确性与收敛性。
功能特性
- 复杂网络建模:支持普通输电线路与变压器支路的混合建模,能够自动处理变压器的非标准变比(Tap Ratio)。
- 自动化导纳矩阵构建:内置节点导纳矩阵生成算法,采用$pi$型等值电路模型,自动计算含变压器支路的导纳元素修正量。
- 多节点类型支持:完整支持三种标准节点类型:
* 平衡节点(Slack Bus)
* PV节点(电压控制节点)
* PQ节点(负荷节点)
* 基于极坐标形式的功率方程。
* 动态构建高维雅可比矩阵(Jacobian Matrix),包含H, N, M, L四个子矩阵。
* 采用稀疏化思想处理修正方程求解(代码逻辑适配任意规模矩阵)。
- 精确的收敛控制:支持自定义最大迭代次数(MaxIter)和收敛精度(Tol),能够输出每次迭代的最大功率误差。
系统要求
- MATLAB R2016a 或更高版本(代码仅使用基础矩阵运算,无特殊工具箱依赖)。
使用方法
- 确保MATLAB环境已安装。
- 打开
main.m 文件。 - 直接运行脚本。程序将在命令行窗口输出:
* 系统标题信息。
* 节点导纳矩阵构建完成提示。
* 通过迭代过程监控收敛情况(显示迭代次数与最大误差)。
* 最终的收敛状态统计。
代码实现与算法细节
本程序(main.m)的实现逻辑严格遵循电力系统分析的理论基础,具体模块分析如下:
1. 数据结构输入
利用矩阵形式存储拓扑数据,便于扩展:
- BusData(节点数据):包含节点编号、类型标记(1=Slack, 2=PV, 3=PQ)、电压幅值、相角、发电机有功/无功、负荷有功/无功。
- LineData(支路数据):包含始端节点、末端节点、电阻(R)、电抗(X)、对地电纳(B)以及变压器变比(k)。
2. 节点导纳矩阵构建 (Ybus Formation)
程序不依赖外部函数,而是通过遍历支路数据直接构建
Ybus。
- 普通线路:作为标准$pi$型电路处理。
- 变压器支路处理:
* 代码识别
LineData 第6列的变比 $k$。若 $k=0$ 则自动修正为 $1$(普通线路)。
* 采用含变压器的$pi$型等值模型。假设变压器分接头位于始端($i$侧),对导纳矩阵进行非对称修正:
* $Y_{ii}$ 增加 $y_s / k^2$
* $i, j$ 互导纳项修正为 $-y_s / k$
* 该步骤确保了雅可比矩阵计算的基础数据准确性。
3. 初始化与索引分类
- 将输入的角度转换为弧度制参与运算。
- 计算各节点的净注入功率 $P_{net} = P_{gen} - P_{load}$ 和 $Q_{net} = Q_{gen} - Q_{load}$。
- 自动识别并提取Slack、PV、PQ节点的索引,用于构建变维度的雅可比矩阵。
4. 牛顿-拉夫逊核心迭代
程序进入
while 循环进行迭代求解,直至满足精度 $10^{-8}$ 或达到最大次数:
#### A. 功率不平衡量计算
根据当前的电压幅值 $V$ 和相角 $theta$,利用极坐标下的节点功率方程计算 $P_{calc}$ 和 $Q_{calc}$。随后计算不平衡量 $Delta P$ 和 $Delta Q$。
- 筛选机制:仅保留非平衡节点的 $Delta P$ 和 PQ节点的 $Delta Q$ 参与收敛性判断和修正方程求解。
#### B. 雅可比矩阵 (Jacobian) 构建
动态生成分块矩阵 $J = begin{bmatrix} H & N \ M & L end{bmatrix}$:
- H矩阵 ($partial P / partial theta$):维度 $(n-1) times (n-1)$。
- N矩阵 ($partial P / partial V cdot V$):维度 $(n-1) times n_{PQ}$。
- M矩阵 ($partial Q / partial theta$):维度 $n_{PQ} times (n-1)$。
- L矩阵 ($partial Q / partial V cdot V$):维度 $n_{PQ} times n_{PQ}$。
- 实现细节:代码区分了对角元素($i=j$)与非对角元素($i neq j$)的不同导数公式,准确处理了 $G, B$ 电导电纳部分。
#### C. 修正方程求解与状态更新
- 求解线性方程组 $J cdot Delta X = [ Delta P; Delta Q ]$。
- 相角更新:直接将计算出的 $Delta theta$ 累加到非平衡节点的相角上。
- 电压更新:由于雅可比矩阵构建时采用了 $Delta V / V$ 的形式,代码通过 $V_{new} = V_{old} times (1 + Delta V/V)$ 的方式更新PQ节点的电压幅值。
5. 结果计算
在迭代收敛后,程序逻辑包含重新计算全网功率分布的步骤,用于计算平衡节点的功率注入和网络损耗(注:代码逻辑包含此部分的启动,计算平衡节点和PV节点的最终注入量)。
典型算例验证
程序内预置的参数对应《电力系统分析》典型3节点系统:
- 节点1:平衡节点,$V=1.05$。
- 节点2:PV节点,$V=1.04, P=0.5$。
- 节点3:PQ节点,需由节点2经变压器供电。
- 变压器:位于支路2-3,变比 $k=0.975$。
该配置用于验证程序处理非标准变比和混合节点类型的能力。