Main Content

Unscented Kalman Filter

アンセンテッド カルマン フィルターを使用した離散時間非線形システムの状態の推定

  • ukf_block

ライブラリ:
Control System Toolbox / State Estimation
System Identification Toolbox / Estimators

説明

Unscented Kalman Filter ブロックは、離散時間アンセンテッド カルマン フィルター アルゴリズムを使用して離散時間の非線形システムの状態を推定します。

状態 x、入力 u、出力 y、プロセス ノイズ w および測定ノイズ v をもつプラントについて考えます。プラントを非線形システムとして表現できると仮定します。

このブロックは、システムの状態遷移関数と測定関数およびアンセンテッド カルマン フィルター アルゴリズムを使用して、現在のタイム ステップに対する状態推定 x^ を生成します。アルゴリズムの詳細については、オンライン状態推定のための拡張カルマン フィルター アルゴリズムおよびアンセンテッド カルマン フィルター アルゴリズムを参照してください。

システムの非線形の状態遷移関数と測定関数を作成し、これらの関数をブロックで指定します。このブロックは、異なるサンプリング レートで動作する複数のセンサーをもつシステムの状態推定をサポートします。それぞれがシステムの 1 つのセンサーに対応する測定関数を最大 5 つ指定できます。詳細については、状態遷移関数と測定関数を参照してください。

端子

入力

すべて展開する

ブロックで指定した各測定関数に対応する、測定されたシステム出力。端子の個数は、システム内の測定関数の個数に等しくなります。最大 5 つの測定関数を指定できます。たとえば、システムに 2 つのセンサーがある場合、ブロックに 2 つの測定関数を指定します。最初の端子 [y1] は既定で利用可能です。[適用] をクリックすると、ソフトウェアは 2 番目の測定関数に対応する端子 [y2] を生成します。

端子は N 次元のベクトルとして指定します。ここで N は、対応するセンサーで測定される数量の数です。たとえば、システムにオブジェクトの位置と速度を測定するセンサーが 1 つある場合、端子は [y1] の 1 つだけです。この端子は、位置と速度に対応する値をもつ 2 次元ベクトルとして指定されます。

依存関係

最初の端子 [y1] は既定で利用可能です。[y2][y5] の端子は、[測定値の追加] をクリックし、[適用] をクリックすると生成されます。

データ型: single | double

状態遷移関数 f に渡される、状態 x とプロセス ノイズ w 以外の追加のオプション入力引数。状態遷移関数の詳細については、状態遷移関数と測定関数を参照してください。

システムに非加法性のプロセス ノイズがあり、状態遷移関数 f が次の形式であると仮定します。

x(k+1) = f(x(k),w(k),StateTransitionFcnInputs).

ここで、k はタイム ステップ、StateTransitionFcnInputsxw 以外の追加の入力引数です。

MATLAB® 関数 (.m ファイル) を使用して f を作成する場合、[適用] をクリックすると、ソフトウェアによって端子 [StateTransitionFcnInputs] が生成されます。この端子への入力はスカラー、ベクトル、または行列として指定できます。

状態遷移関数が複数の追加の入力をもつ場合、Simulink Function (Simulink) ブロックを使用して関数を指定します。Simulink Function ブロックを使用する際、追加の入力は Inport (Simulink) ブロックを使って Simulink Function ブロックに直接提供します。Unscented Kalman Filter ブロック内に追加の入力用の入力端子は生成されません。例については、Online State Estimation Using Identified Models - Nonlinear Models (System Identification Toolbox)を参照してください。

依存関係

この端子は次の両方の条件が満たされる場合にのみ生成されます。

  • MATLAB 関数を使用して [関数]f を指定しており、f が MATLAB パス上にある場合。

  • xw 以外に、f で必要とされる追加の入力引数が 1 つだけの場合。

データ型: single | double

測定関数に渡される、状態 x と測定ノイズ v 以外の追加のオプション入力。測定関数の詳細については、状態遷移関数と測定関数を参照してください。

