複数のラズパイでのシミュレーションペースの統一
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kento Fujita
le 13 Déc 2019
Réponse apportée : Shoumei
le 26 Déc 2019
複数のラズベリーパイが直列に並んでいて,それぞれ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 commentaires
Réponse acceptée
Shoumei
le 26 Déc 2019
「ポーリング」という処理方法をご存じでしょうか?
UDPデータが入力されたら処理を実行するように、Enabled SubsystemまたはTriggered Subsystemでモデルを構築してはいかがでしょうか?
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Installation Setup and Configuration dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!