Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Stateflow データの型の指定

"データ型" という用語は、コンピューターによるメモリ内の情報の表現方法を指しています。データに割り当てられるストレージ量、2 進数パターンによるデータ値のエンコード方式、およびデータ操作に使用できる演算は、このデータ型で決まります。

データ型アシスタントを使用したデータ型の指定

データ オブジェクトの型は、プロパティ インスペクターまたはモデル エクスプローラーで指定できます。[型] フィールドで、ドロップダウン リストから型を選択するか、データ型として評価される式を入力します。詳細については、データ プロパティの設定を参照してください。

あるいは、データ型アシスタントを使用してデータの [モード] を指定し、そのモードに基づいてデータ型を選択します。

  1. モデル エクスプローラーの [データ] ペインで、[データ型アシスタントを表示] ボタン をクリックします。

  2. ドロップダウン リストから [モード] を選択します。使用可能なモードのリストは、データ オブジェクトのスコープによって異なります。

    スコープモード
    ローカル継承 (MATLAB® をアクション言語として使用するチャートでのみ使用可能)、組み込み固定小数点列挙型バス オブジェクト
    定数組み込み固定小数点
    パラメーター継承組み込み固定小数点列挙型バス オブジェクト
    入力継承組み込み固定小数点列挙型バス オブジェクト
    出力継承組み込み固定小数点列挙型バス オブジェクト
    データ ストア メモリ継承

  3. モードに基づいて追加情報を指定します。データ型アシスタントでは、指定に基づいて [型] フィールドに値が入力されます。

    モードデータ型
    継承

    データ型は指定できません。データ オブジェクトに対して選択したスコープに基づいてデータ型を継承します。

    詳細については、Simulink オブジェクトからのデータ型の継承を参照してください。

    組み込み

    サポートされているデータ型のドロップダウン リストからデータ型を指定します。

    • double: 64 ビット倍精度浮動小数点。

    • single: 32 ビット単精度浮動小数点。

    • int64: 64 ビット符号付き整数。int64 は固定小数点型 fixdt(1,64,0) の型エイリアスです。

    • int32: 32 ビット符号付き整数。

    • int16: 16 ビット符号付き整数。

    • int8: 8 ビット符号付き整数。

    • uint64: 64 ビット符号なし整数。uint64 は固定小数点型 fixdt(0,64,0) の型エイリアスです。

    • uint32: 32 ビット符号なし整数。

    • uint16: 16 ビット符号なしの整数。

    • uint8: 8 ビット符号なしの整数。

    • boolean: ブール値 (1 = true、0 = false)。

    • ml: MATLAB 配列 mxArray によって内部的にデータ型が設定されます。ml データ型は、Stateflow データに MATLAB 環境の利点をもたらします。具体的には、MATLAB 変数に対して Stateflow データ オブジェクトを割り当てたり、割り当てたデータ オブジェクトを MATLAB 関数に対して引数として渡したりすることが可能になります。ml データには、Stateflow 階層の範囲外のスコープを設定できません。つまり、[入力][出力] のスコープを設定することはできません。詳細については、ml データ型を参照してください。

    • string: string。C をアクション言語として使用するチャートでのみサポートされます。詳細については、string を使用したテキスト情報の管理を参照してください。

    固定小数点

    固定小数点データに関する次の情報を指定します。

    • 符号属性: データが符号付きか符号なしか

    • 語長: 量子化された整数をもつ語のビット サイズ。長い語長は短い語長に比べてよい精度で大きな値を表します。既定値は 16 です。

    • スケーリング: オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法。既定の方法は [2 進小数点] です。

    詳細については、固定小数点データのプロパティを参照してください。

    列挙型

    列挙型データに対するクラス名を指定します。詳細については、列挙データ型の定義を参照してください。

    バス オブジェクト

    Stateflow® バス オブジェクト構造に関連付ける Simulink.Bus オブジェクトの名前を指定します。[編集] をクリックして作成するか、バス エディターでバス オブジェクトを編集します。バス オブジェクトのプロパティは、Simulink 信号から継承することも可能です。

    データ型として評価される式を指定します。次のいずれかの式を使用できます。

    詳細については、MATLAB 式を使用したデータ プロパティの指定を参照してください。

  4. データ型設定を保存するには、[適用] をクリックします。

