The optimal design of energy hubs and CCHP systems consists in determining the energy technologies (i.e., power generation units and energy storage systems) to be installed and their sizes which minimize a certain cost function (e.g., the total annual cost given by annualized capital and operating expenditures) while providing electricity, heating and cooling power to a set of users. In the presence of multiple users and possible installation sites, it is necessary to determine the units to be installed in each site and the required energy network connections between sites.

The problem turns out to be a very challenging nonconvex MINLP [1-Elsido et al, 2017] with a large number of binary variables because it has to include not only the design variables (units selection and sizes) but also the operation variables and constraints for the whole system lifetime. Due to the variable energy demand profiles and electricity prices, the loads of the installed units must be continuously adjusted so as to meet the demands and maximize the revenues. Thus, when designing the system, the part-load performance and the operational flexibility (e.g., ramp constraints) must be evaluated for the set of expected operating conditions. As a result, in most formulations (see review in [1-Elsido et al, 2017]), the design optimization problem includes also the operational/scheduling problem (see Section 3.1.2.2) with a considerable increase of problem size and complexity.

The design problem is more complex than the scheduling problem not only for the larger number of variables and constraints (design + scheduling variables) but also for the nonlinearity of the functions relating units’ sizes with energy efficiency (larger units feature higher energy efficiency [1-Elsido et al., 2017]), and investment costs. The approaches proposed to tackle the resulting nonconvex MINLP problem can be classified in two main families:

linearization of all the nonlinear functions so as to obtain a single large scale linear problem (MILP) [2-Yokoyama 2002] and [3-Gabrielli et al 2017].

decomposition of the problem into a design level (upper level or master problem) and a scheduling level (lower level) [4-Iyer 1998] [5-Fazlollahi 2014] [1-Elsido 2017]. At the upper level the selection and sizing of the units is optimized by either solving a simplified (and linear) design & operational problem [4-Iyer and Grossmann 1998] or using evolutionary algorithms [5-Fazlollahi 2014] [1-Elsido 2017]. At the lower level, for each fixed design solution, the operational scheduling problem is solved.

In order to limit the size of the problem, it is possible to reduce the number of expected operating periods (i.e., days or weeks) by considering only the most representative ones (i.e., “typical days” [5-Fazlollahi 2014] or “typical weeks” [1-Elsido et al 2017]). Starting from historical data of the users’ energy demand, data clustering algorithms, such as the k-means algorithm [6- Hastie et al. 2006], can be effectively used to group similar operating periods (i.e., days/weeks with similar profiles of energy demands) into clusters and select a few representative demand profiles to be included in the design problem.