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

12 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)

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!