複数のラズパイでのシミュレーションペースの統一
15 ビュー (過去 30 日間)
古いコメントを表示
複数のラズベリーパイが直列に並んでいて,それぞれ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 件のコメント
採用された回答
Shoumei
2019 年 12 月 26 日
「ポーリング」という処理方法をご存じでしょうか?
UDPデータが入力されたら処理を実行するように、Enabled SubsystemまたはTriggered Subsystemでモデルを構築してはいかがでしょうか?
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Raspberry Pi Hardware についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!