(236g) Comando: An Open-Source Python Package for Optimal Design and Operation of Energy Systems | AIChE

(236g) Comando: An Open-Source Python Package for Optimal Design and Operation of Energy Systems


Mitsos, A. - Presenter, RWTH Aachen University
Shu, D. Y., Forschungszentrum Jülich GmbH
Baader, F. J., Forschungszentrum Jülich GmbH
Hering, D., RWTH Aachen University, E.ON Energy Research Center
Bau, U., Forschungszentrum Jülich GmbH
Xhonneux, A., Forschungszentrum Jülich GmbH
Dahmen, M., FZ Jülich
Bardow, A., RWTH Aachen University
Planning the increasingly interconnected energy systems of the future is a challenging problem, as the design needs to ensure feasibility of the prospective operation [1, 2]. Addressing this interdependence of design and operation and ensuring optimal economic and ecologic performance requires to properly account for the variability of energy demands, prices, weather, and other uncertain operational quantities.
A common approach to address such challenging planning problems is via mathematical programming, see, e.g., [3, 4, 5, 6, 7], and particularly two-stage stochastic programming [8, 9, 10, 11, 12]. Existing software supporting the formulation of design and operation problems includes general-purpose algebraic modeling languages (AMLs), e.g., GAMS [13] or Pyomo [14], on the one hand, and specialized energy system modeling frameworks (ESMFs), e.g., OSeMOSYS [15] or oemof [16], on the other hand. While AMLs generally allow for a much broader range of problem formulations, ESMFs make use of modularity, allowing the representation of systems as aggregations of subsystems and elementary components, which enhances model maintainability and reusability. Frequently, however, existing ESMFs enforce (mixed-integer) linear programming formulations. While this choice enables the use of robust and established solvers to tackle large-scale problems, see, e.g., [17, 18, 19], it complicates the application of such ESMFs to technical system design and operation with relevant nonlinearities.
We present the Python package COMANDO [20], a framework for component-oriented modeling and optimization for nonlinear design and operation of integrated energy systems. In COMANDO, component models may contain nonlinearities, dynamics, and discrete decisions. Model equations are given in a symbolic form, powered either by the computer algebra system Sympy [21], or its C++ implementation, symengine [22], which enables the efficient creation of models with very large symbolic expressions, such as those resulting from hybrid mechanistic-data-driven modeling, e.g., [23, 24]. Based on the resulting models, optimization problems considering both design and operation are formulated. The symbolic description enables manipulations of the problem formulations, such as automated problem simplification via linearization, problem reformulations, or the derivation of subproblems for specialized solution algorithms. We demonstrate the applicability of COMANDO to a diverse range of applications from energy systems engineering, including the multi-objective optimization of an integrated energy system, and the design of a low-temperature district heating network.


