Main Content

Verification Manager を使用したシミュレーション テストの構築

Simulink® Model Verification ライブラリ ブロックは、ブロックに対して割り当てられた仕様に従い、モデルの時間領域信号を評価します。Model Verification ブロックは、信号が指定した制限値または範囲を超過するとアサーションを返します。シミュレーション中に信号が制限値を超えると、検証ブロックは次のことを実行できます。

  • シミュレーションを停止し、モデルの該当部分にただちにフォーカスを移動させます。

  • logical 信号で失敗を報告します。シミュレーションが失敗していなければ、信号出力は true です。シミュレーションに失敗した場合は、信号出力は false です。

個々の Model Verification ブロックに関するリファレンス情報については、Model Verificationを参照してください。

Signal Builder ブロックを使用してモデルのテスト信号を提供する場合、Verification Manager グラフィカル インターフェイスを介して Model Verification ブロックをイネーブルまたはディセーブルにできます。Verification Manager を開くには、[Signal Builder] ダイアログ ボックスのツール バーで、[検証設定の表示] アイコン を選択します。

Model Verification ブロックによる範囲外信号の確認

この例では、Check Static Lower Boundブロックを使用して、Sine Waveブロックからの信号が下限値より低くなった場合にモデルのシミュレーションを停止します。

このモデルでは、Check Static Lower Bound ブロックには -0.8[下限] パラメーターがあります。アサーションは無効になっており、ブロックは×印で消されます。

1. Check Static Lower Bound ブロックをダブルクリックし、[アサーションを有効にする] チェック ボックスをオンにします。このパラメーターは、検証ブロックのアサーションを有効にします。モデルでは、ブロックの×印は消えます。

2. シミュレーションを実行します。1.29517 秒後、Sine Wave ブロックからの信号が下限の -0.8 に到達すると、次の診断メッセージが表示され、検証ブロックはシミュレーションを停止します。

  An error occurred while running the simulation and the simulation was terminated
  Caused by:
  Assertion detected in 'ex_model_verif_block_check_static_lower_errwarn/Check Static  Lower Bound' at time 1.29517

3. 信号値を検証するには、Scopeブロックをダブルクリックします。

Verification Manager での Model Verification ブロックの表示

このモデルには、5 つのテスト信号を Model Verification ブロックに送信する Signal Builder ブロックがあります。最初の 4 つの信号は Check Static Upper Bound ブロックに直接接続します。

5 番目の信号は、Check Static Upper Bound ブロックを含むサブシステムに接続します。

Check Static Upper Bound3 ブロックのアサーションのみが有効になっています。モデル内の他の Model Verification ブロックのアサーションは無効になっているため、これらのブロックは×印で消されます。

Verification Manager を開くには、Signal Builder ブロックをダブルクリックし、[検証設定の表示] アイコンを選択します。

検証ブロックと要件リンクの管理

Verification Manager は、[検証ブロックの設定] ペインと [要件] ペインから構成されます。

[検証ブロックの設定] ペインには、モデル内のすべての Model Verification ブロックがサブシステムごとにグループ化されて表示されます。たとえば、ex_verif_mgr_test_signals モデルの [検証ブロックの設定] ペインには 5 つの Check Static Upper Bound ブロックが表示されます。4 つはモデルの最上位にあり、1 つはサブシステム内にあります。

  • すべての Model Verification ブロックを表示するには、[検証ブロックの階層表示] アイコン をクリックします。

  • 現在の信号グループで有効になっているブロックのみを表示するには、[有効になっている検証の一覧表示] アイコン をクリックします。

[検証ブロックの設定] ペインで右クリックして Model Verification ブロックを表示するための追加のオプションを選択できます。

  • [表示][ツリー形式] — モデルの階層構造と同様の形式でブロックが一覧表示されます。

  • [表示][オーバーライドされたブロックのみ] — すべてのテスト グループで有効になっているブロックのみが一覧表示されます。

  • [表示][アクティブなブロックのみ] — 現在の信号グループで有効になっているブロックのみが一覧表示されます。

