データ型アシスタントを利用したデータ型の指定
データ型アシスタントは、ブロックおよびデータ オブジェクトのデータ型を指定するタスクを簡素化するグラフィカルな対話型ツールです。このアシスタントは、ブロックおよびオブジェクトのダイアログ ボックス内の [出力データ型] パラメーターなどのデータ型を制御するパラメーターの近くに表示されます。たとえば、Constant ブロックの [ブロック パラメーター] ダイアログ ボックスの [信号属性] タブに表示されます。
データ型アシスタントは、以下のように該当するボタンをクリックすると表示と非表示を切り替えられます。
[データ型アシスタントを表示] ボタン をクリックすると、アシスタントが表示されます。
[データ型アシスタントを非表示] ボタン をクリックすると、アシスタントが非表示になります。
データ型アシスタントを使用すると、以下のようにデータ型を指定できます。
[モード] リストから、指定するデータ型のカテゴリを選択します。一般に、次のオプションが含まれます。
モード 説明 継承
データ型の継承ルール
組み込み
組み込みデータ型
固定小数点
固定小数点データ型
列挙型
列挙データ型
バス オブジェクト
バス オブジェクト データ型
イメージ
Simulink イメージデータ型 (Computer Vision Toolbox™)
値のタイプ
アプリケーション固有の値のタイプ (風速など)
式
評価結果がデータ型となる式
アシスタントは動的に変化して、選択されたモードに該当する異なるオプションを表示します。たとえば、Constant ブロックの [ブロック パラメーター] ダイアログ ボックスで [モード] を
[式]
に設定すると、[出力データ型] と [モード] の横にあるボックスの値が更新されます。[モード] リストの右側で、データ型を選択または入力します。
たとえば、変数
myDataType
をsingle
データ型のエイリアスとして指定する場合を考えてみます。次のコマンドを入力して、Simulink.AliasType
クラスのインスタンスを作成し、そのBaseType
プロパティを設定します。myDataType = Simulink.AliasType myDataType.BaseType = 'single'
このデータ型オブジェクトを使用すると、Constant ブロックの出力データ型を指定できます。式の値としてデータ型のエイリアス名
myDataType
をアシスタントに入力します。[OK] または [適用] をクリックして、変更内容を適用します。
アシスタントは、ユーザーが指定したデータ型を使用して、ブロックまたはオブジェクトのダイアログ ボックスにある関連するデータ型パラメーターに値を挿入します。たとえば、Constant ブロックの [出力データ型] パラメーターは、ユーザーがアシスタントを使用して入力した式と同じ式を指定します。
データ型アシスタントを使用して指定できるデータ型の詳細は、有効なデータ型の値の入力を参照してください。固定小数点データ型の指定に関する詳細は、データ型アシスタントを使用した固定小数点データ型の指定 (Fixed-Point Designer)を参照してください。
固定小数点データ型の指定
データ型アシスタントの [モード] が [固定小数点]
の場合、データ型アシスタントには、固定小数点データ型の指定に関する情報があるフィールドが表示されます。たとえば、次の図には、[信号属性] タブが選択され、固定小数点データ型が指定されている Gain ブロックの [ブロック パラメーター] ダイアログ ボックスが示されています。
[スケーリング] が [
2 進小数点] ではなく [
勾配とバイアス] である場合、データ型アシスタントには、[小数部の長さ] ではなく [勾配] フィールドと [バイアス] フィールドが表示されます。
データ型アシタントを使用して、以下の固定小数点プロパティを設定します。
符号属性
固定小数点データを [
符号付き] または [
符号なし] のどちらに設定するかを指定します。符号付きデータでは正の値と負の値を表現できますが、符号なしデータでは正の値のみを表現できます。既定の設定は、[
符号付き] です。
語長
量子化された整数をもつ語のビット サイズを指定します。長いワード サイズは短いワード サイズに比べてよい精度で大きな値を表します。語長には 0 ~ 128 の整数を指定できます。既定のビットサイズは 16 です。
スケーリング
オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。既定の方法は、[2 進小数点]
スケーリングです。以下の 2 つのスケーリング モードのいずれかを選択できます。
スケーリング モード | 説明 |
---|---|
2 進小数点 | このモードを選択すると、データ型アシスタントに 2 進小数点の位置を指定する [小数部の長さ] フィールドが表示されます。 2 進小数点は正または負の整数になります。正の整数を入力すると、その値に応じて 2 進小数点は右端のビットの左側に配置されます。たとえば、2 は小数点を右から 2 番目のビットの前に設定します。負の整数を入力すると、以下の例のように、その値に応じて 2 進小数点は右端のビットのさらに右側に配置されます。 既定の 2 進小数点は 0 です。 |
勾配とバイアス | このモードを選択すると、[データ型アシスタント] に [勾配] と [バイアス] フィールドが表示され、その値を入力できるようになります。 [勾配] には、任意の正の実数を入力できます。既定の設定は 1.0 です。[バイアス] には、任意の実数を入力できます。既定の設定は 0.0 です。勾配とバイアスは、MATLAB® ワークスペースで定義したパラメーターを含む式として入力できます。 |
メモ
2 進小数点のスケーリングを使用すると、生成されたコードへの固定小数点データの実装を簡素化できます。2 進小数点のスケーリングによる固定小数点データの操作は単純なビット シフトで実行され、個別の勾配値とバイアス値に必要とされるコード実装の手間が省けます。
固定小数点のスケーリングに関する詳細は、スケーリング (Fixed-Point Designer)を参照してください。
データ型オーバーライド
[モード] が [組み込み]
または [固定小数点]
の場合、[データ型オーバーライド] オプションを使用して、コンテキストに対して指定されたデータ型オーバーライド設定をこのデータ型が継承するか無視するかを指定できます。コンテキストとはブロックのことで、信号を使用している Simulink® の Simulink.Signal
オブジェクトまたは Stateflow® チャートです。既定の動作は、[継承]
です。
データ型オーバーライド モード | 説明 |
---|---|
継承 (既定の設定) | コンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink の |
オフ | コンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。 |
個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。
最高精度のスケーリングを計算
このボタンをクリックすると、指定された最小値と最大値に基づいて、[2 進小数点]
スケーリングおよび [勾配とバイアス]
スケーリングの両方に対して最高精度の値が計算されます。これらのスケーリングの値は、Simulink によって、[小数部の長さ] フィールドまたは [勾配] フィールドと [バイアス] フィールドに表示されます。詳細については、最高精度のための定数のスケーリング (Fixed-Point Designer)を参照してください。
固定小数点の詳細表示
固定小数点データ型を指定した場合は、[固定小数点の詳細] サブペインを使用すると、データ型アシスタントに現在表示されている固定小数点データ型に関する情報を確認できます。サブペインを表示するには、データ型アシスタントの [固定小数点の詳細] の横の展開ボタンをクリックします。[固定小数点の詳細] サブペインが、以下のようにデータ型アシスタントの一番下に表示されます。
「Output minimum
」および「Output maximum
」というラベルが付いている行には、それぞれ、データ型アシスタントの上にある [出力の最小値] フィールドおよび [出力の最大値] フィールドに表示されている値と同じ値が表示されます。これらのフィールドには、異なる名前が付けられている場合があります。たとえば、固定小数点のブロック パラメーターでは [パラメーターの最小値] および [パラメーターの最大値] と表示され、[固定小数点の詳細] にある対応する行もその名前に応じてラベル付けされます。詳細については、信号範囲の指定およびブロック パラメーターの最小値と最大値の指定を参照してください。
「表現可能な最小値」、「表現可能な最大値」、および「精度」というラベルが付いている行が常に表示されます。これらの行は、データ型アシスタント内で現在表示されている固定小数点データ型で表示できる最小値、最大値および精度を示しています。
[固定小数点の詳細] サブペインに表示された値は、[最高精度のスケーリングを計算] をクリックしても、制限範囲、固定小数点データ型を定義する値、モデル内の他の部分を変更しても、自動的には更新されません。[固定小数点の詳細] サブペインに表示された値を更新するには、[詳細の更新] をクリックします。クリックすると、データ型アシスタントによってすべての値が更新され再計算され、その結果が表示されます。
[詳細の更新] をクリックしても、モデル内の他の部分は変化せず、表示のみが変化します。[OK] または [適用] をクリックすると、表示された値が反映されます。モデルを最初にコンパイルしなければフィールドの値を認識できない場合は、[固定小数点の詳細] サブペインの値は [Unknown
] として表示されます。
[詳細の更新] をクリックして何らかのエラーが発生した場合は、[固定小数点の詳細] サブペインで、該当する行の左側にエラー フラグ、右側にエラーの説明が表示されます。たとえば、次の図は、2 種類のエラーを示しています。
「出力の最大値」というラベルが付けられた行には、[評価できません] というエラー メッセージが表示されます。これは、[出力の最小値] フィールドで指定されている式 MySymbol
を評価した結果、適切な数値が返されなかったことが原因です。式が正常に評価されなかった場合、[固定小数点の詳細] サブペインには、無効な値の代わりに未評価の式が表示されます (スペースを節約する必要がある場合は 10 文字に切り捨て)。
このエラーを修正するには、適切な数値を導出するよう MySymbol
をアクセス可能なワークスペースに定義する必要があります。[詳細の更新] をクリックすると、未評価のテキストの代わりに MySymbol
の値が表示され、エラーのインジケーターと説明は非表示になります。
[Output maximum
] に表示されたエラーを修正するには、[出力の最大値] を減らす、[語長] を増やす、[小数部の長さ] を減らすなどのいずれか (またはこれらの操作の組み合わせ) を実行して、固定小数点データ型で最大値が表示できるようにする必要があります。
特定のブロックに関連するその他の値も、[固定小数点の詳細] サブペインに表示されます。たとえば、Discrete-Time Integrator ブロックの [信号属性] タブでは、このサブペインは以下のように表示されます。
[飽和の上限] および [飽和の下限] の値は灰色で表示されます。このような灰色での表示は、対応するパラメーターが、そのブロックで現時点で使用されていないことを示します。灰色で表示された値は、無視してかまいません。
スペースを節約するために、[初期条件] はベクトルまたは行列で他の値を表すために省略記号を使用して、最小値と最大値を表示します。基礎となるベクトルまたは行列の定義には影響しません。
固定小数点ツールによる変更に対して出力データ型の設定をロックする
このチェック ボックスをオンにすると、現在のデータ型は、固定小数点ツールまたは固定小数点アドバイザーで選択されたデータ型に置き換えられることがありません。固定小数点データのオートスケーリングの方法については、スケーリング (Fixed-Point Designer)を参照してください。
列挙データ型の指定
[データ型アシスタント] を使用して、列挙オブジェクトをブロックのデータ型として指定できます。[データ型アシスタント] で、[モード] を [列挙型]
に設定し、列挙オブジェクトを指定します。
列挙データ型の詳細は、データ型を参照してください。
バス オブジェクト データ型の指定
[データ型アシスタント] を使用して、Simulink.Bus
オブジェクトをブロックまたはデータ オブジェクトのデータ型として指定できます。
Simulink.Bus
オブジェクト データ型をサポートするブロックの詳細については、バス オブジェクトでのバス プロパティの指定 を参照してください。[ブロック パラメーター] ダイアログ ボックスを使用してデータ型アシスタントにアクセスできます。Simulink.Signal
オブジェクトおよびSimulink.Parameter
オブジェクトの場合は、モデル エクスプローラーを使用してデータ型アシスタントにアクセスします。Simulink.BusElement
オブジェクトの場合は、型エディターを使用してデータ型アシスタントにアクセスします。
[データ型アシスタント] で、[モード] を [バス オブジェクト]
に設定し、Simulink.Bus
オブジェクトを指定します。
Simulink.Bus
オブジェクト データ型の指定の詳細については、バス オブジェクトでのバス プロパティの指定を参照してください。
イメージデータ型の指定
Computer Vision Toolbox をお持ちの場合、[データ型アシスタント] を使用して、Simulink.ImageType
(Computer Vision Toolbox) オブジェクトをブロックまたはデータ オブジェクトのデータ型として指定できます。
[データ型アシスタント] で、[モード] を [イメージ]
に設定し、Simulink.ImageType
オブジェクトを指定します。
データ型アシタントを使用して、以下のイメージ プロパティを設定します。
色形式
基になるイメージ データの色形式を以下の形式のいずれかとして指定します。
RGB
BGR
BGRA
グレースケール
色形式は、イメージ内のピクセルの各カラー チャネルが何を表しているかを決定します。既定の設定は、[RGB]
です。
レイアウト
イメージに含まれる行列データのメモリ配置を [ColumnMajor]
または [RowMajor]
として指定します。既定の設定は、[ColumnMajor]
です。
基になるクラス
基になるイメージ データのデータ型を以下の型のいずれかとして指定します。
uint8
uint16
uint32
int8
int16
int32
single
double
既定の設定は、[uint8]
です。
行
イメージ データに含まれる行の数を正の整数として指定します。既定の設定は、480
です。
列
イメージ データに含まれる列の数を正の整数として指定します。既定の設定は、640
です。
チャネル
配列の各ピクセルに含まれるカラー チャネルまたはサンプルの数を次のいずれかの数として指定します。
1
3
4
チャネル数は、イメージ データの色形式のカラー チャネル数に対応していなければなりません。これらの値は、サポートされる色形式の Channels
の値です。
色形式 | チャネル |
---|---|
Grayscale | 1 |
RGB | 3 |
BGR | 3 |
BGRA | 4 |
既定の設定は、3
です。
値のタイプの指定
[データ型アシスタント] を使用して、Simulink.ValueType
オブジェクトをブロックまたは Simulink.BusElement
オブジェクトのデータ型として指定できます。
ValueType
オブジェクト データ型をサポートするブロックの詳細については、Simulink.ValueType
を参照してください。[ブロック パラメーター] ダイアログ ボックスを使用してデータ型アシスタントにアクセスできます。Simulink.BusElement
オブジェクトの場合は、型エディターを使用してデータ型アシスタントにアクセスします。
[データ型アシスタント] で、[モード] を [値のタイプ]
に設定し、ValueType
オブジェクトを指定します。
値のタイプの指定の詳細については、Specify Common Set of Signal Properties as Value Typeを参照してください。
参考
Simulink.NumericType
| fixdt
| Simulink.ImageType
(Computer Vision Toolbox)