PRECISION CALIBRATION METHOD OF ATTITUDE MEASURING SYSTEM

20180010923 · 2018-01-11

Assignee

Inventors

Cpc classification

International classification

Abstract

A precision calibration method of attitude measuring systems is provided. The precision calibration method of attitude measuring systems includes the following steps: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer to the attitude measuring system via an ellipsoid fitting model (S1); compensating original data of the accelerometer using a calculated ellipsoid parameter (S2); calibrating an electronic compass via the ellipsoid fitting model according to compensated accelerometer data (S3); compensating original electronic compass data by the calculated ellipsoid parameter (S4); calculating an attitude according to the compensated data of the accelerometer and compensated data of the electronic compass (S5). The above steps of the method have a reliable calibration result and a high precision with a less time consumption of calibration.

Claims

1. A precision calibration method of attitude measuring system wherein, the precision calibration method of attitude measuring system comprises the following steps: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model; compensating original data of the accelerometer using a calculated ellipsoid parameter; calibrating an electronic compass via the ellipsoid fitting model according to compensated accelerometer data; compensating original electronic compass data by the calculated ellipsoid parameter; and calculating an attitude according to the compensated accelerometer data and compensated electronic compass data.

2. The precision calibration method of attitude measuring system of claim 1 wherein, before the step of calibrating the zero-deviation, the scale coefficient, and the non-orthogonal angle between axes of the accelerometer of the attitude measuring system via the ellipsoid fitting model is conducted, the following step is conducted: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer.

3. The precision calibration method of attitude measuring system of claim 2 wherein, after the step of conducting the horizontal calibration on the accelerometer to eliminate the original zero-deviation of the accelerometer is conducted, the following step is conducted: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, and the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

4. The precision calibration method of attitude measuring system of claim 3 wherein, the step of calibrating the zero-deviation, the scale coefficient, and the non-orthogonal angle between axes of the accelerometer of the attitude measuring system via the ellipsoid fitting model further comprises the following steps: setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T; setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1; if times of collection of the three-axis data of the accelerometer does not reach n, updating a matrix S using newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k; after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7 splitting the matrix S into blocks: D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ] calculating the ellipsoid fitting vector by the following equations:
C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1
α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1; after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T; furthermore, with reference to an actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations: A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y σ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

5. The precision calibration method of attitude measuring system of claim 4 wherein, after the step of calibrating the zero-deviation, the scale coefficient, and the non-orthogonal angle between axes of the accelerometer of the attitude measuring system via the ellipsoid fitting model is conducted, the following step is conducted: after new accelerometer data is collected, correcting newly collected data using the ellipsoid parameter.

6. The precision calibration method of attitude measuring system of claim 5 wherein, the step of calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps: setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T; collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T; setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1 H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, wherein S1=D1.sup.TD1; if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k; after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7 splitting the matrix S into blocks: D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ] calculating the ellipsoid fitting vector by the following equations:
C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1
α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1; after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T; furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations: A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y σ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

7. The precision calibration method of attitude measuring system of claim 6 wherein, after the step of calibrating the electronic compass according to the compensated accelerometer data via the ellipsoid fitting model is conducted, the following step is conducted: after new electronic compass data is collected, correcting the newly collected data using the ellipsoid parameter.

8. The precision calibration method of attitude measuring system of claim 7 wherein, after the step of calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data is conducted, the following step is conducted: updating the ellipsoid parameter by the electronic compass using measured data during a measuring process, so as to enhance a precision of the ellipsoid parameter.

9. The precision calibration method of attitude measuring system of claim 8 wherein, before the step of updating the ellipsoid parameter by the electronic compass using the measured data during the measuring process so as to enhance the precision of the ellipsoid parameter is conducted, the following step is conducted: removing a hopped calculation point from the collected electronic compass data by means of a statistical rule.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0037] In order to clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the embodiments are briefly introduced as follows. Obviously, the drawings described below are only some embodiments of the present invention. For a person of ordinary skill in the art, other drawings can also be derived without making creative efforts.

[0038] FIG. 1 is a flow chart of embodiment 1 of the precision calibration method of attitude measuring system of the present invention;

