潮流计算优化程序
潮流计算优化程序
项目地址
本项目是一个潮流优化计算程序,旨在打造一个相对通用的、开箱即用的程序,兼容新能源处理,方便科研计算。
数据格式定义
在案例文件中,需要定义一个结构体 case_mpc
,包含以下矩阵和数据格式。所有参数均使用标幺制。
母线数据格式 (case_mpc.bus
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | bus_num |
母线编号 |
2 | 整数 | type |
母线类型 (1=PQ, 2=PV, 3=平衡节点) |
3 | 实数 | V_mag |
电压幅值 (p.u.) |
4 | 实数 | V_angle |
电压相角 (度) |
5 | 实数 | V_max |
最小电压限值 (p.u.) |
6 | 实数 | V_min |
最大电压限值 (p.u.) |
对于第一列,我们希望 bus_num
值与行号严格对应。
对于不同的母线类型,程序只会选取所需的数据,因此您可以把无用数据置零(如 PQ 节点只选取 5、6 列)。
支路数据格式 (case_mpc.branch
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | from_bus |
起始母线编号 |
2 | 整数 | to_bus |
终止母线编号 |
3 | 实数 | r |
支路电阻 (p.u.) |
4 | 实数 | x |
支路电抗 (p.u.) |
5 | 实数 | b |
支路导纳 (p.u.) |
6 | 实数 | I_max |
最大电流限值 (p.u.) |
发电机数据格式 (case_mpc.gen
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | conn_bus |
相连母线编号 |
2 | 实数 | P_max |
最大有功出力 Pmax (p.u.) |
3 | 实数 | P_min |
最小有功出力 Pmin (p.u.) |
4 | 实数 | Q_max |
最大无功出力 Qmax (p.u.) |
5 | 实数 | Q_min |
最小无功出力 Qmin (p.u.) |
6 | 实数 | S |
额定容量 (p.u.) |
7 | 实数 | SIC |
相对于电站净功率折算的动态比投资费用 |
8 | 实数 | loss |
发电机终端到售电结算点之间的线损率 |
9 | 实数 | a |
电站的经济使用寿命 |
10 | 实数 | tu |
发电设备的年运行利用小时数 |
11 | 实数 | CF |
燃料费用 |
12 | 实数 | eff |
发电效率 |
光伏发电数据格式 (case_mpc.pv
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | conn_bus |
相连母线编号 |
2 | 实数 | pf_s |
功率因数(默认滞后) |
3 | 实数 | S |
最大可配置容量 |
4 | 实数 | k |
折算到每日的成本系数 |
5 | 实数 | a |
单位容量投资成本 |
6 | 实数 | b |
每度电的发电成本 |
7 | 实数 | eff |
光伏转换效率 |
光伏投资成本
光伏运行成本
风电数据格式 (case_mpc.wind
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | conn_bus |
相连母线编号 |
2 | 实数 | pf_w |
功率因数 (默认滞后) |
3 | 实数 | S |
最大可配置容量 |
4 | 实数 | k |
折算到每日的成本系数 |
5 | 实数 | a |
单位容量投资成本 |
6 | 实数 | b |
每度电的发电成本 |
7 | 实数 | R |
叶片半径 |
8 | 实数 | C |
风能利用系数 |
风电投资成本
风电运行成本
储能矩阵格式 (case_mpc.storage
)
所有参数使用标幺制。
列号 | 数据类型 | 变量名 | 描述 |
---|---|---|---|
1 | 整数 | conn_bus |
相连母线编号 |
2 | 实数 | Pmax_out |
最大输出有功出力 (p.u.) |
3 | 实数 | Pmax_in |
最大输入有功出力 (P_min < 0) (p.u.) |
4 | 实数 | pf_ess |
功率因数(默认滞后) |
5 | 实数 | E |
最大可配置容量 (MWh) |
6 | 实数 | a |
单位容量投资成本 |
7 | 实数 | b |
每千瓦时成本系数 |
8 | 实数 | c |
运维成本 |
储能投资成本
储能运行成本
有功负荷矩阵 (case_mpc.pd_time
)
一个 bus_num * conf.time * s
的三维矩阵,为每个母线每个时段的有功负荷需求。其中 s
为场景数。
无功负荷矩阵 (case_mpc.qd_time
)
一个 bus_num * conf.time * s
的矩阵,为每个母线每个时段的无功负荷需求。其中 s
为场景数。
电动汽车需求矩阵 (case_mpc.ev_time
)
一个 ev_num * (conf.time + 2)
的矩阵,为每个母线每个时段的电动汽车充电需求。
其中 ev_num
为电动汽车充电站数量,conf.time
为时段数。矩阵的第一列为电动汽车充电站连接的节点编号,第二列为该充电站的额定功率因数,后conf.time
列为每个时段的有功需求。
电价矩阵 (case_mpc.price
)
每度电的价格,一个长度为 conf.time
的列向量,记录每个时段的电价。
光伏出力矩阵 (case_mpc.pv_time
)
一个 s * conf.time
的矩阵,为每个光伏设备每个时段的出力。
风电出力矩阵 (case_mpc.wind_time
)
一个 s * conf.time
的矩阵,为每个风电设备每个时段的出力。
场景概率矩阵 (case_mpc.prob
)
一个长度为 s
的行向量,记录每个场景的概率。
模型目标与约束条件
目标函数
式中,
$T$ 为时段数、$S$ 为场景数、$p_s$ 为场景 $s$ 出现的概率;
$C^\mathrm{inv}$ 为投资成本、$C^\mathrm{run}$ 为运行成本;
下标 $\mathrm{pv}$、$\mathrm{wind}$、$\mathrm{ess}$ 分别表示光伏、风电、储能设备;
$C_\mathrm{pur}^\mathrm{inv}$、$C_\mathrm{loss}^\mathrm{inv}$ 表示购电成本和支路损耗成本。
各类成本的计算方式已在数据格式定义中说明。
约束条件
容量配置约束
式中,
矩阵 $\mathbf{S}_\mathrm{pv}$、$\mathbf{S}_\mathrm{wind}$、$\mathbf{E}_\mathrm{ess}$ 分别表示光伏、风电、储能设备的配置容量;
$\mathbf{S}_\mathrm{pv}^\mathrm{max}$、$\mathbf{S}_\mathrm{wind}^\mathrm{max}$、$\mathbf{E}_\mathrm{ess}^\mathrm{max}$ 分别表示光伏、风电、储能设备的最大配置容量;
$\mathbf{T}_\mathrm{pv}$、$\mathbf{T}_\mathrm{wind}$、$\mathbf{T}_\mathrm{ess}$ 分别表示光伏、风电、储能设备的决策矩阵,里面的元素只取 0 或 1,表示是否安装这台设备。
1 号节点变压器传输约束
母线电压约束
式中,
$\mathbf{U}_\mathrm{min}$、$\mathbf{U}_\mathrm{max}$ 均为列向量,分别为母线电压的最小和最大限值;
$\mathbf{U}(t, s)$ 为一个列向量,表示时段 $t$、场景 $s$ 下的母线电压。
节点功率平衡约束
对于任意场景任意时段的每一个节点
式中,
$P_i$ 为与本节点从相邻上级节点 $i$ 接受的有功功率,$P_j$ 为与本节点向相邻下级节点 $j$ 发送的有功功率;
$l_i$ 为支路 $i$ 的电流幅值平方;
$P_\mathrm{pv}$、$P_\mathrm{wind}$、$P_\mathrm{ess}$ 分别为光伏、风电、储能设备在该节点的出力;
$P_\mathrm{load}$ 为该节点的有功负荷需求;
对于无功功率,意义同上。
支路功率流约束
对于任意场景任意时段的支路 $(i, j)$,有
式中,
$P_{ij}$、$Q_{ij}$ 分别为支路 $(i, j)$ 的有功和无功功率流;
$v_i$、$v_j$ 分别为母线 $i$、$j$ 的电压幅值;
$l_{ij}$ 为支路 $(i, j)$ 的电流幅值平方;
光伏和风电出力约束
对于任意场景任意时段的光伏和风电设备,均有
式中,
$P_\mathrm{pv}(t, s)$、$P_\mathrm{wind}(t, s)$ 分别为时段 $t$、场景 $s$ 下的光伏和风电出力;
$\eta_\mathrm{pv}$、$\eta_\mathrm{wind}$ 分别为光伏和风电的转换效率;
$S_\mathrm{pv}$、$S_\mathrm{wind}$ 分别为光伏和风电设备的配置容量;
$I_\mathrm{pv}$、$I_\mathrm{wind}$ 分别为此刻的辐照度系数和风力系数,数值均已转化为出力。
储能设备充放电约束
对于任意场景任意时段的储能设备,均有
式中,
$P_\mathrm{in}(t, s)$、$P_\mathrm{out}(t, s)$ 分别为时段 $t$、场景 $s$ 下的储能设备充电和放电功率;
$E_\mathrm{ess}$ 为储能设备的配置容量;
$T_\mathrm{ess}$ 为储能设备的决策矩阵,里面的元素只取 0 或 1,表示是否安装这台设备;
$f_\mathrm{in}$、$f_\mathrm{out}$ 分别为充电和放电的决策变量,取值为 0 或 1;
$soc_i$ 为储能设备在时段 $i$ 的荷电状态(SOC)。
使用说明
使用本程序,您需要在 config.m
中指定案例文件 (conf.network.case_file
)。其他设置在 config.m
中已有明确的注释,请自行设置。
案例文件中,需要定义一个结构体 case_mpc
,至少包含上述矩阵,否则无法正常工作。