ドキュメンテーション

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

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

データ型アシスタントは、ブロックおよびデータ オブジェクトのデータ型を指定するタスクを簡素化するグラフィカルな対話型ツールです。このアシスタントは、ブロックおよびオブジェクトのダイアログ ボックス内の [出力データ型] パラメーターなどのデータ型を制御するパラメーターの近くに表示されます。Constant ブロックのダイアログ ボックスにある [信号属性] ペインに表示されるアシスタントの例を以下に示します。

データ型アシスタントは、以下のように該当するボタンをクリックすると表示と非表示を切り替えられます。

  • [データ型アシスタントを表示] ボタン をクリックすると、アシスタントが表示されます。

  • [データ型アシスタントを非表示] ボタン をクリックすると、アシスタントが非表示になります。

データ型アシスタントを使用すると、以下のようにデータ型を指定できます。

  1. [モード] フィールドで、指定するデータ型のカテゴリを選択します。通常、オプションには以下の項目があります。

    モード説明

    継承

    データ型の継承ルール

    組み込み

    組み込みデータ型

    固定小数点

    固定小数点データ型

    列挙型

    列挙データ型

    バス オブジェクト

    バス オブジェクト データ型

    評価結果がデータ型となる式

    アシスタントは動的に変化して、選択されたモードに該当する異なるオプションを表示します。たとえば、[モード][式] に設定すると Constant ブロックのダイアログ ボックスは次のように表示されます。

  2. [モード] フィールドの右側のフィールドに、データ型を選択または入力します。

    たとえば、変数 myDataTypesingle データ型のエイリアスとして指定する場合を考えてみます。Simulink.AliasType クラスのインスタンスを作成し、次のコマンドを実行してその BaseType プロパティを設定します。

    myDataType = Simulink.AliasType
    myDataType.BaseType = 'single'

    このデータ型オブジェクトを使用すると、Constant ブロックの出力データ型を指定できます。式の値としてデータ型のエイリアス名 myDataType をアシスタントに入力します。

  3. [OK] または [適用] ボタンをクリックして、変更内容を適用します。

    アシスタントは、ユーザーが指定したデータ型を使用して、ブロックまたはオブジェクトのダイアログ ボックスにある関連するデータ型パラメーターに値を挿入します。以下の例では、Constant ブロックの [出力データ型] パラメーターは、ユーザーがアシスタントを使用して入力した式と同じ式を指定します。

データ型アシスタントを使用して指定できるデータ型の詳細は、有効なデータ型の値の入力を参照してください。固定小数点データ型の指定に関する詳細は、データ型アシスタントを使用した固定小数点データ型の指定 (Fixed-Point Designer)を参照してください。

固定小数点データ型の指定

