Mapping Toolbox | ![]() ![]() |
Compute dead reckoning positions for a track
Syntax
[drlat,drlong,drtime] = dreckon(waypoints,time,speed) [drlat,drlong,drtime] = dreckon(waypoints,time,speed,spdtimes)
Background
This is a navigational function. As such, it assumes that all latitudes and longitudes are in degrees, all distances are in nautical miles, all times are in hours, and all speeds are in knots, i.e., nautical miles per hour.
Dead reckoning is an estimation of position at various times based on courses, speeds, and times elapsed from the last certain position, or fix. In navigational practice, a dead reckoning position, or DR, must be plotted at every course change, every speed change, and at every hour, on the hour. Navigators also DR at other times that are not relevant to this function.
Often in practice, when two events occur that require DRs within a very short time, only one DR will be generated. This function mimics that practice by setting a tolerance of 3 minutes (0.05 hours). No two DRs will fall closer than that.
Refer to the "Navigation" section of the Mapping Toolbox User's Guide for further information.
Description
[drlat,drlong,drtime] = dreckon(waypoints,time,speed) returns the positions and times of required dead reckoning (DR) points for the input track which starts at the input time. The track should be in navigational track format (two-columns, latitude then longitude, in order of traversal. These waypoints are the starting and ending points of each leg of the track. There is one fewer track leg than waypoints, as the last point included is the end of the track. In navigation, the first waypoint would be a navigational fix, taken at time
. The speed
input can be a scalar, in which case a constant speed is used throughout, or it can be a vector in which one speed is given for each track leg (i.e., speed changes coincide with course changes).
[drlat,drlong,drtime] = dreckon(waypoints,time,speed,spdtimes) allows speed changes to occur independent of course changes. The elements of the speed
vector must have a one-to-one correspondence with the elements of the spdtimes
vector. This latter variable consists of the time interval after time
at which each speed order ends. For example, if time
is 6.75, and the first element of spdtimes
is 1.35, then the first speed
element is in effect from 6.75 to 8.1 hours. When this syntax is used, the last output DR is the earlier of the final spdtimes
time or the final waypoints
point.
Examples
Assume that a navigator gets a fix at noon, 1200Z, which is (10.3ºN, 34.67ºW). He's in a hurry to make a 1330Z rendezvous with another ship at (9.9ºN, 34.5ºW), so he plans on a speed of 25 knots. After the rendezvous, both ships head for (0º, 37ºW). The engineer wants to take an engine off line for maintenance at 1430Z, so at that time, speed must be reduced to 15 knots. At 1530Z, the maintenance will be done. Determine the DR points up to the end of the maintenance.
waypoints = [10.1 -34.6; 9.9 -34.5; 0 -37] waypoints = 10.1000 -34.6000 % Fix at noon 9.9000 -34.5000 % Rendezvous point 0 -37.0000 % Ultimate destination speed = [25; 15]; spdtimes = [2.5; 3.5]; % Elapsed times after fix noon = 12; [drlat,drlong,drtime] = dreckon(waypoints,noon,speed,spdtimes); [drlat,drlong,drtime] ans = 9.8999 -34.4999 12.5354 % Course change at waypoint 9.7121 -34.5478 13.0000 % On the hour 9.3080 -34.6508 14.0000 % On the hour 9.1060 -34.7022 14.5000 % Speed change to 15 kts 8.9847 -34.7330 15.0000 % On the hour 8.8635 -34.7639 15.5000 % Stop at final spdtime, last % waypoint has not been reached
See Also
legs |
Find courses and distances between waypoints |
navfix |
Mercator-based navigational fixing |
track |
Connect navigational waypoints with track segments |
![]() | dms2dm | driftcorr | ![]() |