[MeasurementFcn1Inputs] は指定した最初の測定関数に対応し、それ以降も同様です。たとえば、システムに 3 つのセンサーと非加法性測定ノイズがある場合、3 つの測定関数 h1h2h3 は次の形式を取ります。

y1[k] = h1(x[k],v[k],MeasurementFcn1Inputs)

y2[k] = h2(x[k],v[k],MeasurementFcn2Inputs)

y3[k] = h3(x[k],v[k])

ここで、k はタイム ステップ、MeasurementFcn1InputsMeasurementFcn2Inputsh1h2 への追加の入力引数です。

[関数] で MATLAB 関数 (.m ファイル) を使用して h1h2、および h3 を指定する場合、[適用] をクリックすると、ソフトウェアは [MeasurementFcn1Inputs][MeasurementFcn2Inputs] の端子を生成します。これらの端子への入力はスカラー、ベクトル、または行列として指定できます。

測定関数が複数の追加の入力をもつ場合、Simulink Function (Simulink) ブロックを使用して関数を指定します。Simulink Function ブロックを使用する際、追加の入力は Inport (Simulink) ブロックを使って Simulink Function ブロックに直接提供します。Unscented Kalman Filter ブロック内に追加の入力用の入力端子は生成されません。例については、Online State Estimation Using Identified Models - Nonlinear Models (System Identification Toolbox)を参照してください。

依存関係

測定関数 h に対応する端子は、次の両方の条件が満たされる場合にのみ生成されます。

  • MATLAB 関数を使用して [関数]h を指定しており、h が MATLAB パス上にある場合。

  • xv 以外に、h で必要とされる追加の入力引数が 1 つだけの場合。

データ型: single | double

時変プロセス ノイズ共分散。[プロセス ノイズ] パラメーターの値に応じて、スカラー、ベクトルまたは行列として指定します。

  • [プロセス ノイズ][加法性] — 共分散をスカラー、Ns 要素のベクトル、または NsNs 列の行列として指定します。ここで Ns はシステムの状態の数です。プロセス ノイズ項の間に相互相関がなく、すべての項が同じ分散をもつ場合は、スカラーを指定します。プロセス ノイズ項の間に相互相関がなく、すべての項が異なる分散をもつ場合は、長さ Ns のベクトルを指定します。

  • [プロセス ノイズ][非加法性] — 共分散を WW 列の行列として指定します。ここで W は状態遷移関数のプロセス ノイズ項の数です。

依存関係

この端子は、プロセス ノイズ共分散を [時変] に指定した場合に生成されます。[適用] をクリックすると端子が表示されます。

データ型: single | double

システムの最大 5 つの測定関数の時変測定ノイズ共分散。行列として指定します。行列のサイズは、対応する測定関数の [測定ノイズ] パラメーターの値によって異なります。

  • [測定ノイズ][加法性] — 共分散を NN 列の行列として指定します。ここで N はシステムの測定値の数です。

  • [測定ノイズ][非加法性] — 共分散を VV 列の行列として指定します。ここで V は対応する測定関数の測定ノイズ項の数です。

依存関係

端子は、対応する測定関数の測定ノイズ共分散を [時変] に指定した場合に生成されます。[適用] をクリックすると端子が表示されます。

データ型: single | double

最初の測定関数に対応する端子 [y1] において、測定された出力データをすべての時間点で使用できないと仮定します。[Enable1] 端子で 0 以外の信号値を使用して、測定データが利用可能な場合に推定状態の補正をイネーブルにします。測定データが利用できない場合は端子値を 0 に指定します。同様に、ith の測定関数で、端子 [yi] のすべての時間点で測定された出力データを利用できない場合、対応する端子 [Enablei]0 以外の値に指定します。

依存関係

測定関数に対応する端子は、その測定関数で [イネーブル端子の追加] を選択した場合に生成されます。[適用] をクリックすると端子が表示されます。

データ型: single | double | Boolean

出力

すべて展開する

推定された状態。サイズが Ns のベクトルとして返されます。ここで Ns はシステムの状態の数です。個々の状態にアクセスするには、Selector (Simulink) ブロックを使用します。

