## 8 Numerical Simulation and Experimental Testing
### Experimental Testing and Analysis
#### 8.2.3 Fault-Tolerance Test of the Unmanned-Ship Positioning Algorithm  
In order to further verify the fault tolerance and filtering performance of the TCPF data fusion algorithm, two sets of fault-tolerance tests were carried out. One set of test data was from ZigBee-GPS, and the other set of selected test data was from ZigBee-BDS. In addition, the BPF algorithm was selected as the comparison algorithm for the performance test, and the positioning error, RMSE, and Std were used as performance indicators. The test data set of BPF was from ZigBee-GPS/BDS. Figure 8 shows the trajectory fusion results of the unmanned ship based on different algorithms in the A/B river. From Figure 8, it can be seen that although the positioning results of the unmanned ship, based on the TCPF algorithm for different data sets, basically fitted the expected trajectory, the positioning accuracy of the TCPF algorithm for the ZigBee-GPS/BDS data set was significantly higher, and the positioning jump error at the river turn was also smaller, because the TCPF algorithm realized the information complementarity between the GPS and BDS data set. When a signal in the positioning system was lost, another sensor could supplement the collected position information of the unmanned ship to the sampling data set; thus, the sensor signal-loss problem caused by the large deviation in the \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Performance Index** & **EKF** & **UKF** & **BPF** & **UPF** & **KF** & **TCPF** \\ \hline Average positioning error & 3.265 & 4.110 & 3.538 & 2.821 & 3.856 & 2.352 \\ Maximum positioning error & 5.221 & 6.010 & 5.319 & 4.114 & 5.589 & 2.941 \\ RMSE & 3.057 & 3.956 & 3.432 & 2.719 & 3.854 & 2.351 \\ Std & 0.435 & 0.589 & 0.542 & 0.395 & 0.498 & 0.345 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Trajectory positioning test results in section A. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Performance Index** & **EKF** & **UKF** & **BPF** & **UPF** & **KF** & **TCPF** \\ \hline Average positioning error & 3.786 & 4.539 & 4.464 & 3.658 & 4.365 & 2.875 \\ Maximum positioning error & 6.519 & 8.018 & 7.699 & 6.393 & 7.856 & 4.463 \\ RMSE & 3.658 & 4.389 & 4.358 & 3.572 & 4.215 & 2.723 \\ Std & 0.952 & 1.853 & 1.258 & 1.152 & 1.562 & 0.876 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Trajectory positioning test results in section B.  
unmanned ship position has been effectively overcome, which verifies that the constructed ZigBee-GPS/BDS multi-sensor positioning system performed the function of information complementarity between the data. Combining the performance indicators of the average positioning error in Figure 8 and Tables 4 and 5, it can be seen that the BPF algorithm using the ZigBee-GPS/BDS data set improved the positioning accuracy of the unmanned ship to a certain extent, but there was still a certain gap compared with the positioning accuracy of the TCPF algorithm, which was mainly due to the optimization performance of the TCPF algorithm itself. Firstly, the adaptive threshold was constructed in the cluster analysis of Gaussian mixture units, and the discrete particle samples were merged into similar component units, which reduces the complexity of clustering operations and improves the real-time performance of data fusion algorithms for signal processing. Secondly, the samples of the continuous probability density function of the constructed weighted point set were stratified, and the proportional capacity of each sampling layer was set, which ensured the reasonable distribution of the number of sampling particles in the stratification. Next, the layer group \(l_{a}\) was sampled, and the particle weights in the layer group \(l_{b}\) and \(l_{c}\) were optimally combined, which increased the probability quality and prevented the lack of samples. From Tables 4 and 5, it can be seen that the RMSE and Std performance indicators of the TCPF algorithm were better than those of the BPF algorithm.