# Microsseismic Source Location Method and Application Based on NM-PSO Algorithm
## 6 Example Analysis and Verification  
In order to verify the feasibility of the proposed NM-PSO source localization algorithm, two example models are set up for benign sensor arrays and non-benign arrays, respectively. As shown in Figure 4, a benign cube array containing eight detectors and a non-benign array of 9 detectors based on the roadway arrangement is set up. Firstly, the seismic source location analysis is carried out with the sensor layout as a benign cube array. As shown in Figure 4a, a total of 8 geophones A, B, C, D, A\({}_{1}\), B\({}_{1}\), C\({}_{1}\), and D\({}_{1}\) are set to form a cube array, and the seismic sources are randomly generated. 1, 2, and 3 are the three internal sources of the array, 4 is the source on the array boundary, 5 and 6 are the two external sources of the array, and the coordinates of the sensor and source are shown in Tables 1-3. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Detector Number** & **X/m** & **Y/m** & **Z/m** \\ \hline A & 0 & 0 & 0 \\ B & 0 & 1000 & 0 \\ C & 1000 & 1000 & 0 \\ D & 1000 & 0 & 0 \\ A\({}_{1}\) & 0 & 0 & 1000 \\ B\({}_{1}\) & 0 & 1000 & 1000 \\ C\({}_{1}\) & 1000 & 1000 & 1000 \\ D\({}_{1}\) & 1000 & 0 & 1000 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: 3D coordinates of benign array detectors. Figure 3: Flow chart of NM-PSO algorithm. Considering the non-uniformity of stress wave propagation velocity in actual geotechnical engineering, the velocity of each source to each detector is set with a velocity of 5000 m/s plus \(\pm\)1% disturbance, and the arrival time of each detector are obtained through calculation as shown in Table 4.  
In order to verify the effectiveness of the proposed NM-PSO algorithm for the source location problem, two examples of sensor array layout are set up for verification. Compared with the NM simplex algorithm, 24 calculation examples, including two algorithms, six seismic sources, and two sensor arrays have been completed. The positioning analysis of 24 examples is carried out, and the obtained positioning error results are shown in Figure 5. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Detector Number** & **X/m** & **Y/m** & **Z/m** \\ \hline A & 0 & 0 & 0 \\ I & 100 & 0 & 4 \\ J & 200 & 0 & 0 \\ K & 400 & 0 & 0 \\ L & 500 & 0 & 4 \\ M & 600 & 0 & 0 \\ N & 800 & 0 & 0 \\ P & 900 & 0 & 4 \\ D & 1000 & 0 & 0 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: 3D coordinates of non-benign array detectors. Figure 4: Schematic diagram of sensor layout array. the NM-PSO algorithm can also ensure higher positioning accuracy. The iterative solution of the hypocenter location method based on the NM-PSO algorithm can better locate the hypocenter outside the geophone array. The reason is that the simplex algorithm is essentially a search-type iterative algorithm, and each iteration will make the result closer to the actual value. The accuracy of the simplex algorithm will gradually improve during the iterative process, and the error will become smaller and smaller; however, the simplex algorithm's accuracy dramatically depends on the initial value selection. Suppose the initial value is not selected correctly. In that case, the method's accuracy will continue to improve in the local area; however, it may fall into local extreme values in the global solution space and affect its final iteration's outcome. The NM-PSO algorithm belongs to the global-local search method; its global search capability can provide more accurate initial values. Thanks to the fast convergence capability of NM simplex, it is ideal when dealing with sources inside and outside the array. It can be seen from Figure 5b that when an ideal sensor array cannot be arranged due to the actual geotechnical conditions. There will be a significant error in the hypocenter position solved by the simplex algorithm, and the maximum error reaches 35 m. Further analysis shows that the positioning error will increase significantly when the source is outside the sensor array.