5.1 电力系统潮流计算
1、案例概况
本案例介绍利用mems实现matpower中的潮流计算,包括网络设备信息配置与查询、潮流计算。
matpower潮流计算功能包含以下主要函数:
- idx_gen: 生成
gen矩阵列索引 - idx_bus: 生成
bus矩阵列索引 - idx_brch:生成
branch矩阵列索引 - make_y_bus:生成节点导纳矩阵
- dsbus_dv:计算功率注入相对于电压的偏导数。
- make_sdzip:构建ZIP负载的复功率向量
- make_sbus:构建母线注入复功率向量
- newtonpf:牛顿法求解潮流
- runpf:执行潮流计算
上述函数均已通过RustScript语言实现,并在github中上传,可在mems中直接调用,URL如下:
- idx_gen: https://shufengdong.github.io/sparrowzz/rspower/lib/idx_gen.txt
- idx_bus:https://shufengdong.github.io/sparrowzz/rspower/lib/idx_bus.txt
- idx_brch:https://shufengdong.github.io/sparrowzz/rspower/lib/idx_brch.txt
- make_y_bus:https://shufengdong.github.io/sparrowzz/rspower/lib/make_y_bus.txt
- dsbus_dv:https://shufengdong.github.io/sparrowzz/rspower/lib/dsbus_dv.txt
- make_sdzip:https://shufengdong.github.io/sparrowzz/rspower/lib/make_sdzip.txt
- make_sbus:https://shufengdong.github.io/sparrowzz/rspower/lib/make_sbus.txt
- newtonpf:https://shufengdong.github.io/sparrowzz/rspower/lib/newtonpf.txt
- runpf:https://shufengdong.github.io/sparrowzz/rspower/lib/runpf.txt
潮流计算输入数据主要包含母线、支路、发电机对应的bus、branch、gen3个矩阵。
2、设备配置
在mems界面设备中配置bus、branch、gen3个矩阵对应信息,包括设备属性定义、设备定义和设备实例构建。
(1)设备属性定义
将bus、branch、gen矩阵的列属性定义为设备属性。在设备-设备定义-属性仓库页面导入设备属性定义文件,文件内容如下图所示:

(2)设备定义
在设备-设备定义页面导入设备定义文件,文件内容如下图所示:

(3)设备实例构建
在设备-设备维护页面导入设备实例文件,文件内容如下图所示:

3、测点配置
matpower中的系统基准容量baseMVA作为测点数据进行配置,后续计算从测点中获取。在设置项-测点中导入对应测点,设置其默认值为系统基准容量,如下图所示:

4、潮流计算配置
在设置项-报表配置实现潮流计算的DataFrame流,包括获取网络设备信息、潮流计算,以下说明具体配置步骤。
(1)获取设备信息
在报表配置文件中,从设备表中获取各类设备参数,对应matpower的bus、branch、gen输入参数,配置如下图所示:

以节点1获取母线信息为例,该节点类型为SOURCE_DEV,表示获取设备表信息,参数为如下sql语句:
select
`101`,`102`,`103`,`104`,`105`,`106`,`107`,`108`,`109`,`110`,`111`,`112`,`113`
from Bus
order by `101`
其中,Bus为母线表,列名为母线属性id。这里写出所有需要的列名,保证查询结果中属性顺序与matpower的bus矩阵属性顺序一致,同时按照母线编号进行行排序,以便与matpower比较计算结果。
(2)获取系统基准容量
系统基准容量信息通过测点获取,配置如下图所示。

该节点类型为SOURCE_POINT,表示获取测点表信息,配置参数为如下sql语句:
select value from points where id=500001
其中,points为测点表,id为测点id列名,value为测点值列名。
(3)输入数据传给潮流计算节点
通过边将上述数据传给潮流计算节点,配置如下图所示:

(4)进行潮流计算
在节点5中进行潮流计算,该节点类型为TensorEval,参数2为3,表示进行复数张量运算,参数1配置及说明如下:
baseMVA=get(baseMVA_mat,0,0); //获取系统基准容量标量值
//通过URL导入潮流计算所需函数
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/idx_gen.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/idx_bus.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/idx_brch.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/make_y_bus.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/dsbus_dv.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/make_sdzip.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/make_sbus.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/newtonpf.txt
#include_url https://shufengdong.github.io/sparrowzz/rspower/lib/runpf.txt
r = runpf(); //执行潮流计算
return r; //返回计算结果
上述配置中,由于从边获取的数据baseMVA_mat为张量,通过get函数取出其中元素获取标量值。通过#include_url关键字从URL引入需用到的外部RustScript程序,使配置文件中的程序结构更清晰。
5. 潮流计算结果查看
运行潮流计算的DataFrame流,在仪表盘-报表页面可查询计算结果,选择表格展示形式,如下图所示:

其中复数的实部为节点电压幅值、虚部为电压相角。
以下附件中提供了上述潮流计算DataFrame流的配置文件,以及matpower 5节点系统案例对应的的设备、测点配置文件,可参考使用。