Main Content

Stateflow チャートでの可変サイズ データの宣言

Simulink® モデルの Stateflow® チャート内のほとんどのデータは、サイズがコンパイル時に固定され、実行時に変化しません。一方、"可変サイズ データ" はシミュレーション中にサイズが変化します。可変サイズ データは、たとえば Stateflow チャートからの出力がチャートのステートに応じてサイズが変わる配列である場合に使用できます。

可変サイズ データに対するサポートの有効化

既定では、Stateflow チャートは可変サイズ データをサポートします。個別のチャートについてこのサポートを有効または無効にするには、Stateflow チャートのプロパティの指定の説明に従って、チャートのプロパティ [可変サイズの配列をサポート] を変更します。詳細については、可変サイズの配列をサポートを参照してください。

このチャートのプロパティを有効にすると、チャートで Simulink モデル内の他のブロックからの可変サイズの入力データが受け入れられます。データ プロパティの設定の説明に従って [可変サイズ] データ プロパティを有効にすると、追加の可変サイズ データ オブジェクトを宣言できます。詳細については、可変サイズを参照してください。

それぞれの可変サイズ データ オブジェクトの最大サイズを明示的に指定するには、[サイズ] データ プロパティを使用します。たとえば、最初の次元の最大サイズが 2 で、2 番目の次元の最大サイズが 4 である 2 次元行列を指定するには、「[2 4]」と入力します。配列を非有界に設定するには、データの [サイズ] プロパティを inf に設定します。たとえば、最大のサイズをもたない 2-D 行列には、[inf,inf] を設定します。

あるいは、データの最大サイズを継承するには、[サイズ][-1] に設定します。詳細については、Stateflow データのサイズの指定を参照してください。

メモ

可変サイズ データをスカラー データに対して有効にすることはできません。

MATLAB をアクション言語として使用するチャートでの可変サイズ データ

MATLAB® をアクション言語として使用するチャートでは、チャートレベルの入力、ローカル、出力のデータに加え、グラフィカル関数、MATLAB 関数、および真理値表関数の入力と出力のデータで可変サイズがサポートされます。

ステート アクションと遷移アクションで可変サイズのチャート データを変更できます。たとえば、MATLAB をアクション言語として使用する次のチャートでは、可変サイズのチャートの出力 y を、ステート アクションでサイズがスカラーから 2 行 4 列の行列までの範囲の値に代入しています。

Variable-size data in a chart that uses MATLAB as the action language.

この例の詳細については、入力信号のサイズに基づく出力の計算を参照してください。

C をアクション言語として使用するチャートでの可変サイズ データ

C をアクション言語として使用するチャートでは、チャートレベルの入力と出力のデータに加え、MATLAB 関数および MATLAB をアクション言語として使用する真理値表関数の入力、ローカル、一時、出力のデータで可変サイズがサポートされます。

可変サイズのチャート データの変更には以下のみを使用できます。

  • MATLAB 関数

  • Simulink 関数

  • MATLAB をアクション言語として使用する真理値表

可変サイズ データを使用する計算はすべて、ステートまたは遷移で直接実行するのではなく、これらの関数内で実行しなければなりません。たとえば、これらの関数にステート アクションや遷移アクションから可変サイズのチャート データを渡すことができます。あるいは、MATLAB 関数から可変サイズのチャート データに直接アクセスできます。

たとえば、C をアクション言語として使用する次のチャートでは、MATLAB 関数 readInputSize で可変サイズのチャート入力のサイズを判定しています。その後、MATLAB 関数 computeOutput で、サイズに応じたアルゴリズムをチャート入力に適用し、可変サイズのチャート出力の値を設定しています。

Variable-size data in a chart that uses C as the action language.

この例の詳細については、入力信号のサイズに基づく出力の計算を参照してください。

関連するトピック