データ型アシスタントの [モード][固定小数点] の場合、データ型アシスタントには、固定小数点データ型の指定に関する情報があるフィールドが表示されます。固定小数点データに関する詳細は、 MATLAB における固定小数点の基礎 (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 の Simulink.Signal オブジェクトまたは Stateflow チャートです。

[オフ]

コンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

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

このボタンをクリックすると、指定された最小値と最大値に基づいて、[2 進小数点] スケーリングおよび [勾配とバイアス] スケーリングの両方に対して最高精度の値が計算されます。これらのスケーリングの値は、Simulink によって、[小数部の長さ] フィールドまたは [勾配] フィールドと [バイアス] フィールドに表示されます。詳細については、最高精度のための定数のスケーリング (Fixed-Point Designer)を参照してください。

固定小数点の詳細表示

固定小数点データ型を指定した場合は、[固定小数点の詳細] サブペインを使用すると、データ型アシスタントに現在表示されている固定小数点データ型に関する情報を確認できます。サブペインを表示するには、データ型アシスタントの [固定小数点の詳細] の横の展開ボタンをクリックします。[固定小数点の詳細] サブペインが、以下のようにデータ型アシスタントの一番下に表示されます。

「出力の最小値」および「出力の最大値」というラベルの付けられた行には、それぞれ、データ型アシスタントの上にある [出力の最小値] フィールドおよび [出力の最大値] フィールドに表示されている値と同じ値が表示されます。これらのフィールドには、異なる名前が付けられている場合があります。たとえば、固定小数点のブロック パラメーターでは [パラメーターの最小値] および [パラメーターの最大値] と表示され、[固定小数点の詳細] にある対応する行もその名前に応じてラベル付けされます。詳細については、信号範囲およびブロック パラメーターの最小値と最大値の指定を参照してください。

「表現可能な最小値」、「表現可能な最大値」、および「精度」というラベルが付いている行が常に表示されます。これらの行は、データ型アシスタント内で現在表示されている固定小数点データ型で表示できる最小値、最大値および精度を示しています。これら 3 つの量に関する詳細は、MATLAB における固定小数点の基礎 (Fixed-Point Designer)を参照してください。

[固定小数点の詳細] サブペインに表示された値は、[最高精度のスケーリングを計算] をクリックしても、制限範囲、固定小数点データ型を定義する値、モデル内の他の部分を変更しても、自動的には更新されません[固定小数点の詳細] サブペインに表示された値を更新するには、[詳細の更新] をクリックします。クリックすると、データ型アシスタントによってすべての値が更新され再計算され、その結果が表示されます。

[詳細の更新] をクリックしても、モデル内の他の部分は変化せず、表示のみが変化します。[OK] または [適用] をクリックすると、表示された値が反映されます。モデルを最初にコンパイルしなければフィールドの値を認識できない場合は、[固定小数点の詳細] サブペインの値は [Unknown] として表示されます。

[詳細の更新] をクリックして何らかのエラーが発生した場合は、[固定小数点の詳細] サブペインで、該当する行の左側にエラー フラグ、右側にエラーの説明が表示されます。たとえば、次の図は、2 種類のエラーを示しています。

「出力の最大値」というラベルが付けられた行には、[評価できません] というエラー メッセージが表示されます。これは、[出力の最小値] フィールドで指定されている式 MySymbol を評価した結果、適切な数値が返されなかったことが原因です。式が正常に評価されなかった場合、[固定小数点の詳細] サブペインには、無効な値の代わりに未評価の式が表示されます (スペースを節約する必要がある場合は 10 文字に切り捨て)。

このエラーを修正するには、適切な数値を導出するよう MySymbol をアクセス可能なワークスペースに定義する必要があります。[詳細の更新] をクリックすると、未評価のテキストの代わりに MySymbol の値が表示され、エラーのインジケーターと説明は非表示になります。

[Output maximum] に表示されたエラーを修正するには、[出力の最大値] を減らす、[語長] を増やす、[小数部の長さ] を減らすなどのいずれか (またはこれらの操作の組み合わせ) を実行して、固定小数点データ型で最大値が表示できるようにする必要があります。

特定のブロックに関連するその他の値も、[固定小数点の詳細] サブペインに表示されます。たとえば、Discrete-Time Integrator ブロックの [信号属性] タブでは、このサブペインは以下のように表示されます。

[飽和の上限] および [飽和の下限] の値は灰色で表示されます。このような灰色での表示は、対応するパラメーターが、そのブロックで現時点で使用されていないことを示します。灰色で表示された値は、無視してかまいません。

スペースを節約するために、[初期条件] はベクトルまたは行列で他の値を表すために省略記号を使用して、最小値と最大値を表示します。基礎となるベクトルまたは行列の定義には影響しません。

固定小数点ツールによる変更に対して出力データ型の設定をロックする

このチェック ボックスをオンにすると、現在のデータ型は、固定小数点ツールまたは固定小数点アドバイザーで選択されたデータ型に置き換えられることがありません。固定小数点データのオートスケーリングの方法については、スケーリング (Fixed-Point Designer)を参照してください。

列挙データ型の指定

列挙データ型を指定するには、[Enum:<class name>] オプションを選択し、列挙オブジェクトを指定します。

[データ型アシスタント] で、[モード] パラメーターを使用すると、ブロックのデータ オブジェクトとしてバスを指定できます。[列挙型] オプションを選択し、列挙オブジェクトを指定します。

列挙データ型の詳細は、データ型を参照してください。

バス オブジェクト データ型の指定

バス信号のデータ型のセクションにリストされたブロックは、データ型としてのバス オブジェクトの指定をサポートしています。これらのブロックについては、[データ型] パラメーターで [Bus: <object name>] オプションを選択し、バス オブジェクトを指定します。[式] オプションを使用して、ブロックのデータ型としてバス オブジェクトを指定することはできません。

[データ型アシスタント] で、[モード] パラメーターを使用すると、ブロックのデータ オブジェクトとしてバスを指定できます。[バス] オプションを選択し、バス オブジェクトを指定します。

Simulink.SignalSimulink.ParameterSimulink.BusElement などのデータ オブジェクトのデータ型としてバス オブジェクトを指定できます。モデル エクスプローラーで、データ オブジェクトの [プロパティ] ダイアログ ボックスの [データ型] パラメーターで、[Bus: <object name>] オプションを選択し、バス オブジェクトを指定します。また、[式] オプションを使用しバス オブジェクトを指定することもできます。

バス オブジェクトのデータ型を指定する方法の詳細については、バス オブジェクトを使用する状況を参照してください。

参考

|

関連するトピック