# Node Depth Adjustment Based Target Tracking in UWSNs Using Improved Harmony Search
## 6 Simulations  
In this section, we present the simulation results of underwater target tracking with our node depth adjustment method. Our node depth adjustment is based on the improved Harmony Search algorithm presented in Section 4. In addition, we also present the results of nodes keeping static as a comparison and analyze the effect of some parameters. Furthermore, to evaluate our method well, we present the convergence process of objective function value via our improved Harmony Search and traditional Harmony Search. We consider a \(1000\times 1000\) region where sensors are uniformly deployed on the sea surface. The target is moving in a plane at a known depth \(h\). The distance between adjacent nodes is _dis_. The simulation scenario is shown in Figure 2. In the simulation, the number of selected nodes at each interval is \(N_{s}=3\); the actual initial state of target is \(\mathbf{x}_{0}= \begin{bmatrix}100&15&100&3\end{bmatrix} ^{\text{T}}\); the initial estimation of target is \(\mathbf{\hat{x}}_{0}= \begin{bmatrix}95&15&105&3\end{bmatrix} ^{\text{T}}\); the initial covariance matrix is \(\mathbf{P}_{0}=10\times\mathbf{I}_{4\times 4}\); the standard deviation of measurement noise is assumed to be constant as \(r=5\); the standard deviation of process noise is \(q=1\); the sampling interval is \(T=1\,\text{s}\); the particle number is \(N=1000\); the Monte Carlo (MC) simulation runs \(MC=100\) and the simulation is run with Matlab R2016a (MathWorks, Inc., Natick, MA, USA), in a computer with CPU i7-7700 HQ. To indicate the accuracy of target tracking, we adopt root mean square error (RMSE) to measure the tracking performance:  
\[\epsilon(k)=\sqrt{\sum_{i=1}^{MC}\left(\frac{\left(\mathbf{x}_{k}^{i,1}-\mathbf{\hat{x} }_{k}^{i,1}\right)^{2}+\left(\mathbf{x}_{k}^{i,3}-\mathbf{\hat{x}}_{k}^{i,3}\right)^{ 2}}{MC}\right)}, \tag{22}\]  
where \(\left(\mathbf{x}_{k}^{i,1},\mathbf{x}_{k}^{i,3}\right)\) and \(\left(\mathbf{\hat{x}}_{k}^{i,1},\mathbf{\hat{x}}_{k}^{i,3}\right)\) are true and estimated locations of the target at time \(k\) in the \(i\)th simulation, respectively. Simulation results of our scheme and keeping nodes static are presented with different target depths. We define depth of the sea surface as 0. Then, the target depth is \(h=\{-120,-100,-80,-60\}\). The distance between adjacent nodes is \(dis=120\). For simplicity, we use MOVE to denote our scheme and use STATIC to denote the scheme that keeps nodes static at the sea surface. The results with different target depths are shown in Figure 3. It can be seen that our MOVE scheme can improve much performance compared to the STATIC scheme. This is because the MOVE scheme always adjusts activated nodes to the optimal depth by maximizing the determinant of FIM, thus providing more useful information and leading to better performance. Because the STATIC scheme keeps nodes static at the sea surface, it can not get enough information about targets and achieve tracking accuracy as well as MOVE. It is verified that our MOVE can improve tracking performance a lot. Figure 2: Simulation scenario (the purple circles stand for sensor nodes. They are deployed at water surface at first, the red triangle stands for moving target, and it moves in a plane underwater). The corresponding average tracking errors of the two schemes with moving depth \(h=\{-60,-80,-100,-120\}\) are shown in Figure 3d and Table 1. It is obvious that tracking error increases with declining of moving depth \(h\). It shows that, as moving depth decreases,our MOVE scheme always produces good results, while the errors of the STATIC scheme increase a lot. The main reason for this is that, when sensors are far from targets, they can not get enough information of targets at an unideal position. However, with our scheme, we can always adjust nodes to optimal depth to provide as good measurements as possible. Hence. the MOVE scheme can improve the tracking performance a lot especially when nodes are far from targets.