magparams

Параметры датчика магнитометра

Описание

magparams класс создает объект параметров датчика магнитометра. Можно использовать этот объект смоделировать магнитометр при симуляции IMU с imuSensor. Смотрите раздел Algorithms imuSensor для деталей magparams моделирование.

Создание

Описание

params = magarams возвращает идеальный объект параметров датчика магнитометра со значениями по умолчанию.

params = magparams(Name,Value) конфигурирует magparams свойства объектов с помощью одного или нескольких Name,Value парные аргументы. Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Любые незаданные свойства берут значения по умолчанию.

Свойства

развернуть все

Максимальный датчик, читающий в μT в виде действительной положительной скалярной величины.

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

Разрешение измерений датчика в μT/LSB в виде действительного неотрицательного скаляра. Здесь, LSB является акронимом для младшего значащего бита.

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

Постоянное смещение датчика смещает в μT в виде действительного скалярного или вектора-строки с 3 элементами. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Оси датчика скашиваются в проценте в виде скаляра, вектора-строки с 3 элементами или 3х3 матрицы со значениями в пределах от 0 к 100. Диагональные элементы матрицы составляют эффекты неточного совмещения для каждого, исключает. Недиагональные элементы составляют эффекты неточного совмещения перекрестных осей. Измеренный v состояния measure получен из истинного v состояния measure через матрицу неточного совмещения как:

vmeasure=1100Mvtrue=1100[m11m12m13m21m22m23m31m32m33]vtrue

  • Если вы задаете свойство как скаляр, то все недиагональные элементы матрицы принимают, значение заданного скаляра и всех диагональных элементов равняется 100.

  • Если вы задаете свойство как вектор [a b c], то m 21 = m 31 = a, m 12 = m 32 = b и m 13 = m 23 = c. Все диагональные элементы равняются 100.

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

Спектральная плотность мощности шума датчика в μT / √ Гц в виде действительного скалярного или вектора-строки с 3 элементами. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Нестабильность смещения возмещена в μT в виде действительного скалярного или вектора-строки с 3 элементами. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Интегрированный белый шум датчика в (μT / √ Гц) в виде действительного скалярного или вектора-строки с 3 элементами. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Смещение датчика от температуры в (μT / ℃) в виде действительного скалярного или вектора-строки с 3 элементами. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Ошибка масштабного коэффициента от температуры в (% / ℃) в виде действительного скалярного или вектора-строки с 3 элементами со значениями в пределах от от 0 до 100. Любой скалярный вход преобразован в действительный вектор-строку с 3 элементами, где каждый элемент имеет входное скалярное значение.

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

Примеры

свернуть все

Сгенерируйте данные о магнитометре для объекта imuSensor от стационарных входных параметров.

Сгенерируйте объект параметра магнитометра чтение датчика имеющее 1 200 μT и разрешение 0,1 μT/LSB. Постоянное смещение смещения равняется 1 μT. Датчик имеет спектральную плотность мощности([0.60.60.9]100) μT/Hz. Смещение от температуры [0.8 0.8 2.4] μT/0C. Ошибка масштабного коэффициента от температуры составляет 0,1%/0C.

params = magparams('MeasurementRange',1200,'Resolution',0.1,'ConstantBias',1,'NoiseDensity',[0.6 0.6 0.9]/sqrt(100),'TemperatureBias',[0.8 0.8 2.4],'TemperatureScaleFactor',0.1);

Используйте частоту дискретизации 100 Гц, растянутых более чем 1 000 выборок. Создайте объект imuSensor использование объекта параметра магнитометра.

Fs = 100;
numSamples = 1000;
t = 0:1/Fs:(numSamples-1)/Fs;

imu = imuSensor('accel-mag','SampleRate', Fs, 'Magnetometer', params);

Сгенерируйте данные о магнитометре из объекта imuSensor.

orient = quaternion.ones(numSamples, 1);
acc = zeros(numSamples, 3);
angvel = zeros(numSamples, 3);
 
[~, magData] = imu(acc, angvel, orient);

Отобразите результирующие данные о магнитометре на графике.

plot(t, magData)
title('Magnetometer')
xlabel('s')
ylabel('\mu T')

Figure contains an axes object. The axes object with title Magnetometer contains 3 objects of type line.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b