事例 【XCP】最小構成のMBD事例 第2章 その223【仮想HILS⑥】 ついに仮想ECUと仮想HILSの連携動作。 とりあえず動いたんで録画してYoutubeに上げた。 想定よりもキレイだはあるが、やはりカクついている。 カクついている原因は変数の精度も含まれているかもしれない。 変数を32bit長にすることで精度を上げられるがODTを増やす必要がある。 CAN-FDを使うと・・・。 2022.01.15 事例
事例 【XCP】最小構成のMBD事例 第2章 その222【仮想HILS⑤】 構成がややこしいことになってきたので仮想ECUと仮想HILSの実験構成を再確認。 ネットワーク構成と論理的構成を確認。 論理的構成はModelicaモデルベースでシンプルだが、ネットワーク構成は各信号をCANやXCPに変えてるため複雑化。 このようにノードを分割しておくと部分的に実物に差し替えるなどがし易くなる。 2022.01.14 事例
事例 【XCP】最小構成のMBD事例 第2章 その221【仮想HILS④】 ついに仮想HILSのPythonコード完成。 基本的には前回までの修正内容を盛り込んだだけ。 指令値取得用のCANバス初期化の位置を先頭から実処理の前に移動。 XCP関連のCANフレームがFIFOに詰まれてしまうため、それを避ける目的で移動。 使用する前にFIFOクリアしてもOK。 2022.01.13 事例
事例 【XCP】最小構成のMBD事例 第2章 その220【仮想HILS③】 XCP関連の処理を追加。 基本xcp_canクラスを呼び出すだけ。 DAQ受信とSTIM送信はFMU処理が実装してあるFMU_handler内で呼び出す。 DAQ受信はFMU処理直前。 STIM送信はFMU処理直後。 これにより、仮想ECU側の変数と仮想HILS側のシグナルの同期が取れる。 2022.01.12 事例
事例 【XCP】最小構成のMBD事例 第2章 その219【仮想HILS②】 DummyFMU化したPID制御の辻褄合わせを実施。 Dummy_FMUModelCS2のdo_stepメソッドをオーバーライドすればOK。 do_stepをdp_pidとして実装。 do_pid関数内部でPID.fmuの変わりに出力を決定する仕掛け。 このように入出力の辻褄合わせをすればOK。 2022.01.11 事例
事例 【XCP】最小構成のMBD事例 第2章 その218【仮想HILS①】 再びPyFMIを使うということでPyFMI関連の復習。 過去記事のリンクを貼っておいた。 PIDのFMUをDummy_FMUModel化実施。 FMUModelCS2でロードしていたものをDummy_FMUModelCS2でロードするに変えるだけ。 当然、これに伴う変更もあるが。 2022.01.10 事例
事例 【仮想ECU】最小構成のMBD事例 第2章 その217【PID制御⑧】 DAQリスナーの動作確認実施。 問題無く動作した。 やや表示範囲が有ってないが次に作る「HILSもどき」向けの設定になってる。 「HILSもどき」改め「仮想HILS」と命名変更。 仮想HILS作成に向けてのロードマップ確認。 下位レイヤの動作が先に保証済みになっていると計画が立てやすい。 2022.01.09 事例
事例 【仮想ECU】最小構成のMBD事例 第2章 その216【PID制御⑦】 DAQリスナーのPythonコードを開示。 基本的にはPython-canで受信。 DAQパケットならば取り込む。 上記を元にmatplotlibで描画。 波形表示はリアルタイムではあるが負荷低減のため0.2秒周期。 ここらへんの描画負荷の事情はHILSもどきの時と一緒。 2022.01.08 事例
事例 【仮想ECU】最小構成のMBD事例 第2章 その215【PID制御⑥】 HILSもどきの前にDAQパケットを取得して波形表示する機能が必要。 仮想ECU側の内部変数を表示することが目的。 DAQパケットはECU側の計測値なので、内部変数と解釈しても差し支えない。 上記機能はDAQリスナと命名。 DAQリスナの実験構成を図示した。 横からCANを覗き見るだけのシンプルな機能。 2022.01.07 事例
事例 【仮想ECU】最小構成のMBD事例 第2章 その214【PID制御⑤】 仮想ECU側のPID制御器の入出力する信号の種類を確認。 実際にXCPのDAQ、STIMを実施して制御状態を計測。 想定通りの挙動になっていた。 CAN回線モニタを確認。 DAQとSTIMの目標値、実施のレイアウトを合わせていたので、縦に慣れべることで挙動が推測できる。 2022.01.06 事例