固定小数点ツールを使用したデータ オブジェクトのオートスケーリング
固定小数点ツールは、シミュレーションを通じて収集された範囲、派生範囲解析、モデル オブジェクトで指定された設計範囲に基づいて、データ オブジェクトに対する推奨データ型を生成します。また、固定小数点ツールは、モデル オブジェクトによって課されるデータ型の制約をすべて考慮します。
次の型のデータ オブジェクトは固定小数点ツールを使用した変換に対応しています。
以下の節では、固定小数点ツールによる範囲の収集方法と制約の解析方法について説明します。
データ オブジェクトの範囲の収集
同じデータ オブジェクトを使用して型を指定するモデル内のオブジェクトはすべて、同じデータ型を共有しなければなりません。固定小数点ツールはモデル内のすべてのオブジェクトの範囲を収集します。同じデータ型を共有しなければならないオブジェクトは、1 つのデータ型グループ内に配置されます。固定小数点ツールは、グループ内にあるすべてのモデル オブジェクトの範囲の結合に基づき、そのグループに対する推奨データ型を生成します。
パラメーター オブジェクトの範囲の収集
可能な限り、パラメーター オブジェクトの設計範囲情報を指定することをお勧めします。パラメーター オブジェクトのデータ型を auto
に設定すると、固定小数点ツールは継承されたデータ型についての推奨時と同じ規則に従います。固定小数点ツールは、パラメーターの値、パラメーターの設計範囲、およびクライアント ブロックの設計範囲の和集合を取得して、パラメーター オブジェクトに対するデータ型の推奨に使用する範囲を決定します。
データ オブジェクトにおけるデータ型制約
共有データ型グループ内のオブジェクトの中には、受け入れ可能なデータ型に関する制約が含まれている場合があります。たとえば、一部のブロックは符号付きデータ型のみを受け入れることができます。
パラメーター オブジェクトのオートスケーリング
パラメーター オブジェクトを次元の変数、バリアント制御またはブール値として使用する場合など、パラメーター オブジェクトが整数のみでなければならない場合、固定小数点ツールで検出することはできません。このような場合は、モデルにデータ型を適用する前に、固定小数点ツールの推奨段階で [確定] ボックスをオフにしなければなりません。
ブレークポイント オブジェクトのオートスケーリング
ブレークポイント データは常に、厳密に単調増加でなければなりません。ブレークポイント データセットは double 形式では厳密に単調であると言えますが、飽和と量子化によって、固定小数点データ型への変換後はそうなっていない場合があります。固定小数点ツールはこうした動作を考慮して、変換後も単調性の制約を満たすのに十分な大きさのデータ型を推奨します。場合によっては、この制約を満たすために、データ型が非常に大きくなります。この場合、ブレークポイント データが固定小数点で効果的に表されるよう、これを編集することを検討してください。
データ型定義にデータ オブジェクトを使用するモデルのオートスケーリング
以下のモデルは、データ型定義用の Simulink.Bus
、Simulink.NumericType
、Simulink.LookupTable
、および Simulink.Breakpoint
オブジェクトなどを含む、タイプの異なる複数のデータ オブジェクトを使用します。固定小数点ツールを使用して、モデルで使用されるデータ オブジェクトを含む浮動小数点モデルを固定小数点に変換します。
ex_data_objects
モデルを開く
open_system('ex_data_objects')
固定小数点ツールを使用したモデルのオートスケール
Simulink® [アプリ] タブから [固定小数点ツール] を選択します。
固定小数点ツールの [新規] ワークフローで、
[固定小数点の反復的変換]
を選択します。固定小数点ツールの [設計対象のシステム (SUD)] で、変換するシステムとして
Target Embedded System
を選択します。[範囲の収集モード] で、[シミュレーション範囲] を選択します。
[準備] ボタンをクリックします。固定小数点ツールは設計対象のシステムについて変換プロセスとの互換性をチェックし、モデルで見つかった問題をレポートします。
設計対象のシステム内のモデル オブジェクトが設計対象のシステム外のオブジェクトとデータ型を共有している場合、固定小数点への変換の後でデータ型の伝播の問題が起こる可能性があります。そのため、変換の準備段階で、固定小数点ツールは Data Type Conversion ブロックを設計対象のシステムの出力に挿入します。
この例では、
ex_data_objects/Throttle
端子でバス信号を使用するため、ツールは Data Type Conversion ブロックをこの端子に自動的に挿入することができません。このような場合、この端子を分離する Data Type Conversion ブロックが Throttle サブシステム内に既に存在しているため、この警告を無視することができます。[範囲の収集] ボタンの矢印を展開して
[倍精度]
を選択します。[範囲の収集] ボタン をクリックし、シミュレーションを開始します。固定小数点ツールは収集した範囲情報をBaselineRun
というタイトルの実行に保存します。[変換] セクションで、[データ型を推定] ボタン をクリックします。
固定小数点ツールはモデル内のデータ オブジェクトを検出し、そのデータ オブジェクトの制約を満たすデータ型を推奨します。[モデルの階層構造] ペインで [データ オブジェクト] を選択することで、モデル内で使用されるすべてのデータ オブジェクトを確認できます。
特定の結果について詳細を確認するには、[結果] スプレッドシートでデータ オブジェクトを選択します。[結果の詳細] ペインにその推奨に関する詳細が表示され、特定のデータ オブジェクトを使用する、モデル内のすべてのブロックを強調表示するリンクが提供されます。
このツールは、すべての結果に対する推奨データ型を [結果] スプレッドシートの [Proposed DT] 列に表示します。
結果が属するデータ型グループを表示するには、スプレッドシートに [DT Group] 列を追加します。既存の列ヘッダーを右クリックします。メニューから [DT Group] を選択します。
[DT Group] 列で並べ替えるには、その列のヘッダーをクリックします。これで、同じデータ型を共有しなければならない結果が隣り合わせで表示されます。
[データ型を適用] ボタン をクリックし、推奨されたデータ型をモデルに書き込みます。
固定小数点ツールにより、推奨データ型がデータ オブジェクトにそれぞれの定義で適用されます。この例では、データ オブジェクトはベース ワークスペース内で定義されています。特定のデータ オブジェクトの詳細を表示するには、MATLAB® コマンド ラインにそのデータ オブジェクトの名前を入力します。
errorDT
NumericType with properties: DataTypeMode: 'Fixed-point: binary point scaling' Signedness: 'Signed' WordLength: 16 FractionLength: 11 IsAlias: 1 DataScope: 'Auto' HeaderFile: '' Description: ''