Main Content

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

参照モデルの固定小数点への変換

設計中のシステムに参照モデルが含まれている場合、固定小数点ツールは、シミュレーションまたは派生範囲解析により収集される範囲に基づいて、参照モデル内のオブジェクト データ型を推奨します。設計中のシステムに同じ参照モデルの複数のインスタンスが含まれている場合、固定小数点ツールは、データ型の推奨に収集された範囲の和集合を使用します。

固定小数点ツールによってシミュレーションの最小値または最大値が記録されるのは、ノーマル モードになっている参照モデルのインスタンスのみです。参照モデルのインスタンスがノーマル モード以外の場合、シミュレーションの最小値と最大値は記録されません。モデルの参照モデルにインスタンスが複数含まれていて、ノーマル モードのインスタンスとノーマル モード以外のインスタンスが混在している場合は、ノーマル モードのインスタンス データのみが記録されて表示されます。

ex_mdlref_controller モデルを開きます。MATLAB® コマンド ラインで以下のように入力します。

addpath(fullfile(docroot,'toolbox','fixpoint','examples'));
ex_mdlref_controller

モデルの [アプリ] ギャラリーで、[固定小数点ツール] を選択します。

モデルに参照モデルが含まれる場合は、固定小数点ツールの [モデルの階層構造] ペインに、参照モデルのインスタンスのサブノードと参照モデルのノードが表示されます。たとえば、ex_mdlref_controller モデルには ex_controller モデルを参照する Model ブロックが含まれています。固定小数点ツールではモデルの階層構造に両方のモデルが表示されます。

モデルの参照モデルにインスタンスが複数含まれている場合、固定小数点ツールにはこのモデル内の参照モデルの各インスタンスと、参照モデルのノードが表示されます。たとえば、同じモデル内で、ex_mdlref_controller モデルに参照モデル ex_controller の 2 つのインスタンスが含まれるように参照モデルを複製する場合です。固定小数点ツールのモデルの階層構造には、モデルおよび参照モデルの両方のインスタンスがどちらも表示されます。

参照モデルのシミュレーション範囲の表示

  1. 固定小数点ツールの [新規] で、[固定小数点の反復的変換] ワークフローを選択します。

  2. [設計対象のシステム (SUD)] で、固定小数点に変換するシステムとして ex_controller モデルを選択します。

  3. [範囲の収集モード] で、範囲の収集方法として [シミュレーション範囲] を選択します。

  4. ツールストリップで [準備] をクリックします。固定小数点ツールは設計対象のシステムについて変換プロセスとの互換性をチェックし、モデルで見つかった問題をレポートします。この例では、モデルが変換できる状態であることがツールで報告されています。

  5. [範囲の収集] ボタンの矢印を展開して [倍精度] を選択します。[範囲の収集] ボタンをクリックし、シミュレーションを開始します。固定小数点ツールはモデル内のデータ型を double でオーバーライドし、シミュレーション中に生じるモデル内の各オブジェクトの最小値と最大値を収集します。固定小数点ツールは BaselineRun というタイトルの実行にこの範囲情報を保存します。

ツールでは参照モデルの各インスタンスの結果が記録され、表示されます。たとえば、次に挙げるのは参照モデル ex_controller の最初のインスタンスに対する結果です。

次は、ex_controller の 2 番目のインスタンスの結果です。

参照モデル ノードでは、参照モデルの各インスタンスに対する結果を合わせたものが表示されます。

固定小数点の計測機能およびデータ型オーバーライドの設定

参照モデルが含まれるモデルのシミュレーションを実行する場合、最上位モデルのデータ型オーバーライドと固定小数点計測機能の設定によって、参照モデルの設定が制御されることはありません。これらの設定は、参照モデルで個別に指定しなければなりません。設定に矛盾がある場合、たとえば、最上位モデルの [データ型オーバーライド設定] を [double] にし、参照モデルでは [ローカル設定を利用] を設定し、参照モデルで固定小数点データ型を使用する場合、データ型伝播の問題が発生する可能性があります。

set_param. を使用してカスタムのデータ型オーバーライド設定を定義できます。例については、範囲収集のためのカスタム データ型オーバーライド設定の使用を参照してください。

参照モデルのいずれかのインスタンスで、[固定小数点の計測機能およびデータ型オーバーライド] 設定を変更すると、モデルのすべてのインスタンスと参照モデル自体の設定が変更されます。

参照モデルのデータ型の推奨

  1. ツールストリップの [変換] セクションで、[設定] をクリックします。[シミュレーションの最小/最大値に対する安全余裕 (%)] パラメーターを 20 として指定します。

  2. [データ型を推奨] をクリックします。

    設計の最小値/最大値が不明なため、シミュレーションの実行中に収集されたシミュレーションの最小値/最大値データがデータ型の推奨に使用されます。[シミュレーションの最小値/最大値に対する安全余裕 (%)] パラメーターの値は "生の" シミュレーション値に係数 1.2 を乗算します。[シミュレーションの最小/最大値に対する安全余裕 (%)] パラメーターを 1 より大きい値に設定すると、固定小数点データ型を使用しているときにオーバーフローが発生する可能性が低くなります。

    量子化の非線形効果により、固定小数点シミュレーションでは理想的な double ベースのシミュレーションとは異なる結果が生じます。固定小数点シミュレーションの信号は double シミュレーションの信号よりも大きい範囲または小さい範囲をカバーできます。範囲が大きくなると、オーバーフローや飽和が発生する可能性があります。安全余裕によってこの状態が発生する可能性は低くなりますが、シミュレーション精度が低下する可能性もあります。

    固定小数点ツールは、[固定小数点ツールによる変更に対して出力データ型の設定をロックする] パラメーターが選択されていないすべての固定小数点ブロックのスケーリングを解析します。

    固定小数点ツールでは、シミュレーション値の全範囲を扱いつつ精度が最大限に高められるように、シミュレーション中に収集した最小値と最大値を使用して各ブロックのスケーリングを推奨します。推奨されるスケーリングはツールのスプレッドシートに表示されます。

  3. 固定小数点ツールが指定するスケーリングを確認します。各ブロックの推奨スケーリングを受け入れるには、対応する [Accept] チェック ボックスを選択します。既定の設定では、固定小数点ツールは現在のスケーリングとは異なるすべての推奨スケーリングを受け入れます。この例では、コントローラー システムの各ブロックで、[Accept] チェック ボックスが選択されていることを確認します。

    推奨の詳細を表示するには、結果を選択して [結果の詳細] ペインを表示します。

  4. 固定小数点ツールで、[データ型を適用] ボタンをクリックします。

    固定小数点ツールによって、前の手順で受け入れた推奨スケーリングが適用されます。

  5. ツールストリップの [検証] セクションで、[組み込み型によるシミュレーション] ボタンをクリックします。

    Simulink® では、適用した新しいスケーリングを使用して ex_mdlref_controller モデルをシミュレートします。その後、固定小数点ツールには、固定小数点データのログを作成したブロックに関する情報が表示されます。

  6. [結果の比較] をクリックします。シミュレーション データ インスペクターは、浮動小数点と固定小数点の実行に対するアナログ プラントの出力と、両者の差をプロットします。

関連するトピック