[現在の測定値を使用して状態推定値を改善] パラメーターが選択されている場合、ブロックは、時間 k までに測定された出力を使って推定された、タイム ステップ k での修正された状態推定 x^[k|k] を出力します。このパラメーターをオフにすると、ブロックは、前の時間 k-1 までに測定された出力を使って推定された、時間 k の予測された状態推定 x^[k|k1] を返します。フィルターがフィードバック ループにあり Simulink モデルに代数ループがある場合は、このパラメーターをクリアします。

データ型: single | double

状態推定誤差の共分散。NsNs 列の行列として返されます。ここで Ns はシステムの状態の数です。個々の共分散にアクセスするには、Selector (Simulink) ブロックを使用します。

依存関係

この端子は、[システム モデル] タブで [状態推定誤差の共分散の出力] を選択して [適用] をクリックすると生成されます。

データ型: single | double

パラメーター

すべて展開する

[システム モデル] タブ

状態遷移

この状態遷移関数は、タイム ステップ k で状態ベクトルが与えられた場合の、タイム ステップ k+1 でシステムの Ns 要素をもつ状態ベクトルを計算します。Ns は非線形システムの状態の数です。状態遷移関数を作成し、[関数] にその関数名を指定します。たとえば、vdpStateFcn.m という状態遷移関数を作成して保存した場合、[関数]vdpStateFcn を指定します。

作成する関数への入力は、[プロセス ノイズ] でプロセス ノイズを加法性として指定するか、非加法性として指定するかによって異なります。

  • [プロセス ノイズ][加法性] — 状態遷移関数 f は前のタイム ステップでの状態値の関数として状態が変化する方法を指定します。

    x(k+1) = f(x(k),Us1(k),...,Usn(k)),

    ここで x(k) は時間 k で推定された状態であり、Us1,...,Usn はシステム入力やサンプル時間など、状態遷移関数で要求された任意の追加入力引数です。加法性のプロセス ノイズを使用した状態遷移関数の例を確認するには、コマンド ラインで edit vdpStateFcn を入力します。

  • [プロセス ノイズ][非加法性] — 状態遷移関数はプロセス ノイズ w の関数として状態が変化する方法も指定します。

    x(k+1) = f(x(k),w(k),Us1(k),...,Usn(k)).

詳細については、状態遷移関数と測定関数を参照してください。

fSimulink Function (Simulink) ブロックを使用して作成するか、MATLAB 関数 (.m ファイル) としても作成できます。

  • MATLAB 関数を使用できるのは、fxw 以外の追加の入力引数 Us1 が 1 つある場合のみです。

    x(k+1) = f(x(k),w(k),Us1(k))

    ソフトウェアはこの引数を指定する追加の入力端子 [StateTransitionFcnInputs] を生成します。

  • Simulink Function ブロックを使用する場合、Simulink Function ブロック内で Argument Inport (Simulink) ブロックを使って xw を指定し、追加の入力 Us1,...,Usn を指定するには Inport (Simulink) ブロックを使用します。Simulink Function ブロック内の Argument Inport (Simulink) ブロックと Argument Outport (Simulink) ブロックの [引数名] パラメーターは相互に異なっていなければなりません。Unscented Kalman Filter ブロックに Us1,...,Usn は提供しません。例については、Online State Estimation Using Identified Models - Nonlinear Models (System Identification Toolbox)を参照してください。

プログラムでの使用

ブロック パラメーター: StateTransitionFcn
型: 文字ベクトル、string
既定: 'myStateTransitionFcn'

プロセス ノイズ特性。次のいずれかの値として指定されます。

  • 加法性 — プロセス ノイズ w は加法性であり、[関数] に指定する状態遷移関数 f は次の形式を取ります。

    x(k+1) = f(x(k),Us1(k),...,Usn(k)),

    ここで x(k) は時間 k での推定状態であり、Us1,...,Usn は状態遷移関数で要求された任意の追加入力引数です。

  • 非加法性 — プロセス ノイズは非加法性であり、状態遷移関数は前のタイム ステップで状態 "および" プロセス ノイズの関数として状態が変化する方法を指定します。

    x(k+1) = f(x(k),w(k),Us1(k),...,Usn(k)).

