system: [SYSTEM]

user: 2. 建模及求解方法 2.1. 水电调度控制目标 梯级水电系统的调度需求包括单一水库或水库群控制目标，例如最小出力约束、水库蓄水量约束，减少弃水量等。另外，在一些短期调度模型中，考虑水电站出力的时间关联约束。在本文方法中，可以视情况选择以下控制目标。 1) 水库期末蓄水量/水位： S m T + 1 = S T m = S m 1 + ∑ t = 1 T ( I m t − R m t ) (1) 式中： S m t (m 3 )为水库期初的蓄水量； R m t (m 3 )为水库m在时段t内的出库流量； R m t = 3600 × Δ t × ( q m t + d m t ) ； Δ t 为第t个时段的小时数，本文中 Δ t = 0.25 ； q m t (m 3 /s)是水库m在时段t内的发电流量； d m t (m 3 /s)是水库m在时段t内的弃水流量； I m t (m 3 )为是水库m在时段t内入库流量，由上游水库的出库在t时段流达量和区间入库流量组成，计算下游水库的入库流量时应考虑上、下游水库的滞时关系。 2) 水库发电水量： W m = ∑ t = 1 T ( 3600 q m t Δ t ) (2) 式中： W m (m 3 )为调度期内水库m的发电水量。 3) 水电站发电量： E m = ∑ t = 1 T ( p m t Δ t ) (3) 式中： E m (MWh)为调度期内水库m的发电量。 对于某一水库，可能会同时存在多个控制目标(例如同时设定水电站期末库容和发电水量目标)，相当于给定上游水库调度期内流达水量，在上游水库也存在(1)、(2)、(3)控制目标的情况下，可能导致上下游水电站的控制目标相互矛盾。 4) 水电站群的总电量(可选)： E s y s n = ∑ m ∈ U n ∑ t = 1 T ( p m t Δ t ) (4) 式中：将梯级水库甚至跨流域水库群划分为多个子水库群， E s y s n 为水库群n总调度期内总发电量， U n 是属于水库群n的水电站集合。 2.2. 其他水电调度约束 1) 水量平衡约束： S m t + 1 = S m t + I m t − R m t (5) 2) 发电流量约束： q m t ≤ q ¯ m t (6) 式中： q ¯ m t (m 3 /s)为m号水电站t时段发电流量上限。 3) 水电站出力约束： p _ m t ≤ p m t ≤ p ¯ m t (7) 式中： p _ m t (MW)、 p ¯ m t (MW)分别为m号水电站t时段出力的下、上限。 4) 库容限制： S _ m t ≤ S m t ≤ S ¯ m t (8) 式中： S _ m t (m 3 )、 S ¯ m t (m 3 )分别为m号水电站t时段初库容的下、上限。 5) 水电站出力爬坡限制： | p m t − p m t − 1 | ≤ Δ p ¯ m (9) 式中： Δ p ¯ m (MW)为m号水电站相邻时段最大出力升降限制。 6) 出库流量限制： R _ m t ≤ R m t ≤ R ¯ m t (10) 式中： R _ m t ( m 3 )、 R ¯ m t (m 3 ) 分别为m号水电站t时段出库流量下、上限。 7) 水电站振动区约束： [ p m t − p s ¯ m ， k ( H m t ) ] [ p m t − p s _ m ， k ( H m t ) ] ≥ 0 (11) 式中： p s ¯ m ， k ( Z m t ， Z m t + 1 ， Z d m t ) (MW)、 p s _ m ， k ( Z m t ， Z m t + 1 ， Z d m t ) (MW)分别为m号水电站t时段第k个出力振动区的上、下限，与平均水头，或上下游水位相关。 8) 水电站出力波动限制： ( p m t − Δ − p m t − Δ − 1 ) ( p m t − p m t − 1 ) ≥ 0 ， Δ = 1 ， 2 ， ⋯ ， t v m − 1 (12) 式中： t v m 是m号水电站出力升降最小间隔时段数，即在一轮出力升降过程最高、最低处持续最少 t v m 个时段。 9) 最小出力升降时段数限制： m号水电站出力从上升开始至下降开始，或者由下降开始至上升开始的时间间隔不少于 t p m 个时段。此约束是通过限制出力升降的间隔时间，提高调度计划可执行性。定义状态变量 X m t 描述出力升降时段数， X m t = { min ( X m t − 1 + 1 ， t p m )   ( p m t − p m t − 1 ) ≥ 0 and X m t − 1 > 0 1         ( p m t − p m t − 1 ) > 0 and X m t − 1 < 0 max ( X m t − 1 − 1 ， − t p m )   ( p m t − p m t − 1 ) ≤ 0 and X m t − 1 < 0 − 1   ( p m t − p m t − 1 ) < 0 and X m t − 1 > 0 最小出力升降时段约束为式(13)。 ( | X m t − 1 | − t p m ) X m t X m t − 1 ≤ 0 (13) 在式(5)~(13)中， 1 ≤ t ≤ T ， 1 ≤ m ≤ M 。 2.3. 时段排序规则 与优化方法不同，在梯级水电站群短期发电调度计划快速生成方法中没有明确的目标函数，需遵循以下规则评价时段之间的出力分配合理性： 1) 水电站库容足够时，水电站出力需要优先承担系统高峰负荷，然后分配到负荷平坦阶段，最后分配到低谷阶段。根据系统负荷特点预设峰、平、谷时段 [ 15 ] ； 2) 上游水电站出库流量应考虑下游水电站机组过流能力和库容限制，避免弃水； 3) 对于梯级水电站群，各水电站间可以相互协调负荷尖峰(高峰负荷阶段的最高负荷)时段的出力，如单一水电站在不同尖峰负荷时段的出力比例可以设置； 4) 所有水电站的运行应该避免在振动区和高水耗区。 水电站的增减出力时遵循规则(1)，分配的时段排序主要由负荷峰值、平坦、低谷阶段决定。如图1所示， 图1. 系统负荷峰值、平值和谷值分布情况 根据系统负荷的大小、变化和需求将一日的电力负荷分成若干个部分。尽管在两个峰值中间的时间段并不是真正的系统负荷低谷，但在调度过程中可视其为低谷，以利用水电出力变化调节相邻负荷高峰时段与二者之间时段的负荷差。 UP n ，UF n ，UV n ，UM n 分别是第n个峰、平、谷、尖峰阶段包括的时段集合。NP，NF，NV，NM分别是峰、平、谷、尖峰负荷的阶段数量。当NP = NM时，每个高峰负荷阶段只有一个尖峰。 w m t 为描述水电站m在时段t增加出力优先级的变量， − w m t 描述减少出力的优先级。 w m t = a 0 φ ( t ) + a 1 C t − a 2 ∑ m 0 = 1 M p m 0 t + γ ( m ， t ) (14) φ ( t ) = { v p t ∈ U P n ， n = 1 ， 2 ， ⋯ ， N P v f t ∈ U F n ， n = 1 ， 2 ， ⋯ ， N F v v t ∈ U V n ， n = 1 ， 2 ， ⋯ ， N V (15) γ ( m ， t ) = { a 3 ( p m t ∑ t 0 ∈ U M p m t 0 − r m n ) t = U M n ， n = 1 ， 2 ， ⋯ ， N M 0 others (16) 在式(14)~(16)中： a 0 ， a 1 ， a 2 ， a 3 为系数， a 0 φ ( t ) 用来描述不同时段t对于出力增加优先级的影响。 v p ， v f ， v v 为 φ ( t ) 在峰、平和谷负荷阶段的值， v p ≫ v f ≫ v v 。 a 1 C t 用来描述负荷值对时段优先级的影响，可以区分同一峰、平、谷阶段内的时段优先级。 a 2 ∑ m 0 = 1 M p m 0 t 用来描述t时段已经分配的出力对优先级的影响。 γ ( m ， t ) 用来描述水电站调峰规则对出力增加优先级的影响，如表1。 r m n 为水电站m第n个尖峰时段出力与全部时段尖峰时段总出力之比。 通过公式(14)~(16)，可以使用表1所示的参数值定义时段排序规则。 对于均匀调峰和按比例调峰两种调度规则而言， a 2 = 0 表示已经进行的出力分配不会影响后面的调度过程，两种规则的区别在于 r m n 值的选取。与负荷趋势一致的调峰规则不受峰、平、谷时段影响，只与剩余负荷相关。 Table 1 Period sorting rule 名称 均匀调峰 按比例调峰 与负荷趋势一致 参数值 a 0 > > a 3 > > a 1 ， a 2 = 0 ， r m n = 1 / N M a 0 > > a 3 > > a 1 ， a 2 = 0 ， r m n = 预设值 a 0 = 0 ， a 1 = a 2 ， a 3 = 0 表1. 时段排序规则 2.4. 可行性修正算法 当一个水电站的出力发生变化时，由于出力的爬坡限制，出力波动限制和最小出力升降时段数限制，必须修改相邻时段的出力。本文采用多变量关联的搜索算法 [ 16 ] [ 17 ] 来处理时间关联约束。水电站m在t时段出力改变之后，如 p m t 增加 Δ p m ，设定 p ′ m t = p m t ，新的出力值变为 p m t = p ′ m t + Δ p m 。如果 ( p m t − p m t + 1 ) ( p m t − p m t − 1 ) > 0 表示在时段t出力上升(或下降)的趋势发生变化，相邻时段出力需要调整以形成新的可行发电计划。用式(17)求解为满足最小连续出力时段约束需调整的出力时间范围。 { Ob .max y 1 S .T . { ( p m t − p m t + 1 ) ( p m t − p m y 1 ) ≤ 0 y 1 = t − t v m + 1 ， t − t v m + 2 ， ⋯ ， t − 1 (17) 如果公式(17)有解，在y1和t之间的出力设定为 p ′ m t + Δ p m ，得到y1和t之间可行的出力上升(或下降)过程，否则求解模型(18)。 { Ob .min y 2 S .T . { ( p m t + 1 − p m t ) ( p m y 2 − p m t ) ≤ 0 y 1 = t + 2 ， t + 3 ， ⋯ ， t + t v m (18) 如果模型(18)有解，得到t和y2之间可行的上升(或下降)过程，并将y1和y2之间的出力设定为 p ′ m t + Δ p m ，否则 y 1 = t − ⌈ t v m / 2 ⌉ + 1 ， y 2 = t + ⌊ t v m / 2 ⌋ ，y1和y2间的出力修正为 p ′ m t + Δ p m 。 在出力间隔的边缘改变出力大小时，原本的出力增加(减小)或者不变的过程会被破坏，需要进一步修改出力，得到的新的出力过程也需要进行边缘修改来满足调度需求。以图2为例，显示了一个典型的出力修改过程，具体操作方法见文献 [ 17 ] ，并在满足时段关联约束的同时避开振动区 [ 18 ] 。 2.5. 满足单一调度需求的方法 调度需求包括期末库容、调度期内的总发电量或发电水量控制目标，或减少弃水、满足下游水库最小流量或最小出力，甚至是梯级水库群总发电量的要求。若在特定时间范围内可用的水量不足或过多，控制目标就不能实现，需要改变调度计划以满足系统可用水量的要求，将可能需要调整的时段和水库的组合称为影响组合。对于水库m，假设其只有一个直接上游水库 m − 1 ，不同需求下的潜在影响组合范围和可能改变影响组合范围的约束如表2所示。在表2中， l _ m − 1 是水库 m − 1 到水库m的最小滞时。 2.5.1. 当前水库调度计划修改方法 不同情况下，对于不同水库的不同调度需求，依次按时间顺序进行影响组合发电出力的修改。并模拟和测试修改的调度计划是否达到要求。对于水库m在时段 [ t 1 ， t 2 ] 内增减蓄水量的特定目标，修改水电站m自身的调度计划的操作步骤如下： 1) 获取潜在的影响范围。设定 t s = 1 。如果需在时段 [ t 1 ， t 2 ] 内增加蓄水量，就需要减少该时段之前的出库水量。找到t1前的最后一个水库水位达到上限的时段，并将ts重新设定为此值。因为在水位达到上限的时段之前若减小部分时段出库，将使得水位达到上限时段附近的出力变化导致时间关联约束破坏，或者出现弃水，需要对此进一步修正而使得计算非常复杂。同理，如果在时段 [ t 1 ， t 2 ] 内需要减少蓄水量，将ts设定为t1前的最后一个库水位达到下限的时段； 图2. 相邻时段出力修改示例 Table 2 Influencing combinations for requirement 调度需求 水库m的期末水位， 总出力或的发电流量 水库m在时段[t1，t2]减少 的弃水 水库m在时段[t1，t2]满足的 最小流量或出力 满足水库群[m1，m2] 的总电量 潜在可用水量 调整范围 { m } × [ 1 ， T ] { m } × [ 1 ， t 2 ] { m } × [ 1 ， t 2 ] ( ∀ m 0 ∈ [ m 1 ， m 2 ] ) × [ 1 ， T ] 潜在影响组合 { m } × [ 1 ， T ] ∪ { m − 1 } × [ 1 ， T − l _ m − 1 ] { m } × [ 1 ， t 1 ] ∪ { m − 1 } × [ 1 ， t 2 − l _ m − 1 ] { m } × [ 1 ， t 1 ] ∪ { m − 1 } × [ 1 ， t 2 − l _ m − 1 ] ( ∀ m 0 ∈ [ m 1 ， m 2 ] ) × [ 1 ， T ] 约束限制 水库m在时段 [ 1 ， T ] 的库 容限制；水库m-1在时段 [ 1 ， T − l _ m − 1 ] 的库容限制 水库m在时段 [ 1 ， t 1 − 1 ] 的库 容限制；水库m-1在时段 [ 1 ， t 2 − l _ m − 1 ] 的库容限制 水库m在时段 [ 1 ， t 1 ] 的库容 限制；水库m-1在时段 [ 1 ， t 2 − l _ m − 1 ] 的库容限制 水库群m1: m2在时段 [ 1 ， T ] 的库容限制 表2. 需求的影响组合 2) 将 [ t s ， t 1 − 1 ] 中的时段储存在集合U中，在最小出力(或最小发电流量)约束下减小出库实现t1时段蓄水量增加；在最大出力(或最大发电流量)约束下增加出库实现蓄水量减小； 3) 将集合U中的时段根据时段排序规则排序，按顺序储存为 { u 1 ， u 2 ， ⋯ ， u n } ，并设定 k = 1 ； 4) 以设定步长增减时段 u k 的出力值，采用可行性修改算法获得新的可行出力过程。保持水库m的直接下游水库出库流量过程不变，水库m及其下游水库按照新的调度计划进行模拟。新的调度计划可能会造成水库弃水量增加，最小出力或最小发电流量的约束破坏，水位超过限制等。若发生如上情况，那么对原调度计划的修改是无效的，重新设定 k = k + 1 ≤ n 并重新执行步骤4)； 5) 如果步骤4)中调度计划修改成功，但仍没有达到蓄水量增减目标，则返回步骤1)，否则停止。 在修正调度计划的过程中，在每次成功修改后都要重新进行时段排序。 2.5.2. 相邻水库调度计划修改方法 通过修改直接上游水库m的出力过程，改变水库 m + 1 在时段 [ t 1 ， t 2 ] 蓄水量的步骤如下。 1) 设定 t s = 1 。如果水库 m + 1 蓄水量在时段 [ t 1 ， t 2 ] 需要增加，找到t1前的最后一个水库 m + 1 水位达到上限时的初始时段，并将ts设定为此值。同理，若要在时段内需要减少蓄水量，则将ts设定为t1前的最后一个水库 m + 1 水位达到下限的时段； 2) 考虑到上下游水流滞时，设定水库m可调整时段为 [ t s ′ ， t 2 − l _ m ] ， t s ′ = t s − l ¯ m ， l ¯ m 为水库m到水库 m + 1 之间水流最大滞时时段数。如果水库 m + 1 在 [ t 1 ， t 2 ] 内需要增加蓄水量，即水库m在 [ t s ′ ， t 2 − l _ m ] 内需要加大出库，在 [ t s ′ ， t 2 − l _ m ] 内找到水库m最后一个水位达到下限时的时段，将 t s ′ 设定为此值。同理，若水库 m + 1 在 [ t 1 ， t 2 ] 内需要减少蓄水量，则将 t s ′ 设定为 [ t s ′ ， t 2 − l _ m ] 内最后一个水库m的库水位达到上限的时段。将 [ t s ′ ， t 2 − l _ m ] 的时段储存在集合U中； 3) 将集合U中的时段进行排序，按顺序储存为 { u 1 ， u 2 ， ⋯ ， u n } ，并设定 k = 1 ； 4) 以设定步长修改水库m在时段 u k 的出力值，采用可行修正算法获得新的调度过程。保持水库 m + 1 的出库流量不变，对水库m及其下游水库 m + 1 按照新的调度计划进行模拟。如果新的调度计划导致弃水量增加，约束越界等情况，那么计划修改失败，重新设定 k = k + 1 ≤ n 并重新执行步骤4)； 5) 如果步骤4) 中调度计划修改成功，但没有达到蓄水量的增减目标，则返回步骤1)，否则停止。 2.6. 梯级水库群发电计划制定 为满足水库群调度需求本文采用三种计算模式对调度计划进行逐步修改，分别是从自上而下、自下而上和整体协调分配出力模式。自上而下即从上游到下游模式是在考虑当前水库m的直接下游水库m+1的约束的条件下，修改当前水库m的调度计划来满足控制目标；自下而上即从下游到上游模式是通过修正当前水库m的直接上游水库m-1的计划来满足当前水库m的控制目标；整体协调分配出力模式用来分配梯级水库群的总电量。 2.6.1. “自上而下”与“自下而上”的计算模式 对于梯级上游水库的调度，必须考虑下游水库的调度计划和水库库容约束。因为上游水库调度计划确定后才能准确制定下游水库的调度计划，所以第一次出力分配计算无法考虑下游水库的约束条件。所以，修正调度出力过程需要同时综合“自上而下”和“自下而上”模式，出力分配步骤如下： 1) 将编号 m = 1 的水库设置为当前水库； 2) 不考虑对下游水库 m + 1 的影响，对水库m进行出力分配以满足其控制目标； 3) 使用“自上而下”模式来分配水库m的出力，以达到减少其弃水并满足最小出力与最小流量约束的目的；如果上游存在 m − 1 水库，必要的情况下采用“自上而下”模式改变水库 m − 1 的出力过程减小水库m的弃水并满足最小出力和最小流量约束的目标； 4) 若水库 m − 1 由于步骤3)偏离控制目标，则利用“自上而下”模式修改水库 m − 1 的出力。如果水库m的约束限制了水库 m − 1 的出力修改，则反复进行时段排序并对水库m在排序靠前的时段进行出力增减和可行性修正，以逐步引导水库 m − 1 通过“自下而上”模式满足水库m新的出力过程的用水，同时使得水库 m − 1 接近控制目标； 5) 如果在步骤4)之后水库m的控制目标出现偏差，则用“自上而下”模式进行再次修正m的调度计划； 6) 设定 m = m + 1 ，如果 m > M 执行步骤7)，否则执行步骤2)； 7) 检查水库是否仍有控制目标无法满足。如果不能同时满足上、下游水库的控制目标，则需根据预先设定的目标优先级，采用“自上而下”模式或“自下而上”模式对其进行修正。 在这个计算流程中，步骤2)~步骤5)是一组上下游水库的循环计算。对于当前水库m，初始调度计划的制定是在不考虑下游水库约束条件的情况下获得的(步骤2))，该调度计划的目标是水库m满足其自身控制目标。因为上游水库 m − 1 的发电计划没有考虑下游水库m，所以水库 m − 1 的不合理出力过程，可能会导致水库m出现弃水，或违反最小出力或最小流量约束的情况。解决以上问题需要同时修正水库 m − 1 和m的出力来减少弃水并满足水库m的控制目标(步骤3))。在步骤3)中改变水库 m − 1 的调度过程若使其偏离控制值，则再次对其进行修改。如果下游水库m的水位限制了上游水库 m − 1 接近其控制目标，则首先对水库m的调度计划进行修正，为上游水库 m − 1 的出力调整腾出库容调节空间(步骤4))。最后，再次修正水库m满足其控制目标(步骤5))。上下游反复修正的目的在于获得同时满足上、下游水库控制目标的发电计划。 2.6.2. 整体协调分配出力模式 对于梯级水库或水库群，可以总发电量为控制目标，将总发电量分配到每个水电站、每个时段需要遵循以下两个基本规则：前述的时段排序规则和期末蓄能最大的原则，前者优先级更高，则计算流程如下： 1) 计算 e m t = ∂ E s t o r a g e ∂ p m t 的值，其中 E s t o r a g e 是系统蓄能，短期调度中 e m t 值变化幅度一般很小，近似所有 e m t 为一个值 e m ； 2) 将所有水库出力设为最小值，从上游到下游进行减少弃水的操作； 3) 计算电量差 Δ E = ∑ m = 1 M ∑ t = 1 T ( p m t Δ t ) − E s y s 1 ，若其绝对值小于给定精度转到步骤8)； 4) 按时段排序规则进行排序，设定 l = 1 ； 5) 如果 Δ E > 0 ，将水库根据 e m 的值降序排序；如果 Δ E < 0 ，将水库根据 e m 的值升序排序。设定 k = 1 ； 6) 在时段 u l 附近修改水库k的出力，如果电量差的绝对值减小，转至步骤3)，否则设定 k = k + 1 ，如果 k ≤ M ，重新执行步骤6)，否则执行步骤7)； 7) 设定 l = l + 1 ，如果 l ≤ T ，执行步骤5)。如果系统总电量较步骤4)开始时没有变化，转到步骤8)，否则转至步骤4)； 8) 停止。