Introduction

Wind farm layout optimization problems deal with the optimal placement of turbines in a wind farm field. Currently, this problem appears only in the engineering research literature (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010; Donovan 2005; Fagerfjäll 2010; Kwong et al. 2012), where much effort has been spent on developing metaheuristics (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010; Dilkina et al. 2011) and greedy algorithms Zhang et al. (2011) for variations of the problem. Some existing heuristic methods (Mosetti et al. 1994; Grady et al. 2005) and mixed integer models (Donovan 2005; Fagerfjäll 2010; Turner et al. 2014) have explored this problem with discretization: the land is decomposed into a set of small cells, where each accommodates one turbine. Compared with a continuous approach (Kwong et al. 2012), the discrete approach is less sensitive to discontinuity in the wind farm land. Such discontinuity is common in practice due to existing infrastructure and geographic constraints (Manwell et al. 2009c). In the current work, our problem instances are square wind farms with equal-size square cells.

An interesting feature of this problem that sets it apart from standard location problems is the aerodynamic interaction among multiple turbines. In a simple scenario with only two turbines, the turbine downstream is said to be in the wake region of the upstream turbine, and it experiences a loss in energy production due to the reduction in wind speed and increase in turbulence intensity (Jensen 1983). In practice, a turbine that is downstream of multiple turbines is affected by all upstream turbines simultaneously and the overall effect is a nonlinear function of individual wakes. There are different analytical equations to describe the superposition of multiple wakes, some being closer to the physical reality than others (Renkema 2007). It is difficult to incorporate the more accurate wake equations into a mathematical programming model due to their nonlinearity: currently, only heuristics (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010; Kwong et al. 2012) include the most accurate wake models.

Another interesting aspect of this problem relates to the noise impact of wind farms. In Ontario, Canada, noise regulation is strict (Ministry of the Environment 2008, 2011) and the acceptable noise limit at a receptor is dynamic, depending on the participation of the corresponding landowner and the wind condition. A participating landowner usually hosts a turbine, a wind farm substation, or a section of the cable network. Compared with a non-participating landowner, the noise limit for a participating landowner is relaxed. Some previous work has included static noise constraints (Fagerfjäll 2010). To the best of our knowledge, no previous wind farm layout optimization models considered the participation of landowners.

Our goals are to computationally improve existing mixed integer programming (MIP) models and incorporate more accurate wake models into constraint programming (CP) and MIP models. In addition, we extend these models to include the aforementioned noise constraints while modeling the participation of landowners. In this work, we focus on the Jensen wake model (Jensen 1983) and power maximization objective. The Jensen wake model is currently one of the most accurate analytical models of wake impact included in any optimization or heuristic approaches (Manwell et al. 2009c; Renkema 2007).

The contributions of this paper are: the proposal of two novel mathematical programming models (CP and MIP) that can describe the physics of the problem more accurately than the previous MIP models; the extension of a previous MIP model so that the solution quality and time are improved; the comparison of four models on twelve problem instances, with varying wind scenario complexity, turbine numbers, and wind farm grid resolution; and the proposal of linear noise constraints and inclusion of landowner participation.

Problem definition: the physics of wakes and noise propagation

Description of the problem

Wind farm site selection, or wind farm siting, is based on meteorological conditions, topological features of the site, and accessibility for construction and electrical transmission, among other factors (Manwell et al. 2009c). After siting, wind farm developers optimize the layout of the turbines according to prescribed objectives and constraints in a process called micro-siting. In a typical case, design engineers try to maximize the expected profit and minimize hazardous side-effects during wind farm construction and operation (Manwell et al. 2009c). This is a challenging task because there are many objectives and constraints, and every site is different. To limit our scope, we consider the maximization of energy capture of a wind farm as our only objective, as it is closely related to the long-term profit of the wind farms and it is well accepted in the wind farm optimization literature (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010). We further assume that the wind farm land is flat, and all turbines are of the same type.

We use the same problem setup that Mosetti et al. (1994) proposed in their seminal paper. The objective is to maximize the wind farm’s overall power generation capability. There are three types of constraints:

  1. 1.

    Proximity: turbines must be placed five turbine rotor diameters apart to avoid structural damage induced by strong aerodynamic interactions;

  2. 2.

    Boundary: Turbines must be placed within the wind farm boundaries;

  3. 3.

    Turbine number: The number of turbines is fixed.

The reason that the total number of turbines is fixed—instead of bounded by a maximum number of turbines—is due to practical considerations. During wind farm development, the total number of turbines is determined prior to the design process, by government regulations and the local electricity grid interconnection capacity among other factors. However, to explore the design space more fully, a given model can be solved multiple times with different numbers of turbines.

As mentioned in the previous section, we use a discrete representation of wind farm: land is decomposed into a set of square cells, where each cell can only accommodate one turbine. This approach is common in the literature (Mosetti et al. 1994; Donovan 2005; Grady et al. 2005).

Wake and energy models

While some constraints of this problem are similar to vertex packing   (Atamtürk et al. 2000), undesirable facility location (Owen 1998), and circle packing problems (Stephenson 2005), the objective function is unique to wind farm layout optimization. In particular, the available wind energy at each turbine is proportional to the cube of wind speed at that location. In turn, the wind speed at a turbine is a nonlinear function of the distances to its upstream turbines. Note that “upstream” is relative to the wind direction, which varies over time.

