Contenido principal

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 las mediciones del acelerómetro no calibradas en función de los datos de calibración D.

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

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 asume por defecto 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.

Tipos de datos: single | double

Medidas en la orientación x-up del acelerómetro, especificadas como una matriz N1 por 3. N1 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 obtener la definición de la orientación x-up.

Tipos de datos: single | double

Mediciones en la orientación x hacia abajo del acelerómetro, especificadas como una matriz N2 por 3. N2 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 obtener la definición de la orientación x hacia abajo.

Tipos de datos: single | double

Mediciones en la orientación y hacia arriba del acelerómetro, especificadas como una matriz N3 por 3. N3 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 obtener la definición de la orientación y hacia arriba.

Tipos de datos: single | double

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

Tipos de datos: single | double

Mediciones en la orientación z-up del acelerómetro, especificadas como una matriz N5 por 3. N5 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 obtener la definición de la orientación z-up.

Tipos de datos: single | double

Mediciones en la orientación z hacia abajo del acelerómetro, especificadas como una matriz N6 por 3. N6 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 obtener la definición de la orientación z hacia 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

Referencias

Historial de versiones

Introducido en R2023b

Consulte también

| |