Test Sequence の verify 関数でシミュレーショ​ン中の信号を常時監視​できますか?

Simulink Test の Test Sequence ブロックで、シナリオの最終ステップに verify 関数を配置して評価を行っています。しかし、評価結果を確認すると、シミュレーション全体を通じて条件が監視されているのではなく、ステップ終了時点のみ評価されているように見えます。verify 関数を用いて、シミュレーション中の信号や変数を継続的に監視する方法はありますか?

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 16 Sep 2026 at 0:00
Edited: MathWorks Support Team on 16 Sep 2026 at 0:16
Test Sequence ブロック内の verify は、その記述が配置されたステップがアクティブな期間のみ評価されます。
例えば、シナリオの最終ステップにのみ次のような記述がある場合、
stepEnd:
verify(y == expected);
verify は stepEnd が実行されている間だけ評価されます。そのため、stepEndに遷移する前の期間に条件違反が発生していても、stepEnd 実行時点で条件を満たしていれば PASS と判定される場合があります。verify 関数自体に「シミュレーション全体を通じて常時監視するための専用設定」はありません。継続的な監視を行いたい場合は、以下の方法をご検討ください。
方法1:Test Assessment ブロックを使用する
Test Assessment ブロックは、シミュレーション期間中に条件を継続的に評価する用途向けに設計されています。​
verify(OutputSignal < 100);
を Test Assessment ブロック内に記述すると、シミュレーション開始から終了まで条件違反を監視し、PASS/FAIL を判定できます。
また、
  • Test Sequence:入力シナリオの作成
  • Test Assessment:評価・判定
のように役割を分離できるメリットもあります。
方法2:when 構造を使用する
特定の条件が成立している期間のみ継続評価したい場合は、when 構造を使用できます。​
when (Mode == RUN)
verify(Current < 10);
この例では、Mode == RUN の期間中、条件が継続的に評価されます。
方法3:監視期間中アクティブなステップ内で Verify を実行する
Test Sequence のみで構成したい場合は、監視対象期間中ずっとアクティブなステップ内に verify を配置する方法があります。verify はステップがアクティブな間、シミュレーション実行中に繰り返し評価されるため、最終ステップのみで評価する場合よりも継続監視に近い動作を実現できます。
参考資料

More Answers (0)

Categories

Find more on MATLAB 入門 in Help Center and File Exchange

Products

Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!