Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

accelcal

Parámetros de calibración del acelerómetro.

Desde R2023b

Descripción

[A,b] = accelcal(D) devuelve la matriz A y el vector b utilizados para corregir mediciones del acelerómetro no calibradas basadas en los datos de calibración D

Después de obtener A y b, obtenga los datos calibrados C a partir de datos no calibrados U usando C = U* A + b, donde U es una matriz M por 3 y cada fila de U es una medida de acelerómetro no calibrada.

ejemplo

[A,b] = accelcal(XUP,XDOWN,YUP,YDOWN,ZUP,ZDOWN) especifica los datos de medición en seis orientaciones de calibración como se muestra en Orientaciones de calibración del acelerómetro.

[A,b] = accelcal(___,Gravity=g) especifica el valor de la constante de gravedad de la Tierra g.

Ejemplos

contraer todo

Cree un objeto imuSensor para generar datos de medición. De forma predeterminada, el marco de referencia del objeto es el marco noreste abajo (NED). Especifique los parámetros del acelerómetro para que las mediciones contengan una polarización constante y algo de ruido aleatorio.

accelParams =  accelparams(ConstantBias=[.1 .2 -.1],...
    NoiseDensity=1e-2*ones(1,3));
imu = imuSensor(Accelerometer=accelParams);
disp(imu.ReferenceFrame)
NED

Defina los ángulos de Euler para seis orientaciones de calibración y conviértalos en cuaterniones.

orients = [...
    0 90 0 % xUp
    0 0 -90 % yUp
    0 180 0 % zUp
    0 -90 0 % xDown 
    0 0 90 % yDown    
    0 0 0]; % zDown
quats = quaternion(orients,"eulerd","ZYX","frame");
N = numel(quats);

Suponga que las aceleraciones externas y las velocidades angulares son ambas 0. Simule el sensor IMU para obtener las mediciones de calibración.

exAcc = zeros(N,3);
angVel = zeros(N,3);
D = imu(exAcc,angVel,quats)
D = 6×3

   -9.6490    0.2225   -0.1925
    0.0146   -9.5593    0.0153
   -0.0210    0.1928   -9.9271
    9.9363    0.1840   -0.0210
    0.0008    9.9094   -0.0655
    0.2828    0.1528    9.7232

Utilice la función accelcal para obtener los parámetros de calibración.

[A,b] = accelcal(D)
A = 3×3

    1.0018    0.0019   -0.0087
    0.0006    1.0078    0.0041
   -0.0154    0.0020    0.9986

b = 1×3

   -0.0956   -0.1852    0.0779

Verifique los parámetros de calibración utilizando las mediciones de calibración.

DCali = D*A+b
DCali = 6×3

   -9.7587    0.0199   -0.0298
   -0.0872   -9.8187    0.0534
    0.0365   -0.0111   -9.8339
    9.8589    0.0196   -0.0284
   -0.0875    9.8012    0.0535
    0.0380   -0.0109    9.7852

Cree algunas orientaciones aleatorias, obtenga las medidas del acelerómetro y calibre las medidas.

M = 10;
randomQuats = randrot(M,1);
U = imu(zeros(M,3),zeros(M,3),randomQuats);
C = U*A+b
C = 10×3

    9.1400    3.5374   -1.3008
   -7.1185   -6.8126   -0.7088
    7.1372   -6.8065   -0.5943
   -7.9362    1.5605    5.6203
    7.4397   -2.3143   -6.2363
    7.0758   -4.0794   -5.7321
    3.1250   -5.4306    7.2655
    0.8261   -9.7286    1.3509
    0.8486    2.8606   -9.2705
   -2.4922    8.5000   -3.9532

Argumentos de entrada

contraer todo

Mediciones en las seis orientaciones de calibración del acelerómetro, especificadas como una matriz N-por-3. N es el número total de mediciones. Cada fila de la matriz es una medición en una de las seis orientaciones de calibración del acelerómetro, como se muestra en Orientaciones de calibración del acelerómetro. Para obtener mejores resultados, la matriz debe contener el mismo número de mediciones para las seis orientaciones.

Al interpretar los datos en D, la función por defecto asume que la constante de gravedad de la Tierra g es 9.81m/s2 o 1, lo que esté más cerca de la media de la norma de los datos.

Tipos de datos: single | double

Mediciones en la orientación x-arriba del acelerómetro, especificadas como una matriz N 1 por 3. N 1 es el número total de mediciones x-up. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación x-arriba.

Tipos de datos: single | double

Mediciones en la orientación x-abajo del acelerómetro, especificadas como una matriz N 2 por 3. N 2 es el número total de mediciones x-down. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación x-abajo.

Tipos de datos: single | double

Mediciones en la orientación y arriba del acelerómetro, especificadas como una matriz N 3 por 3. N 3 es el número total de mediciones y-up. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación y-arriba.

Tipos de datos: single | double

Mediciones en la orientación y hacia abajo del acelerómetro, especificadas como una matriz N de 4 por 3. N 4 es el número total de mediciones y-down. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación y hacia abajo.

Tipos de datos: single | double

Mediciones en la orientación z-arriba del acelerómetro, especificadas como una matriz N de 5 por 3. N 5 es el número total de mediciones z-up. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación z-arriba.

Tipos de datos: single | double

Mediciones en la orientación z-abajo del acelerómetro, especificadas como una matriz N 6 por 3. N 6 es el número total de mediciones z-down. Cada fila de la matriz es una medida del acelerómetro. Consulte la sección Orientaciones de calibración del acelerómetro para conocer la definición de la orientación z-abajo.

Tipos de datos: single | double

Constante de gravedad terrestre, especificada como un escalar positivo. Si no especifica este argumento, la función asume que la constante de gravedad de la Tierra g es 9,81 m/s2 o 1, lo que esté más cerca de la media de la norma de los datos en D.

Ejemplo: 9.807

Tipos de datos: single | double

Argumentos de salida

contraer todo

Matriz de calibración, devuelta como una matriz de 3 por 3.

Tipos de datos: single | double

Vector de compensación de calibración, devuelto como un vector de 1 por 3.

Tipos de datos: single | double

Más acerca de

contraer todo

Orientaciones de calibración del acelerómetro

Para obtener los datos de medición para calibrar el acelerador, alinee la orientación del marco de medición del acelerómetro (X-Y-Z) con una de las seis orientaciones que se muestran en este diagrama. Por ejemplo, para obtener una medición x-arriba, alinee la dirección X positiva del marco de medición del acelerador en la dirección opuesta a la fuerza de gravedad, como se muestra en la primera figura.

Six calibration orientations

Si el acelerómetro no tiene ningún error de calibración y su marco de medición está perfectamente alineado como se muestra en la figura, puedes obtener mediciones ideales en esta tabla.

OrientaciónaXaYaZ
X-arriba-g00
X-Abajo+g00
0-g0
Y-abajo0+g0
Z-arriba00-g
Z-Abajo00+g

En la tabla, a X , a Y y a Z son los componentes de aceleración X, Y y Z. , respectivamente. g es la constante de gravedad local de la Tierra.

Referencias

Historial de versiones

Introducido en R2023b

Consulte también

| |