ADC Analog to Digital Converter
DAS Digital Attitude Sensor
DMX Digital Magnetometer with Accelerometers
RMS Root Mean Square
WOM Weapons Orientation Sensor.
Referring to
“The orientation sensor 100 includes a magnetometer subsystem 110, which includes a three-axis fluxgate device 112, and an accelerometer subsystem 120 that includes two three-axis accelerometers 122, 124. The magnetometer subsystems includes an analog to digital converter and various electronics to drive the magnetometer coils and filter and condition the data signals, which are collectively illustrated as a driver 116. As is discussed further below, the magnetometer subsystem 110 also includes a switch 114, which can reverse the polarity of the connections between the driver 116 and the fluxgate devices 112. The accelerometer subsystem 120 also includes a driver 126, which drives both accelerometers 122, 124. These accelerometers are mounted in substantially opposite orientations (see
The magnetometer 110 includes a 3-axis fluxgate device 112 with axes designated as (x,y,z). Referring to
The accelerometer subsystem 120 includes two 3-axis accelerometer devices 122, 124. Continuing to refer to
The system electronics include an analog board, a digital board, two accelerometer boards, a nose board, and a coil holder board. The analog board contains the magnetometer and accelerometer analog signal control and conditioning circuits and a temperature circuit. The digital board contains the microcontroller and power supply regulation circuits, reference voltage circuits, external communications interface circuits, and a high-resolution analog to digital converter. There are two types of accelerometer boards. The first mounts the accelerometer package such that the x-axis is normal to the analog board plane (pointing away from it) and the y-axis is parallel to the analog board plane. The second mounts the accelerometer package such that the x-axis is parallel to the analog board plane and the y-axis is normal to the analog plane (pointing into it). Two of each board type are used for a total of four accelerometer boards and accelerometers. The coil holder board provides a connection backplane for the three fluxgate coils. The nose board provides a connection backplane to connect the digital board to the mechanical nose piece in which the input/output connector is mounted.
A procedure for self-calibration is described in U.S. Pat. No. 4,698,912, titled “Magnetic Compass Calibration,” issued to Fowler et. al. in October, 1987, which is incorporated herein by reference. Embodiments of the present approach make use of techniques described in that patent as well a number of new calibration features.
Examples of the system use a calibration approach that relates to the use of the difference of Factory “Air” (without ferrous sources of deviation) calibrated values and the values calibrated, by the “KAL” method (auto-calibrated in the presence of ferrous material or permanent magnets) to quantitatively determine the type (hard of soft iron) and magnitude of the external sources of deviation. The embedded firmware (e.g., in program storage 144) then gives a precise value for the “B & C” (hard iron terms) and the “D & E” (soft iron terms), and even computes its own root mean square (RMS) error. Having reported its own error terms, the system can then automatically update its registers (e.g., in data storage 146) and mitigate errors related to those terms in the measurements provided to the host system.
The calibration process involves the following steps. As part of the calibration process, the sensor rapidly samples the x and y magnetometer axes (i.e., the cosine and sine of heading). The system stores the maximum and minimum readings of each of these uncalibrated cosine and sine signals (waveforms as a function of time). In the absence of offset errors, the sum of the maximum and minimum would be zero. The average of the (signed) maximum and minimum of each of these signals yields the offset (the “B” term for the x-axis and “C” term for the y-axis) (e.g., x-bias and y-bias) after conversion to degrees. For example, the bias is due to an effect of permanent magnetism on the weapon.
In addition to the bias terms, a y/x ratio is also computed as the average differences of y-peak-to-peak/x-peak-to-peak=(y-max−y-min)/(x-max−x-min). This becomes the “D” when converted to degrees. This term is due, for example, to soft iron along the fore and aft line of symmetry. This is called the “lubber line” on a ship, but is along the axis of the barrel for a rifle.
The “E” term is determined by measuring the phase angle between the two waveforms at the Intercardinal points (045, 135, 225, and 315 degrees) using waveform analysis techniques. This error is caused by asymmetrically positioned soft iron on either side of the sensor.
The RMS error is computed as
RMS=(B2+C2+D2+E2)1/2
This calibration forms is an iterative process with the RMS error being transmitted to the host system and every time a calibration revolution is made, the processor updates the B, C, D and E terms. At some point the RMS error will fall below the specified target and the operator can be informed that calibration can cease.
In a test of 4 WOM sensors removed after having been calibrated on the M16, they all showed about a 3° “D” term variation when removed from the weapon and run in “Air”. This variation is due to the large amount of soft iron present in the barrel and the receiver of the M16. Had the experiment been run the other way in going from an “Air” calibrated sensor to being mounted on the gun, a −3° “D” term would have been generated. Typically, even large error terms can be reduced to near zero in only one “KAL” revolution. If a small residual term remains, it can be eliminated with a second pass.
Latitude insensitively is very important if the weapon or vehicle traverses large changes in latitude. Most magnetic auto-calibration algorithms only compensate for X and Y bias errors at one particular latitude. By separating out actual X and Y bias errors from changes in X and Y biases due to contamination from the vertical field, the sensor system is effectively insensitive to vertical field changes and therefore to latitude.
In the embodiment of the sensor system illustrated in.
Further reduction in error can be achieved by selecting the orientations of the accelerometers to take advantage of certain statistical dependence of the measurement error in the different accelerometers. In some examples, the axes of micromachined accelerometers are configured in opposite directions, as shown in
Since the sensors are MEMs devices, they are often well matched in certain errors, such as nonlinearity. By employing sensors in complementary positions, some of these nonlinear errors cancel, if the difference of the two axes is taken. For example, if the sensor output can be characterized by
Gx
1
=b
1
+m
1
X+a
1
X
2, and
Gx
2
=b
2
−m
2
X+a
2
X
2
recalling that the acceleration X opposite for the second accelerometer, the difference of the two complementary outputs for an axis will read
Gx
1
−Gx
2=(b1−b2)+X(m1+m2)+(a1−a2)X2
In other words the offsets and the even order nonlinearity terms tend to cancel, and the odd order terms are generally doubled. Since the residual b terms (offsets) can be measured and canceled, as well as the m terms (gain), we are left with Gx=2 m X, where m is the average of the two m terms.
Referring to
In some examples, the magnetometer subsystem 110 employs what is referred to herein as a “coil flipping” feature. Viewed generally, both the use of complementary accelerometers and electrically flipping the orientation of excitation of the fluxgate cores are examples of a general technique of using complementary configurations with complementary devices (e.g., two accelerometers) or complementary uses or excitations of a physical device (e.g., two polarities of excitation of fluxgate coils). Using complementary configurations can have a benefit of cancelling dependent measurement errors from measurements using the complementary configurations.
The coil flipping feature gives the magnetometer subsystem improved offset and high temperature stability. Referring to
Referring to
Referring to
If there are offsets associated with the electronics (e.g., in the integrator 332, signal generator 334, and feedback loop and analog-to-digital converters) that is not illustrated) then the effect of such offset can effectively be eliminated through the use of the switch 114A. For example, assume the fluxgate is aligned with a positive field B. Then with the switches 322 in the plus direction, the magnetometer output will read Hout1=H+off. Now if the switches 322 reverse the coil polarity, then the output will read Hout2=−H+off. If these two readings are then subtracted we get Hout1−Hout2=2H+(off−off), canceling all of the offsets in the electronics, including the A-to-D converter itself.
As introduced above, three fluxgate coil drive and signal processing circuit channels are controlled by a small microcontroller (142, see
A schematic of a single axis of the magnetometer subsystem is shown in
The output Vo of the integrator reflects the flux balance in the core as shown in
where Φ is the flux in the coil core, N is the number of turns on the coil, and t is the time during which the flux change takes place. The integrator (Detector balance amp) captures this voltage change as E=N ∫Φdt. In the absence of an external field, the flux excursion in response to a no net DC constant current excitation has a zero integral. However, an external magnetic field causes an imbalance in the BH loop, causing the integrator to move toward a positive or negative voltage limit.
The integrator output is fed into a constant current source (Current source amp) that is summed with the AC constant current fluxgate drive (Idrive AC). This results in a negative feedback that re-balances the fluxgate core and produces a zero average flux within the core (null-balance). The integrator now stabilizes at a point that produces a constant current that exactly cancels any external field and results in a zero bias on the fluxgate core. This zero bias on all three magnetometers results in each magnetometer behaving as if it were non-magnetic, canceling any influence that one might have on a close neighbor. This permits a non-symmetric arrangement of magnetometers to act as if all three axes were mutually orthogonally but intersecting, a physical impossibility.
Note that in
Examples of the sensor system 100 can perform data acquisition of magnetometer and accelerometer data, filter it with an IIR filter, and store the filtered resulting vectors as raw values. As a mechanism for reducing power consumption, only when data is requested does it calibrate the raw data, transform the vectors to the horizontal and vertical planes and transmit the results. This technique combined with turning elements on and off reduces power while preserving bandwidth.
A high level flow diagram of the sensor data processing is shown in
After analog-to-digital conversion of the raw sensor signals (step 610), the digitized signals are processed in a pre-transform calibration step (step 612). This processing on the raw output of the sensor output includes a number of steps as shown in
An individual sensor output from the magnetometers and the accelerometers is taken from an analog-to-digital converter (ADC) for each channel of the multi-axis sensors. These digitized sensor readings are defined herein as “raw” readings and are the input for the subsequent processing.
As introduced above, the magnetometer subsystem 110 uses a 3-axis fluxgate device 112 (see
The accelerometer subsystem 120 includes two 3-axis accelerometers 122, 124. As illustrated in
The accelerometers are used to estimate the sensor body roll and pitch attitude with respect to the local gravity vector. This information is used to align the magnetometer axes with the plane of the Earth's local tangent and thence to estimate heading using the geomagnetic field.
There are nine individual sensor outputs from the ADC, three magnetometer axes and six accelerometer axes. For each of these axes two preprocessing steps are used to compensate for common mode DC errors and to reduce random noise using an infinite impulse response (IIR) digital filter.
For each of the axes, a common mode rejection (CMR) computation of the following form is performed:
where Q is a placeholder variable name with Q+, representing the “positive” polarity axis and Q−, representing the “negative” polarity axis. To make this concrete, consider the accelerometer x-axis CMR computation
where G1x represents the output of the x-axis for accelerometer #1 and G2y represents the output of the x-axis for accelerometer #2.
In some examples of the system, as illustrated in
where Hx is the output of the magnetometer x-axis with coil (C) or coil-bar (CB) as indicated.
Using the above conventions, the table shown in
Each of the six CMR signals is next subjected to a low-pass smoothing digital filter (step 720) to improve signal-to-noise ratio. The form of the filter is a simple IIR exponential averaging filter.
The filter is implemented on a sample-by-sample basis as new data are available from the ADC (after CMR correction). The filter equation is defined as
Q
IIR
[n]=(1−β)QIIR[n−1]+βQCMR[n−1], (4)
where [n] represents the current value of the digital sample stream, [n−1] represents the previous value of the digital sample stream, QIIR represents the output of the IIR filter, QCMR represents the output of the common-mode-rejection computation, and β=2−m is a weighting factor with m=0, 1, 2, 3, . . . Q is a surrogate variable and for the computations takes on the value of Hx,y,z or Gx,y,z, as appropriate.
The frequency response corresponding to the IIR filter of Equation (4) may be written as
where β is the filter weight that prescribes the low-pass corner frequency, φ=2πfτ is dimensionless phase, f is frequency in Hz, and τ is the fixed time interval in seconds between successive digital samples in the sample stream. By solving Equation (5) for β as a function of the low-pass corner frequency, fL, we can select β to achieve certain performance features. Similarly, for a given β we can compute the corresponding low-pass corner frequency, fL. The equations for these computations are as follows:
Since β takes on discrete values of m=0, 1, 2, . . . , we can compute the discrete values of the dimensionless frequency parameter, φL or, given a sampling interval, τ, we can compute the discrete values of the corner frequency, fL. The table in
With suitably selected values β, Equation (4) is applied to each of the six CMR corrected signals that are computed as shown in the table in
For each of the sensor axes a correction for misalignment of the axes and adjustments for differences in physical and electronic gain and offset is computed. The correction is based, in part, on a so-called mx+b calculation. All of the preprocessing steps defined above are applied to the input, data stream from the ADC regardless of the sensor situation, i.e., whether the sensor is being calibrated or being used to sense operational signals.
In the pre-transform calibration, described in this section, the sensor is subjected to controlled conditions. Two constraints are placed on the sensor:
In each of the V-block positions, after the IIR filter has stabilized, a recording is made of the magnetometer and accelerometer measurements. Specifically, the values used are
These values are used to compute the coefficients of the correction equation, which may be expressed as
Q
xcal
=K
xgain
Q
xIIR
K
xoffset
Q
xIIR
+K
dXdZ
Q
zIIR
+K
dXdY
Q
yIIR, (8)
where the Q()IIR are the output of the IIR preprocessing filter, and the K(▪) are coefficients computed as shown below using the values determined in the V-block test.
The first two terms on the right-hand side of Equation (8) are adjustments for the gain and offset of the sensor and the associated electronics. The “mx+b” name for Equation (8) derives from these two terms, where the “m” is identified as Kxgain and the “b” is identified as Kxoffset. While the form of this equation appears to resemble mx+b, this is really only a single point correction equation. There is no “slope” and “intercept” per se; these are simply correction coefficients related to the particular sensor and its construction. The last two terms in Equation (8) are correction, for misalignment of the sensor axes, i.e., corrections for deviations away from the axes being precisely orthogonal.
Mathematical aspects that are used in the design of examples of the system are discussed in this section. Note that the derivations set forth are not necessarily the only ways of configuring examples of the system.
Referring to
In
The sensor frame is related to the projectile frame by orthogonalization and by rotations. The orthogonalization transformation can be represented by a Gram-Schmidt matrix. We take the S1 and P1 axes to be identical, and the matrix to transform from the sensor axes to the Gram-Schmidt is as follows:
where e1A is a unit vector pointing in the i-direction in the frame denoted by superscript A. Note that since the sensor coordinate system is not orthogonal, the transformation matrix TSG is not orthogonal, and therefore its inverse does not equal its adjoint.
We define rotations, analogous to the Euler angle rotations, to transform between the projectile frame and the frame determined via Gram-Schmidt orthogonalization. Specifically, we assume that rotations through α3 about the P3-axis, α2 about the P2-axis and α1 about the P1-axis (in that order) transform the projectile axes to the Gram-Schmidt axes. Then the rotation matrix from the Gram-Schmidt vectors to the projectile axes is
is the transformation matrix from the sensor to the projectile frame. Then vectors measured in the sensor frame (S) can be converted to the corresponding vectors in the projectile frame (P) using the relationship
v
P
=T
S
P
·v
S (12)
The projectile coordinate frame is related to the earth coordinate frame by rotations through the Enter angles (pitch—θ, roll—φ and heading—ψ), which give rise to the following transformation matrix from the projectile axes to the earth axes:
First, all accelerometer and magnetometer readings are corrected for offset and gains. Then the calibration matrix is determined by measuring the sensor reading on the j-axis (in the sensor frame) when the system is accelerated in the i-direction (in the projectile frame) to obtain the i-j entry.
We demonstrate how the calibration matrix is calculated via an example. The term (TSP)31 is determined by taking 100 readings of G1S and G2S when the accelerometer is in the gravitational field. The projectile is then rotated through a roll angle of 180 degrees, and the measurements are repeated. Then
Note that (TSP)31≠(TSP)12, indicating that “dx dy≠dy dx”.
When measuring the earth's gravitational field which is aligned with the z-coordinate in the earth frame, Equation (14) reduces to the form
where we have used the result (TPE)−1=(TPE)P. Therefore roll and pitch can be determined as follows:
The heading angle can be determined as follows: consider the decomposition of the Euler transformation matrix into the three separate rotations (notation as in Harkins, 2003). From Equation (14) we can deduce
Since the magnetic field in the earth's frame points in the x-direction, Equation (19) can be written as
which leads to the result
Note that there is an implicit choice of sign for cosine calculated in Equation (18). Note also that the z-equation in Equation (21) is not used and therefore need not be calculated in software.
Although the above method works in theory, in some examples errors in the calibration lead to a variation in the heading angle as the roll angle is varied. Therefore for some examples of the system, a second “calibration” is performed in which the first mode of variation with roll angle is subtracted out.
It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims.
This application claims the benefit of the following U.S. Provisional Applications: No. 60/791,821, filed Apr. 13, 2006, titled “Orientation Sensor”; No. 60/873,495, filed Dec. 7, 2006, titled “Orientation Sensor”; and No. 60/900,537, filed Feb. 9, 2007, titled “Orientation Sensor.” Each of these applications is incorporated herein by reference.
| Number | Date | Country | |
|---|---|---|---|
| 60791821 | Apr 2006 | US | |
| 60873495 | Dec 2006 | US | |
| 60900537 | Feb 2007 | US |