Constraint Frequently Asked Questions
What is a constraint?
A constraint equation can be considered as the "enforcement tool" used to keep the power system operating within the limits. A limit equation is provided by a transmission network service provider (TNSP) and converted into a constraint equation (a linear equation with a Left Hand Side (LHS) and a Right Hand Side (RHS)) that talk to the NEM dispatch engine (NEMDE) to ensure the market solutions are within the physical limit of the power system.
What is a limit?
A limit is the maximum capability of a transmission line(s) to carry electricity. AEMO obtains the network limitations from transmission network service providers (TNSPs), in the form of limit equations or line/transformer rating values.
What does each constraint equation do?
Each constraint equation models a particular limit for a given power system configuration and this is detailed in the constraint equation description data.
For example the constraint equation F_I+ML_L5_0400 has the description: “Out = Nil, Lower 5 min requirement for a NEM Load Event, ML = 400”:
- “Out = Nil” indicates this is a system normal (i.e. Nil or no outages) constraint equation and is always invoked. If this constraint equation was for an outage condition the item of plant out would be in place of the “Nil”. E.g. Out = Georgetown to Sheffield 220 kV line.
- The rest of the description details the system condition the constraint equation is used for; in this case, it is for the frequency control ancillary services (FCAS) requirements for loss of a 400 MW load.
Why do constraint equations exist?
A constraint equation exists to model a power system limitation (e.g. thermal overload, voltage stability or frequency control ancillary services (FCAS)) for a given power system configuration when all plant is in service (called System Normal) or during plant outages.
Where can I find more information on a constraint equation?
Every constraint equation has a description and other meta-data on its purpose and use. Constraint equations can be converted to a more readable form via the plain English converter (available here). The description information is included in the GENCONDATA table which is available in the following fields:
- Description - the main location for indicating the purpose for the constraint equation
- Impact - location where the constraint impacts (e.g. Qld Generation, Basslink, FCAS). This field uses a pre-defined list.
- Limit Type - the type of power system limit (e.g. Transient Stability, Thermal, System Strength). This field uses a pre-defined list.
- Source - who provided the limit equation (e.g. Powerlink, AEMO, Tas Networks). This field uses a pre-defined list.
- Reason - a brief explanation about what has changed in the constraint equation (e.g. New or added new generator)
- Additional Notes - this is extra information about the constraint equation
For example, in the constraint equation V^^SML_NIL_3 (effective date 8 July 2019):
- Description: Out = Nil, avoid voltage collapse for loss of Bendigo to Kerang 220kV line
- Impact: Victorian Generation + Interconnectors
- Limit Type: Voltage Stability
- Source: AEMO
- Reason: Avoid voltage collapse for loss of Bendigo to Kerang 220kV line
- Additional Notes: Limits advice 1/07/2019; For Murraylink flow VIC to SA VFRB scheme will reduce Murraylink to 0 following BETS-KGTS line trip. CCR4665.
Why are constraint equations changed or new constraint equation added?
Constraint equations are changed or added for a number of reasons including:
- A new limit equation was provided by the transmission network service provider (TNSP)
- An item of plant (for example a generator, interconnector, transmission line, reactive power device or transformer) was commissioned or decommissioned
- Adjustments were made to improve the performance of the constraint equation
- Power system studies identified a new condition that needs to be managed by a constraint equation
- A new frequency control ancillary service (FCAS) requirement was identified
- A new Network Support Agreement was notified to AEMO
How do I find out what changed in a new version of a constraint equation?
Details on changes in a constraint equation are included in:
- The weekly “NEM Constraint Library Changes” spreadsheet on the AEMO website.
- The Modifications field in the GenConData table
What is the difference between the Left Hand Side and Right Hand Side of a constraint equation?
The Left Hand Side (LHS) contains the market variables the NEM dispatch engine (NEMDE) or Projected Assessment of System Adequacy (PASA) can dispatch. This includes:
- scheduled and semi-scheduled generating units and scheduled loads (energy)
- market ancillary service generating units and ancillary service loads - frequency control ancillary services (FCAS)
- Interconnectors and Market Network Service Providers (MNSPs)
- Regional FCAS requirements
The Right Hand Side (RHS) contains everything else that makes up the limit equation (e.g. line rating, line flows, generator MVAr, on/off status of plant, operating margins, confidence intervals etc). The RHS is pre-calculated and then presented to NEMDE as a constant value.
How is the constraint Right Hand Side (RHS) value in Dispatch/Predispatch related to the power system limit?
In general the constraint equation RHS value is not equivalent to the power system limit. There are several reasons for this:
- Many of the limit equations contain market quantities (Generators, Interconnectors, Loads and Regional frequency control ancillary services (FCAS)) that can be added to the Left Hand Side (LHS) of a constraint equation. AEMO receives limit advice from transmission network service providers (TNSPs) either in the form of a limit equation for stability limits or a rating for lines or transformers. These limit equations are translated into quantities that can be used by the dispatch engine. For example to manage a line flow in New South Wales the post contingent line flow is calculated on the RHS, while the LHS contains the contribution terms from the generators, loads and interconnectors in NSW.
- Constraint equations (generally ones for thermal overloads) are built in dispatch to only target the LHS units to within the headroom available for the limit (these are known as Feedback constraint equations). For example:
G1 + G2 - G3 + I1 <= Rating – Line flow
+ Initial value of (G1 + G2 - G3 + I1)
- Terms in the limit equation are moved to the LHS or RHS of the constraint equation to comply with the Constraint Formulation Guidelines. For example a limit equation defined by a TNSP as a limit on a single interconnector will have as part of conversion to a constraint equation any of the other interconnectors, generators and loads moved from the RHS to the LHS (as long as their relative factor sizes comply with AEMO’s constraint formulation guidelines).
How are the Constraint Equation and Constraint Set IDs labelled?
Each constraint equation and constraint set has a unique identifier (ID). The Constraint Naming Guidelines details the way AEMO allocates the IDs.
What is a constraint set and how do I find out which constraint set(s) a constraint equation belongs to?
A constraint set is a group of constraint equation(s) that are required for a particular network condition (e.g. no outages, transmission outages, islanding of a region). AEMO uses constraint sets to activate / deactivate constraint equations in the dispatch engine. The network outage schedule (NOS) lists a constraint set(s) next to each outage that requires one.
A constraint equation can exist in multiple constraint sets. The GENCONSET table lists all the constraint equations in a constraint set.
How can I convert a constraint equation and the IDs used on the Left Hand Side (LHS) and Right Hand Side (RHS) to a more human readable form?
There is a conversion tool available via the MMS Web portal that will convert a constraint equation into a more human readable or “Plain English” form. This changes the IDs used on the LHS and RHS of the constraint equation to a description and reverse polish notations (RPN) used on the RHS are converted into conventional algebraic form.
For example the SPD ID “Q_DIRLK_H31MDNR_TRFMR” is converted to "MW flow on Molendinar 275/110kV transformer"
To access the MMS Web (via https://portal.prod.nemnet.net.au/#/signin) users must be registered with AEMO. For details on getting access, please contact the AEMO’s Information and Support Hub on 1300 858 724.
Why do constraint equations bind?
A constraint equation is binding when the dispatch engine targets the summation of the Left Hand Side (LHS) terms to be equal with the constraint Right Hand Side (RHS) value. For network constraint equations this indicates the power system is being operated near or at a design limit (e.g. thermal, voltage stability or transient stability). For frequency control ancillary service (FCAS) constraint equations, binding indicates the constraint equation is setting the FCAS requirement for the service indicated for regions on the LHS.
Binding is indicated in the constraint equation results (e.g. in DispatchConstraint or PredispatchConstraint tables) as a non-zero value in the Marginal Value field.
Consider the following system (note the load is not scheduled):
The limit on lines A and B is defined by the following:
FlowAB <= LimitAB
This limit could be a voltage collapse or transient stability limit or the rating of one line for the trip of the other.
The flow on the two lines is only supplied by the two generators G1 and G2 so:
FlowAB = G1 + G2
Therefore the constraint equation would look like this:
G1 + G2 <= LimitAB
When the constraint equation is binding the LHS is equal to the RHS
G1 + G2 = LimitAB
Finally, to supply the load G3 would need to be dispatched to make up the shortfall due to the limitation on lines A and B. AEMO's dispatch engine has a built-in constraint equation which manages the dispatch of G3.
Why do constraint equations violate?
A constraint equation is violating when the dispatch engine is unable to satisfy all the constraint equations simultaneously. The dispatch engine will not bee able to target the summation of the Left Hand Side (LHS) terms below the Right Hand Side (RHS) value.
For example if the limit on two generators is:
G1 + G2 <= LimitAB
Then if the summation of the two generators is greater than "LimitAB" the constraint equation is violating.
G1 + G2 > LimitAB
This is indicated in the constraint results as a non-zero value in the Violation Degree field. A violating constraint equation indicates a potentially insecure power system.
How do I determine which constraint equations are binding?
The DispatchConstraint (and PreDispatchConstraint) tables include the results for all constraint equations for a dispatch interval (and a trading interval). The binding constraint equations are those which have a non-zero value in MarginalValue field.
How do I determine which constraint equations are violating?
The DispatchConstraint (and PreDispatchConstraint) tables include the results for all constraint equations for a dispatch interval (and a trading interval).Violating constraint equations are those in the DispatchConstraint (and PreDispatchConstraint) tables which have a non-zero value in ViolationDegree field.
What is the marginal value?
The marginal value is the marginal cost of the constraint equation calculated by the NEM dispatch engine (NEMDE). If there was a change in the constraint equation Right Hand Side (RHS) by 1 MW the marginal value represents the change in cost to the objective function.
- A negative marginal value is given by constraint equations that use the <=. By constraining off the Left Hand Side (LHS) terms these lower the objective function.
- Positive marginal values are given by >= constraint equations. By constraining on the LHS terms these raise the objective function.
- Where a constraint equation uses an = this can be either positive or negative marginal values depending on the outcome (constraining the LHS down or up).
This marginal value is capped at the market price cap (MPC) x (constraint equation violation penalty factor - CVP). The CVP is used to provide NEMDE a cost of violating a constraint equation so some constraints will violate ahead of others. For more information on CVPs see this link.
What is the violation degree?
This is the difference between the constraint equation Left Hand Side (LHS) summation and the Right Hand Side (RHS).
Why do binding constraint equations have different marginal values and what does it mean?
Constraint equations have different marginal values as there is a different cost for a change in the Right Hand Side (RHS) value. Note that it is very likely that different constraint equations have different factors and terms on the Left Hand Side (LHS).
Why does the constraint equation bind and then not bind?
This can indicate that something has changed in the power system that changes the inputs to the limit equation, whether this is a Left Hand Side (LHS) or Right Hand Side (RHS) term. This could be due to a range of factors including:
- A generator tripped.
- a capacitor bank or synchronous condenser was switched on which raised a voltage collapse limit
- A generator on the LHS of the constraint equation rebid
- The demand changed
- The line/transformer rating changed. Dynamically calculated ratings can change due to weather conditions. Other ratings can change from daytime to night-time or seasonally (summer / winter / spring / autumn). See the Transmission Equipment Ratings page for more information.
How does the NEM dispatch engine (NEMDE) deal with equal unit bids or equal Left-Hand Side (LHS) factors?
If two LHS terms have the same coefficients and have the same marginal cost, these LHS terms will be dispatched in proportion to the MW sizes of the respective marginal bid bands through the tie-breaking constraint equation created for that pair of price-tied bands. Note that this is subject to the costs and restrictions imposed by other constraint equations in NEMDE.
For example, if generator A has bid in at 100 MW in the marginal band, generator B is bid at 50 MW and the constraint equation needs to reduce by 9 MW, then NEMDE will reduce generator A by 6 MW and generator B by 3 MW.
The tie-breaking constraint equations only apply to energy bids and not frequency control ancillary services (FCAS).
How does the dispatch engine determine how much each Left-Hand Side (LHS) term is moved by when relieving a binding constraint equation?
The dispatch engine will set the target of a LHS term of a constraint equation to minimise the objective function, and avoid causing the violation of the any other constraint equations (this includes constraint equations internal to the dispatch engine such as the regional energy balance). Where the dispatch engine cannot satisfy all constraint equations then the constraint equations with the lowest constraint violation penalty factor (CVP – for more information see here) will be violated first and the value of the LHS term can be determined by other constraint equations.
Is there a forecast of my unit targets and if I am constrained?
As well as the dispatch data, AEMO calculates a forward look at generation, prices and congestion called Pre-dispatch. There are three timeframes for Predispatch - five minutes (now until one hour in the future at five-minute intervals), 30 minutes (now until 40 hours in the future at 30-miniute intervals) and seven days (30-minute intervals out seven days). The constraint data is included in the tables P5min_ConstraintSolution, PreDispatchConstraint and via the AEMO website for seven-day Pre-dispatch.
How is a semi-dispatch cap linked to binding constraint equations?
A semi-dispatch cap on a semi-scheduled generator could be due to:
- the semi-scheduled generator is on the Left Hand Side (LHS) of a binding constraint equation, or
- the unconstrained intermittent generator forecast (UIGF) system sets a forecast limit on the semi scheduled generator, or
- other economic reasons as determined by the NEM dispatch engine (NEMDE); for example, excess generation to meet supply demand balance, price signals.
A semi-dispatch cap does not necessarily mean a generator is being curtailed due to a constraint equation. Constraint equations with many generators on the LHS might restrict some generators on the LHS, but the semi-dispatch cap is set for all semi-scheduled generators on the LHS even if their target is at the UIGF.
Why is my unit being increased yet my bid indicates this is against price?
This can be due to a binding constraint equation increasing your generator MW output to avoid exceeding a power system limit. This is known as being “constrained on”.
Using the following system:
with the following limit:
FlowAB <= LimitAB
and the flow on the lines defined as:
FlowAB = G1 + G2
but could also be defined as:
FlowAB = G1 + G2 = Load - G3
So the constraint equation could be built as:
-G3 = LimitAB - Load
In this case G3 would be constrained on to reduce the flow on lines A and B.
Note: Constraint equations may not necessarily be formulated as in this simple example. AEMO has guidelines defining what appears on the Left Hand Side (LHS) and Right Hand Side (RHS) of constraint equations; these are detailed in the Constraint Formulation Guidelines.
Why is my unit being reduced yet my bid indicates it should not be reduced?
This can be due to a binding constraint equation reducing your generator MW output to avoid exceeding a power system limit. This is known as being “constrained off”.
In the power system example above, if the power flow across A and B needs to be reduced then the NEM dispatch engine (NEMDE) will target G1 or G2 (or both) to reduce this flow.
Where can I find information on planned network outages?
What constraint data is published and where?
The constraint equation data is published via the MMS Data Interchange. Data Interchange publishes incremental updates as constraint changes are made in the Electricity Market Management Systems (EMMS) and a complete list (or Baseline) which contains all of the constraint data. For constraints there are two baseline files published, one has all the constraint data (the PUBLIC_GENCON_xxx file) and the other only the current or active data (PUBLIC_GENCON_ACTIVE_xxx).
Are some constraint equation results confidential?
Results for a constraint equation are classified as confidential if the constraint equation contains a single term on the Left Hand Side (LHS).
Publishing reports from Electricity Market Management Systems (EMMS) ignore these constraint equation results until after 4.00 am the following morning.
In the constraint tables these can be identified when the "Confidential_To" field is not null.