## 3 Model and Parameter Identification
### Multi-Flame Optimization Algorithm  
The moth-flame optimization (MFO) algorithm is a nature-inspired optimization proposed by [PERSON] in 2015 [23]. Many examples show that the MFO algorithm has the advantages of strong convergence, fast convergence, and wide application, and it is suitable for solving the problem of high dimensional optimization. In the MFO algorithm, it was assumed that the candidate solutions were moths and the problem's variables were the position of moths in the space. Other key components in the MFO were flames. The set of moths and flames are represented in the following matrices:  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Models** & **Equations** \\ \hline nRC & \(\left\{\begin{array}{l}U_{L}(k)=U_{OCV}(k)+I(k)R_{0}+\sum\limits_{i=1}^{n}{U_{ i}(k)}\\ U_{i}(k+1)=U_{i}(k)e^{-\frac{\tau_{i}}{\tau_{i}}}+I(k)R_{i}\left(1-e^{-\frac{\tau_{i}}{ \tau_{i}}}\right)\end{array}\right.\) \\ nRCH & \(\left\{\begin{array}{l}U_{L}(k)=U_{OCV}(k)+I(k)R_{0}+\sum\limits_{i=1}^{n}{U_{ i}(k)}+u_{h,k}\\ U_{i}(k+1)=U_{i}(k)e^{-\frac{\tau_{i}}{\tau_{i}}}+I(k)R_{i}\left(1-e^{-\frac{\tau_{i}} {\tau_{i}}}\right)\end{array}\right.\) \\ n_h,k}=H\left(1-e^{-|k_{r}I(k)|t}\right)\), \(H=\left\{\begin{array}{ll}-M&I(k)\leq 0\\ M&I(k)>0\end{array}\right.\) \\ PNGV & \(\left\{\begin{array}{l}U_{L}(k)=U_{OCV}(k)+I(k)R_{0}+U_{1}(k)+U_{cb}(k)\\ U_{1}(k+1)=U_{1}(k)e^{-\frac{\tau_{i}}{\tau_{1}}}+I(k)R_{1}\left(1-e^{-\frac{ \tau_{i}}{\tau_{1}}}\right)\end{array}\right.\) \\ U_{cb}(k+1)=U_{cb}(k)+\frac{1}{C_{b}}I(k)\left(1-e^{-\frac{\tau_{i}}{\tau_{1}} }\right)\end{array}\right.\) \\ \hline \hline \end{tabular}
\end{table}
Table 2: Equations of the ECMs.  
\[M=\left[\begin{array}{cccc}M_{1,1}&M_{1,2}&\cdots&M_{1,d}\\ M_{2,1}&M_{2,2}&\cdots&M_{2,d}\\ \vdots&\vdots&\cdots&\vdots\\ M_{n,1}&M_{n,2}&\cdots&M_{n,d}\end{array}\right],\ F=\left[\begin{array}{cccc}F_{1,1}&F_{1,2}& \cdots&F_{1,d}\\ F_{2,1}&F_{2,2}&\cdots&F_{2,d}\\ \vdots&\vdots&\cdots&\vdots\\ F_{n,1}&F_{n,2}&\cdots&F_{n,d}\end{array}\right] \tag{3}\]  
where \(n\) is the number of moths and flames, and \(d\) is the number of variables.  
For all the moths and flames, we assumed that there were two arrays for storing the corresponding fitness values, as follows:  
\[OM=\left[\begin{array}{c}OM_{1}\\ OM_{2}\\ \vdots\\ OM_{n}\end{array}\right],\ \mathrm{OF}=\left[\begin{array}{c}OF_{1}\\ OF_{2}\\ \vdots\\ OF_{n}\end{array}\right] \tag{4}\]  
In the MFO, a random initial solution to calculate the objective function values can be described as follows:  
\[M_{i,j}=(ub_{i}-lb_{i})rand(\ )+lb_{i} \tag{5}\]  
where \(ub_{i}\) and \(lb_{i}\) are the upper and lower bounds of the variables. \(rand(\ )\) is a random function.  
The position of each moth was updated with respect to a flame using the following equation:  
\[M_{i}=S\big{(}M_{i},F_{j}\big{)}=\big{|}F_{j}-M_{i}\big{|}e^{bt}\cos(2t)+F_{j} \tag{6}\]  
where \(b\) is a constant, and t is a random number in \([-1,\ 1]\). \(S\) is the spiral function.  
Figure 3 shows the flow chart of the MFO algorithm. The terminating conditions included the maximum iteration times and the solution accuracy to meet the setup requirements.  
In order to verify the performance of the MFO algorithm and select the most suitable identification algorithm, five well-known algorithms in five categories, as shown in Table 3, were chosen to identify the parameters of the ECMs shown in Table 2. For concise description, the other algorithms are not described here.  
Figure 3: Flow chart of the moth-flame optimization (MFO) algorithm.  
Moreover, the whole SOC (0-100%) was divided into 10 subarea, and the parameters in each subarea were identified by the above optimization algorithms, respectively. Therefore, 10 groups of model parameters, which vary with SOC, were obtained as the model parameters of ECM.