# Optimized Multiport DC/DC Converter for Vehicle Drivetrains: Topology and Design Optimization
## 4 NSGA-II Optimizer for the Proposed Optimization Design Framework  
Figure 3 shows the flowchart of the proposed optimization framework based on Non-dominated Sorting Genetic Algorithm-II (NSGA-II) for the converter of individual ports in the MPC. The NSGA-II is the second version of the famous \"Non-dominated Sorting Genetic Algorithm\" based on the work of Prof. [PERSON] et al., which solves non-convex and non-smooth single and multi-objective optimization problems. The detailed working principle of the NSGA-II can be found in [23]. The NSGA-II can achieve good performance while solving a type of multidimensional problem defined in Equation (21) with discontinuous variable, providing highly accurate results with a reduced number of evaluations. The design methodology uses the large database of commercial standard core and IGBT modules to guarantee a hypothesis that the optimal core can be found in the database.  
The main principle of the NSGA-II is that each design solution is represented by its chromosome made of the different genes, where the genes represent the integer associated with the design variable; the new design solutions are then produced by reproduction of the parents (design choices). The Blend Crossover (BLX) during the reproduction is based on the arithmetical average of each gene and a random variable \(\alpha\). In addition, polynomial mutation is also considered to introduce diversity in the design choices.  
Based on the principle of NSGA-II [23], in this research an existing Multi-Objective Genetic Algorithm (MOGA) has been modified. A built-in Matlab function called \"gamultiobj\" is used to create modified NSGA-II. In the Matlab setting \"gaoptimset\", three primary functions are adapted: crossover operators ('CrossoverFcn'), mutation operators ('MutationFcn') and the population selection of the next generation ('CreationFcn').  
The presence of multiple objectives in a problem results in a set of Pareto-optimal solutions known as Pareto-front instead of a single optimal solution. A solution is called a Pareto-optimal solution if none of the objective functions can be improved in value without degrading some of the other objective values. Without any further information, one of these Pareto-optimal solutions cannot be said to be better than the other one, which demands a designer to find as many Pareto-optimal solutions as possible. Thus, the Average Ranking (AR) [24] is employed to underpin the final solution from the Pareto-front. In the AR method, the tensor \(A\) is formulated as a three-dimensional matrix in Equation (23):  
\[a_{ijk}\ \in\mathbf{A}=\left\{\begin{array}{cl}\quad 1,&\text{ when }f_{k}(s_{i})<f_{k}(s_{j})\\ 0,&\text{ when }f_{k}(s_{i})=f_{k}(s_{j})\\ -1,&\text{ when }f_{k}(s_{i})>f_{k}(s_{j})\end{array}\right. \tag{23}\]  
where \(f\) is the objective function and \(s\) is the design solution. \(a_{ijk}\) records \(-1\), \(0\) or \(1\) depending on whether the choice \(s_{i}\) is better, equal to, or worse than \(s_{j}\) on objective \(k\). The AR method calculates a score for each choice \(s_{i}\) by summing the ranks of \(s_{i}\) for each objective. For example, with 3 objectives, if \(s_{i}\) is 2 nd best on two of those objectives and 5 th best on the other, its AR score will be \(2+2+5=9\). Therefore, for \(s_{i}\in P\), where \(P\) is the Pareto set as Equation (24):  
\[AR(s_{i})=\sum_{k}\sum_{j\
eq i}\left(|P|+1\right)-a_{ijk} \tag{24}\]  
The inner sum calculates a score for \(s_{i}\) for a given objective, and this will be \(1\) if \(s_{i}\) is the best on that objective. Generally, z + 1 if z members of P are better at that objective.