このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateflow データの型の指定
"データ型" という用語は、コンピューターによるメモリ内の情報の表現方法を指しています。データに割り当てられるストレージ量、2 進数パターンによるデータ値のエンコード方式、およびデータ操作に使用できる演算は、このデータ型で決まります。
データ型アシスタントを使用したデータ型の指定
データ オブジェクトの型は、[プロパティ インスペクター] またはモデル エクスプローラーで指定できます。[型] フィールドで、ドロップダウン リストから型を選択するか、データ型として評価される式を入力します。詳細については、データ プロパティの設定を参照してください。
あるいは、データ型アシスタントを使用してデータの [モード] を指定し、そのモードに基づいてデータ型を選択します。
モデル エクスプローラーの [データ] ペインで、[データ型アシスタントを表示] ボタン をクリックします。
ドロップダウン リストから [モード] を選択します。使用可能なモードのリストは、データ オブジェクトのスコープによって異なります。
スコープ モード ローカル
継承
(MATLAB® をアクション言語として使用するチャートでのみ使用可能)、組み込み
、固定小数点
、列挙型
、バス オブジェクト
、式
定数
組み込み
、固定小数点
、式
パラメーター
継承
、組み込み
、固定小数点
、列挙型
、バス オブジェクト
、式
入力
継承
、組み込み
、固定小数点
、列挙型
、バス オブジェクト
、式
出力
継承
、組み込み
、固定小数点
、列挙型
、バス オブジェクト
、式
データ ストア メモリ
継承
モードに基づいて追加情報を指定します。データ型アシスタントでは、指定に基づいて [型] フィールドに値が入力されます。
モード データ型 継承
データ型は指定できません。データ オブジェクトに対して選択したスコープに基づいてデータ型を継承します。
アクション言語として MATLAB を使用するチャートでは、スコープが
[ローカル]
の場合、チャート内の MATLAB コードのコンテキストからデータ型を推定します。スコープが
[パラメーター]
の場合は、関連するパラメーターからデータ型を継承します。パラメーターは、Simulink® モデルや MATLAB ベース ワークスペースで定義できます。Simulink および MATLAB ワークスペースとのパラメーターの共有を参照してください。スコープが
[入力]
の場合は、指定された入力端子の Simulink 入力信号からデータ型を継承します。Simulink との入出力データの共有を参照してください。スコープが
[出力]
の場合は、指定された出力端子の Simulink 出力信号からデータ型を継承します。Simulink との入出力データの共有を参照してください。メモ
出力信号からデータ型を継承することは避けてください。Simulink ブロックから出力データ プロパティを継承することは避けるを参照してください。
スコープが
[データ ストア メモリ]
の場合は、データ オブジェクトをバインドする Simulink データ ストアからデータ型を継承します。チャートからのデータ ストア メモリへのアクセスを参照してください。
詳細については、Simulink オブジェクトからのデータ型の継承を参照してください。
組み込み
サポートされているデータ型のドロップダウン リストからデータ型を指定します。
double
: 64 ビット倍精度浮動小数点。single
: 32 ビット単精度浮動小数点。half
: 半精度データ型は 16 ビットのメモリを占有しますが、その浮動小数点表現を使ってこのデータ型で同じサイズの整数データ型または固定小数点データ型よりも広いダイナミック レンジを処理できます。Simulink の半精度データ型 (Fixed-Point Designer)を参照してください。int64
: 64 ビット符号付き整数。int32
: 32 ビット符号付き整数。int16
: 16 ビット符号付き整数。int8
: 8 ビット符号付き整数。uint64
: 64 ビット符号なし整数。uint32
: 32 ビット符号なし整数。uint16
: 16 ビット符号なしの整数。uint8
: 8 ビット符号なしの整数。boolean
: ブール値 (1 =true
、0 =false
)。ml
: MATLAB 配列mxArray
によって内部的にデータ型が設定されます。C をアクション言語として使用するチャートでのみサポートされます。ml
データ型は、Stateflow データに MATLAB 環境の利点をもたらします。具体的には、MATLAB 変数に対して Stateflow データ オブジェクトを割り当てたり、割り当てたデータ オブジェクトを MATLAB 関数に対して引数として渡したりすることが可能になります。ml
データには、Stateflow 階層の範囲外のスコープを設定できません。つまり、[入力]
や[出力]
のスコープを設定することはできません。詳細については、ml データ型を参照してください。string
: string。詳細については、string を使用したテキスト情報の管理を参照してください。
固定小数点
固定小数点データに関する次の情報を指定します。
符号属性: データが符号付きか符号なしか
語長: 量子化された整数をもつ語のビット サイズ。長いワード サイズは短いワード サイズに比べてよい精度で大きな値を表します。既定値は 16 です。
スケーリング: オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法。既定の方法は
[2 進小数点]
です。
詳細については、固定小数点データのプロパティを参照してください。
列挙型
列挙データ型に対するクラス名を指定します。詳細については、列挙データ型の定義を参照してください。
バス オブジェクト
Stateflow® バス オブジェクト構造に関連付ける
Simulink.Bus
オブジェクトの名前を指定します。型エディターで [編集] をクリックして、バス オブジェクトを作成または編集します。バス オブジェクトのプロパティは、Simulink 信号から継承することも可能です。式
データ型として評価される式を指定します。次のいずれかの式を使用します。
固定小数点または浮動小数点のデータ型を記述した
Simulink.NumericType
(Simulink) オブジェクトを作成するための関数fixdt
(Simulink) の呼び出し。固定小数点データの指定を参照してください。事前定義されたデータ型を指定するための
type
演算子の呼び出し。他のデータ オブジェクトからのデータ型の派生を参照してください。MATLAB ベース ワークスペースでデータ型エイリアスを定義する
Simulink.AliasType
(Simulink) オブジェクト。Simulink エイリアスを使用したデータ型の指定を参照してください。
詳細については、MATLAB 式を使用したデータ プロパティの指定を参照してください。
データ型設定を保存するには、[適用] をクリックします。
データ型アシスタントは、モデル エクスプローラー経由でのみ使用できます。
Simulink オブジェクトからのデータ型の継承
[継承: Simulink と同じ]
を [型] ドロップダウン リストから選択すると、スコープが [入力]
、[出力]
、[パラメーター]
、[データ ストア メモリ]
であるデータ オブジェクトは、データ型を Simulink オブジェクトから継承します。
スコープ | 説明 |
---|---|
入力 | チャートの対応する入力端子に接続された Simulink 入力信号からデータ型を継承します。 |
出力 | チャートの対応する出力端子に接続された Simulink 出力信号からデータ型を継承します。 出力信号からデータ型を継承することは避けてください。Simulink ブロックから逆伝播する値は予測不能になる可能性があります。 |
パラメーター | マスク サブシステムの対応する MATLAB ベース ワークスペース変数または Simulink パラメーターからデータ型を継承します。 |
データ ストア メモリ | 対応する Simulink データ ストアからデータ型を継承します。 |
オブジェクトが継承するデータ型を特定するには、次を行います。
Simulink モデルを作成します。
モデル エクスプローラーを開きます。
[コンテンツ] ペインで、[CompiledType] 列を調べます。
他のデータ オブジェクトからのデータ型の派生
type
演算子を使用すると、他の Stateflow データ オブジェクトからデータ型を派生させることができます。たとえば、モデル sf_bus_demo
は次の式を使用することにより、入力構造体 inbus
のデータ型を使用してローカル構造体 counterbus_struct
のデータ型を定義します。
type(inbus)
inbus
の型は Simulink.Bus
オブジェクト COUNTERBUS
から派生されるため、counterbus_struct
のデータ型も COUNTERBUS
から派生されます。モデルのコンパイル後、モデル エクスプローラーの [CompiledType] 列には、コンパイル済みのシミュレーション アプリケーションで使用される型が表示されます。
この例の詳細については、Stateflow チャートのカスタム構造体の統合を参照してください。
Simulink エイリアスを使用したデータ型の指定
Simulink データ型エイリアスを使用することで、Stateflow データのデータ型を指定できます。詳細については、Simulink.AliasType
(Simulink) を参照してください。
たとえば、組み込みのデータ型 single
に対応するデータ型エイリアス MyFloat
を定義するとします。MATLAB コマンド プロンプトで、次のように入力します。
MyFloat = Simulink.AliasType;
MyFloat.BaseType = "single";
このエイリアスを使用してデータ オブジェクトの型を指定するには、[プロパティ インスペクター] またはモデル エクスプローラーでオブジェクトを選択します。[型] フィールドにエイリアス名 MyFloat
を入力します。
モデルの作成後、モデル エクスプローラーの [CompiledType] 列には、コンパイル済みのシミュレーション アプリケーションで使用されるデータ型が表示されます。
メモ
いずれかのデータがエイリアス型を使用していて可変サイズである場合、Stateflow ブロックではコード生成はサポートされません。この制限は、チャートレベルの入力データ、出力データ、またはローカル データには適用されません。可変サイズ データの定義の詳細については、Stateflow チャートでの可変サイズ データの宣言を参照してください。
参考
fixdt
(Simulink) | Simulink.AliasType
(Simulink) | Simulink.NumericType
(Simulink)
関連するトピック
- データ プロパティの設定
- Simulink におけるデータ型について (Simulink)