[要件] ペインには、現在の信号グループの要件ドキュメント リンクの一覧が表示されます。Requirements Toolbox™ がある場合は、このペインを介して、要件ドキュメントをテスト ケースおよびそれらの対応する Model Verification ブロックにリンクできます。

  • [要件] ペインを開いたり閉じたりするには、[要件の表示] アイコン をクリックします。

  • 要件ドキュメントをテスト ケースにリンクするには、[要件] ペインで右クリックして、コンテキスト メニューから [[外向きリンク] ダイアログを開く] を選択します。[外向きリンク] ダイアログ ボックスで、要件ドキュメントを参照し、選択します。詳細については、テスト ケースの要件ドキュメントへのリンク (Requirements Toolbox)を参照してください。

個々の Model Verification ブロックの有効と無効

Verification Manager の各検証ブロックには、アサーションが有効か無効かを示すステータス ノードがあります。ステータス ノードは、有効な設定が全体に適用されているか、現在アクティブなグループにのみ適用されているかも示します。次の表では、さまざまな種類のステータス ノードと右クリックすると使用できるコンテキスト メニュー オプションについて説明します。

ノード

ステータス

コンテキスト メニュー オプション

検証ブロックは、現在アクティブなグループで無効になっています。クリックすると、現在アクティブなグループで検証ブロックが有効になります。

すべてのグループのブロックを有効にする — すべてのテスト グループで検証ブロックを有効にします。ノード タイプはすべてのグループで有効 に変更されます。
グループのブロックを有効にする — 現在アクティブなグループで検証ブロックを有効にします。ノード タイプは有効 に変更されます。

検証ブロックは現在アクティブなグループで有効になっています。クリックすると、現在アクティブなグループで無効になります。

すべてのグループのブロックを有効にする — すべてのテスト グループで検証ブロックを有効にします。ノード タイプはすべてのグループで有効 に変更されます。
グループのブロックを無効にする — 現在アクティブなグループの検証ブロックを無効にします。ノード タイプは無効 に変更されます。

検証ブロックはすべてのテスト グループで有効になっています。

グループ単位でブロックを有効にする — すべてのテスト グループでこのブロックに個別に有効または無効にされた設定を復元します。前の選択に応じて、ノード タイプは有効 または無効 に変更されます。

Verification Manager を使用して現在アクティブなグループの Model Verification ブロックを有効にすると、モデルでは、ブロックに [オーバーライド] ラベルが表示されます。たとえば、ex_verif_mgr_test_signals モデルで、[アクティブ グループ] リストから [Group 2] を選択する場合、Verification Manager では Check Static Upper Bound1 ブロックが有効で表示されます。

モデルでは、Check Static Upper Bound1 ブロックの×印は消えますが、[オーバーライド] ラベルが表示されます。また、Signal Builder ブロックの左上隅の [アクティブ グループ] の選択も更新されます。

サブシステム別の Model Verification ブロックの有効と無効

モデルに多くの検証ブロックが含まれている場合、ブロックを個別に有効または無効にするのは手間がかかります。Verification Manager を使用すると、サブシステム内のすべてのブロックまたはモデル全体を有効および無効にできます。[検証ブロックの設定] ペインで、モデルまたはサブシステムの名前を右クリックして、次のコンテキスト メニュー オプションから選択します。

  • すべてのグループの内容を有効にする — すべてのテスト グループでこのサブシステム内のすべての検証ブロックを有効にします。

  • グループ単位で内容を有効にする — すべてのテスト グループでこのサブシステム内の各検証ブロックに個別に有効または無効にされた設定を復元します。

  • グループの内容を有効にする — 現在アクティブなグループのこのサブシステム内のすべての検証ブロックを個別に有効にします。

  • グループの内容を無効にする — 現在アクティブなグループのこのサブシステム内のすべての検証ブロックを個別に無効にします。

たとえば、ex_verif_mgr_test_signals モデルで、モデル名を右クリックし、[すべてのグループの内容を有効にする] を選択することで、すべての検証ブロックを有効にできます。Verification Manager で、すべてのグループのすべてのノードが有効 に変更されます。

各グループの各検証ブロックで個別に有効または無効にされた設定を復元するには、モデル名を右クリックして [グループ単位で内容を有効にする] を選択します。

Simulink Control Design の線形システム モデリング ブロック

Simulink Control Design™ がある場合は、以下を実行できます。

  • 時間領域および周波数領域の特性を監視する。

  • 線形システムの特性の範囲を指定する。

  • シミュレーション時に、特性の値が範囲内にあることを確認する。

個々のブロックに関するリファレンス情報については、モデル検証 (Simulink Control Design)を参照してください。

参考

| | | |

関連するトピック