Calibración del magnetómetro - MATLAB & Simulink - MathWorks América Latina (2024)

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

Abrir script

Los magnetómetros detectan la intensidad del campo magnético a lo largo de los ejes X, Y y Z de un sensor. Las mediciones precisas del campo magnético son esenciales para la fusión de sensores y la determinación del rumbo y la orientación.

Para que sean útiles para el cálculo de rumbo y orientación, los magnetómetros MEMS típicos de bajo coste deben calibrarse para compensar el ruido ambiental y los defectos de fabricación.

Magnetómetros ideales

Un magnetómetro de tres ejes ideal mide la intensidad del campo magnético a lo largo de los ejes ortogonales X, Y y Z. En ausencia de interferencia magnética, las lecturas del magnetómetro miden el campo magnético de la Tierra. Si las mediciones del magnetómetro se toman mientras el sensor gira en todas las orientaciones posibles, las mediciones deben estar en una esfera. El radio de la esfera es la intensidad del campo magnético.

Para generar muestras de campo magnético, utilice el objeto imuSensor . Para estos propósitos, es seguro asumir que la velocidad angular y la aceleración son cero en cada orientación.

N = 500;rng(1);acc = zeros(N,3);av = zeros(N,3);q = randrot(N,1); % uniformly distributed random rotationsimu = imuSensor('accel-mag');[~,x] = imu(acc,av,q);scatter3(x(:,1),x(:,2),x(:,3));axis equaltitle('Ideal Magnetometer Data');

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (1)

Efectos de hierro duro

Las fuentes de ruido y los defectos de fabricación degradan la medición de un magnetómetro. Los más llamativos son los efectos del hierro duro. Los efectos del hierro duro son fuentes estacionarias de ruido magnético perturbador. A menudo, estos provienen de otros objetos metálicos que se encuentran en la placa de circuito del magnetómetro. Los efectos del hierro duro desplazan el origen de la esfera ideal.

imu.Magnetometer.ConstantBias = [2 10 40];[~,x] = imu(acc,av,q);figure;scatter3(x(:,1),x(:,2),x(:,3));axis equaltitle('Magnetometer Data With a Hard Iron Offset');

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (2)

Efectos de hierro dulce

Los efectos del hierro dulce son más sutiles. Surgen de objetos cercanos al sensor que distorsionan el campo magnético circundante. Estos tienen el efecto de estirar e inclinar la esfera de medidas ideales. Las medidas resultantes se encuentran en un elipsoide.

Los efectos del campo magnético del hierro dulce se pueden simular girando el vector del campo geomagnético de la IMU hacia el marco del sensor, estirándolo y luego girándolo nuevamente al marco global.

nedmf = imu.MagneticField;Rsoft = [2.5 0.3 0.5; 0.3 2 .2; 0.5 0.2 3];soft = rotateframe(conj(q),rotateframe(q,nedmf)*Rsoft);for ii=1:numel(q) imu.MagneticField = soft(ii,:); [~,x(ii,:)] = imu(acc(ii,:),av(ii,:),q(ii));endfigure;scatter3(x(:,1),x(:,2),x(:,3));axis equaltitle('Magnetometer Data With Hard and Soft Iron Effects');

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (3)

Técnica de corrección

La función magcal se puede utilizar para determinar los parámetros de calibración del magnetómetro que tienen en cuenta los efectos del hierro duro y blando. Los datos del magnetómetro no calibrados se pueden modelar como si estuvieran sobre un elipsoide con la ecuación

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (4)

En esta ecuación, R es una matriz de 3 por 3, b es un vector de 1 por 3 que define el centro del elipsoide, x es un vector de 1 por 3 de mediciones de magnetómetros no calibrados y Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (5) es un escalar que indica la intensidad del campo magnético. La ecuación anterior es la forma general de una cónica. Para un elipsoide, R debe ser definido positivo. La función magcal utiliza una variedad de solvers, basados ​​en diferentes suposiciones sobre R. En la función magcal , se puede suponer que R es la matriz identidad, una matriz diagonal o una matriz simétrica.

La función magcal produce coeficientes de corrección que toman medidas que se encuentran en un elipsoide desplazado y las transforman para que se encuentren en una esfera ideal, centrada en el origen. La función magcal devuelve una matriz real A de 3 por 3 y un vector b de 1 por 3. Para corregir el cálculo de datos no calibrados

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (6)

Aquí x es un arreglo de 1 por 3 de mediciones de magnetómetro no calibradas y m es el arreglo de 1 por 3 de mediciones de magnetómetro corregidas, que se encuentran en una esfera. La matriz A tiene determinante 1 y es la raíz cuadrada de la matriz de R. Además, A tiene la misma forma que R: la matriz identidad, diagonal o simétrica. Debido a que este tipo de matrices no pueden impartir rotación, la matriz A no rotará los datos del magnetómetro durante la corrección.

