You can compute time difference of arrival (TDOA) in STK using STK's Analysis Workbench capability components between your objects of interest. This article describes how to compute TDOA between two satellites and one ground station. You can also use the same steps for the reverse setup of one satellite and two ground stations. Basically, you compute the time it takes a signal to get to each satellite from the one facility using time = distance / rate, where the distance comes from the facility-to-satellite vector magnitude and the rate is the speed of light. This gives you two times, and you difference them and take the absolute value to get TDOA.
- Create two satellites and one facility in an STK scenario.
- Open Analysis Workbench and go to the Vector Geometry tab.
- On the facility, make a new vector to each satellite.
4. On the facility, make the following Calculation components:
- Two Vector Magnitude calculations, one for each of the vectors created in step 3
b. Two Function(x) calculations, one using each of the scalar calculations created in step 4a, with the following properties:
- Function: a + b*x + c*x^2 + d*x^3
- x is scalar from step 4a; unit is meters
- Coefficients: a = 0, b = 3.33564e-9 (this is just 1/299,792,458 m/s, which is the reciprocal of the speed of light), c =0, d = 0
- Output: Dimension = Time, Unit = sec
c. One Function(x,y) scalar calculation called TDOASigned; this will be the differences in time with positive or negative signs:
- Function: ax - by
- x = time for one satellite from step 4b; y = time for second satellite from step 4b; units in seconds
- Coefficients: a = b = 1
- Output: Inherit dimension From x
d. One Function(x) scalar calculation called TDOA; take the absolute value of the difference in time:
- Function = a*|b*x + c| + d
- x is scalar TDOASigned from step 4c, Unit = sec
- Coefficients: a = b = 1, c = d = 0
- Output: Inherit dimension from x
You can report on the TDOAs. With the facility highlighted, open the Report & Graph Manager. Create a new report or graph for the facility and open its properties. Under the Scalar Calculations folder, expand the TDOA folder and move the Time and Scalar data providers over to the Report Contents. If you created a report, you can increase the number of decimals displayed for the TDOA scalar by right-clicking the Scalar (sec) header and going to Scalar > Properties and increasing the number of decimal digits. You can also change the notation from floating point to scientific. Now that you have this calculation for a single point, you can make coverage contours too. Using STK's Coverage capability, create a Coverage Definition object with the Grid Constraint options set to the facility object. Choose the actual facility object instance and select the "Use actual object on the grid points" check box. This will include the AWB calculations on the other grid points. Make the Asset a Chain that you define to be Sat1-Facility-Sat2. Make sure to compute the chain access. Then add a Figure of Merit (FOM) of type Scalar Calculation and select your TDOA scalar. This example uses Average and a 300-second time step, with animation contours then set based on the Grid Stats report for the FOM. These steps will work for any set of dynamic platforms mixed and matched. You can automate the building of these Analysis Workbench components through use of the API. Please see the STK Help MATLAB code snippets for examples of creating components in Analysis Workbench. The scenario created for this article is also attached for your reference