## 2 Experimental Procedures and Research Methods
### Design of the BPNN  
Back-propagation neural network (BPNN) is a supervised learning algorithm. Its structure includes one input layer, \(p\) hidden layers, and one output layer. BPNN can be used to establish the mapping relationship between process parameters and coating micro-hardness. In order to describe the structure of BPNN, the following definitions are given: the input layer is layer 0, the hidden layers are from layer 1 to layer \(p\), and the output layer is layer \(p+1\) after the last hidden layer. The number of BPNN neurons in the hidden layer is determined by the empirical Equation (2) [37]:  
\[h=\sqrt{n_{i}+n_{o}}+c \tag{2}\]  
where \(h\), \(n_{i}\), and \(n_{o}\) are the number of neurons in the hidden layer, input layer, and output layer, respectively, and \(c\) is a constant between 1 and 10. The optimal number of BPNN neurons and network structures are determined to be 4-6-6-1 by the trial-and-error method, so the number of hidden layers in this paper is \(p=2\), and the structure of BPNN is shown in Figure 4. The training process of BPNN is as follows:  
* Step 1: The input and output training data is an \(m\times n\) two-dimensional array, denoted as \((x_{ij})_{m\times n}\), which is normalized to between 0.1 and 0.9 by Equation (3): \[X_{ij}=\frac{x_{ij}-x_{\text{min}}}{x_{j\text{max}}-x_{j\text{min}}}\times 0.8 +0.1\] (3) where \((X_{ij})_{m\times n}\) is a normalized \(m\times n\) two-dimensional array, and \(x_{j\text{max}}\) and \(x_{j\text{min}}\) are the maximum and minimum values of the \(j\)th column of the two-dimensional array \((x_{ij})_{m\times n}\), respectively.
* Step 2: The input layer neurons transfer the normalized data to the hidden layer neurons or the value calculated by the neurons of the upper hidden layer is transferred to the neurons of the next hidden layer. The input of the neurons in \(l\)th layer \((net_{j}^{l})\) is calculated by Equation (4): \[net_{j}^{l}=\left\{\begin{array}{c}\mathbf{X}_{j}=\left(X_{1j},X_{2j},\cdots X_{ 3j}\right)^{\text{T}},l=0\\ f\left(\sum\limits_{i=1}^{h}w_{ij}^{l}net_{i}^{l-1}+\theta_{j}^{l}\right)l=1,2, 3\cdots P\end{array}\right.\] (4) where \(\mathbf{X}_{j}\) is the \(j\)th column vector of the above two-dimensional array \((X_{ij})_{m\times n}\), \(w_{ij}^{l}\) is the connection weight of the neuron \((i)\) of the \((l\)-1) layer to the neuron \((j)\) of the \(l\) layer, \(net_{1i}^{l-1}\) is the input of the neuron \((i)\) of the \((l\)-1) layer, \(\theta_{j}^{l}\) is the threshold of the neuron \((j)\) in the \(l\) layer, and the transfer function \(f\) is tansig function.
* Step 3: The output of neurons in the output layer (netk) can be calculated by Equation (5) below: \[net_{k}=\sum\limits_{j=1}^{h}net_{j}^{p}w_{jk}^{p+1}+\theta_{k}^{p+1},k=1,2,3 \cdots n_{o}\] (5) where \(w_{jk}^{p}\) is the connection weight of the neuron \((j)\) in \(p\) layer to the neuron \((k)\) of the \((p+1)\) layer and \(\theta_{k}^{p+1}\) is the threshold of the neuron \((k)\) of the \((p+1)\) layer.
* Step 4: The error of network training is the mean square error (MSE), which is calculated by Equation (6). The weight correction amount of each layer is calculated according to the derivation rule of the differential chain, as shown in Equation (7): \[\text{MSE}=\frac{1}{N_{s}}\sum\limits_{k=1}^{N_{s}}\left[\frac{1}{2}\sum \limits_{k\in[C]}(d_{k}-net_{k})^{2}\right]\] (6)\[\Delta w_{ij}^{l}=-\lambda\frac{\partial\text{MSE}}{\partial y_{k}}\frac{\partial y _{k}}{\partial net_{j}^{l}}\frac{\partial net_{j}^{l}}{w_{ij}^{l}} \tag{7}\]  
where \(d_{k}\) is the experimental response, \(N_{s}\) is the total number of samples, \(\{C\}\) is the set of output data, and \(\lambda\) is the learning rate usually within the range [0, 1]. By repeating the parameter adjustment, the optimal value of \(\lambda\) is taken as 0.001.