stateflow chart 内にて、繰り返し処理​を1ステップで行うに​はどうすればよいか?

2 ビュー (過去 30 日間)
佳樹
佳樹 2022 年 10 月 30 日
コメント済み: 佳樹 2022 年 10 月 31 日
現在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ステップで行うためにはどうすればよいでしょうか?

回答 (1 件)

Atsushi Ueno
Atsushi Ueno 2022 年 10 月 30 日
一つの方法として:
MATLABは配列(ベクトル)を扱えるので、ローカル変数 i やループ処理を削除して、単にen: Out = In;とすれば良いです。
その際、Stateflowチャートのアクション言語をMATLABにしてください。
  8 件のコメント
Atsushi Ueno
Atsushi Ueno 2022 年 10 月 30 日
Subsystem ブロックのプロパティ「Atomic サブシステムとして扱う」にチェックを入れると、そのSubsystem ブロックは「Atomic サブシステム」になります。
実際に設定してみたのですが、Stateが前回値を保持する動きは変わりませんでした。
佳樹
佳樹 2022 年 10 月 31 日
承知いたしました。
何度もご丁寧な回答を下さり、ありがとうございます。

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink Function についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!