[0039] FIG. 2 is a flow chart of embodiment 2 of the precision calibration method of attitude measuring system of the present invention;

[0040] FIG. 3 is a flow chart of embodiment 3 of the precision calibration method of attitude measuring system of the present invention;

[0041] FIG. 4 is a flow chart of embodiment 4 of the precision calibration method of attitude measuring system of the present invention;

[0042] FIG. 5 is a flow chart of embodiment 5 of the precision calibration method of attitude measuring system of the present invention;

[0043] FIG. 6 is a flow chart of embodiment 6 of the precision calibration method of attitude measuring system of the present invention;

[0044] FIG. 7 is a flow chart embodiment 7 of the precision calibration method of attitude measuring system of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0045] Hereinafter, technical solutions of embodiments of the present invention are clearly and completely described with reference to drawings of embodiments of the present invention. Obviously, the described embodiments are only some of the embodiments of the present invention rather than all of them. Based on the embodiments of the present invention, all other embodiments derived by a person of ordinary skill in the art without making creative efforts fall within the protective scope of the present invention.

Embodiment 1

[0046] As shown in FIG. 1, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0047] Step S1: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0048] In the Step S1: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps:

[0049] setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0050] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0051] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein


S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0052] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00007] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0053] splitting the matrix S into blocks:

[00008] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1

[0054] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0055] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00009] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol .Math. .Math. ( A ( B T .Math. AB - n ) ) .

[0056] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0057] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0058] conducting LU decomposition on A, namely, A=LU;

[0059] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0060] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0061] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0062] Step S2: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0063] Step S3: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0064] In the Step S3: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0065] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0066] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0067] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0068] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0069] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00010] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0070] splitting the matrix S into blocks:

[00011] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0071] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0072] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00012] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0073] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculating, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0074] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0075] conducting LU decomposition on A, namely, A=LU;

[0076] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0077] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0078] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0079] Step S4: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0080] Step S5: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

Embodiment 2

[0081] As shown in FIG. 2, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0082] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0083] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0084] Step S2: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0085] In the step S2: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further includes the following steps:

[0086] setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0087] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0088] if times of collection of the three-axis data of the accelerometer does not reach n yet, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0089] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00013] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0090] splitting the matrix S into blocks:

[00014] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0091] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0092] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00015] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0093] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0094] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, setting an iteration precision ε=1e.sup.−6 is set;

[0095] conducting LU decomposition on A, namely, A=LU;

[0096] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0097] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0098] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0099] Step S3: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0100] Step S4: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0101] In the Step S4: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0102] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0103] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0104] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0105] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0106] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00016] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0107] splitting the matrix S into blocks:

[00017] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0108] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0109] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00018] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0110] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0111] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0112] conducting LU decomposition on A, namely, A=LU;

[0113] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0114] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0115] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0116] Step S5: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0117] Step S6: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

Embodiment 3

[0118] As shown in FIG. 3, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0119] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0120] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0121] Step S2: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

[0122] Step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0123] In the step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps:

[0124] setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0125] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0126] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0127] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00019] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0128] splitting the matrix S into blocks:

[00020] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0129] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0130] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00021] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0131] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculated the maximum eigenvector. The inverse power-method is taken as an example:

[0132] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0133] conducting LU decomposition on A, namely, A=LU;

[0134] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0135] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0136] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0137] Step S4: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0138] Step S5: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0139] In the Step S5: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0140] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0141] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0142] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0143] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0144] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00022] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0145] splitting the matrix S into blocks:

[00023] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0146] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0147] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00024] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0148] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0149] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0150] conducting LU decomposition on A, namely, A=LU;

[0151] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0152] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k), otherwise k=k+1, and continues the calculation.

[0153] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0154] Step S6: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0155] Step S7: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

Embodiment 4

[0156] As shown in FIG. 4, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0157] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0158] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0159] Step S2: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

[0160] Step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0161] In the step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps:

[0162] setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0163] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0164] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0165] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00025] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0166] splitting the matrix S into blocks:

