Main Content

LPV System

線形パラメーター変動 (LPV) システムのシミュレーション

  • LPV System block

ライブラリ:
Control System Toolbox / Linear Parameter Varying

説明

"線形パラメーター変動" (LPV) システムとは、"スケジューリング パラメーター" と呼ばれる特定の時変パラメーターの関数としてダイナミクスが変動する線形状態空間モデルです。MATLAB® では、パラメーター依存の係数を使用して、状態空間形式で LPV モデルを表現します。

LPV システムは、数学的には次のように表現できます。

dx(t)=dx0(p)+A(p)(x(t)x0(p))+B(p)(u(t)u0(p))y(t)=y0(p)+C(p)(x(t)x0(p))+D(p)(u(t)u0(p))x(0)=xinit

ここで

  • u(t) は入力

  • y(t) は出力

  • x(t) は初期値 xinit をもつモデルの状態

  • dx(t) は、連続時間システムでは状態微分ベクトル x˙、離散時間システムでは状態更新ベクトル x[k+1]。ここで、k はサンプリング周期 "Ts" の数をカウントする整数インデックスです。

  • A(p)、B(p)、C(p)、および D(p) は、スケジューリング パラメーター ベクトル p でパラメーター化された状態空間行列です。

  • パラメーター p = p(t) は、モデルの入力と状態の測定可能な関数です。これらは、スカラー量またはいくつかのパラメーターのベクトルで指定できます。スケジューリング パラメーターのセットにより、LPV モデルが定義される "スケジューリング空間" を定義します。

  • dx0(p)、x0(p)、u0(p)、および y0(p) は、与えられたパラメーター値 p = p(t) または p[k] における dx(t)、x(t)、u(t)、および y(t) の値のオフセットです。

    linearize (Simulink Control Design) または getIOTransfer (Simulink Control Design) などの関数を呼び出すときに、追加の線形化情報を返すことでオフセットを取得できます。例については、昇圧コンバーター モデルの LPV 近似 (Simulink Control Design)を参照してください。

注意

C(p) および D(p) がシステム出力 [y] に依存することがないようにしてください。そうしないと、結果の状態空間方程式 y = C(y)x + D(y)u により、代数ループが作成されます。これは、出力値 y を計算するために出力値がわかっている必要があるからです。この代数ループは不安定性や発散が発生しやすい傾向にあります。代わりに、時間 t、ブロック入力 [u]、および状態出力 [x] の観点で C および D を表してみてください。

同様の理由で、[dx] 出力に基づいて A(p) および B(p) をスケジュールしないでください。なお、[y] が状態と入力の固定された組み合わせの場合 (つまり、y = Cx + Du の場合 (C および D は定数行列))、A および B が [y] に依存しても安全です。

ブロックでは、LPV システムのグリッドベースの表現を実装します。スケジューリング パラメーターで値のグリッドを選択します。それぞれの値 p = p* で、状態空間 (ss または idss (System Identification Toolbox)) モデル オブジェクトとして対応する線形システムを指定します。生成された状態空間モデルの配列を使用して、LPV System ブロックを構成します。

ブロックは、操作点情報をもつ状態空間モデルの配列を受け入れます。スケジューリング変数の情報は、ブロックで LTI 配列の SamplingGrid プロパティから抽出されます。スケジューリング変数は、LPV モデルのグリッドを定義します。これらは、スカラー値の量であり、時間の関数、入力および状態、あるいは定数を指定できます。これらは動作空間でローカル ダイナミクスの選択に使用されます。ソフトウェアは、これらの変数値を内挿します。ブロックは、データの内挿および外挿の手法でこの配列を使用してシミュレーションを実行します。

すべて展開する

2 入力、3 出力、4 状態の LPV モデルについて考えます。入力 u(2) および状態 x(1) をスケジューリング パラメーターとして使用します。次の図に示すように Simulink® モデルを構成します。

質量が外部負荷コマンドの関数として変化する線形マス-バネ-ダンパー システムについて考えます。支配方程式は次のとおりです。

m(u)y¨+cy˙+ky=F(t)

