Skip to content
nick-gorman edited this page Nov 21, 2018 · 8 revisions

Interface

The goal of the Nemlite tool is to provide an open source option for modelling the dispatch procedure of the Australian National Electricity Market. Its primary interface is a python function that accepts a set of pandas dataframes that define the market to be dispatched and returns a set of pandas dataframes that detail the unit dispatch outcomes, interconnector flows and energy price. It also includes a supporting function that accepts two timestamps and returns a python generator object that yield the set of pandas data frames needed to run Nemlite for the intervals between the two timestamps.

nemlite.run

energy_prices, unit_dispatch, interconnector_flow = \ 
    nemlite.run(dispatch_unit_information, dispatch_unit_capacity_bids, initial_conditions, 
                regulated_interconnectors, regional_demand, dispatch_unit_price_bids,
                regulated_interconnectors_loss_model, connection_point_constraints, 
                interconnector_constraints, constraint_data, region_constraints, 
                regulated_interconnector_loss_factor_model, market_interconnectors, 
                market_interconnector_price_bids, market_interconnector_capacity_bids, 
                market_cap_and_floor)

Inputs

dispatch_unit_information

All dispatch units in the market must be present in this table.

DUID DISPATCHTYPE CONNECTIONPOINTID REGIONID TRANSMISSIONLOSSFACTOR DISTRIBUTIONLOSSFACTOR
AGLHAL GENERATOR SHPS1 SA1 0.972 1.0
APD01 LOAD VAPD1 VIC1 1.012 1.0

dispatch_unit_capacity_bids

All dispatch units to be dispatched in the market must be present in this table, but do not need to use all bidtypes.

Notes:

  • MAXAVAIL limits cumulative unit dispatch for each bidtype.
  • ENABLEMENTMIN, ENABLEMENTMAX, LOWBREAKPOINT and HIGHBREAKPOINT define the FCAS trapezium for non-ENERGY bidtypes, but should be set to zero for ENERGY.
DUID BIDTYPE MAXAVAIL ENABLEMENTMIN ENABLEMENTMAX LOWBREAKPOINT HIGHBREAKPOINT BANDAVAIL1 BANDAVAIL2 BANDAVAIL3 BANDAVAIL4 BANDAVAIL5 BANDAVAIL6 BANDAVAIL7 BANDAVAIL8 BANDAVAIL9 BANDAVAIL10
AGLHAL ENERGY 172 0.0 0.0 0.0 0.0 0 0 0 0 100 0 0 35 0 85
APD01 LOWER5MIN 16 50.0 165.0 100.0 165.0 10 6 0 0 0 0 0 0 0 0

initial_conditions

All dispatch units to be dispatched in the market must be present in this table.

Notes:

  • RAMPUPRATE and RAMPDOWNRATE are in MW per hour
  • AGCSTATUS, units are only considered for regulating FCAS if their AGCSTATUS is 1
  • RAISEREGENABLEMENTMAX, RAISEREGENABLEMENTMIN, LOWERREGENABLEMENTMAX and LOWEREGENABLEMENTMIN are the latest telemetered regulating FCAS trapezium values from the dispatch unit.
  • AVAILABILITY limits total unit ENERGY dispatch
DUID AGCSTATUS INITIALMW RAMPDOWNRATE RAMPUPRATE AVAILABILITY RAISEREGENABLEMENTMAX RAISEREGENABLEMENTMIN LOWERREGENABLEMENTMAX LOWEREGENABLEMENTMIN
AGLHAL 0 0.0 600.0 600.0 172.0 0.0 0.0 0.0 0.0
BRAEMAR1 0 161.4 360.0 360.0 162.0 159.0 97.0 159.7 97.0

interconnectors

All interconnectors both regulated and market need to be defined in this table. Notes:

  • Interconnectors of type MNSP do not need LOSSCONSTANT, LOSSFLOWCOEFFICIENT or FROMREGIONLOSSSHARE defined in this table.
INTERCONNECTORID REGIONFROM REGIONTO LOSSCONSTANT LOSSFLOWCOEFFICIENT FROMREGIONLOSSSHARE ICTYPE
N-Q-MNSP1 NSW1 QLD1 1.08720 0.00179 0.41 REGULATED
T-V-MNSP1 TAS1 VIC1 0 0 0 MNSP

regional_demand

All regions need their demand defined in this table.

REGIONID TOTALDEMAND
NSW1 8457.3

dispatch_unit_price_bids

All dispatch units to be dispatched in the market must be present in this table, but do not need to use all bidtypes, but prices must be given for all bidtypes with capacity bids.

Notes:

  • Price must be strictly increasing for each unit and bidtype.
DUID BIDTYPE PRICEBAND1 PRICEBAND2 PRICEBAND3 PRICEBAND4 PRICEBAND5 PRICEBAND6 PRICEBAND7 PRICEBAND8 PRICEBAND9 PRICEBAND10
AGLHAL ENERGY -982.0 0.0 273.79 362.17 411.27 489.83 568.39 1340.98 10388.45 13747.01

