Wind turbine layout design has an important impact on the energy production and economic benefits of wind farms. The wind resource grid data include the realistic wind distributions of the wind farm. Combined with the Jensen wake model, it can be used to calculate the net production considering the wake effect of turbines. Based on the wind resource grid data and taking net energy production as the objective function, this paper proposes a random search algorithm for wind turbine layout optimization. The algorithm couples the random function with multiple optimization parameters and optimizes the wind turbine layout by considering restriction conditions of area and minimum turbine spacings. According to the results of the case study in an actual wind farm, the optimization processes using the proposed algorithm have high calculation efficiency and stability. The sensitivity analysis of parameters indicates that the effect of optimization calculation can be effectively improved by appropriately increasing the turbine coordinate searching range or the number of random operations within one single search.
I. INTRODUCTION
With the development of the economy and the rapid growth of global population, the demand for energy in human society is increasing with the passage of time. Wind energy is one of the important forms of renewable energy, with the advantages of wide distribution, natural abundance, and low carbon. Therefore, wind energy resources have been widely developed and utilized in recent years. According to the report of the World Wind Energy Association (WWEA), the global cumulative capacity of wind power has reached 934.443 GW by the end of 2022.1
In the wind farm, different wind turbine positions can create significant differences in the total energy production due to different wind speeds and wake losses at turbines. Hence, how to maximize wind farm production and economic benefits by optimizing the turbine layout has gradually become a key aspect in the industry.
There are wake effects between upstream and downstream wind turbines, resulting in the decrease in power generation and profits of the whole wind farm.2–4 The overall production loss of a wind farm caused by the wake effect can reach 10%–20%, with the loss of individual turbine being as high as 30%–40%.5 The wake effect will also add the turbulence intensity of downstream turbines, which affects the fatigue load and subsequently increases the expense of control and maintenance for turbines.6–8 Furthermore, the wake effect calculation plays an important role in the challenging layout optimization problem.9–12 The turbine wake effect can be numerically simulated by the analytical model, low-order model,13 or advanced numerical flow models, such as Reynolds-averaged Navier–Stokes equations method (RANS) and large eddy simulation (LES).14,15 In analytical wake models, the linear model proposed by Jensen16 has been widely used in the wake calculation and wind farm optimization problem.17–19 Gaussian shape wake models also have advantages and have been applied in many studies of layout optimization.20–23 By comparison of different wake models, it indicates that the Jensen model is suitable for the wind turbine layout optimization due to its simplicity and relatively good accuracy.24 Therefore, the Jensen model with specific conditions will be chosen to calculate the wake effect in the studies of this paper.
In previous studies, various algorithms have been developed to solve the optimization problem of wind turbine layouts. Back in 1994, Mosetti et al. divided the wind farm into grid structures considering three different flow conditions and optimized the turbine layout by using the Jensen wake model and genetic algorithm.25 Thereafter, the genetic algorithm and related methods have extensively utilized in this field.26–29 Gao et al. applied multi-group genetic algorithm and two-dimensional wake model in research, which can accurately predict wake characteristics and optimize turbine layout.30 The genetic algorithm with multi-objective continuous variables can optimize the wind farm by considering multiple factors such as cost per kilowatt and fatigue loss.31 Another frequently used algorithm for wind turbine layout optimizations is particle swarm optimization.32,33 Tang et al. proposed a genetic algorithm-particle swarm optimization algorithm to successfully obtain better results for multiple types of turbines in complex terrain.34 Random search (RS) algorithm has also been developed to solve layout optimization problem. Feng and Shen obtained optimization results superior to that of traditional genetic algorithm based on a refinement method by random search.35 The introduction of the adaptive mechanism into the algorithm can effectively save the computational cost.36 In addition to the algorithms above, several other algorithms such as ant colony optimization and greedy algorithm have been proven to be effective in turbine layout optimizations.37,38
In addition to the advanced algorithms, the realistic boundary and constraints of wind farms should be considered properly in the optimization as well.39,40 Li et al. proposed two optimization strategies, considering the wind farm boundary, for wind farms with regular and random layouts, respectively. The methods in this paper can find the turbine layout with largest energy production by reducing the wind farm wake loss.41
In summary, the previous studies of turbine layout optimization mainly focus on the wind farm grid structures, optimization algorithm analyses, and the application of wake models. In actual wind farms, it is usually necessary to consider multiple factors such as realistic wind resource distributions, restriction condition, and wake loss. On this basis, the layout optimization can be conducted through accurate and efficient algorithms, which is of great engineering and practical significance.
Based on the previous works aforementioned, this paper will propose a wind turbine layout optimization method, which increases the net energy production of the wind farm considering wake effects. The paper is organized as follows. In Sec. II, the format and utilization of wind resource grid are introduced, together with the wake model, energy production calculation, and the objective function of optimization. Section III provides the optimization algorithm used in this paper in detail, including the algorithm theory, restriction conditions, and the process of calculations. In Sec. IV, one actual wind farm case is chosen to perform the layout optimization with the proposed algorithm, followed by the result analyses. Section V summarizes the overall conclusions for this paper.
II. WIND TURBINE LAYOUT OPTIMIZATION MODEL
A. Wind resource grid
In the planning and design stage of wind farms, the wind resource grid is one of the most commonly used data formats. It contains coordinates, wind power density, wind speed, and frequency of all spatial grids in the wind farm. The wind resource grid data reflect the distribution of wind resources, which can be used for wind resource evaluation, energy production calculation, and micro-siting of the wind farm. It is usually calculated by the linear wind flow model WAsP42 or computational fluid dynamics (CFD) software based on topographic map, roughness map, and wind measurement data of the site.
In general, the wind resource grid data contain the information on grids within a certain range, with each row representing one grid point. The variables contained in each row of the data are in Table I.
Wind resource grid data variables.
Variable . | Description . |
---|---|
Grid coordinate (m) | X, Y, and Z coordinate of grids in the data, usually in Cartesian coordinate systems. |
Above ground level (m) | Height above the surface of the grid. |
Weibull a (m/s) | Sector-averaged Weibull scale factor of the grid. |
Weibull k (-) | Sector-averaged Weibull shape factor of the grid. |
Wind power density (W/m2) | Total wind power density of the point, which represents the maximum wind energy available per unit area. |
Number of sectors | The number of wind directions in the data. The direction range per sector can be calculated based on it. |
Frequency of sector #1 (0.1%) | The proportion of first sector in all wind directions at the grid. |
Weibull a of sector #1 (0.1 m/s) | Weibull scale factor in first sector at the grid. |
Weibull k of sector #1 (*0.01) | Weibull shape factor in first sector at the grid. |
Frequency and Weibull factors of other sectors | Frequency and Weibull factors of all other sectors at the grid. |
Variable . | Description . |
---|---|
Grid coordinate (m) | X, Y, and Z coordinate of grids in the data, usually in Cartesian coordinate systems. |
Above ground level (m) | Height above the surface of the grid. |
Weibull a (m/s) | Sector-averaged Weibull scale factor of the grid. |
Weibull k (-) | Sector-averaged Weibull shape factor of the grid. |
Wind power density (W/m2) | Total wind power density of the point, which represents the maximum wind energy available per unit area. |
Number of sectors | The number of wind directions in the data. The direction range per sector can be calculated based on it. |
Frequency of sector #1 (0.1%) | The proportion of first sector in all wind directions at the grid. |
Weibull a of sector #1 (0.1 m/s) | Weibull scale factor in first sector at the grid. |
Weibull k of sector #1 (*0.01) | Weibull shape factor in first sector at the grid. |
Frequency and Weibull factors of other sectors | Frequency and Weibull factors of all other sectors at the grid. |
As seen in Table I, the wind resource grid data provide the frequency and Weibull factors of each sector at all grids. Therefore, the average wind speed at all grids can be calculated by above formulas. The two-dimensional visualization of the wind resource grid is shown in Fig. 1.
B. Wake model
In the wind farm, upstream wind turbines will bring about wake effect downstream, reducing the wind speed and production of downstream wind turbines. As already mentioned, the Jensen wake model will be used for wake calculation in this paper. The assumptions of the Jensen wake model are as follows:
-
The wake area downstream the turbine is axis-symmetrically distributed.
-
The wind speeds at all points of transverse profile in the wake area are equal.
-
The wake loss radius varies linearly with distance.
Diagram of the Jensen wake model is shown in Fig. 2, where is the rotor radius of upstream wind turbine; is the wake expansion coefficient, indicating the degree of linear expansion of the wake area; and is the distance from downstream position to the upstream turbine in the direction parallel to the incoming flow.
In addition, the specific weight of downstream turbine rotor area in the wake area should be considered in the wake effect calculation. As shown in Fig. 3, , , and indicate the rotor area of downstream turbine, wake area at current position, and overlapping area of the two, respectively.
In this paper, Eq. (4) will be used to calculate in the case study. Since there are no turbulence data in the wind resource grid, the constant of 0.15 will be taken as turbulence intensity value at onshore wind farms.
It is noteworthy that one turbine is sometimes affected by several upstream turbines in the wind farm. In this paper, the minimum of wake loss coefficients from all upstream turbines is taken as the overall wake loss coefficient of this turbine.
C. Calculation of wind farm energy production
D. Objective function of optimization
-
Read Weibull factor and in the first sector of all turbines from the wind resource grid and calculate the average wind speed in this sector.
-
Sort all turbines in the wind farm according to the wind direction of the first sector, to determine the upstream and downstream relationship between the turbines.
-
Calculate the wake loss coefficient [ ] of all turbines in all sectors by using the Jensen wake model in Eq. (3), where and represent the order number of the turbine and sector, respectively.
-
Obtain the Weibull probability density function [ ] after wake at all wind turbines
where , , , and are Weibull scale factor, Weibull shape factor, wind speed, and wake loss coefficient, respectively. This equation has been derived from cumulative distribution function (CDF) of Eq. (1), based on the assumption that the CDF value of a certain speed is equal to that of this speed after wake.
-
Calculate the of the wind farm after wake ( ), that is, net energy production of the wind farm
where is Weibull probability density of the turbine in the sector, at wind speed of (m/s) after wake; and all other variables are defined the same as Eq. (6).
III. RANDOM SEARCH ALGORITHM
A. Algorithm theory
Previous research on wind turbine layout optimization mainly focused on classical algorithms such as genetic algorithm and particle swarm algorithm. However, there are many factors that need to be considered in the actual wind farm, usually making it difficult to achieve satisfactory results. In this paper, a random search (RS) algorithm will be designed to achieve fast and efficient calculation of layout optimization by setting multiple internal parameters and the interactions.
In the studies of layout optimization problem, the potential turbine position is usually searched in fixed-resolution grids to obtain the optimal solution. However, in the actual wind farm, the turbine does not need to be placed based on discrete grids, except for the factors such as land property and turbine noise. In the random search algorithm designed in this paper, turbine coordinates are not limited by the discretized grid center, which greatly increases the search space of turbine locations, and calculates the wake effect and energy production based on actual turbine coordinates.
The random search algorithm for layout optimization is designed as follows:
-
Prepare initial calculation inputs, including wind resource grid, initial turbine layout, and wind turbine data, and set the relevant parameters of restriction.
-
Check whether the initial layout L0 meets the restriction conditions.
If the conditions are met, we calculate the net energy production of the initial layout by F = F(L0) and execute (3);
if not, the whole process of optimization calculation ends.
-
One turbine is randomly selected in the iteration step i (i = 1, 2, 3, …, MaxItr). The new position of this turbine is generated by coupling the random function with optimization parameters. Main parameters of optimization are shown in Table II.
-
Judge whether the new wind turbine layout satisfies the restriction conditions.
If Feasible = True, then execute (5);
if Feasible = False, end the calculation of current iteration step and execute (3).
-
Calculate the net energy production of the new layout by Fi = F(Li) in iteration step i and judge whether it is better than F.
If Fi > F, update the optimal solution L and F: L = Li, F = Fi;
if Fi <= F, then no better solution is found in this step, so L and F remain unchanged.
-
Repeat (3) to (5) until the optimization calculation tends to converge, or the maximum iteration steps set by MaxItr are reached.
-
Output the optimal wind turbine layout L and net energy production F.
Optimization parameters of the random search algorithm.
Parameter . | Description . |
---|---|
MaxItr | Total iteration steps of optimization calculation. |
MaxItr_i | Maximum times of changing turbine coordinates to improve the objective function in a single iteration step. |
dXY | Minimum step size of the turbine movement, in m. |
N_Step | The maximum steps of turbine movement. The moving distance can be calculated through multiplying by dXY. |
N_rand | Maximum random operations in a single random search. |
Parameter . | Description . |
---|---|
MaxItr | Total iteration steps of optimization calculation. |
MaxItr_i | Maximum times of changing turbine coordinates to improve the objective function in a single iteration step. |
dXY | Minimum step size of the turbine movement, in m. |
N_Step | The maximum steps of turbine movement. The moving distance can be calculated through multiplying by dXY. |
N_rand | Maximum random operations in a single random search. |
B. Restriction condition
When using the random search algorithm to search for the new turbine positions, it is necessary to consider the actual restriction conditions of the wind farm on the optimization calculation, which mainly include the following two categories:
-
The area in the wind farm that wind turbines can be installed.
-
Minimum distance between turbines.
In practical wind power projects, there is usually a clear boundary of the wind farm. It is necessary to ensure that all turbines are within the boundary in the process of layout design, optimization, and micro-siting. At the same time, if there are prohibited areas within the boundary, they need to be removed during the layout optimization calculation, as shown in Fig. 4.
Diagram of wind farm boundary, prohibited areas, and wind turbine layout.
Due to the wake effect between upstream and downstream turbines, and the turbine spacing has a direct impact on the operation safety of turbines, the minimum distance between the turbines needs to be considered when optimizing the turbine layout.46
When the prevailing wind direction of the wind farm is not obvious, all turbines should meet the minimum spacing requirement in all wind directions. Thus, circles around the turbines are usually used to constrain the spacings, as shown in Fig. 5(a). If there is an obvious prevailing wind direction, it is important to increase turbine distances in the dominant direction, reducing the wake effects. Ellipses can be used to ensure that turbine distances in the prevailing direction are greater than other directions. The elliptical major axis is parallel to the prevailing wind direction, while the minor axis is perpendicular to it, as shown in Fig. 5(b).
C. Calculation process
To perform the wind turbine layout optimization by random search algorithm, it mainly includes input data preparation, turbine layout update, constraints checking, optimal solution judgment, and output. The specific calculation process is shown in Fig. 6.
Flow chart of wind turbine layout optimization with random search algorithm.
IV. CASE STUDY AND ANALYSIS
A. Case introduction
This paper selects an onshore wind farm in the coastal area of Vietnam as the case for the study of wind turbine layout optimization. The terrain of the wind farm is relatively flat with gentle fluctuation of the altitude. The prevailing wind direction on site is about 60°, and wind resource grid is calculated through the measured wind data and wind resource software. In addition, there are initial wind turbine layout and wind farm boundary for this case, as shown in Fig. 7.
The detailed description of the input data for the case is shown in Table III.
Input data of wind turbine layout optimization case.
Input data . | Description . |
---|---|
Wind resource grid | The data are calculated by wind resource software. The height, horizontal resolution, and number of sectors of data are 127, 25, and 12 m, respectively. |
Initial wind turbine layout | Initial layout with 25 wind turbines in total. |
Turbine data | The data include power curve (rating 4.8 MW), thrust coefficient (0.034–0.846, varying with wind speeds), rotor diameter (135 m), and hub height (127 m). |
Wind farm boundary | First restriction condition to determine the area where turbines can be placed. |
Prevailing wind direction and turbine spacing | Second restriction condition to specify the ellipse spacing requirement for the turbines. |
Prevailing wind direction: 60°. | |
Long and short axis of ellipse: 4D and 2D, where D is the rotor diameter of the turbine. |
Input data . | Description . |
---|---|
Wind resource grid | The data are calculated by wind resource software. The height, horizontal resolution, and number of sectors of data are 127, 25, and 12 m, respectively. |
Initial wind turbine layout | Initial layout with 25 wind turbines in total. |
Turbine data | The data include power curve (rating 4.8 MW), thrust coefficient (0.034–0.846, varying with wind speeds), rotor diameter (135 m), and hub height (127 m). |
Wind farm boundary | First restriction condition to determine the area where turbines can be placed. |
Prevailing wind direction and turbine spacing | Second restriction condition to specify the ellipse spacing requirement for the turbines. |
Prevailing wind direction: 60°. | |
Long and short axis of ellipse: 4D and 2D, where D is the rotor diameter of the turbine. |
B. Stability analysis of calculation
Since the random function is used in random search algorithm for layout optimization, there could be different optimization results while using the same input data and optimization parameters. Therefore, the calculation stability needs to be analyzed by performing multiple calculations of layout optimization in this case.
Based on the same input data and optimization parameters, two groups of case calculations are carried out with iteration steps of 200 and 1000, respectively. In each group, three optimization calculations are performed randomly using the random search algorithm. The results are shown in Table IV.
Calculation results of stability analysis.
No. . | Iteration step (maxItr) . | Duration (s) . | Wake loss (%) . | Capacity factor (%) . | Net AEP (GW h/y) . | AEP increase (%) . |
---|---|---|---|---|---|---|
Initial layout | ⋯ | ⋯ | 9.09 | 33.78 | 355.14 | ⋯ |
1-a | 200 | 50 | 3.50 | 36.29 | 381.70 | 7.48 |
1-b | 200 | 45 | 3.34 | 36.39 | 382.77 | 7.78 |
1-c | 200 | 45 | 3.38 | 36.52 | 384.21 | 8.18 |
2-a | 1000 | 266 | 2.70 | 36.92 | 388.36 | 9.35 |
2-b | 1000 | 317 | 2.86 | 36.81 | 387.17 | 9.02 |
2-c | 1000 | 283 | 3.18 | 36.84 | 387.54 | 9.12 |
No. . | Iteration step (maxItr) . | Duration (s) . | Wake loss (%) . | Capacity factor (%) . | Net AEP (GW h/y) . | AEP increase (%) . |
---|---|---|---|---|---|---|
Initial layout | ⋯ | ⋯ | 9.09 | 33.78 | 355.14 | ⋯ |
1-a | 200 | 50 | 3.50 | 36.29 | 381.70 | 7.48 |
1-b | 200 | 45 | 3.34 | 36.39 | 382.77 | 7.78 |
1-c | 200 | 45 | 3.38 | 36.52 | 384.21 | 8.18 |
2-a | 1000 | 266 | 2.70 | 36.92 | 388.36 | 9.35 |
2-b | 1000 | 317 | 2.86 | 36.81 | 387.17 | 9.02 |
2-c | 1000 | 283 | 3.18 | 36.84 | 387.54 | 9.12 |
As seen in the above table, the optimization results calculated using the same input data and optimization parameters are relatively stable. The wake loss, net AEP of the wind farm, and AEP increase rate after optimization are all at comparable levels in both groups.
The effect and efficiency of optimization calculation are both evident in group 1. The 200 steps of iteration in the calculations consume 45–50 s, averagely resulting in the increase in net AEP from 355.14 to 382.89 GW h/y, the decrease in wake loss from 9.09% to 3.41%, and the AEP increase in 7.81%, respectively. Iteration steps of calculation in group 2 are 1000, with an average duration time of 288.7 s and an AEP increase rate of 9.2%. Though the wake loss of case 2-c (3.18%) is obviously higher than case 2-a (2.70%) and 2-b (2.86%), the differences of net AEP in these three cases are less than 0.3%. Compared with group 1, the efficiency of calculations in group 2 has been reduced to some extent. However, the calculated net AEP results along with the increase rates have improved significantly.
Figure 8 shows the iteration curves and the optimized turbine layouts in the two groups of calculations. When the same input data are used for multiple calculations, the changing trend of iteration curves is consistent, together with similar net AEP results and patterns of turbine layout after optimization. To conclude, there is high stability in the calculation of layout optimization using the proposed random search algorithm.
Calculation results of stability analysis (a) and (b) iteration curves, (c) and (d) wind turbine layouts after optimization.
Calculation results of stability analysis (a) and (b) iteration curves, (c) and (d) wind turbine layouts after optimization.
In addition to the results presented in this section, the calculations of more iteration steps (e.g., 5000) are also conducted for comparisons. Higher AEP increase rates are obtained, with minor difference in net AEP results after the same steps. These tests have further proved the stability of the random search algorithm in this paper.
C. Sensitivity analysis of optimization parameters
The random search algorithm in this paper couples the random function with multiple optimization parameters. There will be the impact on the efficiency and accuracy of optimization calculation if adjusting one or more optimization parameters. Therefore, sensitivity analysis is required to explore the influence of optimized parameters on the calculation process.
Taking the case 2-a in Sec. IV B as the reference experiment, all optimization parameters, except the iteration step (maxItr = 1000), are tuned in the calculation of sensitivity analysis. The calculation results are shown in Table V.
Calculation results of optimization parameter sensitivity analysis.
No. . | maxItr . | maxItr_i . | dXY . | N_Step . | N_Rand . | Duration (s) . | Increase (%) . |
---|---|---|---|---|---|---|---|
2-a | 1000 | 200 | 12.5 | 150 | 50 | 266 | 9.35 |
3 | 1000 | 400 | 12.5 | 150 | 50 | 484 | 10.07 |
4 | 1000 | 200 | 5 | 150 | 50 | 405 | 8.81 |
5 | 1000 | 200 | 12.5 | 300 | 50 | 168 | 9.71 |
6 | 1000 | 200 | 12.5 | 150 | 100 | 191 | 9.60 |
No. . | maxItr . | maxItr_i . | dXY . | N_Step . | N_Rand . | Duration (s) . | Increase (%) . |
---|---|---|---|---|---|---|---|
2-a | 1000 | 200 | 12.5 | 150 | 50 | 266 | 9.35 |
3 | 1000 | 400 | 12.5 | 150 | 50 | 484 | 10.07 |
4 | 1000 | 200 | 5 | 150 | 50 | 405 | 8.81 |
5 | 1000 | 200 | 12.5 | 300 | 50 | 168 | 9.71 |
6 | 1000 | 200 | 12.5 | 150 | 100 | 191 | 9.60 |
The calculation results in the above table are analyzed as follows:
-
In case 3, the maxItr_i is doubled, directly increasing the maximum times that the turbine coordinates can be changed in each iteration step. It will contribute to the solution of optimal result and the improvement of AEP increase rate; meanwhile, the calculation duration will rise obviously.
-
The dXY is reduced in case 4, improving the resolution of turbine movement in the optimization calculation. Given that the N_Step remains unchanged, the searching range of new turbine coordinates is also reduced accordingly. Both the calculation efficiency and accuracy are lower than that of the reference experiment.
-
In case 5, the searching range of new turbine coordinates is increased by the N_Step, improving the efficiency of finding more optimal solutions in every iteration step. Therefore, the duration of calculation is significantly reduced, along with the improvement of AEP increase.
-
At last, the N_Rand is doubled in case 6. Combined with the random function, it generally improves the number of random operations in a single coordinate search, reducing the calculation duration and in the meantime improving the effect of optimization.
From the sensitivity analysis above, it can be seen that the efficiency and optimal solution of calculation can be effectively improved compared to the reference experiment, by appropriately extending the coordinate searching range or increasing the number of random operations in one single search.
V. CONCLUSION
In this paper, the problem of wind turbine layout optimization is studied based on the wind resource grid data. Calculating the wind resource distribution and energy production based on the wind resource grid and taking the energy production after wake as the objective function, this paper proposes a random search algorithm for layout optimization. The algorithm couples the random function with multiple optimization parameters, searching for the new layout considering restriction conditions such as the installation area and minimum spacing of the turbines.
An onshore wind farm is selected for case study and analysis in this paper. The results show that the random search algorithm has good stability in optimization calculation. The average duration of 1000 iterative steps is less than 5 min, with the average AEP increase rate greater than 9%, indicating that the algorithm has reliable efficiency and accuracy in practice. From the sensitivity analysis of optimization parameters, it can be seen that increasing the turbine coordinate searching range or the number of random operations in a single search can effectively improve the calculation efficiency as well as the optimal solution of layout optimization.
Different turbine numbers and types or different numbers of sectors in the wind resource grid are usually considered in the design of wind turbine layout. The wake models applicable for different kinds of wind farms should be also taken into account in the layout optimization. In the future, the proposed random search algorithm as well as the calculation processes presented in the paper could be further optimized. In the meantime, the parameter design of this algorithm can be improved to enhance its accuracy and applicability in various wind farm types.
ACKNOWLEDGMENTS
This work is financed by the National Key R&D Program of China (No. 2022YFB4202100), Innovation Capability Support Program of Shaanxi (Program No. 2023-CX-TD-30), and the funding for science and technology projects of Power Construction Corporation of China (No. DJ-HXGG-2021-03).
AUTHOR DECLARATIONS
Conflict of Interest
The authors have no conflicts to disclose.
Author Contributions
Huaiwu Peng: Conceptualization (equal); Data curation (equal); Formal analysis (equal); Funding acquisition (equal); Project administration (equal); Writing – original draft (equal). Wei Zhu: Data curation (equal); Formal analysis (equal); Investigation (equal); Writing – original draft (equal); Writing – review & editing (equal). Haitao Ma: Conceptualization (equal); Data curation (equal); Investigation (equal); Software (equal); Writing – original draft (equal). Huaxiang Li: Conceptualization (equal); Data curation (equal); Formal analysis (equal); Investigation (equal); Software (equal); Writing – review & editing (equal). Rikui Zhang: Data curation (equal); Investigation (equal); Software (equal); Writing – review & editing (equal). Kang Chen: Conceptualization (equal); Data curation (equal); Formal analysis (equal); Funding acquisition (equal); Investigation (equal); Project administration (equal); Writing – original draft (equal).
DATA AVAILABILITY
The data that support the findings of this study are available from the corresponding author upon reasonable request.