DARTS INTERROGATOR
FIRMWARE REQUIREMENTS
23 February 1998
C2 Technologies, Inc.
Tulsa, Oklahoma
CONFIDENTIAL
TABLE OF CONTENTS
Introduction
*Trajectory Measurement
*Range Measurement
*Slant Velocity and Acceleration
*Antenna Angular Measurement
*Angular Velocity & Acceleration
*Axial and Spatial Parameters
*Antenna Tracking
*Boresight Error and Static Positioning
*Tracking an Accelerating Target
*Telecommand and Telemetry
*Transmitter Waveform and Telecommand Encoding
*Telemetry Decoding
*System Control
*Host Interface
*Control Protocol
*System Procedures
*Transponder Acquisition
*End of Mission
*
This document describes the mathematical basis, computational requirements, and protocols to implement tracking and trajectory parameter measurement of the DARTS interrogator.
Range measurement is performed by measuring the round-trip time (Tr) from the ground to the rocket and back, and multiplying by half the speed of light (c):
(1) ![]()
Note that this is "slant range", the direct line-of-sight distance. Actual xyz position can be calculated by combining slant range with angular information, as we will see later.
Slant range measurement is implemented by twice capturing the value of a free-running counter: once at the rising edge of the transmit pulse, and once at the rising edge of the received reply pulse. The difference between the counts expresses the range in terms of "range units" (RU). For a 30 MHz range counter, the range is expressed in five-meter (5m) increments. That is, 1 RU = 5m, and a counter value of 400 means the transponder is 2000m away.
Because there is always some jitter in the range measurement, it is imperative that the data be smoothed before it is used in other calculations. One efficient way to perform averaging is to sum the "range unit" (RmRU) values together over an interval corresponding to the number of basic units in a "range unit." For instance, with a 5m "range unit", averaging five (5) range values gives the range in meters:
(2)
(3) ![]()
Example: RU = 5m
RmRU = { 400, 402, 399, 398, 402 }
400 + 402 + 399 + 398 + 402 = 2001 (m)
No division needs to be performed.
Slant Velocity and Acceleration
DARTS cannot measure velocity and acceleration directly; however, they can be calculated from the range data by taking the first and second time derivatives. Velocity (1st derivative of range, pronounced "R dot") can be approximated by taking the difference between the outer two of a set of three range samples, divided by twice the velocity sample interval (h):
(4)
(slant velocity)
This is a so-called "3-point" derivative approximation, even though only the outer two samples of the set are used.
Slant acceleration (2nd derivative of range, pronounced "R double-dot") is approximated by a similar algorithm, but one involving the square of the velocity sample interval and the center point of the set:
In the acceleration computation, all three points are used.
Since this operation introduces "noisy" variations in the resulting data, it is imperative that smoothed range data be used for the derivative approximations. In addition, the velocity sample interval is fairly critical; too small and roundoff error will dominate the equations; too large, and truncation will dominate. It is not necessary that the velocity sample interval match the basic or smoothed range intervals; in fact, a longer velocity interval will give better velocity resolution than a shorter interval.
Example:
Rs(n) = 5000m
Rs(n-1)=4970m
Rs(n-2)=4942m
h = 0.1 sec
Vs = (5000-4942)/0.02 = 580 m/s (about 1100 mph)
As = (5000+2*4970+4942)/.01 = 200 m/s2 (about 20 g's)
Suggested values for the range and velocity intervals based on empirical data are as follows:
Basic range dt 2msec
Average range RU * dt 10msec
Velocity h 100msec
Thus, velocity and acceleration estimates would be available at .1 sec intervals, and there would be ten (10) smoothed range measurements during each 100msec period.
The DARTS Interrogator measures both the azimuth and elevation angles directly, using optical encoders. So long as the antenna is pointed directly on a line-of-sight path to the vehicle being tracked, the antenna angles correspond to the direction angles of the vehicle with respect to the radar.
However,
Angular Velocity & Acceleration
The slant, azimuth-referenced, and elevation-referenced trajectory parameters are interesting data, but not very useful to people whose vehicles are being tracked. The parameters most often asked for are:
To calculate these parameters, some intermediate calculations are required:
(Velocity along elevation path)
(Velocity along azimuth path)
(Acceleration along slant path (corrected))
(Acceleration along elevation path)
(Acceleration along azimuth path)
Using the above relations, we can calculate the trajectory parameters:
(Velocity along rocket’s own axis)
(Acceleration along rocket’s own axis)
(Altitude)
(Downrange distance)
(Bearing to rocket’s position)
(Tilt angle with respect to local vertical)
(Heading angle with respect to local horizontal)
The rocket’s heading and tilt angle are only valid if the vehicle is "pointing" in the direction of its velocity vector. In atmosphere, this is probably a good approximation. In space, however, the velocity vector bears very little (if any) relationship with vehicle attitude.
Boresight Error and Static Positioning
It is desirable from a communications standpoint to keep the interrogator antenna pointed as closely as possible at the transponder. Tracking the transponder with the antenna also yields precise direction angle data, which when combined with the slant range (and derivatives) can be used to compute the vehicle's position in 3-D space.
Interrogator antenna tracking is performed by positioning the antenna to minimize boresight error, and repeating this as often as practical. Boresight error is the difference between the centerline of the antenna ("boresight") and the imaginary "line-of-sight" from the antenna to the vehicle.
Boresight error is measured indirectly by subtracting the log magnitude signal strengths measured by two opposing feeds of the antenna. There are two feeds for each degree of freedom, one on either side of center, for both the horizontal (azimuth) and vertical (elevation) directions, as follows:
U
LCR
D
C is the center feed, used in transmitting and measuring range, but not used in tracking functions. U and D are the vertical (elevation) feed pair, and L and R are the horizontal (azimuth) feed pair.
The DARTS receiver performs a logarithm of the absolute value (log-magnitude) operation on the received antenna voltages, then encodes this value as a 10-bit unsigned binary number.
Let Vx stand for the log-magnitude voltage from a particular feed (x). Boresight error in the two axes is:
(Azimuth) Ebaz = VR - VL
(Elevation) Ebel = VD - VU
In the case of tracking a non-moving target, the antenna pointing task becomes one of converting boresight error into relative antenna angle error. That is:
Pa = -K Eb
Pa = antenna position (relative)
K = constant determined by antenna geometry
Eb = boresight error, in angular units
This function is used when acquiring a stationary transponder.
Tracking an Accelerating Target
With a fast-moving and accelerating target, the algorithm to keep the antenna pointed must be more complicated. In addition to updating the relative position of the antenna in two axes, the algorithm must also control the angular velocity and angular acceleration of the antenna pedestal to predict and "stay ahead" of the target's motion.
A basic algorithm to accomplish this is the alpha-beta tracker, which is a subclass of Kalman filters.
DARTS has the capability to send commands to the transponder, and to read back information from it. These commands and telemetry are encoded directly on the waveforms used in measuring range, by controlling the pulse width.
Transmitter Waveform and Telecommand Encoding
The DARTS transmitted waveform is a train of narrow pulses, separated by intervals of inactivity:
Transmit Waveform:
The transmit waveform is generated by timer compare hardware. When the transmitter output is a logic "1", the transmitter is outputting RF power. When the transmitter output is at logic "0", the transmitter is idle.
The pulse interval is chosen to correspond to the basic range interval.
The pulse width is used to encode the telecommand data, which consists of commands and control data sent to the transponder .
A telecommand "1" bits is encoded with a 12.8 uS-wide pulse, and a telecommand "0" is encoded with a 25.6 uS-wide pulse.
The telecommand protocol is as follows:
SYNC ADDRESS MSGTYPE MSGBYTE …CRC16
The SYNC byte is always 0x55. The ADDRESS is a four-byte unsigned binary number, unique to each transponder. An address of 0x00000000 is the broadcast address; all transponders within range execute commands on this address, but do not transmit any replies.
MSGTYPE is a byte which determines both the length of the message and the meaning of its contents. The MSGTYPE is followed by zero or more MSGBYTEs (according to MSGTYPE). CRC16 is a standard 16-bit CCITT CRC of the message contents (except the SYNC byte).
The following messages are defined. All other values of MSGTYPE are reserved for future definition. Do not use these values as flags, etc.
The replies from the transponder are listed in the table for reference; they are defined in the Telemetry Decoding section.
|
MSGTYPE |
Name |
Total length (excluding SYNC) |
MSGBYTEs and contents |
Reply |
|
0x00 |
POWERDOWN |
7 |
Commands transponder to power down its transmitter and listen for further instructions. No MSGBYTEs. |
None. |
|
0x01 |
POWERUP |
7 |
Commands transponder whose address is specified to begin replying to interrogator pulses. No MSGBYTEs. |
One pulse after the last bit of the CRC. |
|
0x02 |
SETCTL |
8 |
Set digital control output. The MSGBYTE contains the output number. |
ACK |
|
0x03 |
RESETCTL |
8 |
Set the specified digital control output. The MSGBYTE contains the output’s address (0…255). |
ACK |
|
0x04 |
READANA |
8 |
Read the specified analog input. The MSGBYTE contains the input’s address (0…255). |
ACK ANA CRC16 ANA=16-bit number containing 10-bit analog voltage, zero-filled on the left. |
|
0x05 |
READDIG |
8 |
Read the specified digital input. The MSGBYTE contains the input’s address (0..255). |
ACK DIG CRC16 DIG contains the specified bit, right aligned, and the values of the next 7 bits of digital input. |
|
0x06 |
WRITE BYTE TO ASYNC BUS |
8 |
Write a single byte to the transponder’s expansion bus. |
ACK |
|
0x07 |
READ BYTE FROM ASYNC BUS |
8 |
Read a single byte from the transponder’s expansion bus. Idle for the number of milliseconds specified in MSGBYTE. If a character is received on the bus during that interval, its value is returned along with ACK. Otherwise, a timeout NAK is returned along with a zero byte. |
ACK char CRC16 Or NAK 0x00 CRC16 |