バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回までで指令器による指令値のCAN送信、
FMU処理、グラフ描画処理のCAN受信、
が出来上がったところ。
今回はこれらの結合実験となる。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
結合実験

じゃー、「指令器」と「FMU処理&グラフ描画処理」をそれぞれ立ち上げて
CAN連携がうまく行くかやってみるよー。

おー。

まずは「FMU処理&グラフ描画処理」側を立ち上げて、
can rcvにチェックを入れてCAN受信モードにしておく。

そして、指令器側は以下のコマンド&引数で実行!
CAN送信周期0.1秒、繰り返し有効の場合
python cansend.py 0.1 1
シミュレーション結果
![シミュレーション結果前半、tkinter、CAN指令器、FMU、クラス、sin波入力、CPU負荷表示、can rcv、リアルタイム描画、8秒pause、拡大、Enable Scale bar、Enable Cpu Load、pause、sin wave、Sawtooth wave、target Speed、target[rad/s]、voltage[V]、speed[rad/s]、loadTorqueStep.tau[N m]、current[A]、cpu_load[ms]](https://www.simulationroom999.com/blog/wp-content/uploads/2021/10/02_シミュレーション結果1-1024x608.png)
![シミュレーション結果後半、tkinter、CAN指令器、FMU、クラス、sin波入力、CPU負荷表示、can rcv、リアルタイム描画、8秒pause、拡大、Enable Scale bar、Enable Cpu Load、pause、sin wave、Sawtooth wave、target Speed、target[rad/s]、voltage[V]、speed[rad/s]、loadTorqueStep.tau[N m]、current[A]、cpu_load[ms]](https://www.simulationroom999.com/blog/wp-content/uploads/2021/10/03_シミュレーション結果2-1024x608.png)

これはうまく動いてるね。

そうだね。
キレイな波形になってると思う。

まぁCANの送信周期が0.1秒、つまり100msに抑えているからってものあるが、
この程度のやり取りでは問題なく動くってことだな。

一応一連の動作を動画で取って置いた。
シミュレーション結果の動画
※ 動画:シミュレーション結果
以下は音声合成ソフトウェアVOICEVOXのお試し利用で作成した解説動画です。

右上が「FMU処理&グラフ描画処理」、
左上が「指令器」
下にあるのがBusMasterでCAN回線をモニタしている。
って状態だね。

そうそう。
ちょっと感想

完全にフリーな環境だけでここまで持ってこれるんだねー。

まぁその分、精度の制約もあるし、
構築までの手間とか必要になる知識も膨大になるから、
お手軽とは言い切れないものではあるね。

確かに。
「時は金なり」
って言葉もあるから、
すでに用意されてる環境を買ってきた動かした方が正しいってことも多いよね。

とは言っても、経験は金では買えないことも多いのんで、
これはこれで良い経験と言えるだろう。

この流れはもう最終回な流れだね。
今回で146回だよ。
このシリーズ長すぎ。

ちなみにまだちょっとどころか相当続く予定だったり・・・。

え゛

他に何をするの?!

まぁ今回でCAN連携が出来たわけなんだけど、
これをさらに応用するのも思いついてるんで
それをやるだけやってみようかと。
って話を次回するつもりだ。

まじか・・・。
このシリーズ、200回超えるんじゃ・・・。

うーん、超えるね。たぶん。

(長すぎる・・・。)
ソースコードとか

ソースコードや使用したFMUはGithubに上げてるんで興味ある人は動かしてみると良いだろう。
Github
まとめ

まとめだよ。
- 「指令器」と「FMU処理&グラフ描画処理」の結合実験実施。
- 共に問題無く動作。
- CANの送信周期が100msというのもあって、波形もキレイ。
- 上記の状況を動画で確認。
- 「HILSもどき」というおおよそ目的を達成した気もするが、他のアプローチも試したいのでこのシリーズはまだまだ続く。
バックナンバーはこちら。
コメント