Main Content

magparams

磁力計センサー パラメーター

説明

magparams クラスは、磁力計センサー パラメーター オブジェクトを作成します。imuSensor で IMU をシミュレートするときに、このオブジェクトを使用して磁力計をモデル化できます。magparams モデル化の詳細については、imuSensorAlgorithmsのセクションを参照してください。

作成

説明

params = magarams は、理想的な磁力計センサー パラメーター オブジェクトを既定値で返します。

params = magparams(Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して magparams オブジェクトのプロパティを構成します。Name はプロパティ名で、Value は対応する値です。Name は一重引用符 ('') で囲む必要があります。名前と値のペアの引数を複数、任意の順序で、Name1,Value1,...,NameN,ValueN のように指定できます。指定されていないプロパティはすべて既定値を取ります。

プロパティ

すべて展開する

センサーの最大読み取り値 (μT 単位)。実数の正のスカラーとして指定します。

データ型: single | double

センサー測定の分解能 (μT/LSB 単位)。実数の非負のスカラーとして指定します。ここで、LSB は最下位ビットの頭字語です。

データ型: single | double

定数のセンサー オフセット バイアス (μT 単位)。実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

センサーの座標軸のせん断変形 (パーセント単位)。スカラー、3 要素行ベクトル、または 3 行 3 列の行列として指定します。行列の対角要素では、各座標軸のずれの影響が考慮されます。非対角要素では、座標軸間のずれの影響が考慮されます。測定された状態 vmeasure は、真の状態 vtrue から、ずれ行列を介して次のように取得されます。

vmeasure=1100Mvtrue=1100[m11m12m13m21m22m23m31m32m33]vtrue

  • このプロパティをスカラーとして指定すると、行列の非対角要素はすべて指定したスカラーの値を取り、対角要素はすべて 100 となる。

  • このプロパティをベクトル [a b c] として指定すると、m21 = m31 = a、m12 = m32 = b、m13 = m23 = c となる。対角要素はすべて 100。

データ型: single | double

センサー ノイズのパワー スペクトル密度 (μT/√Hz 単位)。実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

バイアス不安定性ノイズ生成用のフィルター係数。構造体として指定します。この構造体には次のフィールドが含まれます。

  • Numerator — 分子係数。実数値ベクトルとして指定します。

  • Denominator — 分母係数。実数値ベクトルとして指定します。

フラクタル ノイズの係数を指定するには、関数 fractalcoef を使用します。

例: struct(Numerator=1,Denominator=[1 -0.5])

データ型: struct

バイアス オフセットの不安定性 (μT 単位)。実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

センサーの積分されたホワイト ノイズ (μT/√Hz 単位)。実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

ランダム ノイズのタイプ。以下として指定します。

  • "double-sided" — ランダム ノイズ係数のスケール係数は 2 です。

  • "single-sided" — ランダム ノイズ係数のスケール係数は 1 です。

データ型: char | string

温度によるセンサー バイアス (μT/℃ 単位)。実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

温度によるスケール係数誤差 (%/℃ 単位)。0 ~ 100 の範囲の値をもつ実数のスカラーまたは 3 要素行ベクトルとして指定します。任意のスカラー入力は、各要素が入力スカラー値をもつ実数の 3 要素行ベクトルに変換されます。

データ型: single | double

すべて折りたたむ

imuSensor オブジェクトの磁力計データを、定常入力から生成します。

センサーの最大読み取り値が 1200 μT で分解能が 0.1 μT/LSB の磁力計パラメーター オブジェクトを生成します。定数オフセット バイアスは 1 μT です。センサーのパワー スペクトル密度は ([0.6 0.6 0.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 Hz のサンプル レートを 1000 個のサンプルにわたり使用します。磁力計パラメーター オブジェクトを使用して、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, xlabel s, ylabel mu blank T contains 3 objects of type line.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018b で導入