Although wind changes speed and direction frequently, we assume that the turbine can re-orient its rotor towards the incoming wind direction. We further assume that there is no power loss during the transient states. Overall, the yearly wind frequency data at each direction fits well into a Weibull distribution (Manwell et al. 2009b). In the literature, it is a common practice to discretize the yearly wind frequency data into multiple directions and multiple speeds (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010), such as the pseudo-wind regime shown in Fig. 1, so that the total energy production is the weighted sum of energy produced at each wind state (speed and direction). Then, the expected power is only different from the expected annual energy production (AEP) by a constant (the number of seconds per year). Therefore, we only deal with the expected power in this work to simplify calculations.

Fig. 1
figure 1

A wind rose depiction of a pseudo-wind regime, showing common practice of wind speed and direction discretization. The legend is in meters per second

Single wake

The downstream region of a wind turbine, with increased levels of turbulence and decreased energy, is called the wake region (Fig. 2). Equation (1), first proposed by Jensen (1983), describes the propagation of a single wake. Parallel arrows in Fig. 2 represent wind direction and speed. The region with lower wind speed (shorter arrows) is the wake region. The two ellipses represent a turbine. The physical basis of Jensen’s wake model is momentum conservation within the wake region. In addition, wind speed is assumed to be uniform and non-turbulent across the circular wake cross section.

Fig. 2
figure 2

Jensen (1983) wake model: \(r_0\) is the rotor radius, \(R\) is the wake radius immediately behind the rotor (\(R > r_0\)), \(x\) is the downstream distance in the wind direction, and \(r\) is the resulting wake region radius at distance \(x\). A typical wake recovery curve is shown in Fig. 3

Let \(R\) be the wake radius immediately after rotor; \(r\) be the downstream wake radius; \(r_0\) be the rotor radius; \(u_{\infty }\) be the free-stream wind speed; \(u_r\) be the wind speed immediately behind the rotor; \(u_x\) be the speed of wind at downstream distance \(x\); \(\alpha \) be the wake decay constant; \(z_0\) be the roughness of terrain; \(z\) be the turbine height; and \(a\) be the axial induction factor (the percentage reduction in wind speed between the free stream and the turbine rotor) (Manwell et al. 2009a). Then, momentum conservation yields the following expression:

$$\begin{aligned} \pi R^2 u_r + \pi \left( r^2 - R^2 \right) u_{\infty } = \pi r^2 u_x \end{aligned}$$
(1)

where \(u_r = (1 - a) u_{\infty }\), the speed of wind immediately after the turbine rotor is a function of the free-stream wind speed; \(r = R + \alpha x\) indicates how fast the wake region expands downstream; \(R = r_0 \sqrt{\frac{1-a}{1-2a}}\) describes the wake region radius immediately after the turbine; and \(\alpha = 0.5 / \ln (\frac{z}{z_0})\) shows that the wake expansion is related to the ground roughness. Solving these equations leads to the relationship:

$$\begin{aligned} u_x = u_{\infty } \left[ 1 - \frac{2a}{\left( 1+\frac{\alpha x}{R}\right) ^2} \right] \end{aligned}$$
(2)
Fig. 3
figure 3

Wind speed recovery after a turbine. \(D = 2 r_0\) is the turbine diameter

Multiple wakes: sum-of-squares

Following Mosetti et al. (1994), we write the effective wind speed in the wakes of multiple turbines as:

$$\begin{aligned} u_{id} = u_{id,\infty } \left[ 1 - \sqrt{\sum \limits _{j \in \mathcal {U}_{id}} \left( 1 - \frac{u_{ijd}}{u_{id,\infty }} \right) ^2} \right] \end{aligned}$$
(3)

\(u_{id}\) and \(u_{id,\infty }\) are the wind speeds at turbine \(i\) at wind state (speed and direction) \(d\) with and without wake interactions, respectively, where \(d \in \mathcal {D}\), the set of all possible wind states; \(\mathcal {U}_{id} \) is the set of upstream turbines for turbine \(i\) at wind state \(d\) (Fig. 4); \(u_{ijd}\) is the wind speed at turbine \(i\) due to a single wake from upstream turbine at \(j\), which can be obtained by Eq. (1). Currently, this is the most accurate analytical expression accounting for multiple wakes (Renkema 2007).

Fig. 4
figure 4

Selection of the downstream affected cells due to a particular wind state: if the center of cell \(j\) is covered by the wake originated from cell \(i\), then \(j \in \mathcal {U}_{id}\)

Based on this model, the expected power production of the wind farm can be calculated as:

$$\begin{aligned} \text{ Expected } \text{ power } = \sum \limits _{i=1}^m \sum \limits _{d \in \mathcal {D}} \frac{1}{3} u_{id}^3 p_{d} \end{aligned}$$
(4)

where \(m\) is the total number of turbines and \(p_d\) is the probability of wind state \(d\) occurring, subject to \(\sum _{d \in \mathcal {D}} p_d = 1\).

Multiple wakes: linear superposition

Another way to account for multiple wakes in the energy production calculation is to use a direct linear superposition of power deficits. This is known to be less accurate than (3). However, it is more easily representable in mathematical programming models (Donovan 2005; Fagerfjäll 2010):

