exponenta event banner

magcal

Калибровочные коэффициенты магнитометра

Описание

пример

[A,b,expmfs] = magcal(D) возвращает коэффициенты, необходимые для коррекции данных некалиброванного магнитометра D.

Для получения данных калиброванного магнитометра C, использовать уравнение C = (D-b)*A. Калиброванные данные C лежит на сфере радиуса expmfs.

[A,b,expmfs] = magcal(D,fitkind) ограничивает матрицу A должен быть типом, указанным в fitkind. Используйте этот синтаксис, когда необходимо исправить только программный или жесткий эффект.

Примеры

свернуть все

Создайте некалиброванные данные магнитометра, лежащие на эллипсоиде.

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(:)];

Откорректируйте данные магнитометра так, чтобы они лежали на сфере. Опция калибровки по умолчанию имеет значение «auto».

[A,b,expmfs] = magcal(D); % calibration coefficients
expmfs % Dipaly expected  magnetic field strength in uT
expmfs = 31.0723
C = (D-b)*A; % calibrated data

Визуализация данных некалиброванного и калиброванного магнитометра.

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. The axes with title Uncalibrated vs Calibrated Magnetometer Measurements contains 2 objects of type line. These objects represent Uncalibrated Samples, Calibrated Samples.

Входные аргументы

свернуть все

Входная матрица необработанных данных магнитометра, заданная в виде матрицы N-by-3. Каждый столбец матрицы соответствует измерениям магнитометра в первой, второй и третьей осях соответственно. Каждая строка матрицы соответствует одному трехосному измерению.

Типы данных: single | double

Тип матрицы для вывода A. Тип матрицы A может быть ограничено:

  • 'eye' - единичная матрица

  • 'diag' - диагональ

  • 'sym' - симметричный

  • 'auto' - какой-либо из предыдущих вариантов дает наилучшее соответствие

Выходные аргументы

свернуть все

Корректирующая матрица для эффекта мягкого железа, возвращаемая как матрица 3 на 3.

Вектор коррекции для эффекта твердого железа, возвращаемый как массив 3 на 1.

Ожидаемая сила магнитного поля, возвращенная как скаляр.

Подробнее

свернуть все

Эффекты мягкого и твердого железа

Поскольку магнитометр обычно вращается в полном диапазоне 3-D вращения, идеальные измерения с магнитометра должны образовывать идеальную сферу, центрированную в начале координат, если магнитное поле не нарушено. Однако из-за искажения магнитных полей от печатной платы датчика и окружающей среды сферические магнитные измерения могут быть возмущены. В целом существует два эффекта.

  1. Эффект мягкого железа описывается как искажение эллипсоида от сферы и наклон эллипсоида, как показано на левой фигуре. Этот эффект вызван возмущениями, которые влияют на магнитное поле, но не могут генерировать собственное магнитное поле. Например, металлы, такие как никель и железо, могут вызывать такой вид искажения.

  2. Эффект твердого железа описывается как смещение центра эллипсоида от начала координат. Этот эффект создают материалы, которые проявляют постоянное аддитивное поле к магнитному полю Земли. Это постоянное дополнительное смещение дополняет эффект мягкого железа, как показано на рисунке справа.

Базовый алгоритм в magcal определяет эллипсоид наилучшего соответствия показаниям необработанного датчика и пытается «инвертировать» эллипсоид для создания сферы. Целью является создание матрицы коррекции. A для учета эффекта мягкого железа и вектора b чтобы учесть эффект твердого железа. Три варианта вывода, 'eye', 'diag' и 'sym' соответствуют трём алгоритмам решения параметров, и опция 'auto' выбирает из этих трёх вариантов наилучшую подгонку.

Ссылки

[1] Ozyagcilar, Т. «Калибровка eCompass в присутствии жестких и мягких помех железа». Freescale Semiconductor Ltd. 1992, стр. 1-17.

См. также

Классы

Объекты

Представлен в R2019a