Skip to content

Power Sources

Objects and functions for electricity storage.

DispatchableSource

Bases: PowerSource

Class representing dispatchable (flexible) sources of electricity and power plants. Typically, these include coal-fired, hydroelectric, natural gas or biomass-fuelled power plants.

dispatch_at(power)

Request that the electricity source adjust its generation to at most power MW, or to its maximum capacity, if power is greater than the nominal capacity.

Parameters:

Name Type Description Default
power Power

The requested power generation.

required

Returns:

Type Description
Power

Net power generation of the source after the dispatch request.

shut_down()

Request the power source to shut down, i.e. turn of all electricity generation.

NonDispatchableSource

Bases: PowerSource

Class representing non-dispatchable (inflexible) power plants. These are typically renewable sources, such as photovoltaic power plants or wind turbines. This class may also be used for nuclear power plants that are used for a constant base load, i.e. with no dispatch capabilities.

PowerSource

General class representing sources that generate electricity in the grid. These are typically conventional or renewable power plants.

generation property

Return gross power generation of the source in MWh. This is equal to the nominal capacity multiplied by the capacity factor.

name property

Return the source's textual identifier.

net_generation property

Return net power generation of the source in MWh. This amount is equal to gross generation minus the source's self-consumption.

utilisation property writable

Return the source's capacity factor.

__init__(name, nominal, *, self_consumption=0.0, utilisation=1.0)

Create an electricity source object.

Parameters:

Name Type Description Default
name str

Short textual identifier of the source, e.g. "wind" or "nuclear".

required
nominal Power

Nominal (or nameplate, installed) capacity of the source in MW.

required
self_consumption float

Portion of generated power that is consumed by the source itself to keep running. A number in the range [0, 1].

0.0
utilisation float

Initial utilisation (or capacity factor) of the source. A number in the range [0, 1].

1.0

ThermalPowerPlant

Bases: DispatchableSource

A thermal-like power plant with limited flexibility capabilities. This can be used to model, for instance, lignite and hard coal-fired plants or OCGT/CCGT gas plants.

__init__(name, nominal, *, self_consumption=0.0, min_load=0.0, min_downtime=0, min_uptime=0, startup_time=0)

Create an electricity source object.

Parameters:

Name Type Description Default
name str

Short textual identifier of the source, e.g. "wind" or "nuclear".

required
nominal Power

Nominal (or nameplate, installed) capacity of the source in MW.

required
self_consumption float

Portion of generated power that is consumed by the source itself to keep running. A number in the range [0, 1].

0.0
min_load float

Minimum required load when generating electricity. A number in the range [0, 1].

0.0
min_downtime int

...

0
min_uptime int

...

0
startup_time int

Number of time steps it takes to start the source from cold, i.e. time before it reaches min_load of utilisation.

0

dispatch_at(power)

Request that the electricity source adjust its generation to at most power MW, or to its maximum capacity, if power is greater than the nominal capacity.

Parameters:

Name Type Description Default
power Power

The requested power generation.

required

Returns:

Type Description
Power

Net power generation of the source after the dispatch request.