$$\begin{aligned} \text{ Expected } \text{ power } = \sum \limits _{i=1}^m \sum \limits _{d \in \mathcal {D}} \left( \frac{1}{3} u_{id, \infty }^3 - \sum \limits _{j \in \mathcal {U}_{id}} \frac{1}{3} \left( u_{id, \infty }^3 - u_{ijd}^3\right) \right) p_d \end{aligned}$$
(5)

and again \(u_{ijd}\) can be obtained from Eq. (1).

With the physics introduced, we want to make a note on the representation of these equations in our optimization models. Although the power calculation Eqs. (3) and (5) appear to be nonlinear in wind speeds, we can actually remove some of the nonlinearity due to the choice of discrete optimization models. As illustrated by Donovan (2005), the linear superposition model (Eq. 5) is completely linear, because all the wind speed terms can be calculated prior the optimization, since the candidate turbine locations (\(i\), \(j\)) and wind states \(\mathcal {D}\) are known in the discrete representation. However, linearizing the wake model given by Eq. (3) is a non-trivial task, because even after pre-calculating the wind speed terms, we still have the square root of a weighted sum. In Sect. 3, we will first introduce a CP model that directly represents the nonlinearity in its objective function, and then describe our novel approach that can incorporate the physics of Eq. (3) into a mixed integer linear program.

Noise propagation and perception

The ISO 9613-2 document provides a method to calculate sound propagation and attenuation in an outdoor environment (International Organization for Standardization 1996). Its scope and assumptions match those of a wind farm project, and this standard document is used by the Government of Ontario, and many other jurisdictions across the world, to evaluate the noise impact of a wind farm project at downwind locations (Ministry of the Environment 2008). Usually a noise source emits sounds at different frequencies and human ears have different sensitivity towards different frequencies (International Electrotechnical Comission 2003). As a result, to measure the perceived impact of noise, the ISO standard formulates a method that combines the sound pressure levels (in decibels, or dB) from different frequencies and presents one numeric value in dBA (A-weighted sound pressure level). In the context of wind farm development, the receptor locations are determined by the residential infrastructure. Overall, the sound pressure level (SPL) at a receptor is a superposition of SPL from each sound source, which in turn is calculated as a combination of SPLs (\(L_f\)) at eight frequencies (\(f\)) ranging from 63 Hz to 8 kHz (International Organization for Standardization 1996),

$$\begin{aligned} L_f = L_{0f} + D_{cf} - A_f \end{aligned}$$
(6)

where \(L_{0f}\) is the SPL at the source; \(D_{cf}\) is used to correct the directional effect that is different from a omni-directional source (an omni-directional point source has \(D_{cf} = 0\)); \(A_f\) is the attenuation term; and \(f\) denotes the frequency. The attenuation term can be decomposed into several components:

$$\begin{aligned} A_f = A_{\text {div}} + A_{\text {atm}} + A_{\text {gr}} + A_{\text {bar}} + A_{\text {misc}} \end{aligned}$$
(7)

The terms to the right of the equality sign (omitting the frequency index for simplicity) are attenuations due to geometrical divergence, atmospheric absorption, ground effects, barriers, and miscellaneous effects, respectively. They are all functions of the distance from source to receptor. For their exact functional forms, the readers are referred to Sect. 7 in International Organization for Standardization (1996). To calculate the A-weighted SPL at a receptor, the following equation is used in International Organization for Standardization (1996):

$$\begin{aligned} L = 10 \log \left( \sum _{i=1}^{n_s} \left( \sum _{f=1}^8 10^{0.1\left( L_f(i) + B_f \right) } \right) \right) \end{aligned}$$
(8)

where \(L\) (dBA) is the A-weighted SPL at receptor, \(\log \) is the base-10 log function, \(n_s\) is the number of point sound sources (turbines), \(f\) is the frequency index, \(L_f(i)\) is the SPL (dB) at the receptor location due to point source \(i\), and the \(B_f\)’s are the standard A-weighting coefficients.

Figure 5 shows the A-weighted sound pressure levels at various receptor distances from one turbine. Note the exponentially decaying behavior, in contrast to the behavior of wind speed recovery within a wake, Fig. 3. In other words, a low-noise wind farm requires the wind turbines to be close together (i.e., further from the surrounding noise receptors), but a high-yield wind farm means the turbines should be located far apart from each other. Thus, energy maximization and noise minimization are competing objectives.

Fig. 5
figure 5

Sound pressure level (A-weighted) as a function of horizontal distance from the turbine (\(L_{0f} = 95\) dB for all \(f\), receptor height = 1 m, turbine height = 60 m, rotor diameter D = 40 m, turbine as a sound source is omni-directional)

Ontario regulations

In Ontario, landowner participation in a wind farm project affects the acceptable noise levels. A landowner is participating if his or her land hosts part of the wind farm (a turbine, cable, substation, etc.) and non-participating otherwise. Specifically, each square cell of our discretized wind farm belongs to one landowner, and the participation of a landowner depends on whether he/she hosts a turbine in one of his/her cells. Every landowner has one or more noise receptors (e.g., houses) on the property, and their locations are determined prior to optimization. Therefore, noise constraints are dynamic in the sense that the constraint related to a noise receptor depends on the existence of turbines on the corresponding landowner’s property. For non-participating landowners, the maximum noise at the receptor location is 40–51 dBA, depending on the wind condition; for participating landowners, these constraints are relaxed (i.e., with higher tolerance) (Ministry of the Environment 2008).

Optimization models

In this section, we first present five basic optimization models using MIP or CP, ignoring the noise constraints. We then show how the noise constraints can be added to each model.

