Skip to content

Commit

Permalink
Start documenting storage support in RTS-GMLC input
Browse files Browse the repository at this point in the history
  • Loading branch information
darrylmelander committed Dec 23, 2023
1 parent 31ac9f5 commit cd41a96
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 2 deletions.
4 changes: 2 additions & 2 deletions doc/OnlineDocs/source/reference/file_formats/rts-gmlc/gen.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ generator in the model, including both thermal and renewable generators.
- **Description**
- **Egret**
* - :col:`GEN UID`
- A unique string identifier for the generator.
- Used as the branch name in Egret. Data for this branch is stored in a
- A unique string identifier for the generator
- Used as the generator name in Egret. Data for this generator is stored in a
generator dictionary stored at :samp:`['elements']['generator'][{<GEN UID>}]`.
* - :col:`Bus ID`
- :col:`Bus ID` of connecting bus
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ Optional Files
:maxdepth: 1

dc_branch
storage
initial_status
122 changes: 122 additions & 0 deletions doc/OnlineDocs/source/reference/file_formats/rts-gmlc/storage.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
storage.csv
===========

This file is where storage elements are defined. Add one row for each
storage component in the model.

Note that Prescient supports more storage properties than what is
supported by the standard RTS-GMLC input format. Prescient extends
the standard RTS-GMLC file format by supporting a set of additional
columns that are not part of the RTS-GMLC standard. All non-standard
columns are optional; they are not required to be present in the input
file. Prescient will use default values for any missing columns.

.. list-table:: storage.csv Required Columns
:header-rows: 1

* - **Column Name**
- **Description**
- **Egret**
- **Default Value**
* -
-
-
-
* - **Required Columns**
-
-
-
* - :col:`GEN UID`
- The name of a generator on the same bus as this storage element
- Used to identify the bus this storage element is attached to.
The storage will be placed on the same bus as the named generator.
No relationship between the generator and the storage is reflected
in the Egret model, other than being placed on the same bus.
- *Required*
* - :col:`Storage`
- A unique name for the storage element
- Used as the storage element name in Egret. Data for this storage component is placed in a
dictionary located at :samp:`['elements']['generator'][{<Storage>}]`.
- *Required*
* - :col:`Max Volume GWh`
- The maximum storage capacity, in GWh
- Converted to MWh, then placed in the storage dictionary as ``energy_capacity``.
- *Required*
* - :col:`Initial Volume GWh`
- The quantity of energy stored in the storage element at the beginning
of the simulation
- Converted to MWh, then placed in the storage dictionary as ``initial_state_of_charge``
- 0.0
* - :col:`Start Energy`
- The rate at which energy is being drawn from the storage element (if positive),
or the rate at which energy is being injected into the storage element (if negative),
at the start of the simulation. Units are GW.
- First converted to MW.

If positive, placed in the storage dictionary as ``initial_discharge_rate``,
and ``initial_charge_rate`` is set to 0.0.

If negative, placed in the storage dictionary as ``initial_charge_rate``,
and ``initial_discharge_rate`` is set to 0.0.
- 0.0
* - :col:`Inflow Limit GWh` (Should this really be GWh, or GW???)
- The maximum rate at which energy can be inserted into the storage element, in GW
- Converted to MW, then placed in the storage dictionary as ``max_charge_rate``
- Unlimited
* - :col:`Rating MVA`
- The maximum rate at which energy can be drawn from the storage element
- Placed in the storage dictionary as ``max_discharge_rate``
- Unlimited
* - **Optional Columns**
-
-
-
* - :col:`Min Discharge Rate MW`
- The minimum rate at which energy can be drawn from the storage element
- Placed in the storage dictionary as ``min_discharge_rate``
- 0.0
* - :col:`Min Charge Rate MW`
- The minimum rate at which energy can be injected into the storage element
- Placed in the storage dictionary as ``min_charge_rate``
- 0.0
* - :col:`Max Hourly Discharge Ramp Up MW`
- The maximum increase in the discharge rate within a 60 minute period
- Placed in the storage dictionary as ``ramp_up_output_60min``
- Unlimited
* - :col:`Max Hourly Discharge Ramp Down MW`
- The maximum decrease in the discharge rate with a 60 minute period
- Placed in the storage dictionary as ``ramp_down_output_60min``
- Unlimited
* - :col:`Max Hourly Charge Ramp Up MW`
- The maximum increase in the charging rate within a 60 minute period
- Placed in the storage dictionary as ``ramp_up_input_60min``
- Unlimited
* - :col:`Max Hourly Charge Ramp Down MW`
- The maximum decrease in the charging rate within a 60 minute period
- Placed in the storage dictionary as ``ramp_down_input_60min``
- Unlimited
* - :col:`Min SoC`
- The minimum state of charge the storage element is allowed to be drawn down to.
Below this point, the system is not allowed to draw additional energy from
the storage element. Expressed as a number between 0 and 1 that indicates the
fraction of the maximum storage capacity below which additional energy
may not be drawn. A value of 0 means all energy is allowed to be drawn from the
storage element; a value of 0.5 means the system must stop drawing energy
from the storage element once its stored energy drops below half of its capacity.
- Placed in the storage dictionary as ``minimum_state_of_charge``
- 0.0
* - :col:`Charge Efficiency`
- The fraction of injected energy that is stored in the storage
element. Between 0 and 1.
- Placed in the storage dictionary as ``charge_efficiency``
- 1.0
* - :col:`Discharge Efficiency`
- The fraction of drawn energy that is injected onto the bus.
Between 0 and 1.
- Placed in the storage dictionary as ``discharge_efficiency``
- 1.0
* - :col:`Hourly Retention Rate`
- The fraction of stored energy that is still stored in the storage
element after 60 minutes of idle time. Between 0 and 1.
- Placed in the storage dictionary as ``retention_rate_60min``
- 1.0

0 comments on commit cd41a96

Please sign in to comment.