データ型アシスタントは、モデル エクスプローラー経由でのみ使用できます。

Simulink オブジェクトからのデータ型の継承

[継承: Simulink と同じ][データ型] ドロップダウン リストから選択すると、スコープが [入力][出力][パラメーター][データ ストア メモリ] であるデータ オブジェクトは、データ型を Simulink オブジェクトから継承します。

スコープ説明
入力チャートの対応する入力端子に接続された Simulink 入力信号からデータ型を継承します。
出力

チャートの対応する出力端子に接続された Simulink 出力信号からデータ型を継承します。

出力信号からデータ型を継承することは避けてください。Simulink ブロックから逆伝播する値は予測不能になる可能性があります。

パラメーターマスク サブシステムの対応する MATLAB ベース ワークスペース変数または Simulink パラメーターからデータ型を継承します。
データ ストア メモリ対応する Simulink データ ストアからデータ型を継承します。

オブジェクトが継承するデータ型を特定するには、次を行います。

  1. Simulink モデルを作成します。

  2. モデル エクスプローラーを開きます。

  3. [コンテンツ] ペインで、[CompiledType] 列を調べます。

他のデータ オブジェクトからのデータ型の派生

type 演算子を使用すると、他の Stateflow データ オブジェクトからデータ型を派生できます。

type(data_obj)
たとえば、モデル sf_bus_demo で、式 type(inbus) を実行すると、入力構造体 inbus のデータ型が返されます。inbusSimulink.Bus オブジェクト COUNTERBUS から型が派生するため、ローカル構造体 counterbus_struct も、COUNTERBUS からデータ型が派生されます。

モデルの作成後、モデル エクスプローラーの [CompiledType] 列には、コンパイル済みのシミュレーション アプリケーションで使用されるデータ型が表示されます。

Simulink エイリアスを使用したデータ型の指定

Simulink データ型エイリアスを使用することで、Stateflow データのデータ型を指定できます。詳細については、Simulink.AliasType を参照してください。

たとえば、組み込みのデータ型 single に対応するデータ型エイリアス MyFloat を定義するとします。MATLAB コマンド プロンプトで、次のように入力します。

MyFloat = Simulink.AliasType;
MyFloat.BaseType = 'single';

このエイリアスを使用してデータ オブジェクトの型を指定するには、プロパティ インスペクターまたはモデル エクスプローラーでオブジェクトを選択します。[型] フィールドにエイリアス名 MyFloat を入力します。

モデルの作成後、モデル エクスプローラーの [CompiledType] 列には、コンパイル済みのシミュレーション アプリケーションで使用されるデータ型が表示されます。

Simulink 入出力での厳密なデータ型指定

既定では、[Simulink I/O で厳密な型指定] チャート プロパティによって、C チャートを Simulink モデルからの信号と直接インターフェイス接続させることができます。チャートは、対応する Stateflow データ オブジェクトの型とデータ型が一致する入力信号のみを受け入れます。それ以外の場合は、型不一致のエラーが発生します。たとえば、[Simulink I/O で厳密な型指定] を選択することにより、チャートの固定小数点型の入出力データと Simulink モデルの対応するデータが不一致の場合にフラグを付けることができます。詳細については、Stateflow チャートのプロパティの指定を参照してください。

[Simulink I/O で厳密な型指定] チャート プロパティをオフにすると、チャートでは、型 [double] の入力信号が、チャート内の対応する入力データ オブジェクトの型に変換されます。チャートでは、出力データ オブジェクトを、型 [double] に変換してから、出力信号として Simulink モデルにエクスポートします。

メモ

[Simulink I/O で厳密な型指定] チャート プロパティは、下位互換性のために提供されています。このチェック ボックスをオフにすると、予期しない結果が生じる可能性があるため推奨されません。

関連するトピック