Sum-of-squares optimization models (SOM)

The following three optimization models are based on the more accurate way of accounting for multiple wakes (Eq. 3).

CP and MIP models

Figure 6 presents the SOM1 CP model. The binary decision variable \(x_i\) represents whether there is a turbine at location \(i\); \(\mathcal {N}\) is the set of \(n\) locations; \(m\) is the total number of turbines; and \(\mathcal {E} = \{(i,j) |\) location \(i\) and location \(j\) cannot both have turbines due to proximity constraint\(\}\). This set is determined by the proximity constraint and the grid resolution. We choose equality for the first constraint for practical reasons—the total number of turbines is usually determined prior to the optimization based on project financing and government regulations. For the problem instances used in this work, the optimal energy production is an increasing function of \(m\) (Du Pont and Cagan 2010). The potential advantage of this model is that the complex objective function can be directly represented in the expressive language characteristic of constraint programming.

Fig. 6
figure 6

SOM1: a constraint programming model

In Fig. 7, we present SOM2, a MIP sum-of-squares model where the nonlinearity is dealt with via a potentially exponential number of constraints. The auxiliary variable \(z_i\) represents the average power production at each location \(i\). The key of this model is the set of constraints indicated by (\(*\)). \(M\) is a sufficiently large constant.In general, \(w_{i, \mathcal {S}_i}\) is the maximum amount of power convertible when all cells with indices in \(\mathcal {S}_i\) have turbines and all cells with indices in \(\mathcal {N} \setminus \mathcal {S}_i\) do not; and \(\mathcal {S}_i\) is a set of turbine locations not including \(i\). \(w_{i, \mathcal {S}_i}\) is calculated according to Eqs. (3) and (4).

Fig. 7
figure 7

SOM2: a mixed integer programming model

A decomposition model

It is not hard to see that the number of constraints (\(*\)) is exponential in \(n\) due to the requirement (\(\forall \mathcal {S}_i \subset \mathcal {N} {\setminus } i\)). Therefore, rather than experimenting with SOM2, we propose a third model, SOM3, which can be understood as a decomposition of SOM2 (Bertsimas and Tsitsiklis 1997).

In Fig. 8, a MIP master problem is formulated that includes all constraints of SOM2 except for those indicated with (\(*\)) in Fig. 7. After solving the master problem, a subproblem calculates the actual power according to Eqs. (3) and (4), by following steps 1–3 below:

  1. 1.

    Evaluate the turbine layout power considering full wake effects based on \(\mathbf {x}^t\) (the solution from the master problem at iteration \(t\)) by substituting it into

    $$\begin{aligned} \sum \limits _{i \in \mathcal {N}} \sum \limits _{d \in \mathcal {D}} \frac{1}{3} x^t_i \left( u_{id,\infty } \left[ 1 - \sqrt{\sum \limits _{j \in \mathcal {U}_{id}} x^t_j \left( 1 - \frac{u_{ijd}}{u_{id,\infty }} \right) ^2} \right] \right) ^3 p_{d} \end{aligned}$$
  2. 2.

    If it is evaluated to the same as the objective value from the master problem or the maximum solution time is reached, terminate; otherwise:

  3. 3.

    Generate cuts in the form of \(z_i \le g_i(\mathbf {x}^t)\) and \(z_i \le h_{ijk}(\mathbf {x}^t)\) [see Eqs. (9), (10) below]; return to the master problem.

The master problem is then re-solved with the new cuts. In the first iteration, the master problem assumes that there is no wake interaction at all. In each subsequent iteration, the cuts refine the modeling of turbine interactions. The master problem does not represent the interaction of a specific group of turbines unless the related cuts are added. Therefore, the master problem always over-estimates the true objective value.

Instead of solving the master problem to optimality, we run it with a time limit of \(T\) seconds. In our experiment, we choose \(T_0 = 30\) s for the first iteration. \(T\) is increased by 5 s each time the current best master solution is the same as the previous iteration. In other words, if the master problem produces the same solution as the previous iteration and it does not converge to the subproblem value, the algorithm will keep running with no new cuts generated, therefore, getting stuck in a loop. This will happen if the master problem is unable to make any new progress in a new iteration (compared with the previous iteration) within the prescribed time limit. The base and incremental values of \(T\) are tuned via tests on the given problem instances.

Fig. 8
figure 8

SOM3: a mixed integer programming model of the master problem

Cuts We propose two types of cut: a no-good cut and a 3-cut. The former is presented in Eq. (9). \(M\) is a large constant; \(x^t_j\) is the \(j\)th component of \(\mathbf {x}^t\); \(\mathcal {N}^t\) is the set of locations that host turbines in iteration \(t\); \(w_{i, \mathcal {A}}\) is the maximum amount of power convertible when all cells with indices in \(\mathcal {A}\) have turbines; \(w_i\), \(w_{i,j}\) and \(w_{i,jk}\) are short forms for \(w_{i,\emptyset }\), \(w_{i,\{j\}}\) and \(w_{i,\{jk\}}\), following the definition of \(w_{i,\mathcal {A}}\).

$$\begin{aligned} g_i(\mathbf {x}^t) = M \left( |\mathcal {N}^t| - \displaystyle \sum \limits _{j \in \mathcal {N}^t} x_{j} \right) + w_{i, \mathcal {N}^t} \quad \forall i \in \mathcal {N} \end{aligned}$$
(9)

