URBANopt™ REopt® Energy Reliability and Backup Power Planning
This document describes the integration of URBANopt with REopt’s Energy Resilience Planning (ERP) capability.
ERP calculates outage survivability metrics, estimating how long an energy system can operate during a grid outage. It models how resources such as fuel-fired generators and batteries can sustain critical loads during grid outages, considering technology reliability, configuration, and dispatch strategies for detailed planning.
To use ERP within URBANopt, a user can start by creating a REopt example project, which exposes the required ERP inputs. The steps below describe the workflow.
URBANopt REopt Workflow
-
Create a REopt Example Project
Create one of the example projects. The example command command below creates the most basic URBANopt project:
uo create --project-folder <path/to/new/project-folder> -
Create Scenario Files
Create the URBANopt example scenario files:
uo create --scenario-file <path/to/FEATUREFILE.json>Next, create the REopt ERP-enabled scenario file based on the desired example scenario (ex: Baseline scenario) using the following command:
uo create --reopt-erp-scenario-file <path/to/existing/SCENARIOFILE.csv>Running this command will create a copy of an existing scenario file and add the ‘REopt Assumptions’ column to it. After running this command, a
reoptfolder will also be created. This folder contains the REopt assumption files that include the required inputs and default values for running a REopt analysis. For the ERP workflow, two additional assumption files are included:multiPV_assumptions_ERP.jsonanderp_assumptions.json.MultiPV_assumptions_ERP.json File
The
multiPV_assumptions_ERP.jsondefines an array of PV inputs used to optimize multiple PV systems simultaneously. ThemultiPV_assumptions_ERP.jsonis assigned to the URBANopt project features in the REopt ERP scenario file by default. The multiPV_assumptions_ERP.json file can be modified by the user as needed, or a new assumption file can be created by the user and assigned in the REopt ERP scenario file. More details on creating a REopt example project and the structure of these assumption files are available in the REopt Post Processing Section.In particular, the
multiPV_assumptions_ERP.jsonfile contains the key input fields required to run an ERP analysis:outage_start_time_steps: A list of starting time steps representing when the grid outage may start. This input is used for robust optimization across multiple outages. For example, if thetimestep_per_hourfield is set to 1, then anoutage_start_time_stepsvalue of [1000, 2500] would indicate that outages will start at hour 1000 and hour 2500 of the simulation.outage_durations: A list of possible durations for grid outages during the simulation. For each start time listed in theoutage_start_time_stepsfield above, an outage duration value should be listed in theoutage_durationsfield. For example, if theoutage_durationsfield is set to [24, 48], the outage starting at hour 1000 will last 24 hours, and the outage starting at hour 2500 will last 48 hours. The maximum (overoutage_start_time_steps) of the expected value (overoutage_durationswith probabilitiesoutage_probabilities) of outage cost is included in the objective function minimized by REopt. By default theoutage_probabilitiesfield has not be included in the URBANopt-REopt assumptions file as it defaults to giving each outage equal probability. If the user would like to vary the probability of each outage specified in theoutage_start_time_steps, they can add a new field namedoutage_probabilitiescontaining a list of probabilities for each outage.critical_load_fraction: This is the fraction multiplied by the building loads on site, to determine the amount of critical loads that must be met during the outage. By default this is set to 1.0 in the URBANopt-REopt workflow.urdb_labelthis should be updated to match the site location. Instructions on making the update are provided in the REopt Post Processing Section.More details on these inputs are provided in the REopt API documentation.
ERP_assumptions.json File
The
erp_assumptions.jsonis a separate file used to run the ERP workflow and contains the following:max_outage_duration. This is a required input to run the ERP capability. It is set to 24 (hours) by default. If this file is not added as an argument while running the ERP capability, a default of 24 hours is assumed.ERP Workflows
The ERP capabilities can be used in two main ways:
1 — Include outage inputs during the REopt optimization
In this approach, the outage duration and start timestep are specified in the assumptions file. REopt sizes the energy systems (generators, PV, battery) to meet both economic objectives and the requirement to survive the specified outage. REopt sizes PV and storage optimally to survive those outages, assuming perfect foresight. After optimization, the REopt ERP command is run to calculate the backup power metrics for the system that was explicitly designed to withstand the outage.
2 — Run ERP on an existing system without outage-based sizing
REopt sizes generation and storage purely based on economic objectives (e.g., cost savings), with no requirement to survive a specified outage. When running the ERP post processing, REopt uses the system sizes and dispatch profile generated previously. It then simulates outages starting at every hour of the year, using the actual battery state of charge at each hour. This is often useful if the user wants to first size for economics, then see how the system might be able to provide backup power without explicitly sizing to survive a specified outage. For this option, use an assumptions file in the Scenario File that does not specify an outage duration and start timestep.
In both cases the critical load fraction input needs to be provided.
-
Run URBANopt project
The URBANopt project is run by specifying the feature file and the REopt ERP Scenario file:
uo run --feature <path/to/FEATUREFILE.json> --scenario <path/to/ReoptERPScenarioFile.csv> -
Default Post Process Results
Default post processing to generate URBANopt results is performed via the following command:
uo process --default --feature <path/to/FEATUREFILE.json> --scenario <path/to/ReoptERPScenarioFile.csv> -
REopt Post Process Results
The Reopt Scenario or Feature Post Processing optimizations are performed with the –reopt-backup-power flag to include the ERP capability as follows:
To run the Scenario Post Processing:
uo process --reopt-scenario --feature <path/to/FEATUREFILE.json> --scenario <path/to/ReoptERPScenarioFile.csv> --reopt-backup-powerTo run the Feature Post Processing:
uo process --reopt-feature --feature <path/to/FEATUREFILE.json> --scenario <path/to/ReoptERPScenarioFile.csv> --reopt-backup-powerFor both the Scenario Post Process and Feature Post Processing, the
erp_assumptions.jsonfile from thereoptfolder is used by default without needing to specify it. If users want to specify their own assumption file, they can do so using thereopt-erp-assumptions-fileflag in the process command:uo process --reopt-scenario --feature <path/to/FEATUREFILE.json> --scenario <path/to/ReoptERPScenarioFile.csv> --reopt-backup-power --reopt-erp-assumptions-file <path/to/erp_assumptionsFile.json>On completing the simulation worklow, an ERP report:
scenario_report_reopt_erp_run_resilience.jsonis generated in thereoptfolder of the URBANopt Scenario run directory. This file contains the backup power metrics reported from the ERP simulation. Some of the outputs include:unlimited_fuel_mean_cumulative_survival_by_duration: The mean, calculated over outages starting at each hour of the year, of the probability of surviving up to and including each hour of max_outage_duration, if generator fuel is unlimited
unlimited_fuel_cumulative_survival_final_time_step: The probability of surviving the full max_outage_duration, for outages starting at each hour of the year, if generator fuel is unlimited.
mean_fuel_survival_by_duration: The probability, averaged over outages starting at each hour of the year, of having sufficient fuel to survive up to and including each hour of max_outage_duration.
More details about the outputs can be found in the REopt API documentation.
For more details on the REopt ERP implementation, visit the REopt ERP API Endpoints documentation.