このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Stateflow チャートでの可変サイズ データの宣言
Simulink® モデルの Stateflow® チャート内のほとんどのデータは、サイズがコンパイル時に固定され、実行時に変化しません。一方、"可変サイズ データ" はシミュレーション中にサイズが変化します。可変サイズ データは、たとえば Stateflow チャートからの出力がチャートのステートに応じてサイズが変わる配列である場合に使用できます。
可変サイズ データに対するサポートの有効化
既定では、Stateflow チャートは可変サイズ データをサポートします。個別のチャートについてこのサポートを有効または無効にするには、Stateflow チャートのプロパティの指定の説明に従って、チャートのプロパティ [可変サイズの配列をサポート] を変更します。詳細については、可変サイズの配列をサポートを参照してください。
このチャートのプロパティを有効にすると、チャートで Simulink モデル内の他のブロックからの可変サイズの入力データが受け入れられます。データ プロパティの設定の説明に従って [可変サイズ] データ プロパティを有効にすると、追加の可変サイズ データ オブジェクトを宣言できます。詳細については、可変サイズを参照してください。
それぞれの可変サイズ データ オブジェクトの最大サイズを明示的に指定するには、[サイズ] データ プロパティを使用します。たとえば、最初の次元の最大サイズが 2 で、2 番目の次元の最大サイズが 4 である 2 次元行列を指定するには、「[2 4]
」と入力します。
あるいは、データの最大サイズを継承するには、[サイズ] を [-1]
に設定します。詳細については、Stateflow データのサイズの指定を参照してください。
メモ
可変サイズ データをスカラー データに対して有効にすることはできません。
MATLAB をアクション言語として使用するチャートでの可変サイズ データ
MATLAB® をアクション言語として使用するチャートでは、チャートレベルの入力、ローカル、出力のデータに加え、グラフィカル関数、MATLAB 関数、および真理値表関数の入力と出力のデータで可変サイズがサポートされます。
ステート アクションと遷移アクションで可変サイズのチャート データを変更できます。たとえば、MATLAB をアクション言語として使用する次のチャートでは、可変サイズのチャートの出力 y
を、ステート アクションでサイズがスカラーから 2 行 4 列の行列までの範囲の値に代入しています。
この例の詳細については、入力信号のサイズに基づく出力の計算を参照してください。
C をアクション言語として使用するチャートでの可変サイズ データ
C をアクション言語として使用するチャートでは、チャートレベルの入力と出力のデータに加え、MATLAB 関数および MATLAB をアクション言語として使用する真理値表関数の入力、ローカル、一時、出力のデータで可変サイズがサポートされます。
可変サイズのチャート データの変更には以下のみを使用できます。
MATLAB 関数
Simulink 関数
MATLAB をアクション言語として使用する真理値表
可変サイズ データを使用する計算はすべて、ステートまたは遷移で直接実行するのではなく、これらの関数内で実行しなければなりません。たとえば、これらの関数にステート アクションや遷移アクションから可変サイズのチャート データを渡すことができます。あるいは、MATLAB 関数から可変サイズのチャート データに直接アクセスできます。
たとえば、C をアクション言語として使用する次のチャートでは、MATLAB 関数 readInputSize
で可変サイズのチャート入力のサイズを判定しています。その後、MATLAB 関数 computeOutput
で、サイズに応じたアルゴリズムをチャート入力に適用し、可変サイズのチャート出力の値を設定しています。
この例の詳細については、入力信号のサイズに基づく出力の計算を参照してください。