プログラムでの使用

ブロック パラメーター: HasAdditiveProcessNoise
型: 文字ベクトル
値: 'Additive''Nonadditive'
既定: 'Additive'

時不変プロセス ノイズ共分散。[プロセス ノイズ] パラメーターの値に応じて、スカラー、ベクトルまたは行列として指定します。

  • [プロセス ノイズ][加法性] — 共分散をスカラー、Ns 要素のベクトル、または NsNs 列の行列として指定します。ここで Ns はシステムの状態の数です。プロセス ノイズ項の間に相互相関がなく、すべての項が同じ分散をもつ場合は、スカラーを指定します。プロセス ノイズ項の間に相互相関がなく、すべての項が異なる分散をもつ場合、長さ Ns のベクトルを指定します。

  • [プロセス ノイズ][非加法性] — 共分散を WW 列の行列として指定します。ここで W はプロセス ノイズ項の数です。

プロセス ノイズ共分散が時変の場合、[時変] を選択します。ブロックは、時変共分散を指定する入力端子 [Q] を生成します。

依存関係

このパラメーターは、プロセス ノイズを [時変] として指定しない場合に有効になります。

プログラムでの使用

ブロック パラメーター: ProcessNoise
型: 文字ベクトル、string
既定: '1'

このパラメーターを選択すると、ブロックには、時変プロセス ノイズ共分散を指定する追加の入力端子 [Q] が含まれます。

プログラムでの使用

ブロック パラメーター: HasTimeVaryingProcessNoise
型: 文字ベクトル
値: 'off''on'
既定: 'off'
初期化

初期状態推定値。Ns 要素ベクトルとして指定します。ここで Ns はシステムの状態の数です。システムに関する知識に基づいて、初期状態値を指定します。

プログラムでの使用

ブロック パラメーター: InitialState
型: 文字ベクトル、string
既定: '0'

状態推定誤差の共分散。スカラー、Ns 要素のベクトル、または NsNs 列の行列として指定します。ここで Ns はシステムの状態の数です。スカラーまたはベクトルを指定すると、対角線上にスカラーまたはベクトルの要素をもつ NsNs 列の対角行列が作成されます。

[初期状態] に指定する初期状態の値に確信がもてない場合、共分散に高い値を指定します。

プログラムでの使用

ブロック パラメーター: InitialStateCovariance
型: 文字ベクトル、string
既定: '1'
アンセンテッド変換のパラメーター

アンセンテッド カルマン フィルター アルゴリズムでは、システムの状態を平均の状態値と分散をもつ確率変数として扱います。次のタイム ステップの状態とその統計プロパティを計算するために、このアルゴリズムでは最初にアンセンテッド変換を使用して平均値の周りに分散される状態値のセットを生成します。これらの生成された状態値をシグマ ポイントと呼びます。アルゴリズムは、各シグマ ポイントを状態遷移関数と測定関数への入力として使用して、新しい一連の変換された状態点と測定値を取得します。変換された点は、次のタイム ステップでの状態および状態推定誤差の共分散値を計算するために使用されます。

平均の状態値の周りのシグマ ポイントの広がりは、2 つのパラメーター [Alpha] および [Kappa] によって制御されます。3 番目のパラメーター [Beta] は、状態および測定共分散の計算中に変換された点の重みに影響します。

  • Alpha — 平均の状態値の周りのシグマ ポイントの広がりを決定します。0 ~ 1 のスカラー値 (0 < [Alpha] <= 1) として指定します。これは通常、小さい正の数値です。シグマ ポイントの広がりは [Alpha] に比例します。値が小さいほど、シグマ ポイントは平均の状態に近くなります。

  • Kappa — 2 番目のスケーリング パラメーター。通常は 0 に設定されます。値が小さいほど、シグマ ポイントは平均の状態に近くなります。広がりは Kappa の平方根に比例します。

  • Beta — 状態の分布の事前情報を組み込みます。ガウス分布の場合、[Beta] = 2 が最適です。

