Bases: object
Branch
A Branch is a connection point between any two nodes and specifies the capacity between the nodes. A branch may be a risk setting object, if the risk flag is set to True If this is the case then the current implementation of the model requires the sending and receiving node to be in different Reserve Zones.
To initiate a Branch object a minimum of three items must be passed.
| Parameters : | SO: SystemOperator :
sending_node: Node :
receiving_node: Node :
capacity: int, float, default 0 :
risk: bool, default False :
|
|---|
Bases: object
Company
A container around a number of Stations and Interruptible Load which can be used to determine the aggregate position for a particular company. This is useful when determining profits and losses from a particular solution ot the model and should speed up the iteration process.
Bases: object
InterruptibleLoad
Container for an Interruptible Load participant within the market. This participant acts as a non-generator source of reserve for supporting a higher level of risk in the market.
Currently set up by passing a unique name to the object.
| Parameters : | name: str :
SO: SystemOperator :
Node: Node :
Company: Company :
|
|---|
Methods
Bases: object
Node
A nodal location within the current system. Is part of a reserve zone and acts as a location for demand, generation and reserve. Has a number of automatic methods which are called whenever a new object is created at the node in question to handle the book keeping operations.
| Parameters : | name: str :
SO: SystemOperator :
RZ: ReserveZone :
demand: int, float, default 0 :
|
|---|
Bases: object
ReserveZone
A Reserve Zone is a collection of nodes which have a separate “risk” which must be secured against by dispatching reserve from the nodes within the zone. Reserve procured from other zones cannot currently be utilised to secure a risk in a separate zone
| Parameters : | name: str :
SO: SystemOperator :
|
|---|
Bases: object
Station
A generation station for use in the SPD model. Is a container around the core functionality that can be called automatically by the operator to provide its offers. Ideally is a self contained agent that communicates with the SystemOperator
| Parameters : | name: str :
SO: SystemOperator :
Node: Node :
Company: Company :
capacity: int, float, default 0 :
|
|---|
Methods
Bases: object
System Operator
This is a container which contains all of the information about the System. This includes demand data, nodes, stations etc. It must be created first when developing a simulation.
Once it has been created it is passed to the creation of any other object upon which it will automatically update itself.
Once the simulation has been fully defined it is passed to the SPDmodel instance which draws all of the necessary variables and values. These are taken and a Linear Program created which is solved.
Methods
Create a range of duplicate scenarios which are all solved at once to assess the benefits of a particular strategy over a particular run.
This is a user exposed function and must be called whenever a run is being created.
| Parameters : | actor: Node, Station, InterruptibleLoad :
variable: str :
varrange: iterable :
|
|---|
Overall Model for the linear program.
Bases: object
SPDModel
Container for setting up, solving, and organising the results of a Simulation. Contains three primary API methods. Creation of the Linear Program, solving the LP and parsing the results.
Methods
Publically exposed API Creates the Linear program including applying the objective function and adding all of the necessary constraints. This exists as a wrapper around a number of hidden functions.