このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
コマンド ラインでのバッチ線形化の結果に対する応答プロットを使用した解析
以下の例では、コマンド ラインで取得したバッチ線形化の結果のステップ応答をプロットし、解析する方法を示します。バッチ線形化の結果 という用語は、slLinearizer
インターフェイスまたは関数 linearize
によって返された ss
モデル配列を指します。この配列には、パラメーターが変化するモデルの単一の操作点でのバッチ線形化やslLinearizer インターフェイスを使用した操作点の変化と複数の伝達関数の取得に示されるように、変化させるパラメーター値、操作点、またはその両方に対する線形化が含まれています。この例で説明される手法を利用して、バッチ線形化の結果について周波数応答、安定性または感度を解析できます。
モデルのバッチ線形化
この例では、watertank
Simulink® モデルをバッチ線形化します。次のコードでは、4 つのシミュレーション スナップショット時間 t = [0 1 2 3]
についてモデルを線形化します。各スナップショット時間で、モデル パラメーター A
および b
は変化します。A
のサンプル値は [10 20 30]
で、b
のサンプル値は [4 6]
です。slLinearizer
インターフェイスには、基準信号とプラント出力の位置に解析ポイントが含まれています。
モデルを開きます。
mdl = "watertank"
mdl = "watertank"
load_system(mdl)
モデルの slLinearizer
インターフェイスを作成します。
sllin = slLinearizer(mdl,... [mdl + "/Desired Water Level",mdl + "/Water-Tank System"]);
パラメーター グリッドを指定します。
[A_grid,b_grid] = ndgrid([10,20,30],[4 6]); params(1).Name = 'A'; params(1).Value = A_grid; params(2).Name = 'b'; params(2).Value = b_grid;
slLinearizer
インターフェイスでパラメーターを設定します。
sllin.Parameters = params;
slLinearizer
インターフェイスで操作点のスナップショット時間を設定します。
sllin.OperatingPoints = [0,1,2,3];
基準信号からプラント出力への線形化モデルを取得します。
linsys = getIOTransfer(sllin,... "Desired Water Level","Water-Tank System");
線形化されたモデルのステップ応答のプロット
線形化モデルのステップ応答をプロットするには、関数 stepplot
を使用します。
stepplot(linsys)
ステップ プロットには配列の各モデルの応答が示されます。このプロットには、パラメーター グリッドとスナップショット時間がカバーする操作範囲で、システムのステップ応答の範囲が示されます。
特定の応答に関連するパラメーターを表示するには、プロットの応答をクリックします。
プロットにデータのヒントが表示され、選択された応答および関連するモデルに関する情報が示されます。データのヒントの最後の行には、この応答が得られたパラメーターの組み合わせとシミュレーション スナップショット時間が表示されます。たとえば、上記のプロットでは、選択された応答は A
を 30
に設定し b
を 4
に設定して得られたモデルに対応します。ソフトウェアは、3 の時間単位でモデルをシミュレートした後、モデルを線形化しています。
結果のサブセットのステップ応答の表示
特定のシミュレーション スナップショット時間 (2 の時間単位など) において線形化されたモデルの応答を表示するとします。プロットを右クリックして [配列セレクター] を選択します。[LTI 配列のモデル セレクター] ダイアログ ボックスが開きます。
[選択基準の設定] パネルには、linsys
のモデル配列の次元ごとに 1 列ずつ、3 つの列が含まれます。最初の列は、シミュレーション スナップショット時間に対応します。シミュレーション時間配列が [0,1,2,3]
であったため、この列の 3 番目のエントリは、2 の時間単位のシミュレーション スナップショット時間に対応します。最初の列ではこのエントリのみを選択します。
[OK] をクリックします。プロットには、2 の時間単位で線形化されたモデルのみの応答が表示されます。
特定のパラメーターの組み合わせとスナップショット時間に対するステップ応答のプロット
A = 10
および b = 4
において、t = 3
で watertank
モデルを線形化して得られたモデルのステップ応答のみを調べるとします。そのためには、linsys
の SamplingGrid
プロパティを使用できますが、これは構造体として指定されます。バッチ線形化を実行すると、SamplingGrid
には、モデルの取得に使用される変数値に関する情報が入力されます。変数値には、変化させるそれぞれのパラメーターと、モデルを線形化するときのシミュレーション スナップショット時間が含まれます。以下に例を示します。
linsys(:,:,1).SamplingGrid
ans = struct with fields:
Time: 0
A: 10
b: 4
ここで、linsys(:,:,1)
は linsys
の最初のモデルを示します。このモデルは、A = 10
および b = 4
において、シミュレーション時間 t = 0
で取得されています。
配列のインデックスを使用して、A = 10
および b = 4
に対し t = 3
で貯水タンク モデルを線形化して取得されたモデルを linsys
から抽出します。
sg = linsys.SamplingGrid;
sys = linsys(:,:,...
sg.A == 10 & sg.b == 4 & sg.Time == 3);
構造体 sg
には、linsys
内のすべてのモデルのサンプリング グリッドが含まれます。式 sg.A == 10 & sg.b == 4 & sg.Time == 3
は、logical 配列を返します。この配列の各エントリには、sg.A
、sg.B
および sg.Time
内の対応するエントリの式の論理評価が含まれます。sys
は、式を満たすすべての linsys
モデルが含まれるモデル配列です。
sys
のステップ応答を表示します。
stepplot(sys)