状態および状態の共分散の分布がわかっている場合は、これらのパラメーターを調整して分布の高次モーメントの変換を取得できます。アルゴリズムが追跡できるのは、状態の確率分布の単一のピークのみです。システムの状態分布に複数のピークがある場合、これらのパラメーターを調整してシグマ ポイントが単一のピークの周りにとどまるようにすることができます。たとえば、小さい [Alpha] を選択して、平均の状態値に近いシグマ ポイントを生成します。

詳細については、アンセンテッド カルマン フィルター アルゴリズムを参照してください。

プログラムでの使用

ブロック パラメーター: Alpha
型: 文字ベクトル、string
既定: '1e-3'

変換されたシグマ ポイントの重みを調整するために使用される状態分布の特性。0 以上のスカラー値で指定します。ガウス分布の場合、Beta =2 が最適な選択です。

詳細については、[Alpha] の説明を参照してください。

プログラムでの使用

ブロック パラメーター: Beta
型: 文字ベクトル、string
既定: '2'

平均の状態値の周りのシグマ ポイントの広がり。0 ~ 3 のスカラー値 (0 <= [Kappa] <= 3) として指定します。[Kappa] は通常 0 として指定されます。値が小さいほど、シグマ ポイントは平均の状態に近くなります。広がりは [Kappa] の平方根に比例します。詳細については、[Alpha] の説明を参照してください。

プログラムでの使用

ブロック パラメーター: Kappa
型: 文字ベクトル、string
既定: '0'
測定

この測定関数は、タイム ステップ k で状態ベクトルが与えられた場合の、タイム ステップ k で非線形システムの N の要素をもつ出力測定ベクトルを計算します。測定関数を作成し、[関数] にその関数名を指定します。たとえば、vdpMeasurementFcn.m という測定関数を作成して保存した場合、[関数]vdpMeasurementFcn を指定します。

作成する関数への入力は、[測定ノイズ] で測定ノイズを加法性として指定するか、非加法性として指定するかによって異なります。

  • [測定ノイズ][加法性] — 測定関数 h は状態値の関数として測定値が変化する方法を指定します。

    y(k) = h(x(k),Um1(k),...,Umn(k)),

    ここで y(k)x(k) は時間 k で推定された出力と推定された状態であり、Um1,...,Umn は測定関数で要求されたオプションの入力引数です。たとえば、オブジェクトの追跡にセンサーを使用する場合、追加入力をセンサーの位置にすることができます。

    加法性のプロセス ノイズを使用した測定関数の例を確認するには、コマンド ラインで edit vdpMeasurementFcn を入力します。

  • [測定ノイズ][非加法性] — 測定関数は測定ノイズ v の関数として出力測定値が変化する方法も指定します。

    y(k) = h(x(k),v(k),Um1(k),...,Umn(k)).

    非加法性のプロセス ノイズを使用した測定関数の例を確認するには、コマンド ラインで edit vdpMeasurementNonAdditiveNoiseFcn を入力します。

詳細については、状態遷移関数と測定関数を参照してください。

hSimulink Function (Simulink) ブロックを使用して作成するか、MATLAB 関数 (.m ファイル) としても作成できます。

  • MATLAB 関数を使用できるのは、hxv 以外の追加の入力引数 Um1 が 1 つある場合のみです。

    y[k] = h(x[k],v[k],Um1(k))

    ソフトウェアはこの引数を指定する追加の入力端子 [MeasurementFcnInput] を生成します。

  • Simulink Function ブロックを使用する場合、Simulink Function ブロック内で Argument Inport (Simulink) ブロックを使って xv を指定し、追加の入力 Um1,...,Umn を指定するには Inport (Simulink) ブロックを使用します。Simulink Function ブロック内の Argument Inport (Simulink) ブロックと Argument Outport (Simulink) ブロックの [引数名] パラメーターは相互に異なっていなければなりません。Unscented Kalman Filter ブロックに Um1,...,Umn は提供しません。例については、Online State Estimation Using Identified Models - Nonlinear Models (System Identification Toolbox)を参照してください。

システムに複数のセンサーがある場合、複数の測定関数を指定できます。[測定値の追加] ボタンを使用して最大 5 つの測定関数を指定できます。測定関数を削除するには、[測定値の削除] を使用します。