ここで、m(u) は外部コマンド u に依存する質量、c は減衰比、k はバネの剛性、F(t) は強制入力です。y(t) は特定の時刻 t における質量の位置です。u の固定値に対して、システムは線形であり、次のように表せます。

A=[01-km-cm],

B=[01m],

C=[10]

x˙=Ax+Buy=Cx

ここで、x=[yy˙] は状態ベクトル、mu の特定の値に対する質量の値です。

この例では、1 ~ 10 V の入力値の範囲でモデルの動作を学習します。u の各値に対して、質量を測定し、システムの線形表現を計算します。質量が m(u)=10u+0.1u2 という関係で入力と関連付けられるとします。1 ~ 10 の u の値に対して、次のような線形システムの配列の結果となります。

c = 5;   
k = 300; 
u = 1:10;
m = 10*u + 0.1*u.^2;
for i = 1:length(u)
   A = [0 1; -k/m(i), -c/m(i)];
   B = [0; 1/m(i)];
   C = [1 0];
   sys(:,:,i) = ss(A,B,C,0); 
end

変数 u はスケジューリング入力です。この情報をモデルに追加します。

sys.SamplingGrid = struct('LoadCommand',u);

LPV System ブロックを構成します。

  • [状態空間配列] フィールドに sys を入力します。

  • 入力端子 par を、load コマンドの値を生成する 1 次元のソース信号に接続します。ソースが 1 ~ 10 の値を提供する場合、ブロックは内挿を使用して特定の時刻インスタンスで線形モデルを計算します。それ以外の場合、ブロックは外挿を使用します。

LPV モデルを 100 N の一定の強制入力までシミュレートします。load コマンドのスケジューリング変数には乱数値を使用します。

model = "simMSDLPV";
open_system(model);

この例では、LPV System ブロックを使用してエンジン速度の線形パラメーター変動 (LPV) モデルをシミュレートする方法を示します。LPV System ブロックは、状態空間配列を内挿して LPV の応答をモデル化します。一般に、このような配列は非線形モデルを操作条件の範囲でバッチ線形化することで得られます。この例では、エンジン速度モデルの線形化された結果が scdspeedlpvData に用意されています。このモデルの線形化の詳細については、エンジン速度モデルの線形化 (Simulink Control Design)を参照してください。

モデルを開きます。

model = "scdspeedLPVCompare";
open_system(model);

LPV モデルを実装するための線形化の結果を読み込みます。

load scdspeedlpvData.mat

LPV モデルが LPV Model サブシステムに実装されます。

Implementation of LPV Model subsystem

LPV System ブロックは、スロットル角度を入力として取り、速度出力をスケジューリング変数として使用します。ブロック パラメーターは次のイメージに示すように構成されています。ここで、状態空間配列 sys とオフセットは、非線形モデルをバッチ線形化して得られたものです。

モデルをシミュレートし、応答の比較をプロットします。

sim(model);
plot(logsOut{1}.Values.Time,logsOut{1}.Values.Data)
grid on
legend("Nonlinear sim","LPV sim","LTI sim",Location="best")

LPV モデルは非線形応答の良好な近似を示しています。

制限

  • 内部遅延は、状態空間モデル配列の最小値未満となるように外挿することはできません。

  • 線形モデルの散布型のグリッドを使用して LPV システムを定義する場合、最近傍の内挿法のみが使用されます。これにより、シミュレーション結果の精度が低下する場合があります。ndgrid を使用して作成された四角形のグリッドで処理することをお勧めします。

端子

入力

すべて展開する

入力信号 u(t) を指定します。多入力の場合、この端子は入力の次元の信号を受け入れます。

スケジューリング空間を定義する変数の信号を提供します (サンプリング グリッド変数)。スケジューリング変数は、時間の関数、入力および状態、あるいは定数に指定できます。必要に応じて、LPV ブロックのクロック入力 (時刻)、入力信号 (u)、出力状態信号 (x)、または任意の外因的な信号を使用してスケジューリング信号を準備することで、必要な依存関係を実現できます。

注意

C(p) および D(p) がシステム出力 [y] に依存することがないようにしてください。そうしないと、結果の状態空間方程式 y = C(y)x + D(y)u により、代数ループが作成されます。これは、出力値 y を計算するために出力値がわかっている必要があるからです。この代数ループは不安定性や発散が発生しやすい傾向にあります。代わりに、時間 t、ブロック入力 [u]、および状態出力 [x] の観点で C および D を表してみてください。

