< DER VET User GuideRevision as of 14:31, 31 March 2021 by en>MilesEvans
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
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