プログラムでの使用

ブロック パラメーター: MeasurementFcn1MeasurementFcn2MeasurementFcn3MeasurementFcn4MeasurementFcn5
型: 文字ベクトル、string
既定: 'myMeasurementFcn'

測定ノイズ特性。次のいずれかの値として指定されます。

  • 加法性 — 測定ノイズ v は加法性であり、[関数] に指定する測定関数 h は次の形式を取ります。

    y(k) = h(x(k),Um1(k),...,Umn(k)),

    ここで y(k)x(k) は時間 k で推定された出力と推定された状態であり、Um1,...,Umn は測定関数で要求されたオプションの入力引数です。

  • 非加法性 — 測定ノイズは非加法性であり、測定関数は状態 "および" 測定ノイズの関数として出力測定値が変化する方法を指定します。

    y(k) = h(x(k),v(k),Um1(k),...,Umn(k)).

プログラムでの使用

ブロック パラメーター: HasAdditiveMeasurementNoise1HasAdditiveMeasurementNoise2HasAdditiveMeasurementNoise3HasAdditiveMeasurementNoise4HasAdditiveMeasurementNoise5
型: 文字ベクトル
値: 'Additive''Nonadditive'
既定: 'Additive'

このパラメーターを選択すると、測定値のラップが有効になり、モデルの状態に依存しない循環測定がある場合に状態が推定されます。このパラメーターを選択する場合、指定する測定関数に次の 2 つの出力が含まれていなければなりません。

  1. タイム ステップ "k" の状態ベクトルが与えられた場合の測定値。タイム ステップ "k" における非線形システムの "N" 要素の出力測定ベクトルとして指定します。"N" はシステムの測定値の数です。

  2. 測定値のラップの範囲。"N"2 列の行列として指定します。1 列目に最小測定範囲、2 列目に最大測定範囲を指定します。

[測定値のラップを有効にする] チェック ボックスをオンにすると、定義した範囲内で測定残差がラップされ、正しくない測定残差の値によるフィルターの発散を防ぐのに役立ちます。例については、拡張カルマン フィルターを使用したラップされた測定値による状態推定を参照してください。

プログラムでの使用

ブロック パラメーター: EnableMeasurementWrapping1EnableMeasurementWrapping2EnableMeasurementWrapping3EnableMeasurementWrapping4EnableMeasurementWrapping5
型: 文字ベクトル
値: 'off''on'
既定: 'off'

時不変測定ノイズ共分散。行列として指定します。行列のサイズは [測定ノイズ] パラメーターの値によって異なります。

  • [測定ノイズ][加法性] — 共分散を NN 列の行列として指定します。ここで N はシステムの測定値の数です。

  • [測定ノイズ][非加法性] — 共分散を VV 列の行列として指定します。ここで V は測定ノイズ項の数です。

測定ノイズ共分散が時変の場合、[時変] を選択します。ブロックは、ith の測定関数の時変共分散を指定する入力端子 [Ri] を生成します。

依存関係

このパラメーターは、プロセス ノイズを [時変] として指定しない場合に有効になります。

プログラムでの使用

ブロック パラメーター: MeasurementNoise1MeasurementNoise2MeasurementNoise3MeasurementNoise4MeasurementNoise5
型: 文字ベクトル、string
既定: '1'

最初の測定関数の測定ノイズ共分散にこのパラメーターを選択すると、ブロックに追加の入力端子 [R1] が含まれます。[R1] には時変測定ノイズ共分散を指定します。同様に、ith の測定関数に [時変] を選択すると、ブロックにはその関数の時変測定ノイズ共分散を指定する追加の入力端子 [Ri] が含まれます。

プログラムでの使用

ブロック パラメーター: HasTimeVaryingMeasurementNoise1HasTimeVaryingMeasurementNoise2HasTimeVaryingMeasurementNoise3HasTimeVaryingMeasurementNoise4HasTimeVaryingMeasurementNoise5
型: 文字ベクトル
値: 'off''on'
既定: 'off'