[00026] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0167] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0168] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00027] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0169] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0170] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0171] conducting LU decomposition on A, namely, A=LU;

[0172] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0173] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0174] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0175] Step S4: after the new accelerometer data is collected, correcting the newly collected data by the ellipsoid parameter.

[0176] Step S5: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0177] Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0178] In the Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0179] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0180] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0181] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0182] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0183] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00028] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0184] splitting the matrix S into blocks:


D.sub.k=[D.sub.1D.sub.2]

[00029] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0185] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0186] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00030] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0187] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0188] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0189] conducting LU decomposition on A, namely, A=LU;

[0190] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0191] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0192] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0193] Step S7: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0194] Step S8: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

Embodiment 5

[0195] As shown in FIG. 5, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0196] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0197] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0198] Step S2: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

[0199] Step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0200] In the step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps:

[0201] setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0202] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0203] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0204] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00031] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0205] splitting the matrix S into blocks:

[00032] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0206] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0207] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00033] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0208] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0209] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0210] conducting LU decomposition on A, namely, A=LU;

[0211] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0212] if |m.sub.k−m.sub.k.sup.−1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0213] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0214] Step S4: after the new accelerometer data is collected, correcting the newly collected data by the ellipsoid parameter.

[0215] Step S5: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0216] Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0217] In the Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0218] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0219] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0220] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1] collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0221] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0222] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00034] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0223] splitting the matrix S into blocks:

[00035] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0224] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0225] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00036] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0226] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0227] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0228] conducting LU decomposition for A, namely, A=LU;

[0229] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0230] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0231] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0232] Step S7: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0233] Step S8: after the new electronic compass data is collected, correcting the newly collected data by the ellipsoid parameter.

[0234] Step S9: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

Embodiment 6

[0235] As shown in FIG. 6, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0236] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0237] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0238] Step S2: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

[0239] Step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0240] In the step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps: setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0241] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0242] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0243] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00037] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0244] splitting the matrix S into blocks:


D.sub.k=[D.sub.1D.sub.2]

[00038] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0245] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0246] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00039] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y δ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0247] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues don't need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector The inverse power-method is taken as an example:

[0248] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0249] conducting LU decomposition on A, namely, A=LU;

[0250] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0251] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration and to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0252] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0253] Step S4: after the new accelerometer data is collected, correcting the newly collected data by the ellipsoid parameter.

[0254] Step S5: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0255] Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0256] In the Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0257] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0258] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0259] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z1].sup.T collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0260] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0261] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00040] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0262] splitting the matrix S into blocks:

[00041] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0263] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0264] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00042] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y σ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0265] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0266] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is set;

[0267] conducting LU decomposition on A, namely, A=LU;

[0268] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0269] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration and to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0270] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0271] Step S7: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0272] Step S8: after the new electronic compass data is collected, correcting the newly collected data by the ellipsoid parameter.

[0273] Step S9: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

[0274] Step S10: updating the ellipsoid parameter using the measured date during the measuring process of the electronic compass, so as to enhance the accuracy of the ellipsoid parameter.

Embodiment 7

[0275] As shown in FIG. 7, a precision calibration method of attitude measuring system is provided. The precision calibration method of attitude measuring system includes the following steps:

[0276] Step S1: conducting a horizontal calibration on the accelerometer to eliminate an original zero-deviation of the accelerometer;

[0277] adjusting the attitude measurement apparatus to a horizontal position by a level bubble, and conducting a horizontal calibration on the accelerometer to eliminate the zero-deviation of the accelerometer.

[0278] Step S2: collecting three-axis data of the accelerometer in a period of time, wherein the three-axis data is recorded as [A.sub.x0, A.sub.y0, A.sub.z0].sup.T, the zero-deviation is recorded as B=[A.sub.x0, A.sub.y0, A.sub.z0].sup.T−[0 0 g].sup.T.

[0279] Step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model;

