Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Hammerstein-Wiener モデルとは

システムの出力がその入力に非線形に依存する場合、入出力関係を 2 つ以上の相互接続された要素に分解できることがあります。この場合、ダイナミクスを線形伝達関数で表し、線形システムの入力と出力の非線形関数を使用して非線形性をキャプチャできます。Hammerstein-Wiener モデルは、この構成を、静的な非線形ブロックと動的な線形ブロックの直列接続として実現します。Hammerstein-Wiener モデルの用途は、電気機械システムや無線周波数のコンポーネントのモデル化、オーディオ処理と音声処理、化学的プロセスの予測制御などのさまざまな領域にわたります。これらのモデルは、便利なブロック表現が用意され、線形システムと透過的な関係があり、ニューラル ネットワークや Volterra モデルなどの大がかりな非線形モデルよりも実装が容易です。

Hammerstein-Wiener モデルでは、非線形モデルの柔軟なパラメーター化が提供されるため、このモデルをブラックボックスのモデル構造として使用できます。たとえば、線形モデルを推定し、入力または出力の非線形性をこのモデルに追加することで、その忠実度を改善するように試みることができます。また、Hammerstein-Wiener モデルをグレーボックス構造として使用して、処理特性に関する物理的な知識を得ることもできます。たとえば、入力の非線形性によって典型的な物理変換をアクチュエータで表したり、出力の非線形性によって共通のセンサー特性を表したりできます。非線形モデルを適合する場合の詳細については、About Identified Nonlinear Modelsを参照してください。

Hammerstein-Wiener モデルの構造

Hammerstein-Wiener モデルは、線形ブロックと直列につながる 1 つまたは 2 つの静的非線形ブロックを使用して動的システムを記述します。線形ブロックは、モデルの動的コンポーネントを表す離散伝達関数です。

次のブロック線図は、Hammerstein-Wiener モデルの構造を表しています。

ここで、

  • f は、入力データ u(t) を w(t) = f(u(t)) として変換する非線形関数です。

    内部変数 w(t) は入力非線形性ブロックの出力であり、u(t) と同じ次元をもちます。

  • B/F は、w(t) を x(t) = (B/F)w(t) として変換する線形伝達関数です。

    内部変数 x(t) は線形ブロックの出力であり、y(t) と同じ次元をもちます。

    B と F は、線形出力誤差モデルの多項式と似ています。出力誤差モデルの詳細については、What Are Polynomial Models?を参照してください。

    ny 個の出力と nu 個の入力の場合、線形ブロックは以下のエントリを含む伝達関数行列です。

    Bj,i(q)Fj,i(q)

    ここで、j = 1,2,...,ny、および i = 1,2,...,nu です。

  • h は、線形ブロック x(t) の出力をシステム出力 y(t) に y(t) = h(x(t)) としてマッピングする非線形関数です。

f は線形ブロックの入力端子を処理するため、この関数は "入力非線形性" と呼ばれます。同様に、h は線形ブロックの出力端子を処理するため、この関数は "出力非線形性" と呼ばれます。システムに複数の入力と出力がある場合、各入力信号と出力信号に関数 f および h を定義する必要があります。モデル構造に入力非線形性と出力非線形性の両方を含める必要はありません。モデルに入力非線形性 f のみが含まれている場合、そのモデルは "Hammerstein" モデルと呼ばれます。同様に、モデルに出力非線形性 h のみが含まれている場合、そのモデルは "Wiener" モデルと呼ばれます。

Hammerstein-Wiener モデルの出力 y は 3 段階で計算されます。

  1. 入力データから w(t) = f(u(t)) を計算します。

    w(t) は線形伝達関数 B/F の入力です。

    入力非線形性は静的 ("無記憶") 関数です。ここで、特定の時点 t の出力値は、その時点 t の入力値にのみ依存します。

    入力非線形性を、シグモイド ネットワーク、ウェーブレット ネットワーク、飽和、不感帯、区分的線形関数、1 次元多項式、またはカスタム ネットワークとして構成できます。入力非線形性を削除することもできます。

  2. w(t) と初期条件を使用して、次のように線形ブロックの出力を計算します。x(t) = (B/F)w(t)。

    分子 B と分母 F の次数を指定することで、線形ブロックを構成できます。

  3. 非線形関数 h を y(t) = h(x(t)) として使用して線形ブロック x(t) の出力を変換することで、モデルの出力を計算します。

    入力非線形性と同様に、出力非線形性は静的関数です。出力非線形性は、入力非線形性と同じ方法で構成できます。y(t) = x(t) となるように、出力非線形性を削除することもできます。

結果のモデルは、モデル パラメーターや非線形推定器を含め、すべてのモデル データを保存する idnlhw オブジェクトです。これらのオブジェクトの詳細については、Nonlinear Model Structuresを参照してください。

Hammerstein-Wiener モデルの推定は、System Identification アプリで行うか、コマンド ラインで nlhw コマンドを使用して行えます。Hammerstein-Wiener モデルの推定に、等間隔にサンプリングされた時間領域の入出力データを使用できます。データは 1 つ以上の入力チャネルと出力チャネルをもつことができます。時系列データ (出力のみ) や周波数領域データを推定に使用することはできません。時系列データがある場合は、非線形モデルに当てはめるため、非線形 ARX モデルまたは非線形グレーボックス モデルを同定します。これらのモデルの詳細については、Identifying Nonlinear ARX ModelsおよびEstimate Nonlinear Grey-Box Modelsを参照してください。

参考

|

関連するトピック