In practice, the no-good cuts alone are inefficient in large problem instances, because an exponential number of them are required to correctly shape the feasible region and the information of each cut is minimal when there are many wind states and location cells. Therefore, we propose another type of cut to increase the speed of refinement of the representation of turbine interactions. Equation (10) presents the 3-cuts.

$$\begin{aligned} h_{ijk}(\mathbf {x}^t) = w_i + (w_{i,j} - w_i)x_{j} + (w_{i, jk} - w_{i, j})x_{k} \quad \forall i,j,k \in \mathcal {N}^t \end{aligned}$$
(10)

For each downstream turbine \(i\), there are \(|\mathcal {N}^t| - 1 \atopwithdelims ()2\) cuts generated. The power of 3-cuts lies in their accurate description of the interaction between a group of three turbines (thus the name 3-cut). In practice, the closest few upstream turbines have the most significant influence on a downstream turbine (Fig. 3). The following proposition states that the three-turbine interaction accurately describes the feasible region:

Proposition 1

The cut \(z_i \le w_i + (w_{i,j} - w_i)x_j + (w_{i, jk} - w_{i, j})x_k\) is tight (cutting off all infeasible values for \(z_i\) assuming no turbines are “on” except for \(j,k\)) at \((x_i, x_j, x_k) = (1, 0, 0)\), \((1, 1, 0)\), and \((1, 1, 1)\).

Proof

When \((x_i, x_j, x_k) = (1, 0, 0)\), \((1, 1, 0)\), and \((1, 1, 1)\), the cut reduces to \(z_i \le w_i\), \(z_i \le w_{i,j}\), and \(z_i \le w_{i,jk}\), respectively. These values are tight by definition of \(w_i\), \(w_{i,j}\), and \(w_{i,jk}\). When \((x_i, x_j, x_k) = (1, 0, 1)\), the cut reduces to \(z_i \le w_i + w_{i,jk} - w_{i,j}\). Since \(z_i \le w_{i,k}\) by the definition of \(w_{i,k}\), and the combination of power deficits is sub-linear (Eqs. 3, 4), \(w_i + w_{i,jk} - w_{i,j} \ge w_{i, k}\). Therefore, \(z_i \le w_i + w_{i,jk} - w_{i,j}\) is not tight and does not cut off any feasible region. \(\square \)

Overall, the no-good cuts ensure that the problem can eventually reach the true optimality while 3-cuts increase the communication between subproblem and master to speed up convergence. Since this master problem completely ignores the wake interactions, we add an option for the master problem to warm-start. Specifically, these constraints can be included in the master problem:

$$\begin{aligned} z_i \le \sum \limits _{d \in \mathcal {D}} \left( \frac{1}{3} u_{id, \infty }^3 - \frac{1}{3} \left( u_{id, \infty }^3 - u_{ijd}^3\right) x_{j} \right) p_d \quad \forall i,j \in \mathcal {N} \end{aligned}$$
(11)

This cuts can be included in the SOM3 master so that the model considers every turbine’s most influential upstream neighbor.

Linear superposition optimization models (LSOM)

Previous MIP models use a simpler [and less accurate (Renkema 2007)] calculation of energy: the power deficits from individual wakes are combined linearly to account for the total power loss. The following two MIP models are based on such linear superposition technique. The first model (LSOM1) was originally proposed by Donovan (2005), while the second one (LSOM2) is our extension of LSOM1.

Figure 9 presents the LSOM1 model where \(\frac{1}{3} ( u_{id, \infty }^3 - u_{ijd}^3)\) is the power reduction at wind state \(d\) at turbine \(i\) due to the presence of upstream turbine \(j\). These values can be calculated prior to running the optimization (Eq. 5). Variable \(y_{ij}\) indicates whether there are turbines at both positions \(i\) and \(j\), and so \(y_{ij}\) is 1 if both \(x_i\) and \(x_j\) are 1, and 0 otherwise. Although \(y_{ij}\) is a continuous variable, it is assigned a value of either 0 or 1 due to the objective being a maximization function. \(\mathcal {E}\) is the set of cell pairs \((i,j)\) that are too close to both host turbines. Due to the use of the simpler linear superposition model of upstream turbines, the model over-estimates the energy deficit (Renkema 2007).

Fig. 9
figure 9

LSOM1 (Donovan 2005)

Other location problems in the literature such as the maximum diversity problem (MDP) (Kuo et al. 1993) and the \(p\)-dispersion-sum (\(p\)DS) problem (Pisinger 1999) are similar to Donovan’s model. However, we have not seen any application of the state-of-art MDP/\(p\)DS solution algorithms to this wind farm layout optimization model.

In LSOM1, the \(y_{ij}\) variables are always equal to the product of \(x_i\) and \(x_j\), indicating if there are turbines at both places. Since \(i, j \in \mathcal {N}\), there are in total \(|\mathcal {N}|^2\) \(y_{ij}\) variables. A high resolution of the wind farm grid with a complicated wind regime results in denser coefficient matrix for this optimization formulation. To address this weakness we propose LSOM2.

Figure 10 presents the LSOM2 model. It does not have \(y_{ij}\) variables. Instead, we use \(z_i\) to represent the power production at location \(i\). If there is no turbine at location \(i\), then the right-hand side of constraint (\(\dagger \)) is zero, and in most cases it is tighter than (\(\dagger \dagger \)). So, if no turbine appears at \(i\), then there will be no power production from location \(i\). If there is a turbine at \(i\), then in general constraint (\(\dagger \dagger \)) is tighter due to the extra negative terms (deduction of power due to upstream turbines). The value of \(z_i\) is, therefore, calculated by the total available power subtracting the linear combination of power losses due to wakes.

Fig. 10
figure 10

LSOM2

However, LSOM2 is not equivalent to LSOM1. When \(x_i=0\) and constraint (\(\dagger \)) is \(z_i \le 0\), constraint (\(\dagger \dagger \)) may become \(z_i \le -c\), where \(-c\) is a negative value. This is because the linear superposition model over-estimates power losses, making it possible for the right-hand side of (\(\dagger \dagger \)) to be negative. Fortunately, this case does not arise during our experiments due to the proximity constraint such that turbines cannot be less than 5 rotor diameters apart, which is an industry standard for wind farm design.

Noise-constrained models

Here, we incorporate the noise constraints and update the energy-maximizing models into profit-maximizing models with landowner participation (Figs. 11, 12, 13 and 14).

At a receptor \(r\), the sound pressure level (\(L_{rd}\)) for a certain wind condition (\(d\)) can be modeled as a function of turbine locations:

$$\begin{aligned} L_{rd} = 10 \log \left( \sum _{i=1}^{n} s_{ird} x_i \right) \end{aligned}$$
(12)

\(s_{ird}\) is the contribution of noise from position \(i\) to receptor \(r\), under the wind condition \(d\) [calculated with the inner summation of (8)]; \(x_i\) is the variable indicating the existence of a turbine at location \(i\).

To model the landowner participation, we add logical relationships among landowner’s participation (\(w_k\)), existence of turbines (\(x_i\)), and the SPL within each land piece:

