Facility Class

Description: A facility that performs one or more processes
Detail:

See also Facility Property Reference for a detailed list of properties for this class of object.

Related Classes: Commodity, Process, Market, Entity, Flow Network, Flow Node.

Overview

Facility represents physical infrastructure hosting one or more processes (Process objects which in turn produce and/or consume various Commodity objects). Examples include power stations, processing plants, factories, etc.  Facilities add detail to Process objects relevant to actual physical infrastructure such as: on/off decisions, capacity expansion optimization, maintenance and aspects of process efficiency and technical constraints unique to the facility such as ramping limits, minimum production levels and efficiency as a function of output.

You can toggle a Facility in/out of the simulation using the Units property.

A Facility can connect to one or more Flow Network via memberships to Flow Node objects.


Figure 1: Example Facility

How to use Facility

The following guide will help you get started using the Facility class:

Features of Facility

Facility supports multiple Units, and implements a fully-featured unit commitment and economic dispatch (UC/ED) optimization based on mixed integer programming (MIP). Technical constraints related to the UC/ED optimization are:

Initial conditions can be specified - see Initial Production for details.

Production (dispatch) and Units Operating (unit commitment) can be 'fixed' or preset in some or all periods with the Fixed Production and Commit constraints respectively.

The efficiency of the Primary Process by default is set on the Process Efficiency property, but can be overridden by the Facility with a multi-point efficiency function defined using the properties Efficiency Point, Efficiency Incr and Efficiency Base.

A Facility conducts a Primary Process and optionally Secondary Processes and those run whenever Units Operating is non-zero. However, Facility supports the ability to run a Warm Up Process during a 'warm up' period set by the Warm Up Time property. The warm up period is triggered when there are any number of Units Started after a period where Units Operating is zero. During the warm-up period, only the Warm Up Process runs i.e. Production is zero.

Facility supports modeling of both Forced and Maintenance outages with various options for the repair time distributions. Planned outages are input with the Units Out property.

Facility supports two-stage and multi-stage stochastic optimization of unit commitment and production - see Production Non-anticipativity for details.

A Facility object can Formulate Risk in a risk-constrained simulation to bounds its Net Profit within an Acceptable Risk. Alternatively, the Facility can participate in an Entity which can Formulate Risk.

Examples

The following example relates to the production of hydrogen (H2) from renewable electricity. It defines these Commodity and Process objects:

Table 1: Commodity objects
Commodity Unit Energy Density (MJ) Unit Type
Electricity MW 0 Rate
H2 kg 141.84 Quantity
Electricity.Dump MW 0 Rate

Table 2: Process objects
Process Primary Input Primary Output
Blank.Process

Electricity.Dump Electricity Electricity.Dump
Electricity.Generation
Electricity
H2.via.Electrolysis Electricity H2

Table 3: Process Properties
Child Object Property Value Data File Units
Electricity.Dump Efficiency 100
%
Electricity.Dump Processing Charge 1
$
H2.via.Electrolysis Efficiency 69.366
%


Note the definition of an "Electricity.Dump" Commodity and related Process which will absorb excess renewable energy production at a nominal cost of $1/MWh. This is necessary in the absence of other consumers of the energy or a Market in which to sell the excess energy.

The Facility objects are as follows:

Facility Primary Process Capacity Basis
Electricity.Dump Electricity.Dump Output
Electrolyser H2.via.Electrolysis Input
PV Electricity.Generation Output
WF Electricity.Generation Output


The objects have a Primary Process membership to the Process they implement. Multiple Facility objects can implement any one Process. The Process objects define the Efficiency of production as they convert their Primary Input to Primary Output.

The Capacity Basis attribute for a Facility determines the Unit that will be used to define the Max Operating Level of the Facility. For example the "PV" Facility implements the "Electricity.Generation" Process which has a Primary Output Commodity "Electricity" which has Unit MW. Capacity Basis is set to "Output" and therefore the Max Operating Level of the "PV" Facility is expressed in MW.  By contrast the "Electrolyzer" Facility implements the "H2.via.Electrolysis" Process with Primary Input "Electricity" and Primary Output "H2". We want the Max Operating Level of this Facility to be in MW therefore Capacity Basis is set to "Input".

Note that the GUI will display the correct Unit according to the Capacity Basis as shown in Table 5

Table 5: Facility Properties
Facility
Property
Value
Unit
Band
Action
Expression
Electricity.Dump Units 1 - 1 =
Electricity.Dump Max Operating Level 100000 MW 1 =
Electrolyser Expansion Optimality Linear - 1 =
Electrolyser Units 0 - 1 =
Electrolyser Max Operating Level 1 MW 1 =
Electrolyser Min Operating Factor 0 % 1 =
Electrolyser FO&M Charge 50000 $ 1 =
Electrolyser Build Cost 2000000 $ 1 =
Electrolyser WACC 8 % 1 =
Electrolyser Economic Life 25 yr 1 =
Electrolyser Max Units Built 2700 - 1 =
Electrolyser Min Units Built 0 - 1 =
Electrolyser Build Non-anticipativity -1 $ 1 =
PV Expansion Optimality Linear - 1 =
PV Units 0 - 1 =
PV Max Operating Level 1 MW 1 =
PV Fixed Production 1 - 1 × PV
PV FO&M Charge 30000 $ 1 =
PV Build Cost 2000000 $ 1 =
PV WACC 8 % 1 =
PV Economic Life 25 yr 1 =
PV Max Units Built 35000 - 1 =
PV Min Units Built 0 - 1 =
PV Build Non-anticipativity -1 $ 1 =
WF Expansion Optimality Linear - 1 =
WF Units 0 - 1 =
WF Max Operating Level 1 MW 1 =
WF Fixed Production 1 - 1 × WF
WF FO&M Charge 50000 $ 1 =
WF Build Cost 2000000 $ 1 =
WF WACC 8
1 =
WF Economic Life 25 yr 1 =
WF Max Units Built 35000 - 1 =
WF Min Units Built 0 - 1 =
WF Build Non-anticipativity -1 $ 1 =


The Fixed Production property for "PV" and "WF" objects point to Variable objects that generate the appropriate production profiles for these facilities.

The "H2" Commodity produced in this example can now be sold directly to a Market (by associating the Market object with the Commodity) or connected to a Flow Network, which in turn can have a Market attached to a Flow Node.

Constraints and Objectives

The Facility class includes a number of shortcut properties: Max Capacity Factor, Max Production, Max Starts, Min Capacity Factor, Min Production, and their period variants. You can define custom constraints on Facility via the Constraints membership. The Objectives membership allows you to include Facility coefficients in your multi-objective optimization problems.

Capacity Expansion

Facility supports expansion in LT Plan. The key input properties are Max Units Built and Build Cost and optionally FO&M Charge. Expansion costs can be treated as a lump sum or automatically annualized by defining WACC and Economic Life. Units can be built from Project Start Date or immediately if this not defined. Other available constraints related to expansion are:

Retirement occurs automatically after the Technical Life. Retirements can be optimized if you define Max Units Retired and will incur a Retirement Cost.

Two-stage stochastic optimization of expansion is supported - see Build Non-anticipativity for details.