複数のラズパイでのシミュレーションペースの統一
5 views (last 30 days)
Show older comments
複数のラズベリーパイが直列に並んでいて,それぞれsimulinkプログラムを実行しているとします.
これらは互いに隣り合うラズパイと通信を行っていて,Aから受け取った値を用いてBは計算し,その結果をCへ渡すとします.
何も気にしないでABCのsimulinkプログラムを実行時間infでスタンドアロンビルドかつ実行すると,
Bのシミュレーションペースが遅いのに(まだ計算が終わっていないのに)Aがひたすらデータを送り続けてしまうということが起こります.
[やりたいこと]
そこで,パソコンをmaster,各ラズパイをslaveとして,
①slaveは計算が終わったらA,B,Cの順にプログラムを1ステップだけ実行し,計算が終わったらmasterに報告
②masterは全てのslaveから計算が終わりましたと報告があったら再び各slaveへ1ステップだけプログラムを実行しろと命令する
以降その繰り返し
といったことを行いたいと考えています.
(1ステップずつ歩調を合わせて実行したい)
[やってみたけどダメだったこと]
リアルタイムシミュレーションの要領で,シミュレーションペースを遅くしてスタンドアロンビルド
スタンドアロンビルドの場合はシミュレーションペースが調整できないようです.
[詳細]
サンプリングタイム:0.001s
ラズパイ同士の通信方法:UDP
ラズパイ同士の接続方法:スイッチングハブを介した有線LAN接続
パソコンとラズパイの接続方法:上に同じ
各ラズパイでシミュレーションペースを合わせたエクスターナル実行を同時に行うとか可能なのでしょうか.
0 Comments
Accepted Answer
Shoumei
on 26 Dec 2019
「ポーリング」という処理方法をご存じでしょうか?
UDPデータが入力されたら処理を実行するように、Enabled SubsystemまたはTriggered Subsystemでモデルを構築してはいかがでしょうか?
0 Comments
More Answers (0)
See Also
Categories
Find more on Installation Setup and Configuration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!