# Design and Multi-Objective Optimization of Fiber-Reinforced Polymer Composite Flywheel Rotors
## 4 Optimization
### Hybrid Optimization Strategy  
The optimization problem is solved by a hybrid optimization strategy. A schematic of the entire procedure is depicted in Figure 3. Since there is no algorithm to solve an optimization problem with a dynamically sized optimization vector, the problem is solved iteratively. Therefore, the algorithm runs separately for a pre-defined number of maximum rims \(N_{\text{max}}\). The number of rims considered is increased by one after each iteration. The optimization algorithm terminates if the maximum number of rims is reached. In the result, a sub-problem is created that considers the number of rims as a fixed design variable. Each iteration generates a Pareto-front with the optimization matrix \(\mathbf{X}_{\text{opt}}\) and the corresponding objective values \(\mathbf{F}_{\text{opt}}\). Each solution \(x_{\text{s,opt}},f_{\text{s,opt}}\) on this Pareto-front is compared to the previous Pareto-front to find the non-dominated solutions. A solution Pareto-dominates another solution if the following equations are satisfied:  
\[ \begin{array}{l}f_{j}\big{(}\boldsymbol{x}^{1}\big{)}\leq f_{j}\big{(} \boldsymbol{x}^{2}\big{)}\ \forall j\text{ functions in}\,f,\\ f_{j}\big{(}\boldsymbol{x}^{1}\big{)}<f_{j}\big{(}\boldsymbol{x}^{2}\big{)} \text{ for at least one }j.\end{array}  \tag{30}\]  
Therefore, a Pareto-dominant solution has at least one objective value that is better and none that is worse than the objective values of the dominated solution. For the sub-problem itself a combination of the GA and SQP was used, which were both implemented in the numerical computing environment MATLAB (MathWorks, Natick, MA, USA). The GA is not able to solve the sub-problem for \(N_{\text{rim}}>1\) in an appropriate time. The number of optimization variables is increased by three for each additional rim. The calculation of the fitness values takes longer with an increased number of rims. Further, a large number of optimization variables makes it more difficult for a stochastic optimization algorithm to find an optimal solution. To gain a better understanding of the problems associated with a GA, an example is analyzed. A two-rim flywheel is considered, where the inner rim is made of a glass fiber composite \((x_{\text{material}}=1)\) and the outer rim is made of a carbon fiber composite \((x_{\text{material}}=2)\). In Table 5 three feasible solutions for the optimization vector and the corresponding objective values are shown. Solution one and solution two differ only in their rotational speed and the interference between the both rims. While the speed is increased, the interference is decreased, resulting in higher kinetic energy. Consequently, solution two has a greater strength ratio, thus the flywheel operates closer to its load limit. Since these variables do not affect the productivity or the cost, solution two Pareto-dominates solution one. Assuming the GA compares solution one with solution two, it would assign a better fitness value to solution two. Solution three is created by only increasing the rotational speed, resulting in the same objective values as solution two. The third solution; however, has lower stresses due to the greater interference. Therefore, the third solution would still be feasible even if the rotational speed is set higher. Overall, the third solution is the best choice. The GA prefers solution two over solution one. Without knowing solution three, the genetics of solution two would be used to derive the next generation. Therefore, the worse gene of the interference is also transferred to the descendants. This example highlights the fact that the GA considers only the fitness value and no gradients. The positive impact of the increased rotational speed overcompensates the negative impact of the decreased interference. The algorithm; however, only sees the result, which is the better fitness value. In the long run, this will lead to an acceptable result. However, this method is associated with unacceptably high computation time for a large number of rims.