[1] E. N. Pistikopoulos. “Uncertainty in process design and operations”. In: Comput. Chem. Eng. 19 (June 1995), pp. 553–563. doi: 10.1016/0098-1354(95)87094-6.
[2] C. A. Frangopoulos, M. Von Spakovsky, and E. Sciubba. “A Brief Review of Methods for the Design and Synthesis Optimization of Energy Systems”. In: Int. J. Thermodyn. 5 (2002), pp. 151–160. issn: 1301-9724.
[3] V. Andiappan. “State-Of-The-Art Review of Mathematical Optimisation Approaches for Synthesis of Energy Systems”. In: Process Integr. Optim. Sustain. 1.3 (Aug. 2017), pp. 165–188. doi: 10.1007/s41660-017-0013-2.
[4] C. A. Frangopoulos. “Recent developments and trends in optimization ofenergy systems”. In: Energy 164 (Dec. 2018), pp. 1011–1020. doi: 10.1016/j.energy.2018.08.218.
[5] S. A. Papoulias and I. E. Grossmann. “A structural optimization approach in process synthesis—I: Utility systems”. In: Comput. Chem. Eng. 7.6 (Jan.1983), pp. 695–706. doi: 10.1016/0098-1354(83)85022-4.
[6] A. Ghobeity and A. Mitsos. “Optimal Design and Operation of a Solar Energy Receiver and Storage”. In: J. Sol. Energy Eng. 134.3 (Apr. 2012). doi: 10.1115/1.4006402.
[7] S. Gunasekaran, N. D. Mancini, and A. Mitsos. “Optimal design and operation of membrane-based oxy-combustion power plants”. In: Energy 70 (June 2014), pp. 338–354. doi: 10.1016/j.energy.2014.04.008.
[8] G. B. Dantzig. “Linear Programming under Uncertainty”. In: Manage. Sci. 1.3-4 (1955), pp. 197–206.
[9] J. R. Birge and F. Louveaux. Introduction to stochastic programming. Springer Science & Business Media, 2011.
[10] N. Chiang, C. G. Petra, and V. M. Zavala. “Structured nonconvex optimization of large-scale energy systems using PIPS-NLP”. In: 2014 Power Systems Computation Conference. IEEE, Aug. 2014. doi: 10.1109/pscc.2014.7038374.
[11] X. Li and P. I. Barton. “Optimal design and operation of energy systems under uncertainty”. In: J. Process Control 30 (June 2015), pp. 1–9. doi: 10.1016/j.jprocont.2014.11.004.
[12] M. Yunt, B. Chachuat, A. Mitsos, et al. “Designing man-portable power generation systems for varying power demand”. In: AIChE J.54.5 (2008), pp. 1254–1269. doi: 10.1002/aic.11442.
[13] M. R. Bussieck and A. Meeraus. “General algebraic modeling system (GAMS)”. In: Modeling languages in mathematical optimization. Springer,2004, pp. 137–157. doi: 10.1007/978-1-4613-0215-5_8.
[14] W. E. Hart, J.-P. Watson, and D. L. Woodruff. “Pyomo: modeling and solving mathematical programs in Python”. In: Math. Program. Comput. 3.3 (Aug. 2011), pp. 219–260. doi: 10.1007/s12532-011-0026-8.
[15] M. Howells, H. Rogner, N. Strachan, et al. “OSeMOSYS: the open source energy modeling system: an introduction to its ethos, structure and development”. In: Energy Policy 39.10 (2011), pp. 5850–5870. doi: 10.1016/j.enpol.2011.06.033.
[16] S. Hilpert, C. Kaldemeyer, U. Krien, et al. “The Open Energy Modelling Framework (oemof) - A new approach to facilitate open science in energy system modelling”. In: Energy Strategy Rev. 22 (Nov. 2018), pp. 16–25. doi: 10.1016/j.esr.2018.07.001.
[17] D. Connolly, H. Lund, B. V. Mathiesen, et al. “A review of computer tools for analysing the integration of renewable energy into various energy systems”. In: Appl. Energy 87.4 (Apr. 2010), pp. 1059–1082. doi: 10.1016/j.apenergy.2009.09.026.
[18] S. Pfenninger, A. Hawkes, and J. Keirstead. “Energy systems modeling for twenty-first century energy challenges”. In: Renew. Sustain. Energy Rev. 33 (May 2014), pp. 74–86. doi: 10.1016/j.rser.2014.02.003.
[19] I. van Beuzekom, M. Gibescu, and J. G. Slootweg. “A review of multi-energy system planning and optimization tools for sustainable urban development”. In: IEEE PowerTech. Eindhoven, The Netherlands: IEEE, June 2015, pp. 1–7. doi: 10.1109/ptc.2015.7232360.
[20] M. Langiu, D. Y. Shu, F. J. Baader, et al. “COMANDO: A Next-Generation Open-Source Framework for Energy Systems Optimization”. In: Comput. Chem. Eng. (May 2021), p. 107366. doi: 10.1016/j.compchemeng.2021.107366. arXiv: 2102.02057 [math.OC].
[21] A. Meurer, C. P. Smith, M. Paprocki, et al. “SymPy: symbolic computing in Python”. In: Peer J Comput. Sci. 3 (Jan. 2017), e103. doi: 10.7717/peerj-cs.103.
[22] O. Čertík, D. L. Peterson, T. B. Rathnayake, et al. symengine 0.9.2. https://github.com/symengine/symengine (accessed April 01. 2022). 2019.
[23] A. M. Schweidtmann and A. Mitsos. “Deterministic Global Optimization with Artificial Neural Networks Embedded”. In: J. Optim. Theory Appl. 189 (Oct. 2018), pp. 925–948. doi: 10.1007/s10957-018-1396-0.
[24] W. R. Huster, A. M. Schweidtmann, and A. Mitsos. “Hybrid Mechanistic Data-Driven Modeling for the Deterministic Global Optimization of a Transcritical Organic Rankine Cycle”. In: Comput. Aided Chem. Eng. Vol. 48. Elsevier, 2020, pp. 1765–1770. doi: 10.1016/b978-0-12-823377-1.50295-0.