Introduction

Since the aviation jet engine was invented, many different design solutions have been produced to satisfy different flying demands, such as high flight speed, low fuel consumption, low emission, etc. These cycle solutions include turbojet engine, turbofan engine, variable cycle engine, etc. A new engine program generally needs to go through cycle design, aerodynamic design, mechanical design, and finally into product drawings. Among them, cycle design is the most basic and important part, because it determines the thermodynamic performance limit that the engine can reach [1].

Aviation engine innovation cycle design is currently obtained by improving innovation in different directions of existing solutions, which can be divided into the following types:

  1. 1.

    Replace a cycle element with another element or other element combination that is more adaptable to the flying demands target. For example, by replacing the low-pressure compressor of a two-spool turbojet engine with a fan, the two-spool turbojet engine becomes a high bypass ratio turbofan engine.Footnote 1

  2. 2.

    Insert a certain cycle element into the existing cycle scheme to form a new cycle. For example, by inserting a free-piston gas generator in front of the burner of a turbofan engine, forming a new cycle scheme named FP-CCE [2], and other similar engine applications which improve the cycle performance by adding new cycle elements [3,4,5,6,7,8].

  3. 3.

    Expand the air flow path on the existing cycle scheme. For example, by adding an additional air flow path to the turbojet engine at the exit of the low-pressure compressor exit, the turbojet engine becomes a mixed turbofan engine.Footnote 2

The above-mentioned innovative design process of aviation engines is based on the profound understanding of advantages and disadvantages of different cycle elements and reached innovation through spiritual lighting. These design processes are constrained by human experiences and the performance expectations of currently available components, and these researches are focused on enhancing existing design structures through the application of engineering expertise. Nevertheless, existing methods are unable to break free from traditional engineering experience to facilitate the generation of innovative design structures on a larger scale, and the designs in this method are operated within a highly restricted search space.

In fact, the process of aircraft engine cycle design can be viewed as an optimization problem, where the control parameters for various designs are decision variables and their evaluated qualities are the optimization objectives. The hardness of this optimization problem is twofold. First, to represent different engines, a parametrization or an encoding method is required, which determines the search space. Due to the nature of the aircraft engine cycle design problem, the decision space consists of combinatorial variables. Second, the objective calculation is driven by simulation, which makes this problem a black-box optimization problem. Therefore, it is hard for existing gradient-based optimization methods to solve the aircraft engine cycle design problem.

In last two decades, evolutionary design [9, 10] became a new effective optimization tool for engineering design applications [11], where evolutionary algorithms (EAs) were employed to solve the black-box optimization problems [12]. EAs [13] are a type of nature-inspired optimization tools. They started with a population of random solutions in the decision space, and iteratively generated, evaluated, and selected solutions until the terminal condition. Since EAs do not require any mathematical property of the problem, they are good at solving black-box engineering design problems and many successful applications can be found. For example, NSGA-II [14], IBEA [15], MOEA/D [16], Two_Arch2 [17], KnEA [18], etc.

To solve the aircraft engine cycle design problem, we propose a simulation toolkit and EA solution, and proceed to experimental research. The engine cycle design method presented in this paper offers the advantage of liberating itself from the constraints of engineering experience in the design process, allowing the generation of a multitude of innovative design structures primarily guided by engine performance. The contributions are shown below:

  1. 1.

    A simulation toolkit based on the modelica modeling language has been developed to support the engine cycle coding and to enable the evaluation of potentially feasible engine cycle designs raised by EA.

  2. 2.

    This work proposes engine cycle coding, random initialization, and mutation strategies adapted to EA for engine design. The EA is driven by the simulation toolkit to complete the independent design of the engine.

  3. 3.

    Through the experimental research, we find the new engine cycle designs that are beyond the known turbojet and turbofan engines.

The remainder of this article is outlined as follows: “Problem formulation” describes the principles of the simulation toolkit and the optimization goals for engine cycle design. The proposed EA-assisted engine design method is detailed in “Methodology”. “Experiment results” performs the engine design experiments and discusses the explored new engines. Finally, this work is further summarized in “Conclusions”.

