Skip to content

UI for Critical Loads and Grid Outage for all BTM Storage Configs#707

Merged
brtietz merged 17 commits into
developfrom
critical-load-ui
Sep 30, 2021
Merged

UI for Critical Loads and Grid Outage for all BTM Storage Configs#707
brtietz merged 17 commits into
developfrom
critical-load-ui

Conversation

@cpaulgilman

Copy link
Copy Markdown
Collaborator

Goes with NatLabRockies/ssc#618

  • Add Grid Outage UI form with grid_outage input

  • Reorganize Electric Load page for better usability

  • Improve labeling of critical load inputs, including option for time series resiliency calcs

  • UI conditional messaging to ensure grid outage is not enable without critical load, and check fuel cell configs for enabled battery

cpaulgilman and others added 13 commits September 17, 2021 14:22
Widget can be used for losses, outages, curtailment, etc. so "losses" is misleading.
* Add escalation rate for critical load with defaults

* Reorganize Electric Load UI forms for better usability

* Add Grid Outage input and default for BTM battery configs

TO DO:

* Modify LossAdjustment widget to work with grid_outage (and curtailment) input

* Update regular load page to match critical load page

* Test with SSC
* Reorganize  inputs for better usability

* Add tooltips and explanatory text
* Add description property

Still needs additional work to implement description property.
Requires larger effort described here: #703

@brtietz brtietz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall. The one caveat is that the current behavior (resiliency calcs with no outage specified) is broken. Ideally the user would have the option to specify "calculate resiliency for all time steps" when they specify just a critical load and not an outage. I'm not sure if leaving the radio button enabled is the best way to do it or not.

@cpaulgilman

Copy link
Copy Markdown
Collaborator Author

When the user specifies a critical load with no grid outage, what does SAM do when run_resiliency_calcs = 0?

@brtietz

brtietz commented Sep 27, 2021

Copy link
Copy Markdown
Collaborator

The critical load input would be unused in that case. Which is ok (or worth a notice), maybe?

sjanzou and others added 3 commits September 28, 2021 02:13
<table>
<tbody>
<tr>
<td>critical_load</td>
<td>grid_outage</td>
<td>run_resiliency_calcs</td>
<td>Result</td>
<td>UI Behavior</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
<td>Normal SAM operation</td>
<td>Disable run_resiliency_calcs and set to zero.</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>1</td>
<td>Invalid, need critical load.</td>
<td>Not possible to get to this state in UI.</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
<td>Invalid, need critical load.</td>
<td>Disable run_resiliency_calcs and set to zero.</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
<td>Invalid, need critical load.</td>
<td>Disable run_resiliency_calcs and set to zero.</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
<td>Critical load doesn't do anything.</td>
<td>Display a UI message to either specify a grid outage and/or set run_resiliency_calcs to 1.</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
<td>Equivalent to SAM 2020.11.29: Outage is hypothetical, code starts outage in every time step and sees how long battery survives. Tells you how long could you survive an outage. Does not affect battery SOC.</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>0</td>
<td>Results only for outage time steps. Affects battery SOC.</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>Models a real outage that battery has to recover from and a hypothetical one. The resiliency metrics will run for every timestep with a hypothetical outage. During the real outage, they should match the behavior during that outage (in terms of hours of survival). Both during and after the outage, we'll see how many additional hours the system could have survived based on the final SOC.</td>
</tr>
</tbody>
</table>
@cpaulgilman

Copy link
Copy Markdown
Collaborator Author
critical_load grid_outage run_resiliency_calcs Result UI Behavior
0 0 0 Normal SAM operation Disable run_resiliency_calcs and set to zero.
0 0 1 Invalid, need critical load. Not possible to get to this state in UI.
0 1 0 Invalid, need critical load. Disable run_resiliency_calcs and set to zero.
0 1 1 Invalid, need critical load. Disable run_resiliency_calcs and set to zero.
1 0 0 Critical load doesn't do anything. Display a UI message to either specify a grid outage and/or set run_resiliency_calcs to 1.
1 0 1 Equivalent to SAM 2020.11.29: Outage is hypothetical, code starts outage in every time step and sees how long battery survives. Tells you how long could you survive an outage. Does not affect battery SOC.
1 1 0 Results only for outage time steps. Affects battery SOC.
1 1 1 Models a real outage that battery has to recover from and a hypothetical one. The resiliency metrics will run for every timestep with a hypothetical outage. During the real outage, they should match the behavior during that outage (in terms of hours of survival). Both during and after the outage, we'll see how many additional hours the system could have survived based on the final SOC.

@brtietz brtietz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Need to wait to merge until SSC code is ready. Hopefully this will be possible with the connect_outage_vars_to_powerflow branch.

Fix broken code generation to test broken peak shaving

@sjanzou sjanzou left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All my tests are running fine now... first sanity check has passed! Ready to merge.

@brtietz brtietz merged commit 6c0ae8c into develop Sep 30, 2021
This was referenced Oct 9, 2021
@brtietz brtietz deleted the critical-load-ui branch October 28, 2021 19:41
@cpaulgilman cpaulgilman added the added to release notes PR and/or issue has been added to release notes for a public release label Dec 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added to release notes PR and/or issue has been added to release notes for a public release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants