Main Content

指定された最小値および最大値の違反チェック

設計エラー検出解析時に、モデル全体の中間信号および出力端子に指定された最小値および最大値がチェックされます。これらの値により "設計範囲" が定義されます。

解析では、指定された最小値および最大値が次についてチェックされます。

  • Simulink® ブロック出力。ただし、次の節で説明される制限を除く

  • Simulink.Signal オブジェクト

  • Stateflow® データ オブジェクト

  • MATLAB® のコード生成のデータ オブジェクト

  • グローバル データ ストアの書き込み

解析により信号が設計範囲を超えることが検出されると、その結果によりモデルでエラーが発生した場所が特定されます。さらに、エラーがどのように発生したかを示すテスト ケースを含むハーネス モデルを生成できます。

指定された最小値および最大値の違反チェックに関する制限

指定された最小値および最大値を超えるかどうかをチェックするモデルを解析する場合、次については最小値および最大値をチェックできません。

  • 出力が Selector ブロックに接続された任意の Mux ブロック

  • Merge ブロック入力

    この制限を回避するには、Merge ブロック出力で Simulink.Signal オブジェクトを使用し、Simulink.Signal オブジェクト上でこの範囲を指定します。

メモ

Simulink Design Verifier™ 解析が入力端子において、指定された最小値および最大値を処理する方法の詳細については、最小値と最大値の入力制約を参照してください。

この例について

この節では、次について設計の最小値および最大値が指定されているモデルを作成および解析します。

  • 入力端子

  • 2 つの中間ブロックの出力端子

設計エラー検出解析により、出力値が設計範囲を超えるブロックを特定します。この例では、解析でこのエラーが検出された場合、解析を続行する際に、最小および最大指定値がどのように使用されるかを示します。

モデル例の作成

このモデル例を作成します。

  1. MATLAB ツールストリップの [ホーム] タブで、[新規作成][Simulink モデル] を選択します。

  2. Simulink Commonly Used Blocks ライブラリから、次のブロックをモデルに追加して、指定されたパラメーター値を代入します。

    ブロックタブパラメーター
    Inport信号属性最小値0
    Inport信号属性最大値5
    GainメインGain5
    Gain信号属性出力の最小値0
    Gain信号属性出力の最大値20
    Gain信号属性出力データ型int16
    Saturationメイン上限25
    Saturationメイン下限-25
    Saturation信号属性出力の最小値-25
    Saturation信号属性出力の最大値25
    Outport変更なし
  3. 次に示すように、4 つのブロックを接続します。

  4. 指定された最小値と最大値を表示するには、[デバッグ] タブで、[情報のオーバーレイ][信号のデータ範囲] を選択します。

  5. [モデル化] タブで、[モデル設定] をクリックします。

  6. [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの [ソルバーの選択] で、次を行います。

    1. [タイプ][固定ステップ] に設定します。

      Simulink Design Verifier ソフトウェアは、可変ステップ ソルバーをサポートしません。

    2. [ソルバー][離散 (連続状態なし)] に設定します。

  7. [Design Verifier] ペインで、[モード][設計エラー検出] に設定します。

  8. [Design Verifier][設計エラー検出] ペインで次のようにします。

    1. [指定された最小値と最大値の違反] を選択します。

    2. [整数のオーバーフロー] および [ゼロ除算] パラメーターをオフにします。

    この例では、中間の最小値および最大値の違反のみをチェックします。

  9. これらの設定を保存して [コンフィギュレーション パラメーター] ダイアログ ボックスを終了するには、[OK] をクリックします。

  10. モデルを ex_interim_minmax という名前で保存します。

モデルの解析

指定された最小値および最大値に違反する中間信号を特定するモデル例を解析するには、設計エラー検出解析を実行します。

[Design Verifier] タブで [設計エラーの検出] をクリックします。

解析が完了すると、

  • 解析結果に基づいてモデルが強調表示されます。

  • Simulink Design Verifier の [結果] ダイアログ ボックスが開き、解析の概要が表示されます。

解析結果のレビュー

モデルの結果のレビュー

モデル ウィンドウで、Gain ブロックはレッド、Saturation ブロックはグリーンで表示されます。これが意味することは、

  • Gain ブロックに関連付けられた 1 つ以上のオブジェクティブが反証された。この例では、厳密に 1 つのオブジェクティブが反証されています。

  • Saturation ブロックに関連付けられたすべてのオブジェクティブが達成された。この例では、厳密に 1 つのオブジェクティブが達成されています。

これらの結果を理解するには、以下を行います。

  1. Gain ブロックをクリックします。

    Simulink Design Verifier の [結果] ウィンドウには、出力の設計範囲が [0..20] であったことが表示されますが、解析ではエラーが検出され、そのエラーを示すテスト ケースが生成されています。入力ブロックの設計範囲は [0..5] であるため、Gain ブロックへの入力が 5 の場合、出力は 25 になります。これはその端子の指定された最大値を超えています。

    解析では、どのように設計範囲を超えたかを理解しやすいように、派生範囲が計算されて表示されます。

  2. Saturation ブロックをクリックします。

    Simulink Design Verifier の [結果] ウィンドウには、Saturation ブロックの出力が設計範囲 [–25..25] を超えなかったことが示されます。Saturation ブロックへの入力は、解析により Gain ブロックから伝播された派生範囲 [0..25] を超えることはありませんでした。

ハーネス モデルのレビュー

解析が完了すると、エラーとなるテスト ケースを含むハーネス モデルを作成できます。

モデル例で、Gain ブロックで設計範囲エラーが発生するテスト ケースを表示します。

  1. 解析が完了してモデルが強調表示されたら、Gain ブロックをクリックします。

  2. Simulink Design Verifier の [結果] ウィンドウで、[テスト ケースを表示] をクリックします。

    ex_interim_minmax_harness という名前のハーネス モデルが作成され、テスト ケースを含むハーネス モデルの Signal Editor ブロックが開きます。

    Signal Editor ブロックにおいて、信号値が 5 となるテスト ケースでは、Gain ブロックの出力は 25 になり、指定された最大値の 20 を超えます。

  3. このテスト ケースのシミュレーションを実行する前に、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断]、[データ有効性] ペインで [シミュレーション範囲のチェック][警告] または [エラー] に設定します。

    このパラメーターの設定により、Simulink がシミュレーションの実行時に指定された最小値または最大値を超える信号を検出した場合に実行する診断アクションが指定されます。

    • [警告] を指定した場合、シミュレーションは警告メッセージを表示して続行します。

    • [エラー] を指定した場合、シミュレーションはエラー メッセージを表示して停止します。

  4. [OK] をクリックして変更を保存し、[コンフィギュレーション パラメーター] ダイアログ ボックスを閉じます。

  5. Signal Builder ブロック ウィンドウで、[シミュレーションの開始] をクリックしてこのテスト ケースを含むモデルのシミュレーションを実行します。

    MATLAB ウィンドウには、想定したとおりに、Gain ブロックの出力値が指定された最大値を超えたという警告またはエラーが表示されます。

解析レポートのレビュー

ex_interim_minmax モデルの解析レポートに関する詳細情報を含む HTML レポートを生成することもできます。このレポートを作成するには、Simulink Design Verifier の [結果] ウィンドウで [詳細な解析レポートを生成] をクリックします。解析レポートはブラウザーで開きます。

この解析レポートの「設計エラー検出オブジェクティブのステータス」の章には詳細な結果が、次の 2 つのカテゴリで表示されます。

  • 有効と証明されたオブジェクティブSaturation ブロックの出力値は常に設計範囲内にあります。

  • テスト ケースにより反証されたオブジェクティブGain ブロックの出力値は設計範囲に違反しています。