La función magcal también devuelve una tercera salida que es la intensidad del campo magnético Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (7). Puede utilizar la intensidad del campo magnético para establecer la propiedad ExpectedMagneticFieldStrength de ahrsfilter.

Usando la función magcal

Utilice la función magcal para determinar los parámetros de calibración que corrigen los datos ruidosos del magnetómetro. Cree datos de magnetómetro ruidosos configurando la propiedad NoiseDensity de la propiedad Magnetometer en imuSensor. Utilice el campo magnético girado y estirado en la variable soft para simular efectos de hierro dulce.

imu.Magnetometer.NoiseDensity = 0.08;for ii=1:numel(q) imu.MagneticField = soft(ii,:); [~,x(ii,:)] = imu(acc(ii,:),av(ii,:),q(ii));end

Para encontrar los parámetros A y b que mejor corrigen los datos del magnetómetro no calibrados, simplemente llame a la función como:

[A,b,expMFS] = magcal(x);xCorrected = (x-b)*A;

Trazar los datos originales y corregidos. Muestre el elipsoide que mejor se ajuste a los datos originales. Muestre la esfera en la que deben estar los datos corregidos.

de = HelperDrawEllipsoid;de.plotCalibrated(A,b,expMFS,x,xCorrected,'Auto');

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (8)

La función magcal utiliza una variedad de solvers para minimizar el error residual. El error residual es la suma de las distancias entre los datos calibrados y una esfera de radio expMFS.

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (9)

