经济调度问题的建模及求解 | 您所在的位置:网站首页 › zzylogo设计 › 经济调度问题的建模及求解 |
随着风、光等新能源的普及,在智能电网中加入储能系统有助于提升能源系统规划和运行的灵活性。尤其是考虑到新能源发电的间歇性,储能系统通过充/放电决策可以有效改善配网的能源管理、降低需求响应成本,提升新能源利用率。因此,在文章经济调度问题的建模及求解——考虑爬坡约束的基础上,加入储能约束,实现火力发电机组的经济调度。 Part 1:储能系统的约束介绍S O C 1 C a p = S O C I n i C a p + P 1 c η c − P 1 d / η d ( 1 ) S O C t C a p = S O C t − 1 C a p + P t c η c − P t d / η d ( 2 ) S O C 24 = S O C E x p ( 3 ) S O C min ≤ S O C t ≤ S O C max ( 4 ) P min c ≤ P t c ≤ P max c ( 5 ) P min d ≤ P t d ≤ P max d ( 6 ) \begin{aligned} & \mathrm{SOC}_{1}Cap=\mathrm{SOC}_{Ini}Cap+P_{1}^{c} \eta_{c}-P_{1}^{d} / \eta_{d} \qquad &(1) \\ & \mathrm{SOC}_{t}Cap=\mathrm{SOC}_{t-1}Cap+P_{t}^{c} \eta_{c}-P_{t}^{d} / \eta_{d} \qquad &(2) \\ & \mathrm{SOC}_{24}=\mathrm{SOC}_{Exp} \qquad &(3)\\ & \mathrm{SOC}_{\min } \leq \mathrm{SOC}_{t} \leq \mathrm{SOC}_{\max } \qquad &(4)\\ & P_{\min }^{c} \leq P_{t}^{c} \leq P_{\max }^{c} \qquad &(5) \\ & P_{\min }^{d} \leq P_{t}^{d} \leq P_{\max }^{d} \qquad &(6) \\ \end{aligned} SOC1Cap=SOCIniCap+P1cηc−P1d/ηdSOCtCap=SOCt−1Cap+Ptcηc−Ptd/ηdSOC24=SOCExpSOCmin≤SOCt≤SOCmaxPminc≤Ptc≤PmaxcPmind≤Ptd≤Pmaxd(1)(2)(3)(4)(5)(6) 其中,储能系统荷电状态(State of charge, SOC)的变化需满足功率平衡约束(1)-(3), S O C I n i \mathrm{SOC}_{Ini} SOCIni、 S O C E x p \mathrm{SOC}_{Exp} SOCExp分别表示储能系统的初值和终值(期望值), η c \eta_{c} ηc、 η d \eta_{d} ηd为储能系统的充放电效率, C a p Cap Cap表示储能系统的容量(MW)。为保证储能系统的有效运行,约束(4)-(6)规定了SOC以及充、放电功率的上下边界。 因此,带有储能系统的火电机组经济调度模型可以表示为: min P g , t , S O C t , P t d , P t c T C = ∑ g , t a g P g , t 2 + b g P g , t + c g P g min ≤ P g , t ≤ P g max P g , t − P g , t − 1 ≤ R U g P g , t − 1 − P g , t ≤ R D g S O C t = S O C t − 1 + P t c η c − P t d / η d S O C min ≤ S O C t ≤ S O C max P min c ≤ P t c ≤ P max c P min d ≤ P t d ≤ P max d ∑ g P g , t + P t d ≥ L t + P t c \begin{aligned} \min _{P_{g, t}, \mathrm{SOC}_{t}, P_{t}^{d}, P_{t}^{c}} \mathrm{TC}=& \sum_{g, t} a_{g} P_{g, t}^{2}+b_{g} P_{g, t}+c_{g} \\ & P_{g}^{\min } \leq P_{g, t} \leq P_{g}^{\max } \\ & P_{g, t}-P_{g, t-1} \leq \mathrm{RU}_{g}\\ & P_{g, t-1}-P_{g, t} \leq \mathrm{RD}_{g} \\ & \mathrm{SOC}_{t}=\mathrm{SOC}_{t-1}+P_{t}^{c} \eta_{c}-P_{t}^{d} / \eta_{d} \\ & \mathrm{SOC}_{\min } \leq \mathrm{SOC}_{t} \leq \mathrm{SOC}_{\max } \\ & P_{\min }^{c} \leq P_{t}^{c} \leq P_{\max }^{c} \\ & P_{\min }^{d} \leq P_{t}^{d} \leq P_{\max }^{d} \\ & \sum_{g} P_{g, t}+P_{t}^{d} \geq L_{t}+P_{t}^{c} \end{aligned} Pg,t,SOCt,Ptd,PtcminTC=g,t∑agPg,t2+bgPg,t+cgPgmin≤Pg,t≤PgmaxPg,t−Pg,t−1≤RUgPg,t−1−Pg,t≤RDgSOCt=SOCt−1+Ptcηc−Ptd/ηdSOCmin≤SOCt≤SOCmaxPminc≤Ptc≤PmaxcPmind≤Ptd≤Pmaxdg∑Pg,t+Ptd≥Lt+Ptc 其中,a、b、c表示发电机组的成本系数, P g P_g Pg表示每个发电机组的输出功率,且 P g P_g Pg 满足发电上、下限约束和爬坡约束。 Part 2:Python+Gurobi 代码实现 # 导入包 import gurobipy as gp from gurobipy import GRB import numpy as np # 建立模型 zzy = gp.Model() # 声明变量 Cap = 100 SOC_ini = 0.3 SOC_exp = 0.8 eta_c = 0.95 eta_d = 0.9 N_g = 4 N_t = 24 a = np.array([0.12, 0.17, 0.15, 0.19]) b = np.array([14.8, 16.57, 15.55, 16.21]) c = np.array([89, 83, 100, 70]) Pg_min = np.array([28, 20, 30, 20]) Pg_max = np.array([200, 290, 190, 260]) RU = np.array([40, 30, 30, 50]) RD = np.array([40, 30, 30, 50]) Load = np.array([510, 530, 516, 510, 515, 544, 646, 686, 741, 734, 748, 760, 754, 700, 686, 720, 714, 761, 727, 714,618, 584, 578, 544]) P = zzy.addVars(N_g, N_t, vtype=GRB.CONTINUOUS, lb=0, ub=300, name='P') SOC = zzy.addVars(N_t, vtype=GRB.CONTINUOUS, lb=0.2, ub=0.9, name='SOC') Pc = zzy.addVars(N_t, vtype=GRB.CONTINUOUS, lb=0, ub=60, name='Pc') Pd = zzy.addVars(N_t, vtype=GRB.CONTINUOUS, lb=0, ub=60, name='Pd') # 添加约束 zzy.addConstrs((P[g, t] = Pg_min[g] for t in range(N_t) for g in range(N_g)), 'Pg_min') zzy.addConstrs((P[g, t+1]-P[g, t] |
CopyRight 2018-2019 实验室设备网 版权所有 |