バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はコードの修正を実施。
各関数(メソッド)で横断的に使用されてるものはメンバ変数へ移動。
各変数のスコープがハッキリしたことろで、
今回から実験続きを実施する。
登場人物
博識フクロウのフクさん
イラスト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
修正コードでとりあえず動作
コードの修正もできたし、とりあえず動作させてみるよー。
うん。
コード修正はしたけど、問題無く動作しているようだ。
やはり少しカクついてる?
と言ってもやっぱり少し波形がカクついてように見えるんだよなー。
Scaleのバーをマウスで動かしてるせいもあるかもしれないけど、
うまく原因の切り分けはできないものかなー。
そのためにsin波入力の機能を入れ込んでいる。
そっか。
sin波がキレイにでれば、マウス操作のせいで、
そうでなければ、処理の負荷に原因がある。
ってことにあるのか。
というわけでsin waveのチェックをON!
やっぱりカクついてる!
これはやっぱり処理負荷のせいなのか?!
そこで、Enable Cpu Loadのチェックを入れて、
FMU処理の周期をプロットするモードにしてみよう。
FMU処理の周期で負荷の確認
よし!
sin波入力のままEnable Cpu Loadのチェックを入れてみる。
この点線が負荷・・・とすると、
なんか負荷が高い時と低い時が交互にあって、
負荷が高い時にカクついてる・・・?
波形を一時停止して、
下部の方にある虫眼鏡のボタンで波形を拡大してみよう。
たしかmatplotlibのメニューを配置してたね。
こういう時に使うものだったのか。
負荷を拡大して確認
これは完全に処理できていない期間があるってことだな。
そうだね。
点線が処理負荷ことFMUの処理可能な周期を示してて
逆に言うとFMU処理以外の別の処理で持ってかれている時間と言える。
単位はmsで、
負荷が低い時は10ms周期くらいで駆動しているが、
負荷が高い時は80ms~100msくらいは別の処理に持っていかれてるようだね。
まじかー。
これだとイマイチかなー。
まぁ80ms~100msをどうとらえるかだなー。
多少反応精度が悪いHILSでも良いってことであれば、
使い道はありそうってところかな。
でも大体制御とかって10ms以下で動いてたりしない?
そうだねー。
でも、それっぽい応答性が机上で評価できればOKってことであれば有用とは言える。
まぁこのレベルの環境である程度の不具合を洗い出して、
もっと高性能なHILSで詳細確認みたいな役割分担ってのは可能ってことか。
まとめ
まとめだよ。
- 修正コードでとりあえず動作させてみた。
- 問題無く動作した。
- 負荷確認実施。
- カクついているが人間の操作のせいの可能性もある。
- sin波の自動入力で確認。
- やはりカクついている。
- よって、操作の問題ではない。
- やはりカクついている。
- CPU負荷を見て、さらにmatpotlibの波形拡大で詳細確認。
- FMU処理以外の処理負荷大きそう。
バックナンバーはこちら。
コメント