User Tools


This is an old revision of the document!


Pinger Bearing

This page describes the math used to calculate our bearing towards the pinger using our hydrophones. A solution is derived in 2 dimensions to show how it works, then the final result from that is extrapolated to 3 dimensions. The speed of sound of water is defined as $c_s$.

Assumptions

Planar Wave

Imagine dropping a rock in the middle of a pond. At first the ripples look very circular, but by the time they reach the shore they look like straight lines. We assume that the wave front of the ping is planar, which basically means that even though the wave front is curved, the curvature is small enough from the perspective of the hydrophones such that the wave front actually looks flat. This makes our calculations a lot easier.

2D Derivation

We have 3 hydrophones, located at the following positions:

$H_0$ is at location $(0,0)$
$H_x$ is at location $(x,0)$
$H_y$ is at location $(0,y)$

We shall simulate a wave traveling towards our hydrophone array. First, it hits $H_x$ at time $t_x$

The wave continues, hitting $H_y$ at time $t_y$

Finally, the wave hits $H_0$ at time $t_0$

Because the wave emanating from the pinger hit $H_x$ before it hit $H_0$, we know that $H_x$ must be closer to the pinger than $H_0$. In fact, $H_x$ must be exactly $d_x = c_s(t_0 - t_x)$ meters closer to the pinger than $H_0$. Likewise, $H_y$ is $d_y = c_s(t_0 - t_y)$ meters closer to the pinger than $H_0$.

Our main goal is to calculate a vector pointing from the $H_0$ to the pinger. This vector is perpendicular to the wave front, and is shown in blue in the diagram below:

We can also describe the vector in $i,j$ notation: $$ \begin{bmatrix} \hat{i} \\ \hat{j} \end{bmatrix} = \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \end{bmatrix} $$

Also recall the cosine identity: $$ \cos(\theta) = \frac{\text{adj}}{\text{hyp}} $$

Notice how the wavefront, axis to the hydrophones, and our vector make a few right triangles? We highlighted two in green and magenta:

Let's focus on the green triangle first. We know the hypotenuse of the triangle is $x$, and the long side of the triangle is $d_x$, therefore, we know $\cos(\theta)$: $$ \cos(\theta) = \frac{d_x}{x} $$

Next, let's look at the magenta triangle. We know the hypotenuse is $y$ and the short side is $d_y$, and can calculate: $$ \cos(\phi) = \frac{d_y}{y} $$

However, recall that $\phi = 90-\theta$, therefore $$ \cos(\phi) = \cos(90-\theta) = \sin(\theta) $$

We now know how to calculate $\hat{i}$ and $\hat{j}$: $$ \begin{bmatrix} \hat{i} \\ \hat{j} \end{bmatrix} = \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \end{bmatrix} = \begin{bmatrix} d_x/x \\ d_y/y \end{bmatrix} $$

3D Result

Extrapolating the 2D result into 3 dimensions, we have:

$H_0$ is at location $(0,0,0)$
$H_x$ is at location $(x,0,0)$
$H_y$ is at location $(0,y,0)$
$H_z$ is at location $(0,0,z)$

Given that our hydrophones receive the ping at times $t_0$, $t_x$, $t_y$, and $t_z$ respectively, we can calculate:

$$ \begin{bmatrix} d_x \\ d_y \\ d_z \end{bmatrix} = c_s \begin{bmatrix} t_0 - t_x \\ t_0 - t_y \\ t_0 - t_z \end{bmatrix} $$

$$ \begin{bmatrix} \hat{i} \\ \hat{j} \\ \hat{k} \end{bmatrix} = \begin{bmatrix} d_x/x \\ d_y/y \\ d_z/z \end{bmatrix} $$