ブラックボックス モデリング
ブラックボックス モデル構造および次数の選択
ブラックボックス モデリングは、モデルの特定の数学的構造に関係なくデータを当てはめることに主な関心がある場合に有益です。ツールボックスには、線形および非線形のブラックボックス モデル構造が複数用意されています。こうした構造はこれまで、動的システムを表すために役立ってきました。システムでダイナミクスおよびノイズを考慮するために必要な柔軟性に応じて、これらのモデル構造の複雑度は異なります。これらの構造のいずれかを選択し、そのパラメーターを計算して、測定された応答データを当てはめることができます。
ブラックボックス モデリングは通常、試行錯誤のプロセスであり、さまざまな構造のパラメーターを推定して結果を比較します。通常、単純な線形モデル構造から開始し、より複雑な構造に進みます。特定の構造に慣れているという理由や特定のアプリケーション ニーズがあるという理由でモデル構造を選択することもあります。
最も単純な線形ブラックボックス構造では、構成する必要があるオプションが最も少なくなっています。
所定の数の極と零点をもつ伝達関数
最も単純な入出力多項式モデルである線形 ARX モデル
モデル状態の数を指定して推定できる状態空間モデル
これらの構造の一部の推定では非反復的な推定アルゴリズムも使用します。これにより、さらに複雑度が低減されます。
"モデル次数" を使用してモデル構造を構成できます。モデル次数の定義は、選択したモデルのタイプによって異なります。たとえば、伝達関数表現を選択した場合、モデル次数は極と零点の数に関係します。状態空間表現では、モデル次数は状態の数に対応しています。線形 ARM モデル構造や状態空間モデル構造など、一部のケースでは、データからモデル次数を推定できます。
単純なモデル構造で良好なモデルが得られなかった場合は、以下によって、より複雑なモデル構造を選択できます。
同じ線形モデル構造でより高いモデル次数を指定する。モデル次数が高くなると、複雑な現象を捉えるためのモデル柔軟性が増します。ただし、不必要に次数を高くすると、モデルの信頼性が低下することがあります。
以下の方程式に示されているように、He(t) 項を含めることでノイズを明示的にモデル化する。
y(t) = Gu(t) + He(t)
ここで、H は、ホワイト ノイズ ソース e(t) で駆動される線形システムの出力として外乱を扱うことで、加法的な外乱をモデル化します。
加法的な外乱を明示的にモデル化するモデル構造を使用すると、測定された成分 G の精度を向上させることができる場合があります。さらに、このようなモデル構造は、モデルを使用して将来の応答値を予測することが主目的の場合に役立ちます。
異なる線形モデル構造を使用する。
Linear Model Structuresを参照してください。
非線形モデル構造を使用する。
非線形モデルでは、同じような次数の線形モデルよりも、複雑な現象を捉えるための柔軟性が高くなっています。Nonlinear Model Structuresを参照してください。
最終的に、測定されたデータに最も適合する、最も単純なモデル構造を選択します。詳細については、Estimating Linear Models Using Quick Startを参照してください。
推定に選択した構造に関係なく、アプリケーションのニーズに合わせてモデルを簡略化できます。たとえば、測定されたダイナミクス (G) をノイズのダイナミクス (H) から分離することで、y と u の関係のみを表す、より単純なモデルが得られます。操作点について非線形モデルを線形化することもできます。
非線形モデル構造を使用する場合
多くの場合、線形モデルは、システム ダイナミクスを正確に記述するのに十分です。ほとんどの場合、ベストプラクティスとしてまずは線形モデルを当てはめます。線形モデルの出力で測定された出力が適切に再現されなかった場合は、非線形モデルを使用する必要が生じることがあります。
入力に対するシステムの応答をプロットして、非線形モデル構造を使用する必要性を評価できます。入力レベルや入力信号によって応答が異なることがわかった場合は、非線形モデルを使用してみます。たとえば、1 ステップ上の入力に対する出力応答が 1 ステップ下に対する応答より速い場合は、非線形モデルが必要である可能性があります。
非線形であるとわかっているシステムの非線形モデルを構築する前に、入出力変数を変換し、変換後の変数間の関係が線形になるようにします。たとえば、浸漬式ヒーターへの入力として電流と電圧をもち、加熱された液体の温度を出力としてもつシステムを考えます。出力は、電流と電圧の積に等しいヒーターの電力による入力によって異なります。この 2 つの入力、1 つの出力のシステム用に非線形モデルを構築するのではなく、電流と電圧の積をとり、電力と温度の関係を記述する線形モデルを構築することで、新しい入力変数を作成できます。
入力変数と出力変数間の関係が線形になる変数変換を判別できない場合は、非線形 ARX モデルや Hammerstein-Wiener モデルなどの非線形構造を使用できます。サポートされている非線形モデル構造のリストおよび各構造を使用する場合については、Nonlinear Model Structuresを参照してください。
ブラックボックス推定の例
System Identification アプリまたはコマンドを使用して各種構造の線形モデルと非線形モデルを推定できます。ほとんどの場合、モデル構造を選択し、単一のコマンドを使用してモデルのパラメーターを推定します。
Dynamic Systems and Modelsで説明されているマス-バネ-ダンパー システムを考えます。このシステムの運動方程式がわからない場合は、ブラックボックス モデリング手法を使用してモデルを構築できます。たとえば、以下のモデル構造の次数を指定して伝達関数または状態空間モデルを推定できます。
伝達関数は多項式の比です。
マス-バネ-ダンパー システムでは、この伝達関数は以下のとおりです。
これは、零点がなく、極が 2 つあるシステムです。
離散時間では、マス-バネ-ダンパー システムの伝達関数は以下にすることができます。
ここで、モデル次数は分子および分母の係数の数 (nb
= 1 と nf
= 2) に対応しており、入出力遅延は分子の z–1 の最低次の指数 (nk
= 1) に等しくなっています。
連続時間では、tfest
コマンドを使用して線形伝達関数モデルを構築できます。
m = tfest(data,2,0)
ここで、data
は、iddata
オブジェクトとして表された測定された入出力データです。モデル次数は極の数 (2) と零点の数 (0) のセットです。
同様に、oe
コマンドを使用して離散時間モデルの出力誤差構造を構築できます。
m = oe(data,[1 2 1])
モデル次数は [nb nf nk
] = [1 2 1
] です。通常、事前にはモデル次数はわかりません。許容できるモデルが得られる次数が見つかるまで、複数のモデル次数の値を試します。
あるいは、状態空間構造を選択してマス-バネ-ダンパー システムを表し、ssest
または n4sid
コマンドを使用してモデル パラメーターを推定できます。
m = ssest(data,2)
ここでは、2 つ目の引数 2
が次数 (モデル内の状態の数) を表しています。
ブラックボックス モデリングでは、システムの運動方程式は不要であり、モデル次数の推定のみが必要です。
モデル構築の詳細については、System Identification アプリを使用する手順およびModel Estimation Commandsを参照してください。