Simulink の scopeについて

simulinkでサブシステムを使用して階層を作っているのですが、
一部のサブシステムの中において、信号をscopeで表示することができず、to workspaceで保存しようとしても空のファイルができるだけになってしまいます。
そのため、そのサブシステムにのみ信号が伝播できていないのではないかと考えています。
ただ、シミュレーションではエラーは表示されず実行可能で、そのサブシステムの出力は '0' となっています。
設定などに問題があるのか、分かりましたら教えてください。

6 Comments

Toshinobu Shintai
Toshinobu Shintai on 21 Oct 2019
モデルを添付していただければ答えやすくなります。
scopeで信号が表示されないサブシステムがある場合、ある条件分岐の結果そのサブシステムが実行されていないという理由かもしれません。
KEN YAMAUCHI
KEN YAMAUCHI on 25 Oct 2019
ご回答ありがとうございます。
現在共同研究をしており、その守秘義務のためsimulinkモデルをお見せすることができません。申し訳ございません。
おっしゃる通り、二つの出力をswitchによって切り替えています。しかし、その両方ともswitchの前でscopeに表示されず、switchの後の出力はどちらに切り替えても '0' となっています。
状況確認を進めたところ、問題のサブシステム内で Level 2 S-function を使用しているのですが、そのブロックを取り除いた場合正常に信号が伝播されることが分かりました。
Level 2 S-function を使用することで問題が生じることはありますでしょうか。
長文ですみません。よろしくお願い致します。
Toshinobu Shintai
Toshinobu Shintai on 26 Oct 2019
Level 2 S-function を使用すると起きうるか、については場合に寄りけりだと思います。
役に立つか分かりませんが、Simulinkの計算を一つずつ確認しながら解析する方法としてブレークポイントという機能があります。
このような機能を使って解析を進めてみてはどうでしょうか。
KEN YAMAUCHI
KEN YAMAUCHI on 3 Nov 2019
返信が遅くなり申し訳ありません。
ありがとうございます、参考にさせていただきます。
Atsushi Matsumoto
Atsushi Matsumoto on 15 Nov 2019
解決しましたか?
モデルを出すのが難しい場合は、問題個所を切り出して再現モデルを作成してもらえるとヘルプしやすくなります。手間はかかると思いますが、解決も早くなると思います。
KEN YAMAUCHI
KEN YAMAUCHI on 1 Dec 2019
Level 2 S-function 内にてquadprog関数を使用しているのですが、
制約違反がありこの関数が解けていなかった結果、
Simulink上に値が入力されていないことが原因だと分かりました。
ありがとうございました。

Sign in to comment.

Answers (0)

Products

Asked:

on 19 Oct 2019

Commented:

on 1 Dec 2019

Community Treasure Hunt

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

Start Hunting!