このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Requirements Table ブロックのデータ型の設定
Requirements Table ブロックのデータを作成する際、[型] プロパティを使用してデータ型を設定できます。データはデータ型を継承するか、組み込みデータ型、固定小数点データ型、または列挙データ型に設定できます。データを非バーチャル バスにすることもできます。既定では、Requirements Table ブロックのデータはデータ型を継承します。
データの作成の詳細については、Requirements Table ブロックのデータの定義を参照してください。
データ型の指定
データ型は、[シンボル] ペインとプロパティ インスペクターを使用するかモデル エクスプローラーを使用して指定できます。
[シンボル] ペインとプロパティ インスペクターを使用してデータ型を指定するには、次のようにします。
Requirements Table ブロックを開きます。
[シンボル] ペインを開きます。[モデル化] タブの [データの設計] セクションで [シンボル] ペインをクリックします。
変更するデータを右クリックして [検査] をクリックし、プロパティ インスペクターでデータのプロパティを開きます。
[プロパティ] タブの [型] プロパティでデータ型を選択します。
モデル エクスプローラーを使用してデータ型を指定するには、次のようにします。
モデル エクスプローラーを開きます。[モデル化] タブの [データの設計] セクションで [モデル エクスプローラー] をクリックします。
[モデルの階層構造] ペインでモデルのツリー ビューを展開し、Requirements Table ブロックを選択します。
変更するデータをクリックします。
[型] プロパティでデータ型を選択します。
モデル エクスプローラーでは、データ型のオプションをフィルター処理することもできます。[一般] タブで [データ型アシスタントを表示] ボタン をクリックし、データ型アシスタントを表示します。その後、[モード] ドロップダウン メニューからオプションを選択します。選択するモードに応じて使用可能なデータ型が異なります。
モード | 指定する項目 |
---|---|
Inherit (既定) | [スコープ] プロパティに基づいてデータ型が継承されます。
|
Built in | サポートされている組み込みデータ型を選択します。 |
Fixed point | 固定小数点データのプロパティを指定します。 |
Enumerated | ベース ワークスペースで定義している Simulink.IntEnumType オブジェクトの名前を入力します。 |
Bus Object | MATLAB 構造体のプロパティを定義するための メモ [編集] ボタンをクリックすると、Simulink タイプ エディターを使用して
|
Expression | データ型として評価される式を入力します。 |
データ型の継承
Requirements Table ブロックのデータは、固定小数点型も含めて、接続されている信号からデータ型を継承できます。データがデータ型を継承するように設定するには、次のようにします。
モデル エクスプローラーでデータを選択します。あるいは、[シンボル] ペインでデータを選択してプロパティ インスペクターを開きます。
モデル エクスプローラーまたはプロパティ インスペクターで、[型] を
[継承: Simulink と同じ]
に設定します。
[スコープ] プロパティが [ローカル]
、[パラメーター]
、[入力]
、または [出力]
に設定されたデータでは、それに送信される情報から実数/複素数も継承できます。実数/複素数を継承するには、[実数/複素数] を [継承]
に設定します。
モデルをビルドした後、モデル エクスプローラーの [CompiledType] 列に、Simulink から継承された実際のデータ型が表示されます。想定される型が推定された型と一致すれば、Requirements Table ブロックでデータ型が継承されます。
組み込みデータ型の指定
モデル エクスプローラーでは、データ型アシスタントを展開して [モード] を [組み込み]
に設定すると、[型] をそれらの組み込みデータ型に設定できます。組み込みデータ型は次のとおりです。
データ型 | 説明 |
---|---|
| 64 ビット倍精度浮動小数点 |
| 32 ビット単精度浮動小数点 |
| 半精度データ型は 16 ビットのメモリを占有しますが、その浮動小数点表現を使ってこのデータ型で同じサイズの整数データ型または固定小数点データ型よりも広いダイナミック レンジを処理できます。Simulink の半精度データ型 (Fixed-Point Designer)を参照してください。 |
| 64 ビット符号付き整数 |
| 32 ビット符号付き整数 |
| 16 ビット符号付き整数 |
| 8 ビット符号付き整数 |
| 64 ビット符号なし整数 |
| 32 ビット符号なし整数 |
| 16 ビット符号なし整数 |
| 8 ビット符号なし整数 |
| Boolean |
string | string スカラー |
Fixed-Point Designer データ プロパティ
Requirements Table ブロックでデータを固定小数点数として表すには、Fixed-Point Designer™ をインストールする必要があります。
固定小数点では次のプロパティを設定できます。
符号属性
固定小数点データを [符号付き]
または [符号なし]
のどちらにするかを選択します。符号付きデータでは正の値と負の値を表現できます。符号なしデータは正の値のみを表します。既定の設定は [符号付き]
です。
語長
量子化された整数をもつ語のビット サイズを指定します。ワード サイズが大きいと、小さい場合に比べて、大きな値を高精度で表現します。語長には 0 ~ 128 ビットの整数を指定できます。既定の設定は 16 です。
スケーリング
オーバーフロー状態を回避し、量子化の問題を最小限に抑えるための固定小数点データのスケーリング方法を指定します。次のスケーリング モードを選択できます。
スケーリング モード | 説明 |
---|---|
2 進小数点 (既定) | データ型アシスタントに、2 進小数点の位置を指定する [小数部の長さ] パラメーターが表示されます。 2 進小数点には正または負の整数を指定できます。正の整数を入力すると、その値に応じて 2 進小数点は右端のビットの左側に配置されます。たとえば、2 を入力すると 2 進小数点を右から 2 番目のビットの前に設定します。負の整数を入力すると、以下の例のように、その値に応じて 2 進小数点は右端のビットのさらに右側に配置されます。 既定の設定は |
勾配とバイアス | データ型アシスタントに、[勾配] と [バイアス] のパラメーターが表示されます。
勾配とバイアスは、MATLAB ワークスペースで定義したパラメーターを含む式として入力できます。 |
メモ
可能であれば 2 進小数点のスケーリングを使用することで、生成されたコードでの固定小数点数の実装を簡素化できます。2 進小数点のスケーリングを使用した固定小数点数の演算は単純なビット シフトで実行されるため、別々の勾配値とバイアス値で必要とされるコード実装の手間が省けます。
データ型オーバーライド
データ型オーバーライド設定を Inherit
にするか Off
にするかを指定します。固定小数点の計測機能およびデータ型オーバーライド (Fixed-Point Designer)を参照してください。
最高精度のスケーリングを計算
指定した [最小値] と [最大値] のプロパティに基づいて、[2 進小数点]
と [勾配とバイアス]
の両方のスケーリングの最高精度値を Simulink で自動的に計算します。
最高精度のスケーリング値を自動的に計算するには、次のようにします。
[最小値] または [最大値] のプロパティを指定します。
[最高精度のスケーリングを計算] をクリックします。
Simulink でスケーリング値が計算され、その値が [小数部の長さ] フィールドか [勾配] と [バイアス] のフィールドに表示されます。
メモ
[最小値] と [最大値] のプロパティは、[スコープ] プロパティが [定数]
または [パラメーター]
に設定されたデータには適用されません。それらの種類のデータについては、最高精度のスケーリングは計算できません。
固定小数点の詳細
データ型アシスタントで定義された固定小数点データに関する情報が表示されます。
Minimum
とMaximum
には、[最小値] と [最大値] のプロパティで指定した同じ値が表示されます。Representable minimum
、Representable maximum
、およびPrecision
には、固定小数点データで表現できる最小値、最大値、および精度が表示されます。
モデルを最初にコンパイルしなければフィールドの値を決定できない場合は、[固定小数点の詳細] サブペインの値は Unknown
と表示されます。[固定小数点の詳細] サブペインに表示された値は、固定小数点データを定義する値を変更しても、自動的に更新されません。[固定小数点の詳細] サブペインに表示された値を更新するには、[詳細の更新] をクリックします。
[詳細の更新] をクリックしても、モデルは変更されません。表示のみが変更されます。表示された値を適用するには、[適用] または [OK] をクリックします。
固定小数点データの指定によって問題が生じる場合は、その問題が [固定小数点の詳細] サブペインに示されます。たとえば、次のサブペインには 2 つの問題が表示されています。
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) 演算子。以前に定義されたデータに基づくデータ型の指定に使用します。
たとえば、変数 myDataType
を single
データ型のエイリアスとして指定し、入力データの [型] プロパティで式として使用するとします。次のコマンドを入力して、Simulink.AliasType
クラスのインスタンスを作成し、その BaseType
プロパティを設定します。
myDataType = Simulink.AliasType;
myDataType.BaseType = "single";
プロパティ インスペクターで、データ型エイリアスの名前 myDataType
を [型] プロパティの値として入力します。