このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateflow データのスコープと型の指定
データ型は、情報をコンピューター メモリに格納する際の形式を定義します。データ型は、Stateflow® チャートの 3 つの重要な点に影響します。
データに割り当てられるストレージ スペースの量。
データ値をバイナリ パターンに変換する方法。
データに対して実行できる一連の操作。
データ型を使用して、チャートのリソースの使用を最適化し、ソフトウェア アプリケーションでチャート データが確実に正しく操作されるようにします。
Stateflow では、データを型、スコープ、およびモードで定義します。データ型は、データをシステムに格納するための具体的な方法です。たとえば、double
データ型や single
データ型を指定できます。スコープは、Stateflow チャート内でのデータの動作です。たとえば、入力データは Simulink® が Stateflow に入力するデータで、ローカル データは Stateflow 内で発生してそこにとどまるデータです。モードは、選択できる型のサブセットを指定します。たとえば、モードが Inherited
の場合、データはその情報を Simulink から取得しますが、モードが Expression
の場合、データの情報は入力した式によって異なります。モードは、データ型アシスタントを使用する場合にのみ指定できます。
データ型は、[プロパティ インスペクター] で指定できます。[型] フィールドで、ドロップダウン リストから型を選択するか、データ型になる式を入力します。詳細については、データ プロパティの設定を参照してください。
Simulink オブジェクトからのデータ型の継承
[型] ドロップダウン リストを [継承: Simulink と同じ]
に設定すると、スコープが [入力]
、[出力]
、[パラメーター]
、[データ ストア メモリ]
であるデータ オブジェクトは、データ型を Simulink オブジェクトから継承します。データを特定の型と見なす場合は、[型] を [継承: Simulink と同じ]
に設定しないでください。
スコープ | 説明 |
---|---|
入力 | チャートの対応する入力端子に接続された Simulink 入力信号から型を継承します。 |
出力 | チャートの対応する出力端子に接続された Simulink 出力信号から型を継承します。 |
パラメーター | マスク サブシステムの対応する MATLAB® ベース ワークスペース変数、Simulink データ ディクショナリ エントリ、または Simulink パラメーターからデータ型を継承します。 |
データ ストア メモリ | 対応する Simulink データ ストアからデータ型を継承します。 |
オブジェクトが継承するデータ型を特定するには、次を行います。
Simulink モデルを作成します。
モデル エクスプローラーを開きます。
[コンテンツ] ペインで、[CompiledType] 列を調べます。
他のデータ オブジェクトからのデータ型の派生
type
演算子を使用すると、他の Stateflow データ オブジェクトからデータ型を派生させることができます。たとえば、モデル sf_bus_demo
は、入力構造体 inbus
のデータ型を使用してローカル構造体 counterbus_struct
のデータ型を定義します。構造体は次の式を使用して定義されます。
type(inbus)
inbus
の型は Simulink.Bus
オブジェクト COUNTERBUS
から派生されるため、counterbus_struct
のデータ型も COUNTERBUS
から派生されます。
この例の詳細については、Stateflow チャートのカスタム構造体の統合を参照してください。
Simulink エイリアスを使用したデータ型の指定
Simulink データ型エイリアスを使用することで、Stateflow データのデータ型を指定できます。詳細については、Simulink.AliasType
(Simulink) を参照してください。
たとえば、組み込みのデータ型 single
に対応するデータ型エイリアス MyFloat
を定義するとします。MATLAB コマンド プロンプトで、次のように入力します。
MyFloat = Simulink.AliasType;
MyFloat.BaseType = "single";
このエイリアスを使用してデータ型を指定するには、Stateflow チャートを開き、[シンボル] ペインでデータを選択します。その後、[プロパティ インスペクター] で [型] を MyFloat
に設定します。
モデルの作成後、モデル エクスプローラーの [CompiledType] 列には、コンパイル済みのシミュレーションで使用される型が表示されます。
参考
fixdt
(Simulink) | Simulink.AliasType
(Simulink) | Simulink.NumericType
(Simulink)