simcast_multi: Simulate water supply reservoir operations informed by...

Description Usage Arguments Value Examples

View source: R/mpc_multi.R

Description

For simulating a water supply reservoir operated with rolling horizon, adaptive control (Model Predictive Control).

Usage

1
2
3
4
5
simcast_multi(Q, forecast, start_yr, capacity, target, surface_area, max_depth,
  evap, R_max = 2 * target, spill_targ = 0.95, vol_targ = 0.75,
  weights = c(0.7, 0.2, 0.1), S_disc = 1000, R_disc = 10, Q_disc = c(0,
  0.2375, 0.475, 0.7125, 0.95, 1), loss_exp = c(2, 2, 2), S_initial = 1,
  plot = TRUE)

Arguments

Q

time series object. Observed reservoir inflow totals. Recommended units: Mm^3 (Million cubic meters).

forecast

matrix: N * H, where N is the number of forecast-issue periods and H is the forecast horizon (i.e., number of periods) .

start_yr

the start year of the forecast. If the 'Q' and 'forecast' parameters have the same start year then leave blank.

capacity

numerical. The reservoir storage capacity. Recommended units: Mm^3 (Million cubic meters).

target

numerical. The target release constant. Recommended units: Mm^3 (Million cubic meters).

surface_area

numerical. The reservoir water surface area at maximum capacity. Recommended units: km^2 (square kilometers).

max_depth

numerical. The maximum water depth of the reservoir at maximum capacity. If omitted, the depth-storage-area relationship will be estimated from surface area and capacity only. Recommended units: meters.

evap

time series object of equal length to Q, vector of length frequency(Q), or numerical constant. Evaporation from losses from reservoir surface. Varies with level if depth and surface_area parameters are specified. Recommended units: meters, or kg/m2 * 10 ^ -3.

R_max

numerical. The maximum controlled release.

spill_targ

numerical. The quantile of the inflow time series used to standardise the "minimise spill" objective.

vol_targ

numerical. The target storage volume constant (as proportion of capacity).

weights

vector of length 3 indicating weighting to be applied to release, spill and water level objectives respectively.

S_disc

integer. Storage discretization–the number of equally-sized storage states. Default = 1000.

R_disc

integer. Release discretization. Default = 10 divisions.

Q_disc

vector. Inflow discretization bounding quantiles. Defaults to five inflow classes bounded by quantile vector c(0.0, 0.2375, 0.4750, 0.7125, 0.95, 1.0).

loss_exp

vector of length 3 indicating the exponents on release, spill and water level deviations from target. Default exponents are c(2,2,2).

S_initial

numeric. The initial storage as a ratio of capacity (0 <= S_initial <= 1). The default value is 1.

plot

logical. If TRUE (the default) the storage behavior diagram and release time series are plotted.

Value

Returns a list of reservoir variables as time series for the forecast period. Also returns penalty cost during operating period and cost savings relative to operations without forecasts.

Examples

1
2
3
4
5
Q <- resX$Q_Mm3
forecastQ <- bootcast(Q, start_yr = 1980, H = 3, plot = FALSE)
layout(1:3)
simQ <- simcast_multi(Q, resX$cap_Mm3, target = 0.3*mean(Q),
forecast = forecastQ, start_yr=1980, S_disc = 200)

swd-turner/reservoir documentation built on Sept. 7, 2017, 8:11 p.m.