Problem formulation

Engine cycle design can be regarded as a multi-objective combinatorial optimization problem [19]. It takes the different engine cases represented by the component connection schemes as the decision variables. The corresponding objective values are obtained through the simulation toolkit evaluation and drive the combinatorial optimization process.

Background of engine cycle design

Taking a simple turbojet engine as an example, its working principle is as follows:

  1. 1.

    Air is sucked in from the engine inlet.

  2. 2.

    With the power of the compressor, gas density and pressure increase (air compression).

  3. 3.

    The kerosene is sprayed into compressed gas and ignition (air combustion).

  4. 4.

    After ignition, the high temperature and the high pressure air push the turbine to rotate and produce power to the engine rotor (air expansion). The power transferred from the turbine to the rotor is continuously used by the compressor to carry out process 2.

  5. 5.

    After leaving the turbine outlet, the air continues to expand and accelerate to produce thrust force (air acceleration).

Each process is relatively independent of each other, so the turbojet cycle can be decomposed into 5 basic cycle elements (Fig. 1).

Fig. 1
figure 1

Turbojet cycle example

Similarly, by decomposing the cycle process of different engine forms, such as high bypass turbofan engine, intercooled recuperated turbofan, turboshaft engine, etc, we propose seven basic cycle elements, which are compression, expansion, combustion, acceleration, split airflow, mix airflow, and heat exchange. In addition, there are two boundary condition elements for formulating an enclosed formulations of the cycle scheme. By recombining these elements, a new cycle scheme can be generated.

Cycle rules

Table 1 Code name of cycle elements
Fig. 2
figure 2

Turbojet code example

Using the elements listed in Table 1, we can represent the turbojet engine above in the form of I-C-H-T-N, see Fig. 2.