同様の理由で、[dx] 出力に基づいて A(p) および B(p) をスケジュールしないでください。なお、[y] が状態と入力の固定された組み合わせの場合 (つまり、y = Cx + Du の場合 (C および D は定数行列))、A および B が [y] に依存しても安全です。

出力

すべて展開する

線形パラメーター変動モデルの応答。

モデルの状態の値

依存関係

この端子を有効にするには、ブロック パラメーターの [出力] タブで [状態の出力] を選択します。

状態微分の値。状態微分は、スケジューリング パラメーターの定義に使用される場合があります。ただし、[dx] 出力に基づいて A および B をスケジュールしないでください。

依存関係

この端子を有効にするには、ブロック パラメーターの [出力] タブで [状態微分 (連続時間) または更新 (離散時間) の出力] を選択します。

主要なシミュレーション タイム ステップにおけるローカル状態空間モデル データ。次の要素をもつバス信号として返されます。

  • A — 状態行列

  • B — 入力行列

  • C — 出力行列

  • D — 直達行列

  • InputDelay — 入力遅延

  • OutputDelay — 出力遅延

  • InternalDelay — モデルの内部遅延

依存関係

この端子を有効にするには、ブロック パラメーターの [出力] タブで [内挿された状態空間データの出力] を選択します。

主要なシミュレーション タイム ステップにおける LPV モデルのオフセット データ。次の要素をもつバス信号として返されます。

  • InputOffset

  • OutputOffset

  • StateOffset

  • StateDerivativeOffset

依存関係

この端子を有効にするには、ブロック パラメーターの [出力] タブで [内挿されたオフセットの出力] を選択します。

パラメーター

すべて展開する

