Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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

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.

参考

関連するトピック