r = sum(xCorrected.^2,2) - expMFS.^2;E = sqrt(r.'*r./N)./(2*expMFS.^2);fprintf('Residual error in corrected data : %.2f\n\n',E);
Residual error in corrected data : 0.01

Puede ejecutar los solvers individuales si solo es necesario corregir algunos defectos o para lograr un cálculo de corrección más simple.

Cálculo de solo compensación

Muchos magnetómetros MEMS tienen registros dentro del sensor que pueden usarse para compensar el desplazamiento del hierro duro. De hecho, la parte (x-b) de la ecuación anterior ocurre a bordo del sensor. Cuando solo se necesita una compensación de compensación de hierro duro, la matriz A se convierte efectivamente en la matriz de identidad. Para determinar solo la corrección de hierro duro, la función magcal se puede llamar de esta manera:

[Aeye,beye,expMFSeye] = magcal(x,'eye');xEyeCorrected = (x-beye)*Aeye;[ax1,ax2] = de.plotCalibrated(Aeye,beye,expMFSeye,x,xEyeCorrected,'Eye');view(ax1,[-1 0 0]);view(ax2,[-1 0 0]);

Compensación de hierro duro y cálculo de escala de ejes

Para muchas aplicaciones, es suficiente tratar la matriz elipsoide como una matriz diagonal. Geométricamente, esto significa que el elipsoide de los datos del magnetómetro no calibrado se aproxima para que sus semiejes estén alineados con los ejes del sistema de coordenadas y un centro desplazado del origen. Aunque es poco probable que estas sean las características reales del elipsoide, reduce la ecuación de corrección a una única multiplicación y una única resta por eje.

[Adiag,bdiag,expMFSdiag] = magcal(x,'diag');xDiagCorrected = (x-bdiag)*Adiag;[ax1,ax2] = de.plotCalibrated(Adiag,bdiag,expMFSdiag,x,xDiagCorrected,... 'Diag');

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (11)

Compensación total de hierro duro y blando

Para forzar a la función magcal a resolver un elipsoide arbitrario y producir una matriz A densa y simétrica, llame a la función como:

[A,b] = magcal(x,'sym');

Ajuste automático

Los 'eye', 'diag' y 'sym' deben usarse con cuidado y se deben inspeccionar los valores de salida. En algunos casos, puede que no haya datos suficientes para un ajuste de orden alto ('diag' o 'sym') y se puede encontrar un mejor conjunto de parámetros de corrección utilizando un más simple. $A matriz. La opción de ajuste 'auto' , que es la predeterminada, maneja esta situación.

Considere el caso en el que se utilizan datos insuficientes con un ajustador de alto nivel.

xidx = x(:,3) > 100;xpoor = x(xidx,:);[Apoor,bpoor,mfspoor] = magcal(xpoor,'diag');

No hay suficientes datos repartidos sobre la superficie del elipsoide para lograr un buen ajuste y parámetros de calibración adecuados con la opción 'diag' . Como resultado, la matriz Apoor es compleja.

disp(Apoor)
 0.0000 + 0.4722i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.5981i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 3.5407 + 0.0000i

El uso de la opción de ajuste 'auto' evita este problema y encuentra una matriz A más simple que es real, simétrica y definida positiva. Llamar a magcal con la cadena de opción 'auto' es lo mismo que llamar sin ninguna cadena de opción.

[Abest,bbest,mfsbest] = magcal(xpoor,'auto');disp(Abest)
 1 0 0 0 1 0 0 0 1

La comparación de los resultados del uso del ajustador 'auto' y un ajustador incorrecto de alto nivel muestra los peligros de no examinar la matriz A devuelta antes de corregir los datos.

de.compareBest(Abest,bbest,mfsbest,Apoor,bpoor,mfspoor,xpoor);

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (12)

Llamar a la función magcal con el indicador 'auto' , que es el valor predeterminado, probará todas las posibilidades de 'eye', 'diag' y 'sym' buscando el A y b lo que minimiza el error residual, mantiene A real, y asegura que R sea positivo definido y simétrico.

Conclusión

La función magcal puede proporcionar parámetros de calibración para corregir las compensaciones de hierro duro y blando en un magnetómetro. Llamar a la función sin cadena de opción, o equivalentemente la cadena de opción 'auto' , produce el mejor ajuste y cubre la mayoría de los casos.

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.

Calibración del magnetómetro- MATLAB & Simulink- MathWorks América Latina (13)

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:

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
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本 (日本語)
  • 한국 (한국어)

Contact your local office

Calibración del magnetómetro
- MATLAB & Simulink
- MathWorks América Latina (2024)
Top Articles
Instagram Bio Ideas (300+ Clever & Funny Examples to Copy)
General Knowledge Quiz Questions - Pauls Free Quiz Questions | Trivia Quiz Resources | Pub Quiz Questions | Trivia Quiz - Pauls Free Quiz Questions | Trivia Quiz Resources | Pub Quiz Questions
Pau.blaz
Hub.vacation Club.com
Main Moon Ashland Ohio Menu
Britley Ritz - K99.1FM
How to Perform Subdomain Enumeration: Top 10 Tools
Everything We Know About Wenwen Han and Her Rise To Stardom
Joann Ally Employee Portal
/hypno/ - Hypnofa*ggotry
102 Weatherby Dr Greenville Sc 29615
Walgreens Dupont Tonkel
8776725837
Ultimate Guide to Visiting Dungeness, UK
Dayz Nyheim Map
Xsammybearxox
Power Supplemental Payment 2022 Round 4
Best Internists In Ft-Lauderdale
The Real Housewives Of Atlanta 123Movies
80 Maiden Lane Ny Ny 10038 Directions
Uitstekende taxi, matige gezinsauto: test Toyota Camry Hybrid – Autointernationaal.nl
Jinx Bl Chapter 26
Idaho Falls Temple Prayer Roll
Define Percosivism
Webmail.unt.edu
Prisoners Metacritic
Realidades 2 Capitulo 2B Answers
Crimson Draughts.
Nail Supply Glamour Lake June
How To Delete Jackd Account
Cornerstone Okta T Mobile
How To Create A Top Uber Boss Killer In POE 3.25 League?
Plastic Bench Walmart
Paper Io 2 Unblocked Games Premium
Transformers Movie Wiki
Raley Scrubs - Midtown
Www.manhunt.cim
99 Cents Food Handler
Owen Roeder Tim Dillon
Imagemate Orange County
Sprague Brook Park Camping Reservations
How to Survive (and Succeed!) in a Fast-Paced Environment | Exec Learn
Ontdek Sneek | Dé leukste stad van Friesland
Linden Creek Golden Retrievers
Madrigal Pharmaceuticals, Inc. (MDGL) Stock Forum & Discussion - Yahoo Finance
Jane Powell, Spirited Star of Movie Musicals ‘Royal Wedding,’ ‘Seven Brides,’ Dies at 92
Walgreens Bunce Rd
Wis International Intranet
Florida-Texas A&M: What You Need to Know - Florida Gators
SF bay area cars & trucks "chevrolet 50" - craigslist
Munich Bavaria Germany 15 Day Weather Forecast
Latest Posts
Article information

Author: Delena Feil

Last Updated:

Views: 5595

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Delena Feil

Birthday: 1998-08-29

Address: 747 Lubowitz Run, Sidmouth, HI 90646-5543

Phone: +99513241752844

Job: Design Supervisor

Hobby: Digital arts, Lacemaking, Air sports, Running, Scouting, Shooting, Puzzles

Introduction: My name is Delena Feil, I am a clean, splendid, calm, fancy, jolly, bright, faithful person who loves writing and wants to share my knowledge and understanding with you.