[0280] In the step S3: calibrating a zero-deviation, a scale coefficient, and a non-orthogonal angle between axes of an accelerometer of the attitude measuring system via an ellipsoid fitting model further comprises the following steps: setting a fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0281] setting a calibration iteration number as n, expanding a first value [A.sub.x0, A.sub.y0, A.sub.z0].sup.T collected from the accelerometer to a ten-dimensional column vector D1, and calculating a matrix S1, wherein the D1 is recorded as D1=[A.sub.x1.sup.2 A.sub.y1.sup.2 A.sub.z1.sup.2 A.sub.x1A.sub.y1 A.sub.x1A.sub.z1 A.sub.y1A.sub.z1 A.sub.x1 A.sub.y1 A.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0282] if times of collection of the three-axis data of the accelerometer do not reach n, updating a matrix S using the newly collected accelerometer data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0283] after the matrix S is calculated, introducing an ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00043] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0284] splitting the matrix S into blocks:

[00044] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0285] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0286] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00045] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y σ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0287] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0288] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, and an iteration precision ε=1e.sup.−6 is taken;

[0289] conducting LU decomposition on A, namely, A=LU;

[0290] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0291] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, continuing the calculation.

[0292] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0293] Step S4: after the new accelerometer data is collected, correcting the newly collected data by the ellipsoid parameter.

[0294] Step S5: compensating the original accelerometer data by the calculated ellipsoid parameter.

[0295] Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data;

[0296] In the Step S6: calibrating the electronic compass via the ellipsoid fitting model according to the compensated accelerometer data further comprises the following steps:

[0297] setting the fitting ellipsoid parameter vector recorded as α=[a b c d e f k l m n].sup.T;

[0298] collecting the three-axis data of the electronic compass in a period of time, and conducting an operation anti-overflow treatment on the collected data, wherein the three-axis data is recorded as [H.sub.x0 H.sub.y0 H.sub.z0].sup.T;

[0299] setting the calibration iteration number as n, expanding a first value [H.sub.x1, H.sub.y1, H.sub.z] collected from the electronic compass to a ten-dimensional column vector D1, calculating a matrix S1, wherein the D1 is recorded as D1=[H.sub.x1.sup.2 H.sub.y1.sup.2 H.sub.z1.sup.2 H.sub.x1H.sub.y1 H.sub.x1H.sub.z1 H.sub.y1H.sub.z1 H.sub.x1 H.sub.y1 H.sub.z1 1].sup.T, S1=D1.sup.TD1;

[0300] if times of collection of the three-axis data of the electronic compass do not reach n, updating the matrix S using the newly collected compass data D.sub.k, wherein S.sub.k=S.sub.k-1+D.sub.k.sup.TD.sub.k;

[0301] after the matrix S is calculated, introducing the ellipsoid restriction matrix C and splitting the matrix S into blocks at the same time, wherein

[00046] C = [ C 1 C 2 C 3 C 4 ] , C 1 = [ 0 0 2 0 - 1 0 2 0 0 ] C 2 = 0 3 × 7 , C 3 = 0 7 × 3 , C 4 = 0 7 × 7

[0302] splitting the matrix S into blocks:

[00047] D k = [ D 1 D 2 ] D 1 = [ A x .Math. .Math. 1 2 A y .Math. .Math. 1 2 A z .Math. .Math. 1 2 ] D 2 = [ A x .Math. .Math. 1 .Math. A y .Math. .Math. 1 A y .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 .Math. A z .Math. .Math. 1 A x .Math. .Math. 1 A y .Math. .Math. 1 A z .Math. .Math. 1 1 ] S = D k T .Math. D k = [ D 1 T .Math. D 1 D 1 T .Math. D 2 D 2 T .Math. D 1 D 2 T .Math. D 2 ] = [ S 1 S 2 S 3 S 4 ]

calculating the ellipsoid fitting vector by the following equations:


C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)α.sub.1=λα.sub.1


α.sub.2=−S.sub.4.sup.−1S.sub.2.sup.Tα.sub.1;

[0303] after α.sub.1 is calculated, calculating α.sub.2 by the above equations, such that each parameter of the ellipsoid fitting vector is calculated, wherein α=[α.sub.1 α.sub.2]=[a b c d e f k l m n].sup.T;