regulated_interconnectors_loss_model

All regulated interconnector must have their loss segments defined in this table, no market interconnectors should be in this table.

Notes:

  • The lowest magnitude positive and negative segments are both implicitly defined to begin flow at 0 MW
  • LOSSSEGMENT numbering should start at 1 and increase by increments of 1 with MWBREAKPOINT.
INTERCONNECTORID LOSSSEGMENT MWBREAKPOINT
N-Q-MNSP1 1 -250
N-Q-MNSP1 2 -125
N-Q-MNSP1 3 125
N-Q-MNSP1 4 250

connection_point_constraints

For any given generic constraint (GENCONID), if the constraint is to apply to a connection point then the factor and bidtype must be defined in this table. Rows should not be duplicated on a GENCONID, CONNECTIONPOINTID and BIDTYPE basis.

GENCONID CONNECTIONPOINTID FACTOR BIDTYPE
DSNAP_DFS_V_NIL_3 NMR41M -0.0753 ENERGY

interconnector_constraints

For any given generic constraint (GENCONID), if the constraint is to apply to an interconnector then the factor and bidtype must be defined in this table. Rows should not be duplicated on a GENCONID and INTERCONNECTORID basis.

GENCONID INTERCONNECTORID FACTOR
DATASNAP N-Q-MNSP1 1.0

constraint_data

All generic constraints to be applied need to be defined in this table.

GENCONID CONSTRAINTTYPE RHS GENERICCONSTRAINTWEIGHT
DATASNAP <= 10082.4 4

region_constraints

For any given generic constraint (GENCONID), if the constraint is to apply to a region then the factor and bidtype must be defined in this table. Rows should not be duplicated on a GENCONID, BIDTYPE and REGIONID basis.

Notes:

  • These constraints are used to define the market requirement for FCAS
GENCONID REGIONID FACTOR BIDTYPE
L_I+LREG_0120 VIC1 1.0 LOWERREG

regulated_interconnector_loss_factor_model

For each regulated interconnector each regional demand that impacts the interconnector dynamic loss factor needs to have a demand coefficient defined in this table.

INTERCONNECTORID REGIONID DEMANDCOEFFICIENT
NSW1-QLD1 QLD1 -0.0000020855

market_interconnectors

For each market interconnector two link need to be defined in this table.

INTERCONNECTORID LINKID FROMREGION TOREGION FROM_REGION_TLF TO_REGION_TLF LHSFACTOR
T-V-MNSP1 BLNKTAS TAS1 VIC1 1.0 0.98740 1
T-V-MNSP1 BLNKVIC VIC1 TAS1 0.98740 1.0 -1

market_interconnector_price_bids

All market interconnector links must have their price bids defined in this table.

LINKID PRICEBAND1 PRICEBAND2 PRICEBAND3 PRICEBAND4 PRICEBAND5 PRICEBAND6 PRICEBAND7 PRICEBAND8 PRICEBAND9 PRICEBAND10
BLNKTAS -968.40 -299.99 -49.99 0.01 50.01 100.01 300.01 1000.01 5000.01 13500
BLNKVIC -1000.0 -300.00 -50.00 0.00 50.00 100.00 300.00 1000.00 5000.00 13500

market_interconnector_capacity_bids

All market interconnector links must have their capacity bids defined in this table.

LINKID PRICEBAND1 PRICEBAND2 PRICEBAND3 PRICEBAND4 PRICEBAND5 PRICEBAND6 PRICEBAND7 PRICEBAND8 PRICEBAND9 PRICEBAND10
BLNKTAS 0 0 0 594 0 0 0 0 0 0
BLNKVIC 0 0 0 478 0 0 0 0 0 0

market_cap_and_floor

The market must have its price cap (value of lost load) and price floor defined in this table.

VOLL MARKETPRICEFLOOR
14200 -1000

Outputs

energy_prices

This table returns the prices in all the regions (states), note currently only the energy service is priced.

State Service Price
NSW1 ENERGY 100.1

unit_dispatch

This table return the dispatch for all unit and interconnector links. Note links will be listed under the column DUID.

DUID BIDTYPE CAPACITYBAND BID INDEX PRICE DISPATCHED
BLUFF ENERGY BANDAVAIL1 53 5 -986.3 7.492

interconnector flow

This table returns the flow values for all regulated interconnectors by segment number. Note values are duplicated so the lhs coefficient for the two connected regions can be shown.

INTERCONNECTORID DIRECTION REGIONID BIDTYPE LOSSSEGMENT MWBREAKPOINT INDEX MEANVALUE UPPERBOUND LHSCOEFFICIENTS RHSCONSTANT ROWINDEX FROMREGIONLOSSSHARE DISPATCHED
N-Q-MNSP1 REGIONFROM NSW1 ENERGY 34 0 1764 0 0 -1.053092 7648.82 4405 0.52 0