$$\begin{aligned} w_k = {\left\{ \begin{array}{ll} 1, &{}\quad \text {if } L_{rd} \ge l_d \,\, \exists r \in \mathcal {R}_k \text { and } \exists d \in \mathcal {D} \text {; or } x_i = 1 \text { } \exists i \in \mathcal {I}_k\\ 0, &{}\quad \text {otherwise} \end{array}\right. } \end{aligned}$$
(13)

where \(\mathcal {R}_k\) is the set of receptors at land \(k\); \(\mathcal {I}_k\) is the set of possible turbine locations either within land \(k\) or within the proximity of land \(k\); \(l_d\) is the noise limit set by the government for wind state \(d\) [for example, the limits from Ministry of the Environment (2008)].

Furthermore, even if a landowner participates, we do not allow unlimited noise. We can cap the maximum noise at a location regardless of the landowner’s participation:

$$\begin{aligned} L_{rd} \le l_d + l_{\delta } \; \forall r, d \end{aligned}$$
(14)

To calculate the numeric value of \(L_{rd}\), we have to use the nonlinear function in (12), which is undesirable in the case of MIP. Fortunately, since the log function is strictly monotonic, and the term inside the log function of (12) is linear, we can transform the logic of (13) and (14) into linear constraints (as shown in the models).

Fig. 11
figure 11

SOM1 noise, with a slightly different objective function than SOM1 and extra noise constraints

Fig. 12
figure 12

SOM3 noise master, with a slightly different objective function than SOM3 and extra noise constraints

Fig. 13
figure 13

LSOM1 noise, with a slightly different objective function than LSOM1 and extra noise constraints

All four models (SOM1, SOM3, LSOM1, and LSOM2 noise) have profit maximizing objectives: \(\mathbf {c}\) is the cost vector for engaging different landowners, and \(c_0\) is a constant that maps the expected power to revenue. The value for \(c_0\) is chosen based on the per kilowatt electricity price and net present value of profit from energy sales, whereas the values of \(\mathbf {c}\) are determined empirically to balance the second part of the objective function. In the SOM1 noise model (Fig. 11), the constraints are for: total number of turbines, landowner participation due to hosting of turbines, noise, and binary conditions for the variables. The noise constraint (\(*\) in Fig. 11) states that the aggregated sound level at a receptor \(r\) will determine the participation status of the landowner. If the sound pressure is very low (\( \frac{\sum _{i \in \mathcal {N}} s_{ird} x_i - 10^{l_d / 10}}{10^{(l_d + l_{\delta }) / 10} - 10^{l_d / 10}} \le 0\)), then the project developer has the choice of not engaging the landowner. If \(0 < \frac{\sum _{i \in \mathcal {N}} s_{ird} x_i - 10^{l_d / 10}}{10^{(l_d + l_{\delta }) / 10} - 10^{l_d / 10}} \le 1\), then the landowner must be a participant. Otherwise, the noise level is above the threshold and makes the problem infeasible.

Fig. 14
figure 14

LSOM2 noise, with a slightly different objective function than LSOM2 and extra noise constraints

Experiment setup

All energy models were implemented with Microsoft Visual C++ Express 2010 and IBM ILOG CPLEX 12.3. Noise-constrained models are implemented in C++ and solved with IBM ILOG CPLEX 12.5. All models are solved on a Dell Vostro 460 with Core i5-2500 CPU (3.30GHz, 64-bit). Twelve widely used benchmark instances (Mosetti et al. 1994; Grady et al. 2005; Chowdhury et al. 2010; Du Pont and Cagan 2010; Kwong et al. 2012) (referred to as WR\(q\)-\(n\)-\(m\)) were used to test the performance of models. WR1 refers to the wind regime of one-directional wind (from west to east) and WR36 refers to the wind regime with wind coming from 36 directions, each with three different speeds (Fig. 15); \(n\) refers to the number of turbine locations; and \(m\) refers to the number of turbines.

Fig. 15
figure 15

Cumulative wind probability distribution for problem instance WR36

Common parameters for the test instances, used in previous works (Mosetti et al. 1994; Grady et al. 2005), are: \(z = 60\) m (turbine height), \(z_0 = 0.3\) m (ground roughness), \(r_0 = 20\) m (turbine rotor radius), and the wind farm is a flat, square terrain of size 2km by 2km (10 by 10 and 20 by 20 grids). For the noise-constrained models, we partition the land into 25 (5 by 5) equal-sized squares, each belonging to a landowner. There is one receptor for each land piece, located in the center of that region. Since the SOM models evaluate the power production by sum-of-squares (Eq. 3) and the LSOM evaluation is based on linear superposition (Eq. 5), the four models are not directly comparable. We, therefore, compare the solution quality in Table 1 by a posteriori re-evaluating the LSOM solutions based on the (more accurate) sum-of-squares method. The power production values in brackets indicate the objective function value of the LSOM solutions. The LSOM noise and SOM noise models are compared based on the sum-of-square energy evaluations.

Table 1 Comparison of solutions based on sum-of-squares power calculation (\(\circ \): experiments took more than 1 h to setup; boldface: best objective value)

Results

Table 1 summarizes the performance of the four models (without noise constraints) by comparing the expected power and solution times. The MIP optimality gaps are included where applicable. Columns \(n\) and \(k\) represent the total numbers of cells and turbines. For LSOM1 and LSOM2, there are two power values: the power calculated with the sum-of-squares wake model and, in parentheses, the objective function value based on linear superposition model. Overall, LSOM2 outperforms the other models in most cases in terms of solution quality. SOM3 and LSOM2 can solve problem instances with high grid resolution and high wind data resolution (WR36-400-\(m\)), while the other two models cannot even initialize these instances within an hour due to the size of the model. Interestingly, although the LSOM models use less accurate wake models, they yield better solutions (within the 1-h time limit) when evaluated with the more accurate sum-of-squares evaluations. This observation empirically shows that although LSOM optimality solutions should be worse than the SOM optimal solutions, the less accurate wake model of LSOM is actually a reasonably proxy when the experiments are run under the 1-h time limit.

SOM1 vs. SOM3

Table 1 shows that SOM3 solves more instances than SOM1. In the higher resolution case (WR36-400), the SOM1 objective function expression must account for many wind directions and turbine pairs leading to memory saturation during the model creation phase and the inability to start search within an hour. SOM3 also performs better in WR1 cases. We believe that the simpler turbine interactions for WR1 instances are accurately captured by no-good and 3-cuts.

For a more detailed examination of these results, Figs. 16, 17 and 18 present the evolution of solution quality over time for SOM1 and SOM3 for selected problem instances. In the single-direction scenario (WR1), SOM3 consistently outperforms SOM1. For the WR36 instances where SOM1 was able to run, SOM3 performs much worse than SOM1 (Fig. 18). To understand these results, recall that SOM3 is a decomposed model where the improvement from iteration to iteration is based on cuts representing information of turbine interactions. In the WR1 cases, every cell has about 10 (20) upstream cells, because the wind farm resolution is 10 by 10 (20 by 20). During the optimization, the better layouts often have turbines spaced out in the wind direction, thus the 3-cut, although only describing the interactions between a few turbines, already contains enough information for the master problem to make good decisions. However, in the WR36 cases, every turbine has \(k-1\) upstream turbines and the 3-cut only expresses the impact of the most significant two upstream turbines. Therefore, SOM3’s search for better objective value in WR36 instances is often stalled due to the lack of effective cuts.

Fig. 16
figure 16

Single wind direction, 100 cells

Fig. 17
figure 17

Single wind direction, 400 cells

Fig. 18
figure 18

Thirty-six wind directions, 100 cells

SOM3 also improves more slowly in the WR1-400-\(m\) instances (Fig. 17) than in the WR1-100-\(m\) instances (Fig. 16). There are more combinations of three turbines in the former instances and therefore more 3-cuts must be generated for the master problem to improve its objective value. Eventually, SOM3 catches up with SOM1 because the 3-cuts describe the interactions of all turbines reasonably accurately.

LSOM1 vs. LSOM2

Table 1 shows that the power production calculated by linear superposition method (in brackets) is always lower than or equal to the sum-of-squares calculation. For some values of \(n\) and \(k\), the problem cannot be solved to optimality within an hour, while some other instances are solved in less than 10 s. Table 1 clearly shows that LSOM2 outperforms LSOM1 in solution quality in all but one instance (WR1-400-40). In the WR1-400-40 case, LSOM1 outperforms LSOM2 in terms of the revised power calculation, however, LSOM2 is “misled” by the objective function (in brackets). Thus, if we compare the true optimization objective for LSOM1 and LSOM2, LSOM2 strictly dominates LSOM1 in solution quality. In terms of computation time, LSOM2 performs similarly to LSOM1 except the WR1-100-30 and WR1-100-40 instances. A closer look at the CPLEX solution log reveals that LSOM2 arrived at the actual optimal solution (proven by LSOM1) within a few seconds for both cases, but was unable to quickly tighten the dual bound. As with the SOM1 model, the bigger cases (WR36-400) cannot be solved by LSOM1 within 1 h because the CPLEX solver either took a few hours to initialize or could not start at all.

Noise-constrained models

Table 2 shows the noise-constrained versions of the LSOM and SOM models. In general, the relative performance of these models under the additional constraints did not shift much. In WR36 cases, LSOM2 noise is the dominating model, solving all WR36 instances to much higher objective values. In WR1 cases, the performance is more even between SOM3 noise, LSOM1 noise, and LSOM2 noise. By comparing Tables 1 and 2, we can see that the resolution of wind farm grid is much more important in the noise-constrained case. With the same number of turbines and wind regime, the increase of grid resolution can improve wind farm profit significantly, and in some cases change the problem from infeasible to feasible. In the layouts presented in Figs. 19, 20 and 21, we see that the main challenge in the low-resolution grid is to occupy fewer sub-farms without violating the noise constraints. The inclusion of noise constraints substantially changes the layout, especially when the turbine density is not too high (Fig. 19). Therefore, for noise-regulated wind farm layout optimization, it is important to include the dynamic noise constraints in the optimization model instead of ignoring them and modifying the layouts later.

Table 2 Comparison of solutions of the noise-constrained models (\(\circ \): experiments took more than 1 h to setup; boldface: best objective value)

Discussion

Since the SOMs represent the first time that the most accurate analytical wake equations (Renkema 2007) are modeled with constraint programming and mixed integer programming, there is much to learn about the performance and potential opportunities for the SOMs. We describe several promising research directions. For SOM1, nonlinearity appears only in the objective function, thus we could apply nonlinear solvers that are based on linear solvers [e.g., SCIP (Tobias Achterberg 2009)]. The SOM3 cuts capture information in two ways: no-good cuts capture interaction between all \(k\) turbines in very specific layouts, while the 3-cuts capture information from a wider range of layouts, but limited to the interaction among three turbines. We can potentially apply the same idea of 3-cut and generate constraints that inform the master problem more effectively, without having to generate too many of them (e.g., 4, 5-cut). A straightforward hybridization would be the sequential application of SOM1 and SOM3, where we start the problem with low resolution (coarse grid) and progressively increase it. In this case, we could solve SOM1 in the initial stages, utilizing the constraint propagation of CP solvers for the proximity constraints, and then solve the problem with SOM3 in the later stages while fine-tuning the turbine positions, utilizing the fact that this fine-tuning focuses on clusters of closely located turbines and that such information can be effectively captured by 3-cut (or 4, 5-cut). It is interesting to observe that although the LSOMs employ less accurate power models (i.e., their optimal solutions are not the same as the optimal solutions of SOM), LSOMs still produce good solutions when benchmarked by the more accurate power calculations. We plan to explore this in more detail once the SOMs are improved.

Fig. 19
figure 19

WR36-400-20 LSOM2 (left) and LSOM2 noise (right) layouts. Landowner properties are separated by dashed lines

Fig. 20
figure 20

WR36-400-30 LSOM2 (left) and LSOM2 noise (right) layouts. Landowner properties are separated by dashed lines

Fig. 21
figure 21

WR36-400-40 LSOM2 (left) and LSOM2 noise (right) layouts. Landowner properties are separated by dashed lines

Conclusion

We have constructed a decomposition model (SOM3) in order to outsource the energy evaluation of a layout to a subproblem, so that the master problem can remain as a MIP while the subproblem can take on any form—from nonlinear equations for wake superposition to computational fluid dynamics simulation that can capture the flow of the field in more details. The current paper focuses on the validity of the SOM3 model with a set of simple nonlinear equations for the wake superposition. Future extension of SOM3 includes the alteration of the subproblem into a simulation-type evaluation. We proposed two models to incorporate the nonlinearity in the superposition of wakes according to the existing literature. The first model (SOM1) is a direct formulation of the problem in constraint programming. While having promising performance under complex wind scenarios, the major drawback of this approach is the “curse of dimensionality”—the growth of the numbers of variables and terms quickly exceeds reasonable computational capacity. A second decomposed MIP model (SOM3) performs well in the simple wind regimes, because no-good and 3-cuts can accurately describe the turbine interactions. However, with more complicated wind regimes, SOM3 is unable to improve its early feasible solutions due to the weakness of the current cuts. We also presented a novel extension of an existing LSOM model. The LSOM models are based on a less accurate model of power productions, thus having different objective functions than the SOMs. However, the models can be solved more quickly and achieve high-quality solutions when a posteriori evaluated with the more accurate sum-of-squares power calculation.

In summary, we have presented two new models for the wind farm layout optimization problem. We also included noise constraints and landowner decisions in a profit-maximization version of the models, to account for the environmental and social impact of wind farms. To our best knowledge, this is the first work dealing with the on/off links between the landowner participation and noise limit levels. These CP and MIP models are the first mathematical programming models that capture the wind turbine interactions by modeling the sum-of-squares equations—the most accurate analytical multi-wake modeling in the literature (Renkema 2007). We also presented an extension (LSOM2) to a previous MIP model (LSOM1) and demonstrated improved solution quality and time. Based on the experimental study, we think that the most promising directions for future work include the strengthening of cuts for SOM3 and hybridization of SOM1 and SOM3.