The basic physical principles of each element are listed below:

  • Compression

    $$\begin{aligned} \begin{aligned}&\mathrm{{Pr}} = \frac{p_\mathrm{{outlet}}}{p_\mathrm{{inlet}}}; \\&T_\mathrm{{outlet}} = T_\mathrm{{inlet}}*\left( 1+\frac{\bigg (\frac{p_\mathrm{{outlet}}}{p_\mathrm{{inlet}}}\bigg ) ^ {\frac{k-1}{k}} - 1}{\eta _c}\right) ; \\&\mathrm{{power}}_\mathrm{{need}} = -Cp * (T_\mathrm{{outlet}} - T_\mathrm{{inlet}}) * W_\mathrm{{inlet}}; \\&W_\mathrm{{inlet}}+W_\mathrm{{outlet}}= 0. \end{aligned} \end{aligned}$$
    (1)
  • Expansion

    $$\begin{aligned} \begin{aligned}&Pr = \frac{p_\mathrm{{inlet}}}{p_\mathrm{{outlet}}}; \\&T_\mathrm{{inlet}}-T_\mathrm{{outlet}}= T_\mathrm{{inlet}}*\eta _t*\left( 1-\frac{1}{(\frac{p_\mathrm{{inlet}}}{p_\mathrm{{outlet}}}) ^ {\frac{k-1}{k}}}\right) ; \\&\mathrm{{power}}_\mathrm{{supply}} = Cp * (T_\mathrm{{inlet}} - T_\mathrm{{outlet}}) * W_\mathrm{{inlet}}; \\&W_\mathrm{{inlet}}+W_\mathrm{{outlet}}=0. \end{aligned} \end{aligned}$$
    (2)
  • Combustion

    $$\begin{aligned} \begin{aligned}&W_\mathrm{{inlet}}+W_\mathrm{{fuel}}+W_\mathrm{{outlet}}=0; \\&W_\mathrm{{fuel}}=W_\mathrm{{inlet}}* \\&\qquad \quad \frac{\mathrm{{Enthalpy}}_\mathrm{{outlet}}-\mathrm{{Enthalpy}}_\mathrm{{inlet}}}{\mathrm{{FHV}}*\eta _\mathrm{{combustion}}-\mathrm{{Enthalpy}}_\mathrm{{outlet}}}; \\&\mathrm{{Enthalpy}}_\mathrm{{outlet}}=Cp_\mathrm{{outlet}}*T_\mathrm{{outlet}}; \\&\mathrm{{Enthalpy}}_\mathrm{{inlet}}=Cp_\mathrm{{inlet}}*T_\mathrm{{inlet}}. \end{aligned} \end{aligned}$$
    (3)
  • Acceleration

    $$\begin{aligned} \begin{aligned}&Ma_9 = \sqrt{\frac{2}{k-1}*\Big (\bigg (\frac{p_9}{p_\mathrm{{amb}}}\bigg )^{\frac{k-1}{k}}-1\Big )}; \\&T_{s9}=\frac{T_9}{1+\frac{k-1}{2}*Ma_9^2}; \\&F_n=W_9*Ma_9*\sqrt{k*R*T_{s9}}; \\&P_9=P_\mathrm{{inlet}}; \\&T_9=T_\mathrm{{inlet}}; \\&W_9=W_\mathrm{{inlet}}. \end{aligned} \end{aligned}$$
    (4)
  • Split airflow

    $$\begin{aligned} \begin{aligned}&W_\mathrm{{inlet}}+W_\mathrm{{outlet1}}+W_\mathrm{{outlet2}}=0; \\&W_\mathrm{{outlet1}}=B*W_\mathrm{{outlet2}}; \\&p_\mathrm{{oulte1}}=p_\mathrm{{oulte2}}=p_\mathrm{{inlet}}; \\&T_\mathrm{{oulte1}}=T_\mathrm{{oulte2}}=T_\mathrm{{inlet}}. \end{aligned} \end{aligned}$$
    (5)
  • Mix airflow

    $$\begin{aligned} \begin{aligned}&W_\mathrm{{inlet1}} + W_\mathrm{{inlet2}} + W_\mathrm{{oulet}} = 0; \\&p_\mathrm{{oulet}} = -\frac{W_\mathrm{{inlet1}} * p_\mathrm{{inlet1}} + W_\mathrm{{inlet2}} * p_\mathrm{{inlet2}}}{W_\mathrm{{outlet}}}; \\&T_\mathrm{{oulet}}= -\frac{W_\mathrm{{inlet1}}*T_\mathrm{{inlet1}}+W_\mathrm{{inlet2}}*T_\mathrm{{inlet2}}}{W_\mathrm{{outlet}}}; \\&T_\mathrm{{oulte1}}=T_\mathrm{{oulte2}}=T_\mathrm{{inlet}}. \end{aligned} \end{aligned}$$
    (6)
  • Heat Exchange

    $$\begin{aligned} \begin{aligned}&W_\mathrm{{inlet1}}+W_\mathrm{{outlet1}}=0; \\&W_\mathrm{{inlet2}}+W_\mathrm{{outlet2}}=0; \\&p_\mathrm{{outlet1}} = p_\mathrm{{inlet1}} * {Pr}_1; \\&p_\mathrm{{outlet2}} = p_\mathrm{{inlet2}} * {Pr}_2; \\&|(W_\mathrm{{inlet1}}| * \mathrm{{Enthalpy}}_\mathrm{{inlet1}} - Q = \\&\qquad \qquad \qquad \qquad \quad |W_\mathrm{{outlet1}}| * \mathrm{{Enthalpy}}_\mathrm{{outlet1}} \\&|W_\mathrm{{inlet2}}| * \mathrm{{Enthalpy}}_\mathrm{{inlet2}} + Q = \\&\qquad \qquad \qquad \qquad \quad |W_\mathrm{{outlet2}}| * \mathrm{{Enthalpy}}_\mathrm{{outlet2}} \\&Q = h * A * (T_\mathrm{{outlet1}} - T_\mathrm{{outlet2}}). \end{aligned} \end{aligned}$$
    (7)

The physical rules of the cycle elements in this work are simplified compared to the real situation, ignoring the turbine cooling, compressor bleeding, mixing losses, etc.

Simulation-driven objective function

The continuous improvement of the economy and thrust goals has driven the innovation of the engine cycle configuration. The thrust of turbojet engines originates from the high-speed jet at the nozzle exit. The higher the jet speed, the greater the thrust, but the high temperature and the high speed jet take a large amount of heat and kinetic energy into the atmosphere. This part of heat and kinetic energy is wasted. Therefore, the optimization objective is to reduce the temperature \(T_9\) and velocity \(V_9\) of the exhaust.

According to the momentum equation thrust \( F = W_9 * V_9 \), if you want to get more thrust, increase \(W_9\) or increase \(V_9\) can achieve this purpose, but considering the economy we want \(V_9\) lower, then the thrust can only be obtained by increasing the mass flow rate \(W_9\), which is the reason for the increasing diameter of the current civil aviation engines.

Therefore, the objective function selected in this work is to maximize the sum of the thrust \(F_n\) of all N elements in the loop design, as well as to minimize the maximum \(T_9\) of all N elements:

$$\begin{aligned} \begin{aligned}&\max \big (\sum (N.F_n)\big ), \\&\min \big (\max (N.T_9)\big ). \end{aligned} \end{aligned}$$
(8)

A simulation toolkit based on the modelica modeling language has been developed to enable the evaluation of different engine cycle designs. In this simulation toolkit, the user is free to combine different types and numbers of engine cycle elements to form a potentially feasible engine cycle design (Fig. 3).

Fig. 3
figure 3

Simulation toolkit for cycle design and evaluation

Using the elements listed in Table 1, we can represent the turbojet engine above in the form of I-C-H-T-N, see Fig. 2. In order to make the simulation more realistic, we have set limits in the simulation parameters and simulation results. The limits of the simulation parameters are listed in Table 2. These four parameters are the ones that have the main effect on the cycle, while the parameters of the other elements are not adjustable. The flow rate of the I element is limited to 25–75 kg/s, while the flow rate of the reference engine cycle is 50 kg/s. The B of the S element is set to 0.1–10. The \(P_r\) parameter of the C element is set to 1.1–6, which is related to the prevailing component design capability, and the \(T_4\) parameter of the H element is set to 1200–1800, which is a reasonable range for an aero-engine combustion chamber, where a higher temperature would melt the metal and a lower \(T_4\) would mean incomplete combustion.

In addition, we set the result limits in Table 3, and if the simulation results exceed these limits, the cycle design will be judged as invalid. \(\max P\) and \(\max T\) limits of element C are set mainly considering the pressure and the temperature resistance limit of the metal. The sum of the power of element H is greater than the sum of the power of element C to ensure that the total energy of the input fuel is greater than the energy of the limit to maintain self-operation, otherwise it does not comply with the laws of thermodynamics. The setting of \(P_r\) value of T element is not greater than 50 is to consider the current design capability, and \(P_r\) is obtained by solving the result of C element, which can only be constrained in the result. The \(P_2\) limit of T element is to ensure the minimum pressure of N element working downstream of T. It should be noted that current simulation toolkit we design is not computationally expensive in calculating the objective values for different engine configurations. The importance of utilizing simulations to substitute real physical experiments exactly lies in the ability to assess various engine configurations efficiently.

Table 2 Parameter limits for simulation
Table 3 Result limits for simulation

Challenges for optimization

The optimization challenges exist in the encoding difficulties brought by complex design spaces and the difficulties in generating new engine cases, which present difficulties to the existing optimization algorithms. On the one hand, current encoding method employed in existing optimization algorithms struggles to establish a one-to-one correspondence with the extensive array of engine configurations while encompassing different engine component parameters simultaneously. Consequently, it becomes infeasible to employ solutions to represent engine configurations. Also, existing coding mechanisms in optimization algorithms often fail to adhere to the physical constraints imposed by real-world engines, thus resulting the ineffective expansion of the decision-making space and intensifying optimization complexities. On the other hand, the genetic operators utilized in existing optimization algorithms often face challenges in generating novel engine configurations effectively, thereby impeding the generation of offspring. Therefore, an effective encoding techniques is required to reduce the optimization complexity [20], and an efficient mutation operations is needed to generate new engine cases.

Methodology

The framework of the evolutionary auto-design for the aircraft engine cycle can be divided into four parts, which are the encoding and decoding technologies for the optimization preparation, mutation operation and the optimization algorithm for the optimization process. The above four steps are described as follows:

Encoding

In order to perform the evolutionary auto-design for the aircraft engine cycle, we first need to encode each engine to form the decision variables in the optimization. The coded decision variables need to correspond to the aircraft engines one by one, and also need to cover all the engine cases. According to Table 1, there are total nine components in the package provided to construct the engines. However, since it is necessary to indicate the connection relationship between the pins of components, we cannot use the component as the basic element for encoding, but should select the pins of components to construct the basic optimization unit. The basic pins of encoding are listed in Table 4. In this work, we propose an encoding strategy based on location and connection relationship. In order to fully describe the engine structure, we code each engine in three parts: Pin number library, connection matrix, and parameter dictionary. Before coding an engine, we first create a panel matrix of size \(10\times 20\) to record the coordinate of each pin, which is convenient for addressing the pins and avoiding the physical constraints of the engine connection cases during the encoding process. Among the panel matrix, the last five lines are used to record the coordinates of \(C_g\) and \(T_g\) pins, and the first five lines locate the coordinates of other pins. The reason is that \(C_g\) and \(T_g\) pins can only connect \(C_g\) or \(T_g\) pins, but other pins are set to be connected in series.

Table 4 Basic elements of encoding

The first problem to be solved in the encoding process is the number the pins in each engine. A component may be used multiple times in an engine. In other words, if we directly encode the pins based on the their names in Table 4, it would result in the inability to distinguish the pins of the components used multiple times in one engine. Thus, each pin appeared in the engine is assigned with different numbers in order, and a pin number library is created for reference. Finally, the pins are replaced by the numbers for encoding. The pin number library could be exampled as \( \{ 0:I,\ 1:Cb,\ 2:Cg,\ 3:H,\ 4:Tb,\ 5:Tg,\ 6:H,\ 7:N \} \), where H component is reused two times in the example. In addition to record the pins and the numbers involved in the engine, we also need to confirm the connection relationship between the pins to represent the engine into the decision space. Thus, we create a connection matrix to indicate the connection relations between the pins in an engine, where the connection matrix is constructed with size \( N_c \times 3 \), and \( N_c \) is the number of the pin connections in one engine. Each row in the connection matrix consists of three parts as shown in Table 5.

Fig. 4
figure 4

Basic C-H-T connection structure for the initial engine construction

Table 5 Meaning of each seat in a row of the connection matrix

For example, the row \( [ 3,\ 212,\ 5 ] \) in the connection matrix represents the pin numbered 3 is in the 12th column and the second row of the panel matrix, and the pin connected to its left side is numbered as 5. It should be noted that the last digit of one row would be set as \(-1\) if no other pins are left connected to the current pin.

In the final step of encoding, the component parameter in Table 2 is also re-acquired to be encoded for parameter optimization. In order to reasonably reduce the decision searching space and facilitate the subsequent parameter mutation operations, we discretize the parameter range in Table 2 and create a discrete parameter dictionary to record the parameters of each component. Each parameter range is divided into 10 equal parts, and the number 0 to 10 is used as the discrete parameter value. The corresponding relationship between the discrete parameter values and the real parameter values can be calculated as follows:

$$\begin{aligned} R_\mathrm{{val}} = S_\mathrm{{val}}*\frac{B_\mathrm{{up}}-B_\mathrm{{low}}}{10}+B_\mathrm{{low}}, \end{aligned}$$
(9)

where \(R_\mathrm{{val}}\) and \(B_\mathrm{{val}}\) are real and discrete parameters of the components. \(B_\mathrm{{up}}\) and \(B_\mathrm{{low}}\) are the upper and the lower bounds of the parameters listed in Table 2. Following the above encoding technologies, any engine could be encoded by pin number library, connection matrix, and parameter dictionary. The component parameters and the connection relationship of component pins can be exactly expressed. In addition, there is a one-to-one correspondence between the engine case and the encoded decision variables.

Initial population generation

In order to employ the evolutionary algorithm to auto-design for the aircraft engine cycle, we need to generate a random initial population according to the encoding rules in the first. The initial population should maintain the randomness and the diversity, and also should also ensure the feasibility of randomly generated engine solutions in the real world. Thus, it could be an effective method to construct a new random engine case by continuously adding new components randomly to a reliable and common used engine connection structure, which is named the engine growth method in this work. Considering that the C-H-T connection structure commonly existed in most engine cases, the engine growth method is performed based on this structure, where the connection figure and the corresponding encoding are shown in Fig. 4. Then, new components would continually be added to this basic structure and finally constitute a complete new random engine. Specific to the encoding operation, the engine growth method continuously and randomly selects new component, and converts it into pins according to Table 4. After adding the new pin to the pin number library, a coordinate is assigned for the new pin in the panel matrix. Then, except \(C_g\) and \(T_g\) pins, the new added pin would be connected to the neighbor pin on its left at the same row by default, where the \(C_g\) and \(T_g\) pins would be connected separately in the end. Finally, the connection matrix would supplement a new row for the new added pin.

Algorithm 1
figure d

Initial population generation

However, the engine growth method requires to follow some criteria to prevent the unrealistic engine case as follows:

  • Criterion 1: Except for S and M components, two identical components cannot be directly connected. Components C and T, S and M also cannot be directly connected.

  • Criterion 2: In addition to \(C_g\) and \(T_g\) pins, other newly added pins need already have other pins on the left side of the same row in the panel matrix.

  • Criterion 3: If the pin of the newly added component is located in the branch composed of S and M, the column coordinates of the pins need to be between the the column coordinates of S and M.

  • Criterion 4: If there is already another pin at the randomly assigned new pin coordinate, the pin originally located at this coordinate and its right sides would be moved to the right in order, and then the new pin will be added to this coordinate.

  • Criterion 5: The engine requires to ended with components N or O.

Then, the process of using engine growth method to create the initial optimization population is shown in Algorithm 1. In the Algorithm 1, steps (1–4) build the initial C-H-T connection structure and confirm the length of the engine. The process of engine growth method is described in steps (5–13), and the initial population is generated by step (15). Additionally, step (14) performs the decode operation to converse the encoded engine (the pin number library, the connection matrix and the parameter dictionary) into the a simulation toolkit file. The simulation toolkit would be performed and provides the corresponding objective values.

Algorithm 2
figure e

Cluster connection method

It could be observed that Algorithm 1 separately connects \(C_g\) and \(T_g\) in step (13), because \(C_g\) and \(T_g\) need to be separately connected with each other. Denoting the connecting line between \(C_g\) and \(T_g\) as spool lines, \(C_g\) and \(T_g\) pins in an engine do not need to be all connected in series on one spool line. It only needs to ensure that there is at least one \(C_g\) and \(T_g\) pins on each spool line. Therefore, based on the particularity of \(C_g\) and \(T_g\) pins, we separately designed a cluster connection method to connect \(C_g\) and \(T_g\) pins. The cluster connection method clusters the \(C_g\) and \(T_g\) pins, and ensures that each cluster contains at least one \(C_g\) and \(T_g\) pins. Then, the pins in each cluster connect randomly. In other words, each cluster represents a spool line. The process of the cluster connection method is described in Algorithm 2. In the algorithm, steps (1–3) divide \(C_g\) and \(T_g\) pins into clusters, and steps (4–5) perform the connection and update the encoding. Then, the initial population could be entirely generated according to Algorithm 1 and 2.

Mutation

Employing EA to complete aircraft engine cycle design not only requires the above encoding and initial population generation operations, but also needs to generate the new cases from the engine cases in the current population for the continuously optimization process. In EA, the new case is usually generated through crossover and mutation operation [21]. Due to the complexity of the components and connection criteria involved in the engine, implementing the cross-operation is very likely to create an unrealistic engine case. In addition, adding new criteria to modify the engine cases after cross may mislead the optimization direction. Thus, we only perform the mutation operation to generate the offspring engine, and the mutation operation could be divided into the component mutation and the parameter mutation in this work.

Component mutation

During operation, we could perform component mutation in three methods, which are component adding, deleting, and replacing. Similar to steps (6–11) described in Algorithm 1, component adding operation also requires us to randomly select a new component and convert it into pins. Then, random coordinate would be assigned to the new pins, and the encoding data would update if the inserted pin and the corresponding coordinate satisfy the criteria proposed in “Initial population generation”.

Component deleting for mutation is proposed to randomly select and delete one component existing in the current engine. In addition to meeting the criteria proposed in “Initial population generation”, the component deleting operation also needs to satisfy the following conditions according to the real-world rules:

  • Condition 1: At least one C and one T components in each engine case.

  • Condition 2: At least one H components in each engine case.

  • Condition 3: At least one N or one O component in each engine case.

Then, the pins of the selected component would be deleted in the panel matrix, and the pins located to the right sides of the deleted pins would automatically be connected to the pins at the left sides of the deleted pins. The above pin deleting and the connection relationship change are operated based on the pin library number, connection matrix, and the parameter dictionary.

The component replacing operation is actually a combined process of deleting and adding components. Thus, it should comply with the criteria and the conditions proposed for the component adding and deleting operations. Since the number of pins between the components is different, we only carry out the component replacing operation between H, C and T components. Then, the engine encoding would update following the component replacement. The component mutation operations are integrative illustrated in Fig. 5, where the execution of each operation also represents the adding, deleting, and replacing in the encoded engine.

Fig. 5
figure 5

The illustration example of the component adding, deleting, and replacing operation

Parameter mutation

The component parameters could also affect the engine performance. Thus, we perform the parameter mutation for the components used in the engine cases. Considering that the component parameters are encoded in the parameter dictionary in the form of discrete integers, we randomly select a component in the parameter dictionary and perform the following mutation as:

$$\begin{aligned} S_\mathrm{{val}}^m = S_\mathrm{{val}} + \lceil \sigma (0,1) \rceil , \end{aligned}$$
(10)

where \(S_\mathrm{{val}}\) is the original discrete value and \(S_\mathrm{{val}}^m\) is the mutated parameter value. \(\sigma (0,1)\) is a Gaussian random number with a mean value of 0 and a variance of 1. \(\lceil \cdot \rceil \) represents the round-up operation. In addition, we would repair \(S_\mathrm{{val}}^m\) as the boundary values if \(S_\mathrm{{val}}^m\) is calculated beyond the parameter discrete boundary (0–10) in Eq. (10). It should be noted that we only perform the parameter mutation operation on one random component on each engine.

In addition, we adopt the binary tournament method that randomly selects two engine cases in the original population for comparison each time, and then add the engine with the better performance to the parent population. The whole process of the component mutation for each engine in the population is concluded in Algorithm 3. Steps (1–6) illustrate the component mutation operation for each engine. The parameter mutation that would perform a randomly generated number between 0 and 1 is less than 0.9 in steps (7–10).

Algorithm 3
figure f

Component mutation

Optimization algorithm

In this work, NSGA-II [14] is selected as the basic multi-objective evolutionary algorithm to drive the aircraft engine cycle design. NSGA-II adopts the mechanism of fast non-dominated sorting and crowding distance, which can effectively deal with high-dimensional multi-objective optimization problems. The diversity maintenance mechanism increases the algorithm robust and provides the ability to search for new engine cases [14]. In addition, NSGA-II is widely used in realistic multi-objective optimization problems in engineering design, machine learning, financial decision-making fields [22]. Combined with the above work, the optimization of the aircraft cycle design based on NSGA-II is entirely summarized in Algorithm 4, where \(N_t\) is the preset number of optimization generation. Step (1) construct the initial population as “Initial population generation”, and the offspring is generated according to “Mutation” in step (3). Then, the fast non-dominated sorting and crowding distance operations in NSGA-II are performed on the parent and offspring population to select the elitist engines for next generation in steps (4–5).

Algorithm 4
figure g

Overall Optimization process

Experiment results

Settings

The parameters in this work are concentrated in the engine component and the optimization process, which are listed in detail as follows:

  • Component parameters: Total nine components are participated in the aircraft engine cycle design, in which four components are required the parameter optimization.

  • Optimization parameter: During the optimization process, the panel matrix is preset with size \(10 \times 20\). The maximal component number of each engine \(N_e\) is set as 20. In addition, the population size N is set as 100, and the number of optimization generation is 50 in this work. According to Algorithm 3, the probability of the component mutation is 1, and of the parameter mutation is 0.9.

Results

The results of the explored engine cases are displayed in this part. In the first, we compare the optimized engine population with the random initial population in Figs. 6 and 7. In the figures, the blue points represent the performance of the existed classic engine designs under different component parameters. The closer to the lower right corner of the graph, the better the performance of the engine represented by the point. Then, we connect the blue points closest to the bottom right with a red dotted line, which represents the best performance that the classic engine in the figure can achieve under different parameters. The optimized engine population and the random initial population are displayed with red points in Figs. 6 and 7 respectively. In addition, we also display the outstanding cycle engine designs of the searched engine population in Fig. 8.

Fig. 6
figure 6

Initial population

Fig. 7
figure 7

Result of optimization

Fig. 8
figure 8

New cycle designs found by AI

Discussion

Driven by the dual objective of maximum \(F_n\) and minimum \(T_9\), the self-evolutionary process gradually moves toward the lower right of the figure by adding cycle elements, modifying the cycle configuration, and modifying the parameters of each element, see Fig. 6. The red dashed line is the \(F_n\)-\(T_9\) performance boundary of the blue X points, which represents the limit of \(F_n\)-\(T_9\) values that the turbofan configuration can reach after parameter optimization.

It can be seen that after optimization up to 50 generations, some of the cycle solutions have outperformed the \(F_n\)-\(T_9\) boundary of known turbojet and turbofan engines. Figure 7 shows these better cycle designs.

The new design is a significant change from the known turbofan and turbojet engine cycle, and by placing H and C in separate airflow paths, which improves \(F_n\) and reduces \(T_9\). It can also be seen that the final solutions are very similar to each other. This indicates that the evolutionary algorithm is already at a local optimum in this experiment.

The above experiments show that the evolutionary algorithm can complete the topological optimization of engine cycles as well as parameter optimization, and form a performance breakthrough to the existing cycle solution limits, which is in line with our original intention. However, it is also exposed in this process that simultaneous parameter optimization and cycle topological optimization can trigger a rapid reduction in the diversity of cycle designs and eventually fall into a local optimum.

Conclusions

In this work, we investigate the possibility of using the existing AI algorithm to realize the idea for future aero-engine cycle design concepts. We proposed a automatic solution which consists of a simulator and cycle elements library of engine thermodynamic, using evolutionary algorithms for cycle element recombination and merit selection. This automatic solution can effectively promote innovation in engine cycle design and form a powerful complement to human brain design activities.

In future, we hope to build and implement a reinforcement learning agent model for the overall engine cycle scheme, with the hope that the AI can realize the ability to design various engine cycle solutions autonomously. In addition, as we persist in our quest for enhanced accuracy in simulation toolkit and a wider array of engine components, simulations may demand a substantial allocation of computational resources. During such periods, the surrogate models [23] could be constructed for the performance prediction of engine configurations. This approach can lead to a reduction in the frequency of simulation runs, consequently expediting the optimization process.