stateflow chart 内にて、繰り返し処理を1ステップで行うにはどうすればよいか?
조회 수: 2 (최근 30일)
이전 댓글 표시
現在stateflow chartにて、開発を行っております。
開発モデルにおいて、stateflow chart 内にて繰り返し処理を行いたいために、テストとして以下のようなモデルを作成しました。
図1
図2図3
上記のモデルは、Chart内にて、[1 1 1 1]というInベクトルの各要素を、繰り返し処理によってOutベクトルの各要素に代入するという簡単なモデルとなります。
また、resolutionは1秒です。
Outベクトルは、初期値として[0 0 0 0]と設定されております。
このモデルを実行すると、Outの各要素の出力が異なっており、一つ目と四つ目では以下のようになります。
図4
一つ目、0秒の段階で代入が行われている
図5
四つ目、代入操作が3秒の時点で行われている。
上記のような代入操作の遅れは、図2において一つの要素の代入操作が1ステップで行われており、すべての操作に4ステップかかっていることによるものと思われます。
ここで、すべての操作を1ステップで行うためにはどうすればよいでしょうか?
댓글 수: 0
답변 (1개)
Atsushi Ueno
2022년 10월 30일
一つの方法として:
MATLABは配列(ベクトル)を扱えるので、ローカル変数 i やループ処理を削除して、単にen: Out = In;とすれば良いです。
その際、Stateflowチャートのアクション言語をMATLABにしてください。
댓글 수: 8
Atsushi Ueno
2022년 10월 30일
Subsystem ブロックのプロパティ「Atomic サブシステムとして扱う」にチェックを入れると、そのSubsystem ブロックは「Atomic サブシステム」になります。
実際に設定してみたのですが、Stateが前回値を保持する動きは変わりませんでした。
참고 항목
카테고리
Help Center 및 File Exchange에서 Simulink Function에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!