最初の測定関数に対応する端子 [y1] において、測定された出力データをすべての時間点で使用できないと仮定します。[イネーブル端子の追加] を選択して、入力端子 [Enable1] を生成します。この端子で信号を使用して、測定データが利用できる場合にのみ推定状態の補正をイネーブルにします。同様に、ith 測定関数の端子 [yi] において、測定出力データがすべての時間点で利用できない場合には、対応する [イネーブル端子の追加] を選択します。

プログラムでの使用

ブロック パラメーター: HasMeasurementEnablePort1HasMeasurementEnablePort2HasMeasurementEnablePort3HasMeasurementEnablePort4HasMeasurementEnablePort5
型: 文字ベクトル
値: 'off''on'
既定: 'off'
設定

このパラメーターを選択すると、ブロックは、時間 k までに測定された出力を使って推定された、タイム ステップ k での修正された状態推定 x^[k|k] を出力します。このパラメーターをオフにすると、ブロックは、前の時間 k-1 までに測定された出力を使って推定された、時間 k の予測された状態推定 x^[k|k1] を返します。フィルターがフィードバック ループにあり Simulink モデルに代数ループがある場合は、このパラメーターをクリアします。

プログラムでの使用

ブロック パラメーター: UseCurrentEstimator
型: 文字ベクトル
値: 'off''on'
既定値: 'on'

このパラメーターを選択すると、状態推定誤差の共分散の出力端子 [P] がブロックに生成されます。

プログラムでの使用

ブロック パラメーター: OutputStateCovariance
型: 文字ベクトル
値: 'off''on'
既定: 'off'

このパラメーターはすべてのブロック パラメーターのデータ型の指定に使用します。

プログラムでの使用

ブロック パラメーター: DataType
型: 文字ベクトル
値: 'single''double'
既定: 'double'

ブロックのサンプル時間。正のスカラーとして指定します。状態遷移関数と測定関数のサンプル時間が異なる場合、代わりに [マルチレート] タブで [マルチレート処理を有効にする] を選択し、[マルチレート] タブでサンプル時間を指定します。

依存関係

このパラメーターは、[マルチレート] タブの [マルチレート処理を有効にする] パラメーターが off である場合に使用できます。

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル、string
既定: '1'

[マルチレート] タブ

状態遷移関数と測定関数のサンプル時間が異なる場合はこのパラメーターを選択します。サンプル時間は [マルチレート] タブの [サンプル時間] で指定します。

プログラムでの使用

ブロック パラメーター: EnableMultirate
型: 文字ベクトル
値: 'off''on'
既定: 'off'

状態遷移関数と測定関数のサンプル時間が異なる場合、[サンプル時間] を指定します。測定関数のサンプル時間は、状態遷移のサンプル時間の正の整数倍で指定します。指定するサンプル時間は次の入力端子に対応します。

  • 状態遷移関数に対応する端子 — 状態遷移関数の追加の入力 [StateTransitionFcnInputs] および時変プロセス ノイズ共分散 [Q]。これらの端子のサンプル時間は常に状態遷移関数のサンプル時間に等しくなければなりませんが、測定関数のサンプル時間と異なっても構いません。

  • ith 測定関数に対応する端子 — 測定された出力 [yi]、測定関数への追加の入力 [MeasurementFcniInputs]、端子 [Enablei] でのイネーブル信号、および時変測定ノイズ共分散 [Ri]。同じ測定関数におけるこれらの端子のサンプル時間は常に同じでなければなりませんが、状態遷移関数および他の測定関数のサンプル時間と異なっても構いません。

依存関係

このパラメーターは、[マルチレート] タブの [マルチレート処理を有効にする] パラメーターが on である場合に使用できます。

プログラムでの使用

ブロック パラメーター: StateTransitionFcnSampleTimeMeasurementFcn1SampleTime1MeasurementFcn1SampleTime2MeasurementFcn1SampleTime3MeasurementFcn1SampleTime4MeasurementFcn1SampleTime5
型: 文字ベクトル、string
既定: '1'

詳細

すべて展開する

拡張機能

バージョン履歴

R2017a で導入

すべて展開する