ブロック パラメーターを対話形式で編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップから、[シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

[LPV モデル] タブ

状態空間 (ss または idss (System Identification Toolbox)) モデルの配列です。配列内のすべてのモデルは、同じ状態の定義を使用しなければなりません。

状態空間配列の SamplingGrid プロパティで、モデルのスケジューリング パラメーターと内挿グリッドを指定する必要があります。さらに、[操作点のオフセット] パラメーターを [オフセットを状態空間配列で使用] に設定している場合、配列の Offsets プロパティでモデルのオフセットを指定できます。これらのプロパティの詳細については、ss モデルのリファレンス ページを参照してください。

ブロックが同期状態制御 (State Control (HDL Coder) ブロックを参照) を使用するモデル内にある場合は、離散時間モデルの配列を指定しなければなりません。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: sys
値: ss or idss model array name in quotes

例: set_param(gcb,"sys","sysArrayName")

シミュレーションの開始時にローカル モデルで使用する初期条件。モデルの状態の数と等しい長さのベクトルとして指定します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: x0
値: "0" (既定値) | initial state values in quotes

例: set_param(gcb,"x0","[0 0.1]")

R2024a 以降

操作点のオフセットの形式を指定します。

  • オフセットを double 配列として指定[入力のオフセット][出力のオフセット][状態のオフセット]、および [状態微分/更新のオフセット] の各パラメーターを使用してオフセットを指定します。

  • オフセットを struct 配列として指定 — 入力、出力、状態、状態微分のオフセットをそれぞれ指定する uyxdx のフィールドをもつ構造体配列としてオフセットを指定します。

  • オフセットを状態空間配列で使用 — 状態空間配列の Offsets プロパティで指定されたオフセットを使用します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: opSpecOption
値: "Specify Offsets as double arrays" (既定値) | "Specify offsets as struct array" | "Use offsets in state-space array"

例: set_param(gcb,"opSpecOption","Specify offsets as struct array")

入力 u(t) のオフセット。次のいずれかで指定します。

  • 0 — 入力オフセットがない (u¯(p)=0  p) 場合に使用します。

  • 入力数と同じ長さの double ベクトル — スケジューリング空間内で入力オフセットが同じ場合に使用します。

  • サイズ nu×1×N1×...×Nm の配列の double 配列 — オフセットが存在し、スケジューリング空間内で異なる場合に使用します。ここで、nu は入力の数、N1×...×Nm はスケジューリング グリッドのサイズです。たとえば、モデルに 3 つの入力、2 つの出力、4 つの状態があり、5 行 6 列の操作点のグリッドでスケジュールする場合、入力配列のサイズは 3×1×5×6 でなければなりません。状態空間配列 sys のサイズを確認するには size(sys) を使用します。

依存関係

このパラメーターを有効にするには、[操作点のオフセット] の形式を [オフセットを double 配列として指定] に設定します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: uOffset
値: "0" (既定値) | array name in quotes

例: set_param(gcb,"uOffset","uOffArray")

出力 y(t) のオフセット。次のいずれかで指定します。

  • 0 — 出力オフセットがない (y¯(p)=0  p) 場合に使用します。

  • 出力の数と同じ長さの double ベクトル。スケジューリング空間内で出力のオフセットが同じ場合に使用します。

  • サイズ ny×1×N1×...×Nm の配列の double 配列 — オフセットが存在し、スケジューリング空間内で異なる場合に使用します。ここで、ny は出力の数、N1×...×Nm はスケジューリング グリッドのサイズです。たとえば、モデルに 3 つの入力、2 つの出力、4 つの状態があり、5 行 6 列の操作点のグリッドでスケジュールする場合、入力配列のサイズは 2×1×5×6 でなければなりません。状態空間配列 sys のサイズを確認するには size(sys) を使用します。

依存関係

このパラメーターを有効にするには、[操作点のオフセット] の形式を [オフセットを double 配列として指定] に設定します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: yOffset
値: "0" (既定値) | array name in quotes

例: set_param(gcb,"yOffset","yOffArray")

状態 x(t) のオフセット。次のいずれかで指定します。

  • 0 — 状態オフセットがない (x¯(p)=0  p) 場合に使用します。

  • 状態の数と同じ長さの double ベクトル。スケジューリング空間内で状態のオフセットが同じ場合に使用します。

  • サイズ nx×1×N1×...×Nm の配列の double 配列 — オフセットが存在し、スケジューリング空間内で異なる場合に使用します。ここで、nx は状態の数、N1×...×Nm はスケジューリング グリッドのサイズです。たとえば、モデルに 3 つの入力、2 つの出力、4 つの状態があり、5 行 6 列の操作点のグリッドでスケジュールする場合、入力配列のサイズは 4×1×5×6 でなければなりません。状態空間配列 sys のサイズを確認するには size(sys) を使用します。

依存関係

このパラメーターを有効にするには、[操作点のオフセット] の形式を [オフセットを double 配列として指定] に設定します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: xOffset
値: "0" (既定値) | array name in quotes

例: set_param(gcb,"xOffset","xOffArray")

状態微分または更新変数 dx(t) のオフセット。次のいずれかで指定します。

  • 平衡状態下の線形化により線形システム配列が取得されている場合、[平衡操作の条件の仮定] オプションを選択します。このオプションは、連続時間システムでは dx¯(p)=0、離散時間システムでは dx¯(p)=x¯(p) のオフセットに対応します。既定ではこのオプションが選択されています。

  • 線形システムに平衡でない状態で取得されたシステムが少なくとも 1 つ含まれている場合、[平衡操作の条件の仮定] オプションをオフにします。[オフセット値] フィールドで、次のいずれかを指定します。

    • dx オフセット値が、スケジューリング空間内で同じ場合、状態の数と同じ長さの double ベクトルとして指定します。

    • dx オフセットが存在し、スケジューリング空間内で異なる場合、サイズ nx×1×N1×...×Nm の配列の double 配列として指定します。オフセットが存在し、スケジューリング空間内で異なる場合に使用します。ここで、nx は状態の数、N1×...×Nm はスケジューリング グリッドのサイズです。たとえば、モデルに 3 つの入力、2 つの出力、4 つの状態があり、5 行 6 列の操作点のグリッドでスケジュールする場合、入力配列のサイズは 4×1×5×6 でなければなりません。状態空間配列 sys のサイズを確認するには size(sys) を使用します。

依存関係

このパラメーターを有効にするには、[操作点のオフセット] の形式を [オフセットを double 配列として指定] に設定し、[平衡操作の条件の仮定] を無効にします。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: dxOffset
値: "0" (既定値) | array name in quotes

例: set_param(gcb,"dxOffset","dxOffArray")

R2024a 以降

モデルのオフセット。次のフィールドをもつ構造体として指定します。

フィールド説明
u入力のオフセット
y出力のオフセット
x状態のオフセット
dx状態微分のオフセット
  • オフセット値がスケジューリング空間内で同じ場合、対応するフィールドの入力、出力、または状態の数と等しい長さの double ベクトルとして指定します。

  • オフセットがスケジューリング空間内で異なる場合、構造体配列を指定します。たとえば、モデルが 3 つの入力、2 つの出力および 4 つの状態をもつとします。このモデルを 5 行 6 列の操作点の配列を使用して線形化する場合、構造体配列のサイズは 5 行 6 列で、対応するフィールドの入力、出力、または状態の数と等しい長さのベクトルが各エントリに含まれていなければなりません。

関数 linearize (Simulink Control Design)StoreOffsets オプションを true に設定して線形化すると、info.Offsets 出力において、この形式でオフセットが返されます。

依存関係

このパラメーターを有効にするには、[操作点のオフセット] の形式を [オフセットを struct 配列として指定] に設定します。 (R2024a 以降)

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: Offset
値: "struct" (既定値) | structure array name in quotes

例: set_param(gcb,"Offset","OffsetStructName")

[固定エントリ] タブ

固定係数の値を指定する状態空間モデル。次のいずれかで指定します。

  • 状態空間配列内の最初のモデルを使用 (既定:) — 状態空間配列の最初のモデルを使用して、LPV モデルを表現します。次の例では、状態空間配列をオブジェクト sys で指定し、固定係数をモデル sys(:,:,1) から取得しています。

    % Specify a 4-by-5 array of state-space models.
    sys = rss(4,2,3,4,5);
    a = 1:4; 
    b = 10:10:50;
    [av,bv] = ndgrid(a,b);
    % Use "alpha" and "beta" variables as scheduling parameters.
    sys.SamplingGrid = struct('alpha',av,'beta',bv);  

    固定係数は、[alpha=1, beta=10] に対応するモデル sysFixed = sys(:,:,1) から取得しています。A 行列の (2,1) 要素に強制的に固定する場合、シミュレーション時に使用する値は sysFixed.A(2,1) になります。

  • カスタム値 — 固定エントリに異なる状態空間モデルを指定します。[状態空間モデル] フィールドで、固定するモデルの変数を指定します。固定されたモデルは、LPV モデルの状態空間配列と同じ状態ベースを使用しなければなりません。

固定する状態空間行列の係数および遅延ベクトルを指定します。

次のいずれかを指定します。

  • 行列のすべてのエントリを同じ方法で処理する場合は、スカラーの boolean (true または false)。

    状態空間行列および遅延ベクトルについての既定値は false であり、これらが自由なものとして扱われることを意味します。

  • 対応する行列のサイズと互換性があるサイズの論理行列:

    状態空間行列

    固定エントリの行列のサイズ

    A 行列

    nx 行 nx

    B 行列

    nx 行 nu

    C 行列

    ny 行 nx

    D 行列

    ny 行 nu

    入力遅延

    nu 行 1 列

    出力遅延

    ny 行 1 列

    内部遅延

    ni 行 1 列

    ここで、nu は入力の数、ny は出力の数、nx は状態の数、ni は内部遅延ベクトルの長さです。

  • 固定エントリの位置を指定する数値インデックス。行列の要素の特定の添字 (i,j) に対応する数値インデックスを生成する方法については、sub2ind のリファレンス ページを参照してください。

[スケジューリング] タブ

内挿法です。グリッドの位置から離れているスケジューリング パラメーター値の状態空間データを計算する方法を定義します。

次のオプションのうちの 1 つを指定します。

  • Flat — 現在の点に最も近く、現在の点より大きくないグリッド点の状態空間データを選択します。"現在の点" は、現在時刻におけるスケジューリング パラメーターの値です。

  • Nearest — スケジューリング空間で最も近いグリッド点の状態空間データを選択します。

  • Linear — スケジューリング空間で 2 次元最近傍の線形内挿により状態空間データを取得します。ここで、d = スケジューリング パラメーターの数です。

既定の内挿法は、スケジューリング パラメーター値の規則的なグリッドの場合は [Linear] です。不規則なグリッドの場合、選択した内容にかかわらず、常に Nearest 内挿法が使用されます。規則的および不規則的なグリッドの詳細は、規則的なグリッドと不規則なグリッドを参照してください。

[Linear] 法は、精度は高いのですが、計算に時間がかかります。[Flat] および [Nearest] 法は、モード切り替えダイナミクスをもつモデルに最適です。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: IMethod
値: "Linear" (既定値) | "Nearest" | "Flat"

例: set_param(gcb,"IMethod","Flat")

外挿法です。状態空間配列に指定されている (SamplingGrid プロパティで指定した) 範囲外となるスケジューリング パラメーター値の状態空間データを計算する方法を定義します。

次のオプションのうちの 1 つを指定します。

  • Clip (既定) — 外挿を無効にして、現在の点に最も近い使用可能な最新のスケジューリング グリッド点に対応するデータを返します。

  • Linear — 現在値が最初のグリッド点の値より小さいか、最後のグリッド点の値より大きいかによって、各スケジューリング パラメーターの値の最初または最後のペア間の直線をそれぞれ近似させます。この方法では、現在の値に対応する直線上の点を返します。線形外挿では、内挿法も線形である必要があります。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: EMethod
値: "Clip" (既定値) | "Linear"

例: set_param(gcb,"EMethod","Linear")

ブロックでは、スケジューリング空間における現在のスケジューリング パラメーター値の位置を事前ルックアップ アルゴリズムを使用して決定します。[Linear search] または [Binary search] を選択します。各検索法は、それぞれ異なる状況で速度の利点をもっています。このパラメーターの詳細については、Prelookup (Simulink)ブロックのリファレンス ページを参照してください。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

ブロック パラメーター値をプログラムで取得するには、関数 get_param (Simulink) を使用します。

パラメーター: IndexSearch
値: "Binary Search" (既定値) | "Linear Search"

例: set_param(gcb,"IndexSearch","Linear Search")

前のタイム ステップで検出されたインデックスを使用してブロックで検索を開始する場合、このチェック ボックスを選択します。このパラメーターの詳細については、Prelookup (Simulink)ブロックのリファレンス ページを参照してください。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: IndexBegin
値: "on" (既定値) | "off"

例: set_param(gcb,"IndexBegin","off")

[コード生成] タブ

ブロックのデータ型。[double] または [single] として指定します。

依存関係

このオプションを有効にするには、離散時間状態空間モデルを入力として使用します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: DataType
値: "double" (既定値) | "single"

例: set_param(gcb,"DataType","single")

遅延を含むモデル用に格納する入力ポイントの数に対応した、メモリ割り当ての初期サイズ。入力ポイントの数が初期バッファー サイズを超えた場合、ブロックは追加のメモリを割り当てます。既定のサイズは 1024 です。

モデルをアクセラレータ モードで実行するかモデルをビルドする場合は、初期バッファー サイズを、モデル内で予測される最大の遅延を扱えるよう十分大きいものにしてください。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: InitBufferSize
値: "1024" (既定値) | positive integer greater than 5 in quotes

例: set_param(gcb,"InitBufferSize","512")

前のタイム ステップでの遅延入出力データを保存するために固定バッファー サイズを使用するかどうかを指定します。このオプションは、入力または出力の遅延を含む連続時間 LPV システムに使用します。バッファーが満杯になると、新規データにより、既にバッファー内にあるデータが置き換えられます。ソフトウェアにより線形外挿が使用されて、バッファー内にない出力値を予測します。

プログラムでの使用

ブロック パラメーター値をプログラムで設定するには、関数 set_param (Simulink) を使用します。

パラメーター: FixedBuffer
値: "off" (既定値) | "on"

例: set_param(gcb,"FixedBuffer","on")

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2014b で導入

すべて展開する