Main Content

sample

(非推奨) 線形パラメーター変動または線形時変のダイナミクスをサンプリング

R2023a 以降

sample は推奨されません。代わりに psample を使用してください (R2024a 以降)

説明

ssArray = sample(vSys,T) は、線形時変 (LTV) モデル vSys の時間ベクトル T で指定された時間におけるダイナミクスをサンプリングし、時不変状態空間 (ss) モデルの配列を返します。

ssArray = sample(vSys,T,P) は、線形パラメーター変動 (LPV) モデル vSys の単一の点 (T,P) におけるダイナミクスをサンプリングし、時不変状態空間 (ss) モデルの配列を返します。LPV モデルのダイナミクスが P のみに依存する場合は、T[] に設定します。

ssArray = sample(vSys,T,P1,...,Pn) は、(T,P) の値のグリッドでダイナミクスをサンプリングします。P1,...,Pn は、LPV モデルの各パラメーターの値を指定する配列です。

ssArray = sample(vSys,S) は、サンプル値を構造体 S として指定します。

ssArray = sample(vSys) は、グリッド付きの LTV モデルまたは LPV モデルを vSys.Grid から取得される値でサンプリングします。この構文は、グリッド付きの LTV モデルまたは LPV モデルの作成に使用される状態空間データとオフセットにすばやくアクセスする方法として使用できます。

[ssArray,offsets] = sample(___) は、指定された時間における微分、状態、入力、および出力のオフセット値を含む構造体配列 offsets も返します。この構文は、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

LTV モデルのダイナミクスを t の値の点またはベクトルでサンプリングし、特定の時間におけるアフィン ダイナミクスを取得できます。

データ関数 ltvssDataFcn.m で定義されるモデルについて考えます。

LTV モデルを作成します。

ltvSys = ltvss(@ltvssDataFcn)
Continuous-time state-space LTV model with 1 outputs, 1 inputs, and 1 states.
Model Properties

このモデルをサンプリングする時間値のセットを定義します。

t = 5:0.5:10;

psample コマンドを使用して ss モデルの配列を取得します。

ssArray = psample(ltvSys,t);
size(ssArray)
1x11 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

ssArray では、各モデルの時間に対する依存性が SamplingGrid プロパティで追跡され、オフセット値が時間の関数として Offsets プロパティに格納されます。

ssArray.SamplingGrid
ans = struct with fields:
    Time: [5 5.5000 6 6.5000 7 7.5000 8 8.5000 9 9.5000 10]

ssArray.Offsets
ans=1×11 struct array with fields:
    dx
    x
    u
    y

データ関数を表示します。

type ltvssDataFcn.m
function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = ltvssDataFcn(t)
% SISO, first order
A = -(1+0.5*sin(t));
B = 1;
C = 1;
D = 0;
E = [];
dx0 = [];
x0 = [];
u0 = [];
y0 = 0.1*sin(5*t);
Delays = [];

入力引数

すべて折りたたむ

サンプリングする変動モデル。ltvss オブジェクトまたは lpvss オブジェクトとして指定します。

モデルをサンプリングする時間値。

  • LTV モデルの場合、ダイナミクスを単一の時間値と複数の時間値のいずれでサンプリングするかに応じて、有限の実数値のスカラーまたはベクトルとして T を指定します。

  • LPV モデルの場合、次のいずれかとして T を指定します。

    • [] — LPV モデルのダイナミクスがパラメーター p のみに依存。

    • スカラー — ダイナミクスを単一の時間値でサンプリング。

    • ベクトル — ダイナミクスを複数の時間値でサンプリング。

    • 多次元配列 — ダイナミクスを値のグリッドでサンプリング。ndgrid を使用して作成するなど、四角形 (T,P) の値のグリッドを指定する必要があります。

      [t,p1,p2,p3] = ndgrid(tvals,p1vals,p2vals,p3vals)

    ベクトルまたは配列 TP1,...,Pn は同じサイズでなければなりません。

離散時間の場合、サンプリング周期 Ts の数をカウントする整数インデックス値 k として T を指定します。絶対時間は t = k*Ts で与えられます。

LPV モデルをサンプリングするパラメーター値。

n 個のパラメーターがある LPV モデルの場合、コンマ区切りの引数 P1,...,Pn を使用して各パラメーターの値を指定します。

P は次のいずれかとして指定します。

  • スカラー — ダイナミクスを単一のパラメーター値でサンプリング。

  • ベクトル — ダイナミクスを複数のパラメーター値でサンプリング。

  • 多次元配列 — ダイナミクスを値のグリッドでサンプリング。ndgrid を使用して作成するなど、四角形 (T,P) の値のグリッドを指定する必要があります。

    [t,p1,p2,p3] = ndgrid(tvals,p1vals,p2vals,p3vals)

    ベクトルまたは配列 TP1,...,Pn は同じサイズでなければなりません。

モデルをサンプリングする値の指定に使用するサンプリング グリッドの構造体配列。

  • LTV モデルの場合、S はフィールド Time をもつ構造体配列です。たとえば、配列 Tvalues でサンプリング時間が指定されている場合、S の構造体は次のようになります。

    S = struct('Time',Tvalues)
  • LPV モデルの場合、Slpvss モデル vSysParameterName プロパティに対応するパラメーター名のフィールドと Time をもつ構造体です。たとえば、vSys'speed' および 'altitude' という名前の 2 つのパラメーターがあり、それらの値が配列 P1vals および P2vals を使用して指定されている場合、S の構造体は次のようになります。

    S = struct('speed',P1vals,'altitude',P2vals)

    LPV モデルのダイナミクスがパラメーター値に依存する場合は、S にフィールド Time を指定しないでください。

出力引数

すべて折りたたむ

サンプリングされたダイナミクス。時不変状態空間 (ss) モデルの配列として返されます。

ssArray の次元は配列またはグリッドのサンプリング点の数によって異なります。

モデルのオフセット。サンプリング点またはグリッドと同じ次元の構造体配列として返されます。オフセットの各構造体には次のフィールドがあります。

フィールド説明
x状態のオフセット。長さ nx の列ベクトルとして返されます。nxvSys にある状態の数です。
dx微分のオフセット。長さ nx の列ベクトルとして返されます。nxvSys にある状態の数です。
u入力のオフセット。長さ nu の列ベクトルとして返されます。nuvSys にある入力の数です。
y出力のオフセット。長さ ny の列ベクトルとして返されます。nyvSys にある出力の数です。

(t,p) のすべての値にオフセットがない場合 (ゼロの場合)、offsets の一部のフィールドが [] になることがあります。

バージョン履歴

R2023a で導入

すべて展開する