Inputs

From EPRI Storage Wiki
< DER VET User Guide
Revision as of 15:41, 31 March 2021 by Mevans (talk | contribs) (1 revision imported)
Jump to navigation Jump to search


This section of the DER-VET User Guide will describe in detail all inputs to the command-line (Python) version of DER-VET that are not under a technology or service and the impact they have on the simulation. In addition, advanced topics, such as support for high performance computing, are covered here.

Model Parameters Files

Inputs can be passed to run_dervet.py in two different forms, a .csv file or a .json file. If a .csv file is given (e.g. python run_dervet.py Model_Parameters_Template_DER.csv), it will be converted to a .json file, which will be saved alongside the .csv. Both the .csv and .json files express the same information. This page will focus on the .csv format, which will be more directly useful to most users, but all information here is also applicable to .json inputs.

Scenario Inputs

The "Scenario" tag (Column A in the default model parameters template) describes a set of inputs that govern high-level model parameters, such as data sources, the analysis window, the optimization window, and optimization settings.

Monthly Data Filename

Tag Key Description
Scenario monthly_data_filename This is a file path (usually a relative file path) pointing to a monthly data file. The monthly data file expresses natural gas prices, demand response program participation and price, and resource adequacy prices. If none of these are applicable to your case, the monthly_data_filename input can be left as default.

Timeseries filename

Tag Key Description
Scenario time_series_filename This is a file path (usually a relative file path) pointing to a time series data file. This file is almost always required for a case. Best practice is to save a new timeseries data file with a meaningful name for each case you run and edit the time_series_filename parameter to match.

Timestep

Tag Key Description
Scenario dt dt determines the time step used in the simulation in units of hours. Common options for this include 0.25 (15 minutes), 0.5 (30 minutes), and 1 (1 hour). Other options include 0.083 (5 minutes) and 0.016 (one minute). These options are not recommended due to their computational intensity.

All time series data in the program will follow this time step. The timeseries data file must contain time stamps in the "Datetime (he)" column that increment by dt.

dt, along with the optimization window size, are key components in determining the time it takes to solve an optimization problem. Generally, longer time steps result in faster solve times.

Optimization Years

Tag Key Description
Scenario opt_years opt_years indicate which years DER-VET will solve an optimization problem for. Any years not included in opt_years will not generate an optimization problem and DER-VET will fill in the financial results for those years by either escalating past results or interpolating between two optimization years.

DER-VET will dynamically add to the list of optimization years as needed, including the years before and after a deferral fails, a storage system reaches its end of life, or another non-replaceable piece of equipment reaches its end of life.

Best practice is to include an optimization year at the beginning of a project's operation and at the end of the project's life.

The format for including multiple opt_years is to separate them by spaces in the input file. e.g., optimizing the years 2021 and 2030 would be indicated by "2021 2030" in this input.

Each optimization year requires a corresponding set of data in the timeseries input file. Simply append more years of data to the bottom of the timeseries input file, ensuring that the new time stamps match the opt_year, that the timestamps increment by the dt input, and that the appropriate number of rows are included (e.g. 8784 new rows when dt=1 and the opt_year is a leap year or 8760 for a non-leap year).

Start Year

Tag Key Description
Scenario start_year This represents the first year of operation for the project. All opt_years must be on or after start_year.

Only a single year value may be input here.

End Year

Tag Key Description
Scenario end_year This represents the last year of operation for the project ( start_year = 2020 and end_year = 2030 represents an 11 year project). All opt_years must be on or after start_year.

Only a single year value may be input here.

This value will only be used if analysis_horizon_mode is 1. Otherwise, the end of the analysis window is auto-calculated by DER-VET.

Optimization Window Size

Tag Key Description
Scenario n "n" represents the optimization window size used by DER-VET to break up a year of data into smaller more manageable chunks. The longer the optimization window, the more optimization variables are solved for simultaneously, which increases the solve time. By breaking the optimization into smaller chunks (optimization windows), the overall time to solve the whole problem is reduced.

