時間経過によるステー​トの変化を見るにはど​うすればよいか?

8 views (last 30 days)
佳樹
佳樹 on 25 Nov 2022
Commented: 佳樹 on 25 Nov 2022
現在Simulink, Stateflowにて、開発を行っております。
開発では、ステートが変化した場合にoutputが変化しないというモデルの作成が求められる場合があります。
例えば、以下のようなモデルです。
このモデルでは、in == 1が一秒間継続した場合に、out = 1と出力する、という処理を行っております。
このモデルをテストする場合に、A→B→Aといったステートの変化を行うテストケースを考えたとき、どちらのステートにおいても出力out=0となってしまうため、出力outを見るだけでは不十分です。
このような場合に、時間経過に伴うステートの変化を見るためには、どうすればよいでしょうか?
これを見る方法として、一番簡単だと思われる方法が、以下のようにステート番号をふった出力を追加する方法だと考えられます。
しかしながら、この方法はモデルに変更を加えてしまうために、あまり使用したくありません。

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 25 Nov 2022
一つには、チャートのキャンバスをクリックしてプロパティインスペクターを表示した時に、「監視する出力の作成」にチェックを入れます。
これにより、CHartブロックの出力ポートが一つ増えまして、状態の変化をブロックから出力することができます。
実行結果は以下の通りです。
二つ目に、「シミュレーション」タブの「アクティブステートのログ記録」をクリックする方法があります。
これにより、モデルを修正しなくても、状態の変化がシミュレーションデータインスペクターに記録されるようになります。
モデルも添付しました。モデルはR2020bで作成しました。
  1 Comment
佳樹
佳樹 on 25 Nov 2022
問題なく出力結果を見ることができました。
モデルの変更を必要としない「『シミュレーション』タブの『アクティブステートのログ記録』をクリックする」方法が非常に有効であると感じました。
わざわざモデルまで作成していただき、誠にありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Find more on 複雑なロジック in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!