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.

magcal

Coeficientes de calibración del magnetómetro

Descripción

ejemplo

[A,b,expmfs] = magcal(D) devuelve los coeficientes necesarios para corregir los datos del magnetómetro no calibrados D.

Para producir los datos del magnetómetro calibrado C, use la ecuación C = (D-b)*A. Los datos calibrados C se encuentran en una esfera de radio expmfs.

[A,b,expmfs] = magcal(D,fitkind) restringe la matriz A para que sea del tipo especificado por fitkind. Utilice esta sintaxis cuando sólo sea necesario corregir el efecto de hierro blando o duro.

Ejemplos

contraer todo

Genere datos de magnetómetro no calibrados que se encuentran en un elipsoide.

c = [-50; 20; 100]; % Ellipsoid center
r = [30; 20; 50]; % Semiaxis radii

[x,y,z] = ellipsoid(c(1),c(2),c(3),r(1),r(2),r(3),20);
D = [x(:),y(:),z(:)];

Corrija los datos del magnetómetro para que queden sobre una esfera. La opción para la calibración está configurada de forma predeterminada en "automática".

[A,b,expmfs] = magcal(D); % Calibration coefficients
expmfs % Display the expected magnetic field strength in uT
expmfs = 31.0723
C = (D-b)*A; % Calibrated data

Visualice los datos del magnetómetro calibrado y no calibrado.

figure(1)
plot3(x(:),y(:),z(:),"LineStyle","none","Marker","X","MarkerSize",8)
hold on
grid(gca,"on")
plot3(C(:,1),C(:,2),C(:,3),"LineStyle","none","Marker","o", ...
      "MarkerSize",8,"MarkerFaceColor","r")
axis equal
xlabel("uT")
ylabel("uT")
zlabel("uT")
legend("Uncalibrated Samples","Calibrated Samples","Location","southoutside")
title("Uncalibrated vs Calibrated" + newline + "Magnetometer Measurements")
hold off

Figure contains an axes object. The axes object with title Uncalibrated vs Calibrated Magnetometer Measurements, xlabel uT, ylabel uT contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Uncalibrated Samples, Calibrated Samples.

Argumentos de entrada

contraer todo

Matriz de entrada de datos sin procesar del magnetómetro, especificada como una matriz N por 3. Cada columna de la matriz corresponde a las mediciones del magnetómetro en el primer, segundo y tercer eje, respectivamente. Cada fila de la matriz corresponde a una única medición de tres ejes.

Tipos de datos: single | double

Tipo de matriz para salida A. El tipo de matriz de A se puede restringir a:

  • 'eye' – matriz de identidad

  • 'diag' – diagonal

  • 'sym' – simétrico

  • 'auto' – cualquiera de las opciones anteriores se ajuste mejor

Argumentos de salida

contraer todo

Matriz de corrección para el efecto de hierro dulce, devuelta como una matriz de 3 por 3.

Vector de corrección para el efecto de hierro duro, devuelto como un arreglo de 3 por 1.

Fuerza del campo magnético esperada, devuelta como un escalar.

Más acerca de

contraer todo

Efectos de hierro blando y duro

Debido a que un magnetómetro generalmente gira en un rango completo de rotación tridimensional, las mediciones ideales de un magnetómetro deberían formar una esfera perfecta centrada en el origen si el campo magnético no se perturba. Sin embargo, debido a los campos magnéticos distorsionantes de la placa de circuito del sensor y el entorno circundante, las mediciones magnéticas esféricas pueden verse perturbadas. En general, existen dos efectos.

  1. El efecto de hierro dulce se describe como la distorsión del elipsoide desde una esfera y la inclinación del elipsoide, como se muestra en la figura de la izquierda. Este efecto es causado por perturbaciones que influyen en el campo magnético pero que pueden no generar su propio campo magnético. Por ejemplo, metales como el níquel y el hierro pueden provocar este tipo de distorsión.

  2. El efecto de hierro duro se describe como el desplazamiento del centro del elipsoide desde el origen. Este efecto es producido por materiales que exhiben un campo aditivo constante al campo magnético terrestre. Esta compensación aditiva constante se suma al efecto de hierro dulce, como se muestra en la figura de la derecha.

Soft and Hard-Iron Effects

El algoritmo subyacente en magcal determina el elipsoide que mejor se ajusta a las lecturas sin procesar del sensor e intenta "invertir" el elipsoide para producir una esfera. El objetivo es generar una matriz de corrección A para tener en cuenta el efecto de hierro dulce y un vector b para tener en cuenta el efecto de hierro duro. Las tres opciones de salida, 'eye', 'diag' y 'sym' corresponden a tres algoritmos de resolución de parámetros, y la opción 'auto' elige entre estas tres opciones para ofrecer el mejor ajuste.

Referencias

[1] Ozyagcilar, T. "Calibrating an eCompass in the Presence of Hard and Soft-iron Interference." Freescale Semiconductor Ltd. 1992, pp. 1-17.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019a

expandir todo

Consulte también

Clases

Objetos