POSY. Publicly available under MIT license at https://git.oecd-nea.org/posy/posy.
To submit a request, click below on the link of the version you wish to order. Rules for end-users are available here.
Program name | Package id | Status | Status date |
---|---|---|---|
POSY | NEA-1929/01 | Tested | 24-APR-2023 |
Machines used:
Package ID | Orig. computer | Test computer |
---|---|---|
NEA-1929/01 | Gitlab,PC Windows | Linux-based PC |
POSY is publicly available under MIT license at https://git.oecd-nea.org/posy/posy.
POSY is the energy and electricity system cost model of the OECD Nuclear Energy Agency. It is designed to evaluate the system costs in energy and electricity systems with different generation mixes operating under stringent carbon constraints.
For this purpose, POSY calculates the total costs of satisfying a given hourly demand profile. Total system costs include fixed costs such as investment costs and fixed costs for operation and maintenance, and variable costs (e.g. fuel costs or variable Operation and Maintenance costs) of installed technologies, including flexibility provision in the form of voluntary and involuntary demand response, reserves (depending on specifications), as well as the revenues of interconnection.
POSY optimization is based on Mixed-Integer Linear Programming techniques (MILP). In order to allow for reasonable run times, POSY works best with advanced commercial solvers such as Gurobi CPLEX or GLPK. Using open source solvers is possible but will lead to considerably longer run times.
POSY is a capacity expansion and dispatch model with unit clustering. Long-term capacity provision and short-term unit commitment are thus optimised simultaneously. The resulting total cost minimisation corresponds, both, to the outcome of a centralised planning process aiming at welfare maximisation and to the outcome of decentralised profit maximisation in competitive markets. The adequacy constraint is formulated in terms of power at each time step, currently 8760 hours per year are modelled but other resolutions can easily be defined.
POSY is publicly available under MIT license at https://git.oecd-nea.org/posy/posy
POSY is written as a library with high-level functions to be called by the user. The dataset usually consists of two or more tabular files for technological data and time series, a Julia file for the scenario hypotheses, and a Julia file where the user calls POSY using the preferred computation schemes.
The use of the desktop application Atom is recommended for POSY and Julia scripting.
In details:
“Technological data” contains costs and characteristics numeric values of each technology. It is formatted as an Excel file with sheets corresponding to technologies families. Each technology is a column in a sheet.
“Time series” contains time series such as profile of demand and variable renewable energies (VRE), spot price, Net Transfer Capacities (NTC) of each interconnection, or water intake in hydro reservoirs. It is formatted as an Excel file with sheets corresponding to families of time series.
“Main” file contains the links to data sources, and the computation scheme. It is a Julia file.
“Scenario” file (optional) contains user-defined constraints for specific scenarios. It is a Julia file.
The way the user runs the model must be defined in the “main” file.
From the NEA GitLab, users comfortable with the command line and git, can clone via “git clone”, or users can prefer to download the code via a zip file from GitLab directly. As an example, the user can run the tutorial located in the “POSY/doc/src” repository. Data directly from the templates will be used.
The calculation time may vary depending on the solver and the computer settings as well as the level of complexity of the studied case. The range is wide; POSY runs from a couple of minutes for the tutorial to several hours for a complex case as the modelling of a well interconnected national power system or Hydrogen production by electrolysis.
The code requires an external solver which is not provided with POSY. Such solvers should be compatible with the JuMP library, please refer to the supported list of solvers here: https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers. Gurobi is the preferred solver, for details on acquiring a license for it, please see their website: https://www.gurobi.com/.
D. A. Tejada-Arango, G. Morales-España, S. Wogrin “Power-Based Generation Expansion Planning for Flexibility Requirements” (2019)
G. Morales-España, D. A. Tejada-Arango, “Modelling the Hidden Flexibility of Clustered Unit Commitment” (2018)
F. N. Al Farsi, M. H. Albadi, N. Hosseinzadeh, A. H. Al Badi, “Economic Dispatch in Power Systems A comparison between vertically integrated and libralized markets”, Proceedings of the 8th IEEE GCC Conference and Exhibition, Muscat, Oman (2015)
B. Palmintier, “Flexibility in Generation Planning: Identifying Key Operating Constraints” (2014)
B. Palmintier, M. Webster, “Impact of Unit Commitment Constraints on Generation Expansion Planning with Renewables”, IEEE (2011)
Keywords: economic analysis, energy and electricity system modelling, least cost optimisation, low carbon energy systems, system cost analysis.