[0304] furthermore, with reference to the actual physical correspondence, the three-axis scale coefficients k.sub.x,k.sub.y,k.sub.z, the non-orthogonal angles between axes δ.sub.xy,δ.sub.yz,δ.sub.xz, and the residual zero-deviations b.sub.x,b.sub.y,b.sub.z can be calculated by the following equations:

[00048] A = [ a d e d b f e f c ] B = [ b x b y b z ] = A - 1 [ k l m ] A e = [ k x δ xy δ xz 0 k y σ yz 0 0 k z ] = chol ( A ( B T .Math. AB - n ) ) .

[0305] In the above equations, α.sub.1 is an eigenvector corresponding to the maximum eigenvalue of the matrix C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T). Thus, in the practical calculation, not all eigenvalues and eigenvectors need to be calculated. Even the eigenvalues do not need to be calculated. Only a power-method or an inverse power-method is needed to calculate the maximum eigenvector. The inverse power-method is taken as an example:

[0306] Providing that A=(C.sub.1.sup.−1(S.sub.1−S.sub.2S.sub.4.sup.−1S.sub.2.sup.T)).sup.−1, an initial iteration vector u=[1 1 1].sup.T is taken, an iteration precision ε=1e.sup.−6 is set;

[0307] conducting LU decomposition on A, namely, A=LU;

[0308] solving the linear equations set:


Ly.sup.(k)=u.sup.(k-1), Uv.sup.(k)=y.sup.(k)


m.sub.k=max(v.sup.(k)), u.sup.(k)=v.sup.(k)/m.sub.k

[0309] if |m.sub.k−m.sub.k-1|<ε, jumping out of the iteration to stop the calculation, wherein α.sub.1=u.sup.(k); otherwise, k=k+1, and continuing the calculation.

[0310] Generally speaking, with regard to ε=1e.sup.−6, less than 5 iterations of the iterative calculation can achieve this precision.

[0311] Step S7: compensating the original data of the electronic compass by the calculated ellipsoid parameter.

[0312] Step S8: after the new electronic compass data is collected, correcting the newly collected data by the ellipsoid parameter.

[0313] Step S9: calculating the attitude according to the compensated accelerometer data and the compensated electronic compass data.

[0314] Step S10: removing the hopped calculation point in the collected electronic compass by means of a statistical rule.

[0315] Step S11: updating the ellipsoid parameter using the measured date during the measuring process of the electronic compass, so as to enhance the accuracy of the ellipsoid parameter.

[0316] The advantages of the present invention are as below. The method of ellipsoid fitting is used to calibrate the electronic compass and the acceleration in the attitude measuring system. Thus, the problems of accidental output abnormality of the sensor and hops are effectively avoided, such that the reliability of calibration result is effectively ensured. The recursive processing is conducted in the ellipsoid fitting algorithm such that the internal CPU of the attitude measuring system does not need to store the data of all points previously collected by the sensor during the data processing. Only the matrix previously obtained by recurrence and the current measurement result are required to be stored. Therefore, under the same hardware environment, the ellipsoid fitting method can handle more values, thereby improving the precision of the ellipsoid fitting. Correspondingly, when the conventional fitting algorithm is used, in order to ensure that the memory stack does not overflow during the operation process, the CPU can only conduct the fitting operation based on a few sample points. As a result, the fitting precision is limited. The present invention improved a large-scale of matrix operation in the ellipsoid fitting algorithm, and optimized the calculation procedure, such that the calculation of the ellipsoid fitting is reduced by over 90 percent. Taking the MATLAB program as an example, based on the conventional algorithm, operating the fitting algorithm one time would consume 563 ms. In contrast, the improved algorithm only consumes 14 ms. The strategy in which the measured data is used for calibrating is employed, such that the fault-tolerant capability of the calibration is improved. Thus, the requirement of initial calibration is reduced, and the operation complexity for the user is simplified.

[0317] The above mentioned is only the specific embodiment of the present invention. However, the protective scope of the present invention is not limited herein. The artisans familiar with the technical field can come up with a variation or replacement readily within the disclosed scope, which are all supposed to fall within the protective scope of the present invention. Thus, the protection scope of the present invention shall be subject to the protection scope of the appended claims.