To make each optimization window independent, the SOC of all storage systems must be constrained at the beginning and end of each optimization window. This ensures the result is feasible even though no two optimization windows have any knowledge of each other. The SOC used for this is set using the SOC Target input. The timing of the interface between optimization years and the SOC target can have implications on the results

The larger n is, the closer to optimal the results will be. This effect is especially important for energy storage systems. If n is close to (<2x) the duration (energy capacity/power capacity) of a storage system, that storage system may not be able to fully utilize its energy capacity with the optimization window before being required to return to its target SOC at the end of the optimization window. In typical cases, the impact of n on energy time shifting financial results for storage systems is dramatic when n is small (hours to days), but is small when n is "month" or more.

n can take the values "year", "month" or some integer number hours. n must be "year" if any size optimization is being performed. The "month" option aligns optimization windows with months, even though months contain different numbers of hours. Entering an integer generates optimization windows of that many hours.

Include Site Load

Tag Key Description
Scenario incl_site_load This is a binary (0 or 1) flag to tell DER-VET whether or not to look in the timeseries inputs file for a site load and include it in the calculations. This parameter must be 1 when the reliability or demand charge management services are active.

Include Thermal Load

Tag Key Description
Scenario incl_thermal_load This is a binary (0 or 1) flag to tell DER-VET whether or not to look in the timeseries inputs file for thermal loads (cooling, hot water, and steam) and include them in the calculations. Note: these loads must be served by local resources, so an appropriate combination of boilers, chillers, and CHP must be included if this is turned on.

Apply Interconnection Constraints

Tag Key Description
Scenario apply_interconnection_constraints This is a binary (0 or 1) flag to tell DER-VET whether or not to apply the constraints defined by the max_import and max_export parameters.

Max Import

Tag Key Description
Scenario max_import When the apply_interconnection_constraints flag is turned on, this input will set the maximum import power allowed through the point of interconnection (see the DER-VET single line diagram). This value must be less than or equal to zero to limit the import power.

Setting this parameter to zero is one way to limit a storage system to only charge from local generation.

Max Export

Tag Key Description
Scenario max_export When the apply_interconnection_constraints flag is turned on, this input will set the maximum export power allowed through the point of interconnection (see the DER-VET single line diagram). This value must be greater than or equal to zero to limit the export power.

Setting this parameter to the interconnection capacity of a solar plus storage system (ac or dc coupled) can limit the combined generation/discharge power from the solar and storage to the shared interconnection capacity and can prompt the storage to charge from excess solar generation/the solar to curtail excess generation.


Verbose

Tag Key Description
Scenario verbose This is a binary (0 or 1) flag to tell DER-VET how much text to publish to the command line interface as it runs.

Verbose (Optimization)

Tag Key Description
Scenario verbose_opt This is a binary (0 or 1) flag to tell DER-VET how much text about the progress of the optimization to publish to the command line interface as it runs.


Binary

Tag Key Description
Scenario binary This is a binary (0 or 1) flag to tell DER-VET whether to run a mixed integer linear programming formulation of the optimization problem or a linear programming formulation.

When binary=1, two binary optimization variables will be produced at every time step for every storage system (or one for generators) which determines the state of the DER (either "charging", "off", or "discharging"). This prevents the (in most cases) undesirable behavior of storage systems concurrently charging and discharging in the simulation and enables minimum power levels for DER. Concurrently charging and discharging is seen when energy prices are negative or there are ancillary services that can benefit from both charging and discharging, but is not possible for most common storage systems. This mode is not compatible with size optimization.

When binary=0 a considerably faster linear program will be solved. In many cases, this formulation is okay but care should be taken to ensure the case does not exhibit concurrent charging and discharging. This mode is not compatible with minimum power levels.

Ownership

Tag Key Description
Scenario ownership This input tells DER-VET what perspective to take. This can be 'customer', 'utility', or '3rd party'.

Location

Tag Key Description
Scenario location This input tells DER-VET on what part of the grid the the project will be connected to. It can be either 'generation', 'transmission', 'distribution', or 'customer'.

Finance Inputs

Inflation Rate

Tag Key Description
Scenario inflation_rate The inflation rate is used to escalate fixed yearly costs/benefits so their value remains constant in real terms.

Discount Rate

Tag Key Description
Scenario npv_discount_rate The discount rate is used convert dollars (or other currency) between years, particularly in present value calculations. The nominal cash flows in the pro forma output file will be brought back to present in the net present value calculation using this rate.

Yearly Data Filename

Tag Key Description
Scenario yearly_data_filename This file path input (usually a relative file path) points to a yearly inputs file, which contains yearly tax credits or other incentives. These are only applied to the financial results when the external incentives input is set to 1.


External Incentives

Tag Key Description
Scenario external_incentives This binary input (0 or 1) tells DER-VET whether or not to include the nominal yearly tax credits or other financial incentives contained in the yearly inputs file.

Customer Tariff Filename

Tag Key Description
Scenario customer_tariff_filename This file path input points to a properly-formatted DER-VET tariff file, which is used by the retail demand charge management and retail energy cost reduction services. This input will be ignored if neither of those services is selected.

Analysis Horizon Mode

Tag Key Description
Scenario analysis_horizon_mode The analysis horizon mode defines when/how to end the analysis. The options are:
  • "1" for a user defined analysis horizon. This will use the end_year input to end the analysis
  • "2" to auto-calculate the year to end the analysis based on the shortest equipment life among all DERs present in the analysis
  • "3" to auto calculate the year to end the analysis based on the longest equipment life among all DERs present in the analysis

Performing benefit-cost analysis for a project with a mix of DERs, all of which last different numbers of years, can be complicated. Pairing a solar system with a life of 25 years with a battery energy storage system with an expected life of 10 years exemplifies this challenge. Should the analysis extend 25 years, 15 of which will be without a battery? Or should the analysis last 10 years with the remaining benefit from the solar system handled by a simple value adder? This input gives users options for how to end the analysis.

Federal Tax Rate

Tag Key Description
Scenario federal_tax_rate Flat federal tax rate used to calculate tax impact of DERs

State Tax Rate

Tag Key Description
Scenario federal_tax_rate Flat state tax rate used to calculate tax impact of DERs


Property Tax Rate

Tag Key Description
Scenario federal_tax_rate Flat property tax rate used to calculate tax impact of DERs

Economic Carrying Cost Mode

Tag Key Description
Scenario ecc_mode Binary input (0 or 1) indicating whether or not to annualize all costs and benefits of the microgrid. When 1, the capital and ongoing costs of the DERs will be converted into an annual economic carrying cost (ECC) and compared to the annualized benefits of the system.

Results Inputs

Output Directory Filepath

Tag Key Description
Scenario dir_absolute_path This is a full file path to a folder where the Results folder containing output files from DER-VET should be saved.

This path will only be used if the 'Active' column is set to 'yes'.

Output Label

Tag Key Description
Scenario label Give this case a name, which will be used to distinguish it from other cases in the Results folder.

This name will only be used if the 'Active' column is set to 'yes' for the label row.

Error Log Filepath

Tag Key Description
Scenario errors_log_path This is a full file path to a folder where the error logs file should be saved.

This path will only be used if the 'Active' column is set to 'yes' for the label row.

Timeseries Inputs

Timeseries Data File Inputs

Tariff Inputs

Tariff File Inputs

Monthly Inputs

Monthly Data File Inputs

Yearly Inputs

Yearly Data File Inputs

Battery Cycle Life Inputs

Battery Cycle Life File Inputs

Load Shed Schedule Inputs

Load Shed Schedule Inputs

Advanced Topics

Scenario Analysis and HPC support