Main Content

コマンド ラインでのバッチ線形化の結果に対する応答プロットを使用した解析

以下の例では、コマンド ラインで取得したバッチ線形化の結果のステップ応答をプロットし、解析する方法を示します。バッチ線形化の結果 という用語は、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)

Figure contains an axes object. The axes object with title From: Desired Water Level To: Water-Tank System contains 24 objects of type line. This object represents linsys.

ステップ プロットには配列の各モデルの応答が示されます。このプロットには、パラメーター グリッドとスナップショット時間がカバーする操作範囲で、システムのステップ応答の範囲が示されます。

特定の応答に関連するパラメーターを表示するには、プロットの応答をクリックします。

プロットにデータのヒントが表示され、選択された応答および関連するモデルに関する情報が示されます。データのヒントの最後の行には、この応答が得られたパラメーターの組み合わせとシミュレーション スナップショット時間が表示されます。たとえば、上記のプロットでは、選択された応答は A30 に設定し b4 に設定して得られたモデルに対応します。ソフトウェアは、3 の時間単位でモデルをシミュレートした後、モデルを線形化しています。

結果のサブセットのステップ応答の表示

特定のシミュレーション スナップショット時間 (2 の時間単位など) において線形化されたモデルの応答を表示するとします。プロットを右クリックして [配列セレクター] を選択します。[LTI 配列のモデル セレクター] ダイアログ ボックスが開きます。

[選択基準の設定] パネルには、linsys のモデル配列の次元ごとに 1 列ずつ、3 つの列が含まれます。最初の列は、シミュレーション スナップショット時間に対応します。シミュレーション時間配列が [0,1,2,3] であったため、この列の 3 番目のエントリは、2 の時間単位のシミュレーション スナップショット時間に対応します。最初の列ではこのエントリのみを選択します。

[OK] をクリックします。プロットには、2 の時間単位で線形化されたモデルのみの応答が表示されます。

特定のパラメーターの組み合わせとスナップショット時間に対するステップ応答のプロット

A = 10 および b = 4 において、t = 3watertank モデルを線形化して得られたモデルのステップ応答のみを調べるとします。そのためには、linsysSamplingGrid プロパティを使用できますが、これは構造体として指定されます。バッチ線形化を実行すると、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.Asg.B および sg.Time 内の対応するエントリの式の論理評価が含まれます。sys は、式を満たすすべての linsys モデルが含まれるモデル配列です。

sys のステップ応答を表示します。

stepplot(sys)

Figure contains an axes object. The axes object with title From: Desired Water Level To: Water-Tank System contains an object of type line. This object represents sys.

関連するトピック