Triangulator

Parent Previous Next

Interfaces and Buses / Wireless_Sensor / Block /  Triangulator
Block Name: Triangulator


Given inputs that represent the location of a sensor and the time at which those sensors detect an event, this actor outputs the location of the source of the event. It uses the specified signalPropagationSpeed and triangulates.

The input is a record with two fields named "location" and "time". The location field is an array of doubles, and the time is a double. In the current implementation, the actor assumes a two-dimensional space, so the location field is assumed to be an array with two doubles, which represent the horizontal (east-west) and vertical (north-south) location of the sensor. The time field is assumed to be a double representing the time at which the event was detected by the sensor.

The triangulation algorithm requires three distinct sensor inputs for the same event in order to be able to calculate the location of the origin of the event. Suppose that the event occurred at time t and location x. Suppose that three sensors at locations y1, y2, and y3 have each detected events at times t1, t2, and t3, respectively. Then this actor looks for a solution for x and t in the following equations: distance(x, y1)/v = t1 - t,
distance(x, y2)/v = t2 - t,
distance(x, y3)/v = t3 - t,
where v is the value of propagationSpeed. If such a solution is found, then the output x is produced.

Since three distinct observations are required, this actor will produce no output until it has received three distinct observations. The observations are distinct if the sensor locations are distinct. If the three observations yield no solution, then this actor will produce no output. However, it is possible for the three observations to come from distinct events, in which case the output may be erroneous. To guard against this, this actor provides a timeWindow parameter. The times of the three observations must be within the value of timeWindow, or no output will be produced. The output is an array of doubles, which in this implementation represent the X and Y locations of the event.


Field Detail

input

public VisualSim.actor.TypedIOPort input


output

public VisualSim.actor.TypedIOPort output


signalPropagationSpeed

public VisualSim.data.expr.Parameter signalPropagationSpeed


timeWindow

public VisualSim.data.expr.Parameter timeWindow



Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor