複数のシミュレーション スナップショットにおける線形システムの可視化
以下の例では、複数のシミュレーション スナップショットにおける Simulink® の非線形モデルの線形システム特性を可視化する方法を説明します。
Simulink モデルを開きます。
以下に例を示します。
watertank
Simulink ライブラリ ブラウザーを開きます。Simulink エディターの [シミュレーション] タブで [ライブラリ ブラウザー] をクリックします。
Simulink モデルにプロット ブロックを追加します。
[Simulink Control Design] ライブラリで [Linear Analysis Plots] を選択します。
Gain and Phase Margin Plot ブロックなどのブロックを Simulink モデル ウィンドウ内にドラッグ アンド ドロップします。
モデルは次の図のようになります。
ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。
ブロック パラメーターの詳細は、ブロックのリファレンス ページを参照してください。
線形化の I/O ポイントを指定します。
Water-Tank System の線形システムが計算されます。
ヒント
モデルに既に I/O ポイントが含まれる場合、ブロックによりこれらのポイントが自動的に検出されて表示されます。任意の時点で をクリックすると、モデルからの I/O で [線形化の入力/出力] テーブルを更新できます。
入力を指定するには、次の手順に従います。
[線形化の入力/出力] テーブルの隣にある をクリックします。
[ブロック パラメーター] ダイアログが拡張され、[モデル内の信号をクリックして、選択します] 領域が表示されます。
Simulink モデルで、
PID Controller
ブロックの出力信号をクリックして選択します。[モデル内の信号をクリックして、選択します] 領域が更新されて、選択した信号が表示されます。
ヒント
Simulink モデルで複数の信号を一度に選択できます。選択した信号はすべて [モデル内の信号をクリックして、選択します] 領域に表示されます。
をクリックして [線形化の入力/出力] テーブルに信号を追加します。
出力を指定するには、次の手順に従います。
Simulink モデルで、
Water-Tank System
ブロックの出力信号をクリックして選択します。[モデル内の信号をクリックして、選択します] 領域が更新されて、選択した信号が表示されます。
をクリックして [線形化の入力/出力] テーブルに信号を追加します。
[線形化の入力/出力] テーブルの [構成] ドロップダウン リストで、次に対して
[開ループの出力]
を選択します。[watertank/Water-Tank System : 1]。
[線形化の入力/出力] テーブルは次の図のようになります。
をクリックして [モデル内の信号をクリックして、選択します] 領域を折りたたみます。
ヒント
あるいは、Linear Analysis Plots ブロックを追加する前に、Simulink モデルの信号を右クリックして [線形解析ポイント] 、 [入力の摂動][線形解析ポイント] 、 [開ループの出力] を選択します。線形化 I/O の注釈がモデルに表示され、選択した信号が [線形化の入力/出力] テーブルに表示されます。
シミュレーションのスナップショット時間を指定します。
[線形化] タブで、[線形化の対象] に
[シミュレーションのスナップショット]
が選択されていることを確認します。[スナップショット時間] フィールドに「
[0 1 5]
」と入力します。
ゲイン余裕および位相余裕をプロットするときのプロット タイプを指定します。既定のプロット タイプは
[ボード線図]
です。[プロット タイプ] で
[ニコルス線図]
を選択します。[プロットの表示] をクリックして空のニコルス線図を開きます。
線形システムを保存します。
[ログ] タブを選択します。
[データをワークスペースに保存] オプションを選択し、[変数名] フィールドで変数名を指定します。
[ログ] タブは次の図のようになります。
プロット ウィンドウの をクリックして、ゲイン余裕と位相余裕をプロットします。
線形化の入力と出力で指定されたモデルの部分が、シミュレーション時間 0、1、5 で線形化され、ゲイン余裕と位相余裕がプロットされます。
シミュレーションが完了したら、プロット ウィンドウは次の図のようになります。
ヒント
をクリックすると凡例を表示できます。
計算された線形システムは、sys
として MATLAB® ワークスペースに保存されます。sys
は time
フィールドと values
フィールドをもつ構造体です。構造体を表示するには、以下のように入力します。
sys
このコマンドを実行すると、次の結果が返されます。
sys = time: [3x1 double] values: [4-D ss] blockName: 'watertank/Gain and Phase Margin Plot'
time
フィールドには、モデルが線形化されたシミュレーション時間が含まれています。values
フィールドは、指定されたシミュレーション時間で計算された線形システムを格納する、状態空間オブジェクトの配列です。
(Simulink モデルがシミュレーション出力を単一のオブジェクトとして保存するように構成されている場合、データ構造体 sys
は、シミュレーション データのログを含む Simulink.SimulationOutput
オブジェクトのフィールドです。Simulink でのデータ ログの詳細については、シミュレーション データの保存および Simulink.SimulationOutput
のリファレンス ページを参照してください。
参考
Bode Plot | Gain and Phase Margin Plot | Linear Step Response Plot | Nichols Plot | Pole-Zero Plot | Singular Value Plot