gen.csv

This file is where generators are defined. Add one row for each generator in the model, including both thermal and renewable generators.

gen.csv Columns

Column Name

Description

Egret

GEN UID

A unique string identifier for the generator.

Used as the branch name in Egret. Data for this branch is stored in a generator dictionary stored at ['elements']['generator'][<GEN UID>].

Bus ID

Bus ID of connecting bus

The Bus Name of the bus with the matching Bus ID, as entered in bus.csv, is stored in the Egret generator dictionary as bus.

Unit Type

The kind of generator

Typically stored in unit_type. Has additional side effects. See Generator Types below.

Fuel

The type of fuel used by the generator

Stored in the generator dictionary as fuel

MW Inj

Real power injection setpoint

Stored in the generator dictionary as pg

MVAR Inj

Reactive power injection setpoint

Stored in the generator dictionary as qg

PMin MW

Minimum stable real power injection

May be left blank. If present, stored in the generator dictionary in multiple places: p_min, startup_capacity, shutdown_capacity, and p_min_agc

PMax MW

Maximum stable real power injection

May be left blank. If present, stored in the generator dictionary in multiple places: p_max and p_max_agc

QMin MVAR

Minimum stable reactive power injection

May be left blank. If present, stored in the generator dictionary as q_min

QMax MVAR

Maximum stable reactive power injection

May be left blank. If present, stored in the generator dictionary as q_max

Ramp Rate MW/Min

Maximum ramp up and ramp down rate

Thermal generators only. May be left blank. If present, stored in the generator dictionary in multiple places: ramp_q and ramp_agc

Output_pct_0 through Output_pct_<N>

The fraction of PMax MW for fuel curve point i (See Fuel Curves below).

Thermal generators only. See Fuel Curves below.

HR_avg_0

Average heat rate between 0 and the first fuel curve point, in BTU/kWh

Thermal generators only. See Fuel Curves below.

HR_incr_1 through HR_incr_<N>

Additional heat rate between fuel curve point i-1 and fuel curve point i, in BTU/kWh.

Thermal generators only. See Fuel Curves below.

Fuel Price $/MMBTU

Fuel price in Dollars per million BTU

Thermal generators only. Stored in the generator dictionary as fuel_cost.

Non Fuel Start Cost $

Dollars expended each time the generator starts up.

Thermal generators only. Stored in the generator dictionary as non_fuel_startup_cost.

Min Down Time Hr

Minimum off time required before unit restart

Thermal generators only. Stored in the generator dictionary as min_down_time.

Min Up time Hr

Minimum off time required before unit restart

Thermal generators only. Stored in the generator dictionary as min_up_time.

Start Time Cold Hr

Time since shutdown after which a cold start is required

Thermal generators only. See Startup Curves below

Start Time Warm Hr

Time since shutdown after which a warm start is required

Thermal generators only. See Startup Curves below

Start Time Hot Hr

Time since shutdown after which a hot start is required

Thermal generators only. See Startup Curves below

Start Heat Cold MBTU

Fuel required to startup from cold

Thermal generators only. See Startup Curves below

Start Heat Warm MBTU

Fuel required to startup from warm

Thermal generators only. See Startup Curves below

Start Heat Hot MBTU

Fuel required to startup from hot

Thermal generators only. See Startup Curves below

Additional Generator Values

The following values are automatically added to all generator dictionaries:

  • in_service = true

  • mbase = 100.0

  • area = Area of the bus identified by Bus ID

  • zone = Zone of the bus identified by Bus ID

If the generator is a thermal generator, these additional values are also added:

  • agc_capable = true

  • shutdown_cost = 0.0

  • ramp_up_60min = 60 * ramp_q

  • ramp_down_60min = 60 * ramp_q

Generator Types

The Unit Type column determines whether the generator will be treated as thermal or renewable, or if the generator will be skipped.

If the Unit Type is Storage or CSP, the generator is skipped and left out of the Egret model.

If the Unit Type is WIND, HYDRO, RTPV, or PV, then these values are set:

  • generator_type = renewable

  • unit_type = Unit Type

If the Unit Type is ROR, then these values are set:

  • generator_type = renewable

  • unit_type = HYDRO

For all other values of Unit Type, these properties are set:

  • generator_type = thermal

  • unit_type = Unit Type

Fuel Curves

Fuel curves describe the amount of fuel consumed by the generator when producing different levels of power. A fuel curve is defined by a set of points, where each point identifies a power output rate and the amount of fuel required to generate that amount of power.

Power output rates are defined by the Output_pct_<N> columns, such as Output_pct_0, Output_pct_1, and so on. You can include any number of Output_pct_<N> columns, but they must be numbered sequentially (0, 1, 2, and so on, up to the desired number of fuel curve points). The value of each Output_pct_<N> column is a fraction of the maximum real power output (PMax MW), ranging from 0 to 1. Values must be in ascending order: Output_pct_1 must be greater than Output_pct_0, Output_pct_2 must be greater than Output_pct_1, and so on.

Corresponding fuel requirements are defined by the HR_avg_0 column (for fuel curve point 0) and by HR_incr_<N> columns (for fuel curve points 1 and above). HR_avg_0 is the fuel required to achieve Output_pct_0. HR_incr_1 is the amount of additional fuel (the fuel increment) required to achieve Output_pct_1, HR_incr_2 is the amount of additional fuel required to go from Output_pct_1 to Ouput_pct_2, and so on. The fuel consumption curve is required to be convex above point 0; the slope of lines between fuel curve points must increase as you move to the right. Values of HR_incr_* must be chosen to reflect this requirement.

Within each row, the number of non-blank HR_* columns must must match the number of non-blank Output_pct_<N> columns. However, different rows can have different numbers of points in their fuel curves. Columns beyond the number of points in the fuel curve should be left blank.

The diagram below shows an example of a fuel curve with 4 points. The output percentage increases along the X-axis with each successive point. Fuel consumption values on the Y-axis are calculated by adding fuel increments to the previous Y values. Note that the fuel consumption curve is convex above Output_pct_0.

../../../_images/Example-Fuel-Curve.png

Fuel curves are stored in the Egret generator dictionary as p_fuel. Values in the fuel curve are in MW (rather than output percent) and MMBTU/hr (rather than BTU/kWh). Fuel costs are calculated by interpolating the fuel curve for the current output rate, then multiplying by the fuel_cost.

Startup Curves

Startup curves define the amount of fuel required to start a generator, based on how long it has been since the generator was shut off.

  • If the time since the generator was most recently shut down is less than either the Min Down Time Hr or the Start Time Hot Hr, the generator cannot yet be restarted.

  • If the time since shutdown is at least Min Down Time Hr and Start Time Hot Hr, but less than Start Time Warm Hr, then the generator can do a hot start, consuming Start Heat Hot MMBTU.

  • If the time since shutdown is at least Start Time Warm Hr, but less than Start Time Cold Hr, then the generator can do a warm start, consuming Start Heat Warm MMBTU.

  • If the time since shutodown is at least Start Time Cold Hr, then the generator can do a cold start, consuming Start Heat Cold MMBTU.