行列ベクトルの入力データをstateflowに読み込ませる方法
Ältere Kommentare anzeigen
シリアル通信でデータサイズ[1 24](int16)のデータをstateflowを用いて条件分岐したいのですが、行列またはベクトルが不適切に使用されているというエラーが出てしまいます。
その後、プロパティインスペクターで入出力データのサイズと型を[1 24](int16)に設定して再度実行しましたが、データサイズの不一致というエラーが出てしまいます。
stateflowに行列データを読み込む時は一旦スカラーに変換しなければならないのでしょうか。
何か解決策等教えていただければ幸いです。
Akzeptierte Antwort
Weitere Antworten (2)
kazuya h
am 31 Mai 2022
0 Stimmen
2 Kommentare
Toshinobu Shintai
am 31 Mai 2022
Bearbeitet: Toshinobu Shintai
am 31 Mai 2022
Stateflowの状態遷移をベクトル化する意味は、どのようにお考えでしょうか。
通常、Stateflowのチャート内に存在するステートブロックは、ある一つの状態を表現しています。そのため、その状態が遷移するということは、一つの "遷移するしないのフラグ" = "スカラーのboolean値" があればよいです。
この遷移フラグがベクトルである、ということは、そのステートをベクトル化(インスタンス化)したいということでしょうか。そのような表現はStateflowではできません。Stateflowでなくても、そのような表現は可視化が難しくなるかと思います。
少しモデルが大きくなりますが、要素ごとに状態遷移を適用するようにする方が見やすく、またその方法がSimulinkとStateflowで可能になる手段になります。
添付ファイルをご確認ください。
Toshinobu Shintai
am 31 Mai 2022
すみません、追記ですが、「For Each Subsystem」を使うともう少し効率よくモデル化できます。Test_model_2.slxの「state_vector」サブシステムをFor Eachにすることで、ブロックを沢山並べなくてもモデル化できます。
kazuya h
am 31 Mai 2022
0 Stimmen
Kategorien
Mehr zu Simulink Function finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!