動作の制約の指定
新しい固定小数点実装の数値的動作が許容可能かどうかを判断するには、信号許容誤差を設定するか、1 つ以上の Model Verification ブロックを使用するか、あるいはその両方を行うことにより、制約を定義します。
固定小数点ツールの [固定小数点の最適化された変換] ワークフローを使用する場合、またはコマンド ラインで fxpopt を使用する場合、動作の制約を 1 つ以上指定しなければなりません。データ型は、指定された制約をすべて満たすように最適化されます。
固定小数点ツールの [固定小数点の反復的変換] ワークフローを使用する場合、またはコマンド ラインで DataTypeWorkflow.Converter を使用する場合、動作の制約を指定すると、組み込み型を使用したモデルの数値的動作を検証することができます。組み込み型を使用したシミュレーションの後、[ワークフロー ブラウザー] に組み込み型実行が、範囲収集実行と比較して、指定された信号の許容誤差を満たすかどうかが示されます。詳細については、新しい設定の確認を参照してください。
信号の許容誤差の指定
モデル内で信号のログが有効になっている信号に対して、許容誤差を指定できます。信号のログを有効にするには、以下を行います。
Simulink® エディターで、1 つ以上の信号を選択します。
Simulink エディターの [信号] タブで、[信号のログ] をクリックします。
固定小数点ツールの [信号許容誤差] の下のテーブルで、個々の信号の許容誤差を指定します。このテーブルには、信号のログが有効になっているモデルのすべての信号が含まれます。固定小数点ツールを開いた後で、追加の信号をログに記録する場合、[信号を更新] をクリックして [信号許容誤差] テーブルを更新します。コマンド ラインで addTolerance メソッドを使用して許容誤差を指定します。
以下のいずれかの許容誤差のタイプを指定できます。
絶対許容誤差 — 元の信号と変換された設計の信号との、受容可能な最大の差の絶対値。
相対許容誤差 — 元の信号と変換された設計内の信号との最大の相対誤差。パーセンテージで指定されます。たとえば、値
1e-2は、最大相対誤差が 1% であることを示します。時間の許容誤差 (秒) — 最大値と最小値によって比較する上限値と下限値が定義される時間間隔を定義します。
信号の許容誤差は、有限の非負の値を返す任意の有効な MATLAB® 式を使用して入力します。 (R2023a 以降)
絶対許容誤差、相対許容誤差、時間の許容誤差の値の任意の組み合わせを使用して、許容誤差帯域を定義できます。複数の種類の許容誤差を使用して信号の許容誤差を指定した場合、各データ点に対して最も緩い許容誤差の結果を選択することによって許容誤差帯域全体が計算されます。許容誤差の計算方法の詳細については、許容誤差の計算を参照してください。
Model Verification ブロックの使用
有効になっているModel Verificationブロックを使用することで、システムの動作に対して制約を指定できます。
Model Verification ライブラリのブロックは、指定された望ましい動作が入力信号によって維持されているとき、true (1) アサーションを維持します。true (1) アサーションが維持されていない場合、既定では、ブロックはシミュレーションを停止してエラー メッセージを返します。新しい固定小数点実装がシミュレーション中に Model Verification ブロックの true (1) アサーションを維持できない場合、指定された制約を満たさないため、そのデータ型のセットはモデルに対して実行不可能とみなされます。
すべての Model Verification ブロックは、モデルの動作のベースラインを確立するために、データ型のオーバーライド用に選択された浮動小数点データ型でモデルをシミュレーションしたときに、true (1) アサーションを維持できなければなりません。
次の例では、データ型の最適化に Model Verification ブロックを使用します。
複数のシミュレーション シナリオを使用したデータ型の最適化には、Assertion ブロックを使用してシミュレーション中に boolean 信号が
true (1)値を維持していることを検証するモデルが含まれています。固定小数点の量子化された制限ボルツマン マシン アルゴリズムを使用したイメージのノイズ除去には、Check Static Range ブロックを使用して 2 つの信号間の平均二乗誤差が指定したしきい値内に収まっていることを検証するモデルが含まれています。