【PyFMI】最小構成のMBD事例 第2章 その146【CAN連携⑩】

【PyFMI】最小構成のMBD事例 第2章 その146【CAN連携⑩】 事例
【PyFMI】最小構成のMBD事例 第2章 その146【CAN連携⑩】

バックナンバーはこちら。
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]
シミュレーション結果後半、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]
太郎くん
太郎くん

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

フクさん
フクさん

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

フクさん
フクさん

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

フクさん
フクさん

一応一連の動作を動画で取って置いた。

シミュレーション結果の動画

※ 動画:シミュレーション結果


以下は音声合成ソフトウェアVOICEVOXのお試し利用で作成した解説動画です。

太郎くん
太郎くん

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

フクさん
フクさん

そうそう。

ちょっと感想

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

え゛

太郎くん
太郎くん

他に何をするの?!

フクさん
フクさん

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

って話を次回するつもりだ。

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

(長すぎる・・・。)

ソースコードとか

フクさん
フクさん

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

Github

まとめ

フクさん
フクさん

まとめだよ。

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

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました