範囲解析の機能について
範囲解析によるモデルの解析
解析の対象とするモデルは、範囲解析に "対応していなければなりません"。モデルが対応していない場合、サポートされないブロックを置き換えるか、モデルを分割して、範囲解析に対応した部分のモデルを解析できるようにします。詳細は、範囲解析とモデルの互換性を参照してください。
範囲の収集モードとして [派生範囲] を指定すると、Fixed-Point Designer™ ソフトウェアは、モデルの静的範囲解析を実行して、モデルの信号範囲の最小値と最大値を派生させます。このソフトウェアは、モデルの動作を解析して、各 Outport ブロックのシミュレーションを実行中に発生する可能性のある値を計算します。これらの値の範囲を"派生範囲"と呼びます。
ソフトウェアは、以下の情報に基づいてモデルの各計算の範囲を静的に解析します。
"設計の最小値と最大値" と呼ばれる指定設計範囲。たとえば、次の要素に最小値と最大値を指定します。
Inport ブロックと Outport ブロック
ブロック出力
MATLAB Function ブロックと Stateflow Chart ブロックで使用される入力、出力、およびローカル データ
Simulink® データ オブジェクト (
Simulink.Signal
オブジェクトおよびSimulink.Parameter
オブジェクト)
入力
ブロックごとの計算のセマンティクス
解析でサポートできないオブジェクトがモデルに含まれる場合、ソフトウェアは可能であれば、自動スタブ を使用します。
モデルの指定されたすべての設計範囲を使用して、範囲解析により派生した範囲の絞り込みを試みます。指定した設計範囲情報が多いほど、範囲解析の成功率が高くなります。ソフトウェアが解析を実行すると、モデルの新しい範囲情報が派生されます。次にソフトウェアはこの新しい情報を指定範囲と共に使用して、モデル内の残りのオブジェクトの範囲の派生を試みます。
モデルに浮動小数点の演算が含まれる場合、範囲解析で予想より若干広い範囲がレポートされる場合があります。この差異は丸め誤差によるものです。浮動小数点数は、解析のために無限精度の有理数に近似されてから、浮動小数点数に変換してレポートされます。
次の表は、解析による範囲情報の派生方法と、その例へのリンクを示しています。
実行する場合 | 解析の機能について | 例 |
---|---|---|
ブロックの出力に対する設計の最小値と最大値を指定する。 | 派生したブロック出力の範囲は、これらの指定された値および入力と出力に接続したブロックに対する以下の値に基づいています。
派生範囲の解析に関与するのはブロックの出力信号のみです。アキュムレータや中間結果などに対する追加のデータ型の制御がブロックに含まれている場合、それらの要素についての範囲の派生は行われません。 | |
ブロックのパラメーターに、初期条件と設計範囲が指定されている。 | 解析では、設計範囲と初期条件を組み合わせて、両方の要因が考慮されます。 | |
モデルに指定された範囲のパラメーターが含まれ、パラメーターのストレージ クラスが | 解析では、パラメーターに指定された範囲は考慮されません。代わりにパラメーター値を使用します。 | |
モデルには指定された範囲のパラメーターが含まれ、パラメーターのストレージ クラスは [自動] には設定されません。 | 解析では、パラメーターに指定された範囲が考慮され、値は無視されます。 | |
モデルに十分な設計範囲情報が含まれない。 | 解析では、派生範囲を判定できません。設計範囲情報を追加し、解析を再実行してください。 | System object の範囲解析のトラブルシューティング ソフトウェアのブロック解析順序を決定するブロックの並べ替え順序は、範囲解析結果を左右することがあります。詳細は、実行順序の制御と表示を参照してください。 |
競合する設計範囲情報がモデルに含まれる。 | 解析では、オブジェクトに対する派生した最小値と派生した最大値を判定できません。固定小数点ツールがエラーを生成します。このエラーを修正するには、モデルに指定された設計範囲を調べて、矛盾する設計指定を特定します。情報が整合するように修正します。 |
自動スタブ
自動スタブとは
自動スタブでは、モデルでサポートされないオブジェクトの実際の動作ではなく、インターフェイスのみが考慮されます。自動スタブを使用すると、Fixed-Point Designer ソフトウェアがサポートしないオブジェクトを含むモデルを解析できます。ただし、サポートされないモデルの要素が派生結果に影響を与える場合、一部の解析結果しか得られないことがあります。
自動スタブの機能について
自動スタブでは、範囲解析がサポートされないブロックに達すると、そのブロックはソフトウェアによって無視 ("スタブ") されます。解析では、そのブロックの動作が無視されます。そのため、ブロック出力はどんな値でもかまいません。
ソフトウェアはすべての Simulink ブロックを "スタブ" できるわけではありません。たとえば、Integrator ブロックはスタブできません。範囲解析でサポートされる Simulink ブロックで "スタブ不可" とマークされたブロックを参照してください。
範囲解析とモデルの互換性
モデルが範囲解析に対応していることを確認するには、以下を参照してください。
範囲の派生方法
モデルが範囲解析に対応していることを確認してください。
Simulink でモデルを開き、固定小数点ツールで使用するための設定をします。詳細については、モデルの設定を参照してください。
Simulink [アプリ] タブから [固定小数点ツール] を選択します。
固定小数点ツールの [新規] で、
[固定小数点の反復的変換]
ワークフローを選択します。[設計対象のシステム (SUD)] で、対象とするシステムまたはサブシステムを選択します。
[範囲の収集モード] で範囲の収集方法として [派生範囲] を選択します。これにより、理想的な浮動小数点データ型を使用して範囲を収集するようにモデルが設定されます。
既定では、ツールは設計対象のシステムからの設計情報を使用して範囲を収集します。詳細については、サブシステム レベルでの範囲の派生を参照してください。
[準備] をクリックして、固定小数点ツールに設計対象のシステムの変換プロセスとの互換性についてのチェックを実行させ、モデルで見つかった問題をレポートさせます。
固定小数点ツールは、次を実行します。
固定小数点のガイドラインに照らしたモデルのチェック。
サポートされないブロックの特定。
設計範囲情報を必要とするブロックの特定。
[範囲の収集] ボタンをクリックして解析を実行します。
解析で、選択した設計対象のシステム内のオブジェクトに対する範囲情報の派生を試みます。次のステップは解析結果により異なります。
解析結果 固定小数点ツールの動作 次のステップ 詳細 モデルの範囲データの派生が成功した。
選択したシステム内のブロックの派生した最小値と最大値が表示されます。
派生範囲を確認して、データ型の推奨に適した結果であるか判断します。そうでない場合は、設計情報を追加指定して解析を再実行します。
モデルにソフトウェアでサポートされないブロックが含まれるため、派生に失敗した。
システムはエラーを生成し、サポートされないブロックに関する情報を提供します。
エラーを修正するには、エラー メッセージを調べて、サポートされないブロックを置き換えます。
競合する設計範囲情報がモデルに含まれるために、範囲データを派生できない。
システムはエラーを生成します。
このエラーを修正するには、モデルに指定された設計範囲を調べて、矛盾する設計指定を特定します。設計範囲を整合が取れるように修正します。
モデルに指定された設計範囲情報が不十分なために、オブジェクトの範囲データを派生できない。
そのオブジェクトの結果を強調表示します。
そのモデルを調べて、どの設計範囲情報が欠けているかを判断します。