US 20090259424 A1 Abstract An electronic circuit includes accelerometer (
1140) sensors mounted on different axes, memory circuitry (1024) and an electronic processor (1030) coupled to the accelerometer (1140) sensors and to the memory circuitry (1024), the electronic processor (1030) operable to generate signals representing at least one calibration parameter for the accelerometer (1140) sensors from signals representing data resulting from the accelerometer (1140) sensors in an imprecise orientation of the accelerometer (1140) sensors. Information storage media, systems for measuring acceleration, and processes of operation and processes of manufacture are also disclosed.Claims(26) 1. An electronic circuit comprising:
accelerometer sensors mounted on different axes; memory circuitry; and an electronic processor coupled to said accelerometer sensors and to said memory circuitry, said electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors from signals representing data resulting from said accelerometer sensors in an imprecise orientation of said accelerometer sensors. 2. The electronic circuit claimed in 3. The electronic circuit claimed in 4. The electronic circuit claimed in 5. The electronic circuit claimed in 6. The electronic circuit claimed in 7. An information storage medium holding a set of physical representations of instructions executable by an electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations.8. The information storage medium claimed in 9. The information storage medium claimed in 10. A process of accelerometer calibration, the process comprising generating signals representing accelerometer calibration parameters from signals representing multi-axes accelerometer data from different imprecise accelerometer orientations.11. The process claimed in 12. The process claimed in 13. The process claimed in 14. The process claimed in 15. The process claimed in 16. A system for measuring acceleration, comprising:
a portable device having accelerometer sensors mounted on different axes and operable to supply accelerometer signals representing accelerometer data; a transducer associated with the portable device and operable to emit a user-perceptible prompt; and an electronic processor coupled to said accelerometer sensors and to said transducer, said electronic processor operable to cause said transducer to emit the user-perceptible prompt, and said electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors in response to the accelerometer signals in different freely-establishable orientations of said portable device. 17. The system claimed in 18. The system claimed in 19. The system claimed in 20. The system claimed in 21. The system claimed in 22. The system claimed in 23. The system claimed in 24. The system claimed in 25. The system claimed in 26. A process of manufacture comprising attaching to a printed wiring board an electronic processor and an accelerometer and a flash memory holding a set of physical representations of instructions executable by the electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations. Description This application is related to India Patent Application Number 567/CHE/2008 filed Mar. 6, 2008, titled “Estimation Of Bias Error And Axes Gain For Mems Tri-Axes Accelerometers Implemented On Cell Phone Platform For Vehicle Navigation” and priority is claimed under the Paris Convention and 35 U.S.C. 119 and all other applicable law. This application is related to India Patent Application Number 565/CHE/2008 filed Mar. 6, 2008, titled “Accurately Calibrating E-Compass For Tilt Error In A Suboptimal IMU System Comprising Of Accelerometer And E-Compass Mounted On Cell Phones” and priority is claimed under the Paris Convention and 35 U.S.C. 119 and all other applicable law. This application is related to the US patent application titled “Processes for More Accurately Calibrating E-Compass for Tilt Error, Circuits, and Systems” Ser. No. ______ (TI-65997) filed on even date herewith, and said U.S. patent application is incorporated herein by reference in its entirety. This application is related to US patent application publication US 2009/0054075 dated Feb. 26, 2009, and U.S. patent application Ser. No. 11/844,006 (TI-38194) filed Aug. 23, 2007, titled “Satellite (GPS) Assisted Clock Apparatus, Circuits, Systems And Processes For Cellular Terminals On Asynchronous Networks” and said U.S. patent application documents are incorporated herein by reference. Not applicable. Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, or the patent disclosure, as it appears in the United States Patent and Trademark Office, but otherwise reserves all copyright rights whatsoever. This invention is in the fields of electronic computing hardware and software, navigation and communications, and processes of operating and making such circuits, devices and systems. Without limitation, the background is further described in connection with accelerometer-based applications, circuits, devices and systems, such as for portable, including mobile, applications. Mobile telephony can communicate video and digital data, and voice over packet (VoP or VoIP), in addition to cellular voice. Streams of information such as video, voice, audio content, images of all kinds, and data should be flexibly handled by such mobile devices and platforms. But power dissipation can limit time between battery recharges and limit the features and number of applications running. And system latency might cause various kinds of delays and lapses in desirable application operation. Processors of various types, including DSP (digital signal processing) chips, RISC (reduced instruction set computing), information storage memories and/or other integrated circuit blocks and devices are important to these systems and applications. Containing or reducing energy dissipation, system latency and the cost of manufacture while providing a variety of circuit, device and system products with performance features for different market segments are important goals in integrated circuits generally and system-on-a-chip (SOC) design. MEMS (micro-electromechanical structure) accelerometers can be used in portable platforms such as cellular phones, personal assistants, positioning devices, and other applications. The platforms are useful such as for freefall detection, tilt sensing, position sensing, velocity measurement, gaming applications, elderly monitoring systems, and Inertial Navigation systems (INS as an assistance to GPS) in vehicular and pedestrian navigation generally, and e-compass supported navigation. MEMS accelerometers can be used for Inertial Navigation (INS) Assistance to GPS in GPS challenged environments. MEMS accelerometers suffer from bias error and axes gain errors which should be estimated precisely for applications like tilt sensing, inertial navigation and vehicular and pedestrian navigation. Estimation of accelerometer parameters, such as bias errors and axes gains, of MEMS accelerometers can be problematic. It is difficult for a cell phone user to estimate and calibrate gain and bias errors in accelerometers on-the-fly. Accordingly, new solutions that provide more fully user-friendly embodiments to evaluate accelerometer bias errors and gain errors would be highly desirable. Generally and in one form of the invention, an electronic circuit includes accelerometer sensors mounted on different axes, memory circuitry, and an electronic processor coupled to the accelerometer sensors and to the memory circuitry, the electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors from signals representing data resulting from the accelerometer sensors in an imprecise orientation of the accelerometer sensors. Generally, another form of the invention involves an information storage medium holding a set of physical representations of instructions executable by an electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations. Generally, a process form of the invention involves a process of accelerometer calibration, and the process includes generating signals representing accelerometer calibration parameters from signals representing multi-axes accelerometer data from different imprecise accelerometer orientations. Generally, a system form of the invention for measuring acceleration includes a portable device having accelerometer sensors mounted on different axes and operable to supply accelerometer signals representing accelerometer data, a transducer associated with the portable device and operable to emit a user-perceptible prompt, and an electronic processor coupled to the accelerometer sensors and to the transducer, the electronic processor operable to cause the transducer to emit the user-perceptible prompt, and the electronic processor operable to generate signals representing at least one calibration parameter for the accelerometer sensors in response to the accelerometer signals in different freely-establishable orientations of the portable device. Generally, and in a process of manufacture form of the invention, a process of manufacture includes attaching to a printed wiring board an electronic processor and an accelerometer and a flash memory holding a set of physical representations of instructions executable by the electronic processor to generate signals representing accelerometer calibration parameters from accelerometer data from different imprecise orientations. These and other forms of circuit, device, system, information storage medium, apparatus, process, and other forms of the invention are disclosed and claimed. Corresponding numerals in different figures indicate corresponding parts except where the context indicates otherwise. In “Navigation” as used herein includes any one, some or all of position, direction, heading, tilt, altitude, azimuth, velocity and acceleration sensing and/or location-based applications, position-based applications, map-related applications, trajectory control, braking control, cruise control, steering control, engine control, course monitoring and completion, maneuvering, free fall detection, image acquisition control, image stabilization, and other applications combining or benefiting from any of the foregoing. “Portable device” as used herein includes any device, apparatus, or system, such as those stated herein as well as others, that is sufficiently movable in orientation to utilize and benefit from the embodiments and teachings herein. In A camera On a cell phone printed circuit board (PCB) Cell phone Processor integrated circuit In this way, advanced networking capability for services, software, and content, such as cellular telephony and data, navigation applications, audio, music, voice, video, e-mail, gaming, security, e-commerce, file transfer and other data services, internet, world wide web browsing, TCP/IP (transmission control protocol/Internet protocol), voice over packet and voice over Internet protocol (VoP/VoIP), robotics, medical-related services, and other services accommodates and provides security for secure utilization and entertainment appropriate to the just-listed and other particular applications. The embodiments, applications and system blocks disclosed herein are suitably implemented in fixed and portable devices such as for mobile, automotive In combination with the GPS circuit It is contemplated that the skilled worker uses each of the integrated circuits shown in In Data exchange between a peripheral subsystem and a memory subsystem and general system transactions from memory to memory are handled by the System SDMA Data exchanges within a DSP subsystem In In In In In In GE In In In One demanding approach in estimating bias errors and axes gain involves orienting the 3 axes accelerometer Embodiments of method and system herein remove the necessity of accurately orienting the accelerometer Various embodiments work on the datasets signaled by accelerometer In A succeeding step The portable device is programmed to cue the user with a beep and/or flash when each measurement is to be taken. Then after the orientation is stable and the measurement is acquired, a beep-beep and/or double-flash from prompt transducers In A further step For example, if the user were still accelerating or decelerating the portable platform Of course, sensors in need of calibration will supply measurement data that seemingly departs from 1 g acceleration of gravity, but moderately (e.g., within a small decision range on the order of plus/minus one percent +/−0.01 g). This decision range can be established, for instance, in relation to accelerometer vendor specified bias error (offset) range and gain error range. A programmed decision range used by step In The embodiments are user friendly. An ordinary user can orient the cell phone in six or more orientations and perform the calibration of bias errors and axes gains. Accelerometer bias error and sensitivity specifications are subject to inaccuracies of orientation in accelerometer vendor test setups when using the demanding six-posture method described earlier hereinabove. Here, the calibration embodiments do not depend on exact posture or accuracy of orientations and can be used not only by accelerometer manufacturers and portable device manufacturers to tighten their specs on parameters such as bias errors and sensitivity, but also by ordinary users. Smart phones In vehicle navigation, it is important to correct the bias errors μ and gain errors S of an accelerometer where, S is the gain (sensitivity) matrix, μ is the bias error vector referenced to the gravitational acceleration and w is a noise vector representing the accelerometers noise on all three axes X, Y, Z. In this example and in all formulations beyond this point, the acceleration values are referenced to the acceleration due to gravity in that location, where in the acceleration due to gravity is defined a value of unity. The actual accelerations in S.I. unit would be obtained by multiplying the corresponding acceleration vector with the actual gravity of that location (e.g. obtained from WGS 84 model). Notice that if the measurement process is arranged to average out the noise w, then The three diagonal elements Sx, Sy, Sz of the gain matrix S are the gain coefficients for individual axes X, Y, Z while the six off-diagonal terms Sxy, Syx, Szx, Sxz, Syz, Szy represent cross-axes gain from each orthogonal axis. The cross-axes terms arise from small alignment errors of the individual sensor axes in the three axis accelerometer Suppose the demanding six-posture method were used to estimate the coefficients of Gain matrix S and bias error μ. A precise test set up measures acceleration output vectors at 6 different orientations, the first one with the x-axis towards gravity axis or vector g followed by the second one with x-axis against gravity axis or vector g; the third and fourth one corresponding to y axis towards and against the gravity axis or vector g and the fifth and sixth one corresponding to z-axis towards and against the gravity axis or vector g. The measurements are averaged over a long enough time to reduce the effect of accelerometer The corresponding equations for averaged measured vector (fm) in the six-posture method are given by: The bias error parameter vector μ and gain parameter matrix S are estimated in the six posture method as follows. Local acceleration due to gravity is normalized to unity here, and plus/minus unity in equations (2)-(7) represents the orientation of a given one of the three accelerometer sensors parallel or anti-parallel to the downward gravitational acceleration. The zeros in equations (2)-(7) represent the negligible acceleration measured in each of the six postures by the other two accelerometer sensors, which are assumed to have perfectly orthogonal orientations relative to the given sensor. Because of the six precise orientations reflected by the measured acceleration vectors [1 0 0]
Moreover, because of the six precise orientations, pair wise subtraction for each of the three pairs of measured acceleration vectors cancels the bias error vector μ and delivers three column vectors comprised in estimated parameter matrix S, all according to equation (9): The demanding six-posture method has some practical difficulties in implementation. Small errors in orientation of each accelerometer sensor on the precision test stand relative to the gravitational acceleration vector g (i.e., straight down) cause erroneous estimation of bias error vector μ and axes gain matrix S. For an accelerometer By contrast, an approach to solving the problems more conveniently is described herein and has various embodiments. At any point of time the true acceleration measurements of all three axes X, Y, Z at condition of rest produce a resultant vector of a unit of gravitational acceleration g. Normalizing the true acceleration vector f Using equations (1A) and (10), equation (11) represents the constancy of the gravitational acceleration regardless of the posture of the accelerometer The three accelerometer Notice that there are as many as nine (9) unknowns in the axes gain matrix S and three (3) unknowns in the bias error vector μ. Solving for these twelve (12) unknown quantities in some embodiments is performed in some embodiments by taking measurements (e.g., m>=12) at different postures and solving equation (11) in a recursive least squares sense, such as by using a microprocessor in system In some embodiments, for simplicity of analysis, the cross axes terms in matrix S are ignored. When the cross axes terms are negligible, the above assumption (ignoring the cross-axes terms) does not affect acceleration measurements significantly. In accordance with the definition, the matrix S is defined as a diagonal matrix with the axes gain terms:
In these embodiments, three (3) unknowns in the axes gain matrix S and three (3) unknowns in the bias error vector μ make a total of six (6) unknowns. Solving for these six unknown quantities in some of these embodiments is performed in some embodiments by taking measurements (e.g., m>=6) at different postures and solving equation (11) in a recursive least squares sense, such as by using a microprocessor in system Define the diagonal matrix Y=S
where A number “m” of vector acceleration measurements f The measured acceleration of gravity g (k) for any given measurement will likely be different from the known value unity (1.00) while the six unknown parameters are being optimized by the procedure described next. Define a parameter vector p holding the six unknowns (can be initialization values or currently-unrefined values) in this process embodiment: Here, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, linearizing equation (15) by chain rule calculus differentiation, and expressing equation (15) directly in terms of changes Δ of measured quantities for an iterative process embodiment based on the gradient ∇g(k) with respect to the unknown parameters p, gives: An equivalent linearized form for an iterative process embodiment that substitutes equation (1A) to intermediately compute components of true acceleration f Rewriting either equation (17) or (17A) in matrix form provides a respective version of: The matrix ∇ In (m×1) column vector Δg, each entry is given by equation (19): and H is the relation matrix (m×6) related to the gradient of gravity and defined by equation (17). Solving equation (18A) yields In a first example, note that each k
In a second example, note that each k The iterative process is programmed and stored, e.g., in flash memory The various parameters initialization for equation (16) is shown in TABLE 1. The final estimates of bias errors μ
Estimation Process I 1. Initialize parameters p according to TABLE 1.
9. If ((Δg Note that the Specified Threshold for step (9) may also be expressed as the product (mε) of the number of measurements m times a small specified amount epsilon ε defining a numerical bound within which the optimizing iterations are to be regarded as having sufficiently approached zero when the estimation process has converged. In Also, step In some embodiments a decision step In due course, sufficiently-diverse measurements f In Further in At completion of step Associated with step The outer loop has a decision step Inequality (23) expresses the convergence criterion that the parameters p should be such that the sum of squares of computed gravity differences relative to unity over all the m measurements should be small (i.e., less than some small configuration value established for the purpose of convergence testing) so that all or almost all the measurements do a good job of measuring the gravitational acceleration components. An alternate method of convergence for all methods is to use (Δp If decision step An experiment was carried out with 12 bit accelerometer KXR94 from Kionix Inc. The accelerometer bias errors and axes gain were initially estimated by obtaining the averaged outputs of the accelerometer in six different precise orientations or postures as discussed in connection with equations (8) and (9). The individual readings (for each orientation) and the computed estimates of parameters using this demanding six-posture method are shown in TABLE 2. Next, according to the more user-convenient process embodiment I, the accelerometer was placed on 14 different and arbitrary postures and the averaged output on each posture at rest was obtained. The individual readings (for each orientation) and the computed estimates of parameters p are shown in TABLE 3 for the more convenient approach of embodiment I taught herein. The convenient approach of embodiment I is user friendly and does not depend on any specific orientation during calibration of accelerometers. A total of six readings at any different orientations is sufficient to obtain a solution for the axes gain and bias errors, however more observations help to refine the estimates. A set of observations drawn from various orientations (spanning 4π steradians of a sphere) is likely to provide better accuracy of estimates.
The estimates of bias errors and axes gain obtained from the demanding six-posture approach of TABLE 2 and the process embodiment I in TABLE 3 were applied to the various measurements at different orientations. The resultant value of gravity vector was computed after applying the bias and scale corrections to the various observations on all three axes. The result is tabulated in TABLE 4 and shows the percentage errors as the magnitude of the difference between unity gravitational acceleration and computed gravitational acceleration based on the measurements.
The results in TABLE 4 show a lower average error magnitude for Process I, with an upper bound of less than 0.3%. The error is higher for the demanding six-posture approach of TABLE 2 since it is difficult to accurately orient the accelerometers in the required six predetermined postures. Not only does Process I accurately measure the magnitude of gravity, but also it accurately measures the X, Y, Z vector components of the gravitational acceleration, as indicated by the close correspondence of the respective values determined for Estimated Bias errors in TABLES 3 and 2 and the close correspondence of the values determined for Estimated Axes gain in TABLES 3 and 2. The work presents a simple procedure to the user to measure bias and axes gain by process I and TABLE 3. It does not put any restriction on orientation and would benefit even ordinary cell phone users to calibrate accelerometers A separate use of Kalman filtering is taught next herein for an alternative process embodiment 1K wherein the accelerometer Step 1K-1. Parameters to be estimated: p=[Yxx, Yyy, Yzz, μ Step 1K-2. Establish an initial uncertainty covariance matrix P The Kalman filter process for the above estimation problem is divided into a Time Update and a Measurement Model: Step 1K-3. In the Time Update the parameters p are propagated from one time instant t to a next time instant t+1, i.e. p Step 1K-4.1. The Measurement Model first determines the value of gravity function g based on a priori estimates of p(=p Step 1K-4.2. The values entered in measurement noise w from accelerometers It may be noted that for white Gaussian process, Δg(k)=1−g(f Step 1K-5. Compute values for a matrix H where H is the Jacobian (a gradient-based matrix) of the function g with respect to the parameters p, i.e., H (k, j)=δg(k)δp (j) is the Jacobian or gradient of the k Step 1K-6. Compute the Kalman Gain as follows: (6×m)=(6×6) (6×m)×[(m×6)(6×6)(6×m)+(m×m)] is the dimensional relation. The Kalman Gain K represents a suitable weighting factor to the measurement update based on the current state uncertainties and measurement uncertainties. Step 1K-7.1. Update the parameters according to the equation:
i.e., (6×1)=(6×1)+(6×m)(m×1). Step 1K-7.2. Update the estimates for the parameters p Step 1K-8.1. Update a matrix capital-P (P matrix) with the measurement as follows: i.e., (6×6)=((6×6)−(6×m)(m×6)) (6×6). Step 1K-8.2. Update the estimates for the parameter covariance matrix P Step 1K-9.1. Generate the sum of squared residues (Δg -
- This sum is a scalar (1×m)(m×1)=(1×1).
Step 1K-9.2. Determine whether the sum of squared residues is less than a threshold value ε pre-established for purposes of convergence testing. If not less, loop back to Step 1K-4.1. The loop is continued until the estimation process converges, as indicated when the sum of squared residues (Δg Step 1K-10. Output the estimates for the parameters p for use in a navigation application. If a navigation application utilizes any other estimates generated by the Kalman filter process, output those other estimates as well. In some embodiments, measurements are time-windowed or grouped according to similar temperature, or both, according to a measurement grouping process. In such cases, the procedure is executed again when appropriate to do so given the type of measurement grouping process as new measurement data comes in over time. Another, second, optimization process embodiment (II) for calibrating accelerometers Equation (11) is expressed as a sum of squares for the kth measurement without square root, and is given by equation (24). Until the calibration is completed, the measured square of the acceleration of gravity g Define the parameter vector p holding the six unknowns (initialization values or current unrefined values) in this process embodiment: Here, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, equation (24) is linearized by chain rule calculus differentiation to become equation (25). Equation (25) is expressed directly in terms of measured quantities multiplied by their differences Δp for an iterative process embodiment free of division operations by g(k). Notice that Δg An equivalent linearized form for an iterative process embodiment that uses equation (1A) to intermediately compute components of true accelerations f Rewriting the linear relationship of either equation (25) or (25A) in matrix form, with the symbolism Δg Matrix H Pre-multiplying both sides of equation (26) with a matrix transpose, i.e., (6×m) matrix H Solving equation (26A) by computationally relatively-convenient (6×6) matrix inversion yields equation (27): The matrix inverse (H Still remaining undetermined at this point are both linearly related vectors—the (m×1) column vector Δg Equation (28) is substituted into equation (27) to yield equation (29): Equation (29) determines Δp, in terms of iteration constant c, the inverted linear relation 0.5(H In concept, the iteration constant c approximately represents a proportion of the distance vector from a given point in multi-dimensional mathematical space (e.g. 6-space) to the target point in that space. The iteration constant c suitably is predetermined to have some value in a range 0<c<2. Choosing a value of iteration constant c that is greater than zero and less than or equal to one generally defines motion in the multidimensional space progressively in the direction of the target without overshooting the target. Choosing a value of iteration constant c that is more than one (1.0) and less than two (2.0) generally defines motion in the multidimensional space that overshoots the target but can ultimately converge on the target by successive hunting that backtracks and overshoots decreasingly. Choosing a value of iteration constant c in the narrower range 0.8<c<1.2 is likely to produce convergence of the estimation process in fewer iterations than choosing a value outside that narrower range. A nominal value for iteration constant c is one (1.0) for rapid convergence, although some development trial and error in choosing a value for iteration constant c may show that some reduction in the number of iterations (and consequent computer time and energy) can be obtained by departing from c=1.0 somewhat. In the electronic processing, one suitably combines the product 0.5 c into one pre-stored constant value c′=0.5c for processing, and the corresponding ranges are wide range 0<c′<1, narrower range 0.4<c<0.6, and a nominal value c′=0.5 in process embodiment II. By contrast, in process embodiment I earlier hereinabove the factor 0.5 of process embodiment II is not present and an iteration factor c is suitably provided in equation (20) in process embodiment I in some versions. Description now returns to give some more detail about the content of (m×6) relation matrix H In a second example, note that each kth row of (m×6) relation matrix H An iterative estimation process embodiment such as one including equations (24)-(29) is programmed for execution on a floating-point or fixed point processor such as in system For gravity-squared process embodiment II, the various parameters initialization is shown in TABLE 1, same as in process embodiment I. The final estimates of bias errors μx, μy, μz and axes gain reciprocals Yxx, Yyy, Yzz are obtained through multiple iterations. The steps for each iteration are as follows and are further described in connection with Estimation Process II 1. Initialize parameters p according to TABLE 1.
(Difference Between Target Value and Measured Value) 5. Compute the matrix H
or use CC Determining that convergence criterion
less than Specified Threshold (CC An alternative convergence criterion for step (8) is given by CC The description of Further in A succeeding step In process embodiment II, for instance, step If the matrix product H The outer loop has a decision step
Inequality (32) expresses the convergence criterion that the parameters p should be such that the sum of squares of differences of computed gravity-squared relative to unity over all the m measurements should be small so that all or almost all the measurements do a good job of measuring the gravitational acceleration components. The convergence test expressed in another way determines a mean of the squares of the departures of g
If decision step Description next turns to a third optimization process embodiment (III) for calibrating accelerometers on-the-fly, which applies measurement matrices for a gradient and a matrix of second partial derivatives to form a parameter change vector Δp for updating parameter estimate p. An optimization function based on the gravity equation has a minimum in 6-dimensional space due to the mathematical form of the optimization function and the gravity equation. FIGS.6A/6C depict process embodiment III at the level of the flow illustration, and the computational procedures are varied in process embodiment III in some ways in a first process form III-A relative to process embodiment II and in a second process form III-B relative to process embodiment I detailed hereinabove. The orientation of each of the postures does not need to be known.
Equation (24) is repeated for clarity here. The measured square of the acceleration of gravity g
that has its minimum when the parameters are such that applying equation (24) to the measurement set produces gravity-squared values very near or at the desired value unity, i.e., when g Here again, parameter vector p does not need to be determined by equations (8) and (9) based on demandingly-precise test orientations. Instead, in process embodiment III, a gradient descent or Newton-Raphson process is included. Conceptually, note that the matrix H
Because Δp does not depend on measurement index k, equation (34.2) is also expressed as follows:
Next, solve for Δp:
For the electronic computations, the process III-A operates using equation (39) later below, evolved from equation (34.4) for the iteration(s). Execute process III-A in the same iterative manner as process II earlier herein above. The gradient ∇F(k) for process III-A is a column vector of first partial derivatives of optimization function F(k) and is given for the kth measurement by partial differentiating equation (33) to obtain equation (35). A convenient approach to set up the equation (35) partial-differentiates by the chain rule—derivative of F(k) in equation (33) with respect to g Notice that the factor (1−g The matrix M(k) of second partial derivatives of the optimization function F(k) is derived by partial differentiation of equation (35) gradient ∇F(k) of the optimization function. To obtain matrix M(k) of second partial derivatives, it is convenient to write down by inspection of equations (24) and (21): The matrix M(k) of second partial derivatives of F(k) that results is given by equation (37): In the first term of equation (37), a matrix ∇g
Now combine equations (34.4), (35), (36), (37) and insert an iteration constant c (e.g., 1.0 or in any range discussed earlier hereinabove) to yield equation (39):
Equation (39) can be compared with process embodiment II equation (27). Notice that the matrix H
This adjustment term adds proportionately few computations and may reduce the number of iterations needed to converge the loop tested by step The various parameters initialization is shown in TABLE 1 for initial calibration. When calibration is being updated, initialization values instead are suitably the most recent values for the calibrated parameters. The final estimates of bias errors μ Description now turns to a process embodiment III-B that is related to process embodiment I. Equation (36) hereinabove relates the gradient of that function of gravity g that is gravity itself in process embodiment I to the gradient of the function g
and then is structured in a manner analogous to embodiment III-A equations herein above, except with “I” suffixes to the equations, as follows. Apply gradient descent or Newton-Raphson. Write the gradient-descent equation (34.4-I) and the gradient of F
Note in obtaining equation (37-I) that
Equation (39-I) for Process Embodiment III-B can be compared with process embodiment 1 equation (20).
Execute process III-B by analogy with the steps of Estimation Process I earlier enumerated earlier hereinabove. (Note that the expression (1/g(k)) is dimensionless since the “1” is in gravity acceleration units, same units as gravity measurement g(k).) The dimensional analysis (physical units analysis) of equations (39) and (39-I) is given by: (param)=[(grav/param) The iteration constant c is experimentally adjusted for fastest convergence, preferably convergence on the first or second iteration. Inspection of the different equation forms (20), (29), (39), and (39-I) suggests that the fastest-convergence value for iteration constant c may vary somewhat from process embodiment to embodiment. Indeed, because the iteration(s) occur in a multi-dimensional mathematical space, there are equally-multiple constants c _{ii }down its main diagonal as there unknowns (e.g., 6) in parameter update vector Δp. Each of the diagonal elements c_{ii }is chosen with a value approximately unity (1), or in a likely range 0.8<c_{ii}<1.2 or substantially in the range 0<c_{ii}<2. This use of such constant elements c_{ii }recognizes that experimentation may show that iterations can be reduced in number on average by adjusting these constant elements c_{ii }independently.
In Notice that A succeeding input step In Operations execute a step A further step In the step It should be evident from the description of Description turns to a fourth optimization process embodiment (IV) for calibrating accelerometers on-the-fly including cross-axes sensitivities and also takes a number “m” measurements indexed k of the squared acceleration of gravity g A sensitivity matrix designated S
Next the sensitivity matrix S
Inspection of the above matrix of ratios in light of the physical symmetry of an accelerometer indicates that matrix of ratios is symmetric. The cross axes ratios can each be interpreted to first-order as (small) direction cosine cos(90°−δ Departure angle δ Departure angle δ Departure angle δ Next, the inverse of the sensitivity matrix is obtained in terms of diagonal matrix Y of equation (13) and the matrix of those ratios found in equations (41) and (42.1), (42.2), (42.3), which is now designated bold-delta δ: With the cross-axes departure angles assumed small, the inverse of the matrix of ratios simply has a minus sign on the departure angles:
Gravity equation (11) is revised using equation (43) to take account of the cross axis angles as follows. Equation (45) in algebraic form (compare to equation (15)) is written:
Equation (45) in effect uses a sum of squares of the different corrected sensor outputs to generate a gravity-squared value for each measurement and equation (45) for gravity takes the square root. For some embodiments, this constitutes a sufficient approximation. Some other embodiments recognize that because the sensors are not perpendicular to one another, the sum of squares of even the true acceleration components measured by each of the sensors departs somewhat from the acceleration being experienced by the platform. Accordingly, equation (45A) can be adjusted in any suitable manner, such as by applying factors (1−δ
Process embodiment IV also establishes an optimization function, such as:
The optimization summand function F A more involved approach to process embodiment IV instead defines parameter vector p Here again, parameter determination does not call for demandingly-precise test orientations. Instead, in process embodiment IV, (either IV-A or IV-B) an iterative process according to embodiments I or IK is applied. For instance, a gradient descent process is applied using iterations wherein the change of parameters equal to minus the inverse of the matrix M
The gradient here is again a column vector of first partial derivatives of optimization function F Column vector H Estimation Process IV-A 0. Execute an estimation process such as I or IK to obtain good estimates of bias errors μ 3. Execute an estimation process such as I or IK to obtain good estimates of departure angles δ Process IV-A generates a set of updated accelerometer calibration parameters by desirably executing sub processes (e.g., step 0 and steps 1-3) to generate different subsets in succession of the accelerometer parameters. 1. Initialize the nine parameters p 3. Execute an estimation process such as I or IK to obtain good estimates of bias errors μ Process IV-B generates a set of updated accelerometer parameters together, and iterations allow interactions between the parameters to be more fully accounted for in getting good values for them. Description now turns to a multi-mode recalibration embodiment of In In Calibration step Accurate parameter estimates of the bias errors and gain errors of a given accelerometer
In equation (49.1), the double-integral performs definite integration twice of the computed actual acceleration with respect to time t, starting with the time t A most recent velocity input v
For greater position accuracy, and to remove the effects of statistical error in various measurements, multiple GPS vector position measurement x In In Step In step Step Various embodiments are used with one or more processors that perform electronic processes on signals representing the accelerometer data and generate processor signals representing recalibrated parameters and corrected acceleration vectors. Processors perform signal processing according to instructions and by actual electronic processes that represent or correspond to the various matrix operations disclosed herein. Memory circuits hold physical representations of instructions and parameters. In various embodiments, the accelerometer In Because of the electronic operations representing matrix operations described earlier hereinabove, a processor with one or more fast multiply-accumulate units provides desirably high performance in some embodiments. Each processor can have a pipeline for high performance and selected from the group consisting of 1) reduced instruction set computing (RISC), 2) digital signal processing (DSP), 3) complex instruction set computing (CISC), 4) superscalar, 5) skewed pipelines, 6) in-order, 7) out-of-order, 8) very long instruction word (VLIW), 9) single instruction multiple data (SIMD), 10) multiple instruction multiple data (MIMD), 11) multiple-core using any one or more of the foregoing, and 12) microcontroller pipelines, control peripherals, and other micro-control blocks using any one or more of the foregoing. Such integrated circuits with processors are depicted in various example forms in In In ASPECTS (See Notes paragraph at end of this Aspects section.) 1A. The electronic circuit claimed in claim 1B. The electronic circuit claimed in claim 7A. The information storage medium claimed in claim 7B. The information storage medium claimed in claim 7C. The information storage medium claimed in claim 7D. The information storage medium claimed in claim 10A. The process claimed in claim 10B. The process claimed in claim 10C. The process claimed in claim 10D. The process claimed in claim 10E. The process claimed in claim 16A. The system claimed in claim 16B. The system claimed in claim 16C. The system claimed in claim 16D. The system claimed in claim Notes: Aspects are paragraphs which might be offered as claims in patent prosecution. The above dependently-written Aspects have leading digits and internal dependency designations to indicate the claims or aspects to which they pertain. Aspects having no internal dependency designations have leading digits and alphanumerics to indicate the position in the ordering of claims at which they might be situated if offered as claims in prosecution. Processing circuitry comprehends digital, analog and mixed signal (digital/analog) integrated circuits, ASIC circuits, PALs, PLAs, decoders, memories, and programmable and nonprogrammable processors, microcontrollers and other circuitry. Internal and external couplings and connections can be ohmic, capacitive, inductive, photonic, and direct or indirect via intervening circuits or otherwise as desirable. Numerical values in the description are illustrative. “Physical representations” herein includes electrical voltages or currents, electrically-, magnetically- or optically-detectable physical alterations, and otherwise detectable physical or electrical alterations or programming. Process diagrams herein are representative of flow diagrams for operations of any embodiments whether of hardware, software, or firmware, and processes of manufacture thereof. Flow diagrams and block diagrams are each interpretable as representing structure and/or process. While this invention has been described with reference to illustrative embodiments, this description is not to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention may be made. The terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description and/or the claims to denote non-exhaustive inclusion in a manner similar to the term “comprising”. The appended claims and their equivalents cover any such embodiments, modifications, and embodiments as fall within the scope of the invention. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |