accelcal
Sintaxis
Descripción
[
devuelve la matriz A
,b
] = accelcal(D
)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.
Ejemplos
Calibrar mediciones del acelerómetro
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
D
— Mediciones en seis orientaciones de calibración.
N-por-3 matriz
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
XUP
— Medidas en orientación x-arriba
N Matriz de 1 por 3
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
XDOWN
— Medidas con orientación x-abajo
N Matriz de 2 por 3
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
YUP
— Medidas en orientación y-arriba.
N Matriz de 3 por 3
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
YDOWN
— Medidas con orientación y hacia abajo
N Matriz de 4 por 3
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
ZUP
— Medidas con orientación z-arriba
N Matriz de 5 por 3
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
ZDOWN
— Medidas con orientación z-abajo
N Matriz de 6 por 3
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
g
— Constante de gravedad terrestre
escalar positivo
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
A
— Matriz de calibración
Matriz de 3 por 3
Matriz de calibración, devuelta como una matriz de 3 por 3.
Tipos de datos: single
| double
b
— Vector de compensación de calibración
Vector de 1 por 3
Vector de compensación de calibración, devuelto como un vector de 1 por 3.
Tipos de datos: single
| double
Más acerca de
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.
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ón | aX | aY | aZ |
---|---|---|---|
X-arriba | -g | 0 | 0 |
X-Abajo | +g | 0 | 0 |
Sí | 0 | -g | 0 |
Y-abajo | 0 | +g | 0 |
Z-arriba | 0 | 0 | -g |
Z-Abajo | 0 | 0 | +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
[1] AN4508 Application Note: Parameters and Calibration of a Low-G 3-Axis Accelerometer.
Historial de versiones
Introducido en R2023b
Consulte también
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)