Skip to content

TAMUparametric/energiapy

Repository files navigation

Documentation Status PyPI PyPI - Python Version Downloads CI Codacy Badge codecov DOI

Energia is a decision-making tool. Models can be constructed by providing data regarding bounds on commodity streams and operations. Spatial specificity and time-series input of varying sizes renders multiscale models. Their analysis yields insight into the interactions between different decisions. The term 'streams' is applied broadly. pre-categorized streams are broadly classified into commodities (resource, currency, emission, land, material, land, etc.) and impact (economic, environmental, social).

Operation types current include process, storage, and transportation. A process is a catch-all for power generation, dense energy carrier (DEC) or chemical production. Storage involves charging and discharging which can both be configured individually. Transportation networks can involve multiple linkages between locations. Operational parameters include material and land use, impact, conversion efficiency. Construction can also be modeled as capacity sizing problems.

Broadly, Energia can be applied towards the multiscale modeling and optimization of energy systems under uncertainty. Risk analysis can be performed using various approaches such as scenario analysis, stochastic and robust programming, and multiparametric programming. The general class of problems is currently multiparametric mixed integer non-linear programming (mpMILP). Non-linear programs (mpMINLPs) can be modeled using piece-wise linearization. The multiscale nature of models affords simultaneous design and scheduling. Further Comprehensive resource balances allow cost optimization, carbon accounting, social life cycle analysis, and other forms of impact analysis.

Notably, impact is ascertained as a function of decisions. The trade-offs between minimizing or maximizing different impact streams can be determined as pareto fronts. Outputs such as stream contributions, production levels, capacities as a function of time and space can also be exported and illustrated. Additionally, scenario reduction via clustering, and integer cuts can be utilized to manage computational tractability.

Modeled Aspects

This is an indicative list of the types of decisions and phenomena that Energia models:

  1. network design (with discrete choice)
  2. resource flows
  3. inventory balance
  4. emission and costing calculations
  5. environmental, social, and economic impact
  6. material and land use for infrastructure development
  7. nonlinear behavior modeling using piece-wise linear curves
  8. transportation
  9. failure and loss

Objective Criteria

Generally, any commodity or impact stream or decision can be optimized. Some examples are listed:

  1. minimizing cost
  2. minimizing impact
  3. maximizing resource discharge

Managing Complexity

Clustering submodules include:

  1. agglomerative hierarchial clustering (AHC)
  2. dynamic time warping (DTW)
  3. k-means

Other approaches to managing computational complexity include:

  1. Integer cuts
  2. Piece-wise linearization (PWL) for non-linear models

Printing

Printing functions all use latex strings, and the following can be displayed:

  1. The mathematical program in set notation, and also descriptively at each index
  2. The solution, which can also be compared across multiple objectives

Visualization

The following can be visualized using line and bar plots:

  1. input data scenario, e.g. capacity limitations, demand, cost factors
  2. solution output: inventory, production, consumption, discharge/sales schedule; contribution towards costs (capital, variable and fixed operational), meeting demand.

Library

energia.library has a variety of pre-loaded sets of:

  1. Components such as SI and miscellaneous units, currencies, time units, environmental indicators.
  2. Example and test problems across various applicative domains
  3. Recipes for decision-making, instructions for calculations, and attribute aliases.

External Packages

Callable external packages are available for:

  1. Integration with high-fidelity process modeling modules such as
  2. Filling missing data (weekends, public holidays) for time-series data such as resource price
  3. Fetch weather data at an appropriate resolution from NREL NSRDB for any county in the US

Interface

Energia is optimized for use in jupyter notebooks. Note that some of these functionalities are available in Energia<2.0.0 and are being ported to the 2.0 interface.

About

a python package for energy systems modeling and optimization

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages