Main Content

Requirements Table ブロックのデータ型の設定

R2022a 以降

Requirements Table ブロックのデータを作成する際、[型] プロパティを使用してデータ型を設定できます。データはデータ型を継承するか、組み込みデータ型、固定小数点データ型、または列挙データ型に設定できます。データを非バーチャル バスにすることもできます。既定では、Requirements Table ブロックのデータはデータ型を継承します。

データの作成の詳細については、Requirements Table ブロックのデータの定義を参照してください。

データ型の指定

データ型は、[シンボル] ペインとプロパティ インスペクターを使用するかモデル エクスプローラーを使用して指定できます。

[シンボル] ペインとプロパティ インスペクターを使用してデータ型を指定するには、次のようにします。

  1. Requirements Table ブロックを開きます。

  2. [シンボル] ペインを開きます。[モデル化] タブの [データの設計] セクションで [シンボル] ペインをクリックします。

  3. 変更するデータを右クリックして [検査] をクリックし、プロパティ インスペクターでデータのプロパティを開きます。

  4. [プロパティ] タブの [型] プロパティでデータ型を選択します。

モデル エクスプローラーを使用してデータ型を指定するには、次のようにします。

  1. モデル エクスプローラーを開きます。[モデル化] タブの [データの設計] セクションで [モデル エクスプローラー] をクリックします。

  2. [モデルの階層構造] ペインでモデルのツリー ビューを展開し、Requirements Table ブロックを選択します。

  3. 変更するデータをクリックします。

  4. [型] プロパティでデータ型を選択します。

モデル エクスプローラーでは、データ型のオプションをフィルター処理することもできます。[一般] タブで [データ型アシスタントを表示] ボタン をクリックし、データ型アシスタントを表示します。その後、[モード] ドロップダウン メニューからオプションを選択します。選択するモードに応じて使用可能なデータ型が異なります。

モード指定する項目
Inherit (既定)

[スコープ] プロパティに基づいてデータ型が継承されます。

  • [スコープ][入力] の場合、データ型は所定の端子への入力信号から継承されます。

  • [スコープ][出力] の場合、データ型は所定の端子への出力信号から継承されます。

  • [スコープ] がそれ以外のオプションに設定されている場合、データ型は関連付けられているパラメーターから継承されます。これは Simulink® マスク サブシステムまたは MATLAB® ワークスペースで定義できます。

Built inサポートされている組み込みデータ型を選択します。
Fixed point

固定小数点データのプロパティを指定します。

Enumeratedベース ワークスペースで定義している Simulink.IntEnumType オブジェクトの名前を入力します。
Bus Object

MATLAB 構造体のプロパティを定義するための Simulink.Bus オブジェクトの名前を入力します。バス オブジェクトはベース ワークスペースで定義する必要があります。

メモ

[編集] ボタンをクリックすると、Simulink タイプ エディターを使用して Simulink.Bus オブジェクトを作成したり変更したりできます。

Expressionデータ型として評価される式を入力します。

データ型の継承

Requirements Table ブロックのデータは、固定小数点型も含めて、接続されている信号からデータ型を継承できます。データがデータ型を継承するように設定するには、次のようにします。

  1. モデル エクスプローラーでデータを選択します。あるいは、[シンボル] ペインでデータを選択してプロパティ インスペクターを開きます。

  2. モデル エクスプローラーまたはプロパティ インスペクターで、[型][継承: Simulink と同じ] に設定します。

[スコープ] プロパティが [ローカル][パラメーター][入力]、または [出力] に設定されたデータでは、それに送信される情報から実数/複素数も継承できます。実数/複素数を継承するには、[実数/複素数][継承] に設定します。

モデルをビルドした後、モデル エクスプローラーの [CompiledType] 列に、Simulink から継承された実際のデータ型が表示されます。想定される型が推定された型と一致すれば、Requirements Table ブロックでデータ型が継承されます。

組み込みデータ型の指定

モデル エクスプローラーでは、データ型アシスタントを展開して [モード][組み込み] に設定すると、[型] をそれらの組み込みデータ型に設定できます。組み込みデータ型は次のとおりです。

データ型説明

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

Boolean

string

string スカラー

Fixed-Point Designer データ プロパティ

Requirements Table ブロックでデータを固定小数点数として表すには、Fixed-Point Designer™ をインストールする必要があります。

固定小数点では次のプロパティを設定できます。

符号属性

固定小数点データを [符号付き] または [符号なし] のどちらにするかを選択します。符号付きデータでは正の値と負の値を表現できます。符号なしデータは正の値のみを表します。既定の設定は [符号付き] です。

語長

量子化された整数をもつ語のビット サイズを指定します。ワード サイズが大きいと、小さい場合に比べて、大きな値を高精度で表現します。語長には 0 ~ 128 ビットの整数を指定できます。既定の設定は 16 です。

スケーリング

オーバーフロー状態を回避し、量子化の問題を最小限に抑えるための固定小数点データのスケーリング方法を指定します。次のスケーリング モードを選択できます。

スケーリング モード説明
2 進小数点 (既定)

データ型アシスタントに、2 進小数点の位置を指定する [小数部の長さ] パラメーターが表示されます。

2 進小数点には正または負の整数を指定できます。正の整数を入力すると、その値に応じて 2 進小数点は右端のビットの左側に配置されます。たとえば、2 を入力すると 2 進小数点を右から 2 番目のビットの前に設定します。負の整数を入力すると、以下の例のように、その値に応じて 2 進小数点は右端のビットのさらに右側に配置されます。

Shows a graphical representation of binary points.

既定の設定は 0 です。

勾配とバイアス

データ型アシスタントに、[勾配][バイアス] のパラメーターが表示されます。

  • 勾配には任意の正の実数を指定できます。既定の設定は 1.0 です。

  • バイアスには任意の実数を指定できます。既定値は 0.0 です。

勾配とバイアスは、MATLAB ワークスペースで定義したパラメーターを含む式として入力できます。

メモ

2 進小数点のスケーリングを使用して、生成されたコードでの固定小数点数の実装を簡素化します。2 進小数点のスケーリングを使用した固定小数点数の演算は単純なビット シフトで実行されるため、別々の勾配値とバイアス値で必要とされるコード実装の手間が省けます。

データ型オーバーライド

データ型オーバーライド設定を Inherit にするか Off にするかを指定します。固定小数点のインストルメンテーションおよびデータ型オーバーライド (Fixed-Point Designer)を参照してください。

最高精度のスケーリングを計算

指定した [最小値][最大値] のプロパティに基づいて、[2 進小数点][勾配とバイアス] の両方のスケーリングの最高精度値を Simulink で自動的に計算します。

最高精度のスケーリング値を自動的に計算するには、次のようにします。

  1. [最小値] または [最大値] のプロパティを指定します。

  2. [最高精度のスケーリングを計算] をクリックします。

Simulink でスケーリング値が計算され、その値が [小数部の長さ] フィールドか [勾配][バイアス] のフィールドに表示されます。

メモ

[最小値][最大値] のプロパティは、[スコープ] プロパティが [定数] または [パラメーター] に設定されたデータには適用されません。それらの種類のデータについては、最高精度のスケーリングは計算できません。

固定小数点の詳細

データ型アシスタントで定義された固定小数点データに関する情報が表示されます。

  • MinimumMaximum には、[最小値][最大値] のプロパティで指定した同じ値が表示されます。

  • Representable minimumRepresentable maximum、および Precision には、固定小数点データで表現できる最小値、最大値、および精度が表示されます。

This image shows the fixed-point details for data named data.

モデルを最初にコンパイルしなければフィールドの値を決定できない場合は、[固定小数点の詳細] サブペインの値は Unknown と表示されます。[固定小数点の詳細] サブペインに表示された値は、固定小数点データを定義する値を変更しても、自動的に更新されません。[固定小数点の詳細] サブペインに表示された値を更新するには、[詳細の更新] をクリックします。

[詳細の更新] をクリックしても、モデルは変更されません。表示のみが変更されます。表示された値を適用するには、[適用] または [OK] をクリックします。

固定小数点データの指定によって問題が生じる場合は、その問題が [固定小数点の詳細] サブペインに示されます。たとえば、次のサブペインには 2 つの問題が表示されています。

This image shows the fixed-point details for data named data with two issues.

Maximum のラベルが付いた行は、[最大値] プロパティで指定された値を固定小数点データで表現できないことを示しています。問題を修正するには、以下のいずれかの変更を行って、固定小数点データで最大値を表現できるようにします。

  • [最大値] プロパティの値を減らします。

  • [語長] を増やします。

  • [小数部の長さ] を減らします。

Minimum のラベルが付いた行には、[最小値] プロパティで指定された式 MySymbol の評価で数値が返されなかったため、メッセージ Cannot evaluate が表示されています。式が評価されなかった場合、[固定小数点の詳細] サブペインには、無効な値の代わりに未評価の式 (10 文字までに切り捨て) が表示されます。この問題を修正するには、ベース ワークスペースで MySymbol を定義して数値を指定します。

[詳細の更新] をクリックすると、問題のインジケーターと説明が削除され、未評価のテキストの代わりに MySymbol の値が表示されます。

列挙データ型

モデル エクスプローラーまたはプロパティ インスペクターでは、列挙データを明示的に指定することも、データに継承させることもできます。データを列挙型に明示的に設定するには、[型][Enum: <class name>] に設定し、<class name> を MATLAB パス上の MATLAB ファイルで定義した列挙データ型の名前に置き換えます。接続された Simulink 信号から列挙型を継承するには、[型][継承: Simulink と同じ] に設定します。列挙型のデータを継承できるのは、[スコープ] プロパティが [入力] の場合だけです。詳細については、Simulink モデルでの列挙型データの使用 (Simulink)を参照してください。

バス オブジェクト

モデル エクスプローラーまたはプロパティ インスペクターでは、[型][Bus: <object name>] に設定すると、データ型をバスに設定できます。<object name>Simulink.Bus の名前に置き換えます。Requirements Table ブロックは非バーチャル バスのみをサポートします。合成インターフェイスのガイドライン (Simulink)を参照してください。Requirements Table ブロックのバス入力の場合、入力バーチャル バス信号は非バーチャル バスに変換されます。

バス入力とバス出力は Requirements Table ブロックから他のバス信号に接続できます。これには以下が含まれます。

  • バス信号を出力するブロック (Bus Creator ブロックなど)。

  • バス信号を入力として受け入れるブロック (Bus Selector ブロックや Gain ブロックなど)。

  • S-Function ブロック。

  • 他の Requirements Table ブロック。

式のデータ型

モデル エクスプローラーまたはプロパティ インスペクターを使用して、Requirements Table ブロックのデータの型を式として指定できます。

モデル エクスプローラーを使用するには、[モード] プロパティを Expression に設定します。[型] プロパティで、<data type expression> をデータ型として評価される式に置き換えます。

プロパティ インスペクターを使用するには、[型] プロパティをダブルクリックし、内容をクリアして式を入力します。

次の式を使用できます。

  • MATLAB ワークスペースのエイリアス型。Simulink.AliasType (Simulink) の説明を参照してください。

  • 関数 fixdt (Simulink)。固定小数点または浮動小数点のデータ型を記述する Simulink.NumericType オブジェクトの作成に使用します。

  • type (Stateflow) 演算子。以前に定義されたデータに基づくデータ型の指定に使用します。

たとえば、変数 myDataTypesingle データ型のエイリアスとして指定し、入力データの [型] プロパティで式として使用するとします。次のコマンドを入力して、Simulink.AliasType クラスのインスタンスを作成し、その BaseType プロパティを設定します。

myDataType = Simulink.AliasType;
myDataType.BaseType = "single";

プロパティ インスペクターで、データ型エイリアスの名前 myDataType[型] プロパティの値として入力します。

This image shows the property inspector after entering the expression for the data type.

メモ

データのいずれかがエイリアス型を使用していて可変サイズである場合、Requirements Table ブロックではコード生成はサポートされません。この制限は、ブロックの入力、出力、またはローカル データには適用されません。可変サイズのデータの詳細については、可変サイズを参照してください。

参考

関連するトピック