事例 【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 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その146【CAN連携⑩】 「指令器」と「FMU処理&グラフ描画処理」の結合実験実施。 共に問題無く動作。 CANの送信周期が100msというのもあって、波形もキレイ。 上記の状況を動画で確認。 「HILSもどき」というおおよそ目的を達成した気もするが、他のアプローチも試したいのでこのシリーズはまだまだ続く。 2021.10.30 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その145【CAN連携⑨】 CAN連携の受信側(FMU処理、グラフ描画)のコードを開示。 __init__にバズ初期化とチェックボックス配置。 FMU_handlerでCAN受信。 ただし、タイムアウト0秒のポーリング方式。 一応起動することだけは確認済み。 あとは指令器側のCAN送信との連携を試すのみ。 2021.10.29 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その144【CAN連携⑧】 GUI(tkinter)にチェックボックス追加。 「can rcv」というチェックボックス。 チェック時に受信有効になる想定。 CAN受信にチェックボックス判定追加。 if文を追加したのみ。 バス初期化、チェックボックス生成は__init__メソッドに追加予定。 CAN受信はFMU処理のタイマハンドラ内に追加予定。 2021.10.28 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その143【CAN連携⑦】 CAN受信用にモード切替のUIが必要。 チェックボックスで実施予定。 CAN受信のimport、バス初期化はCAN送信側といっしょ。 実際の想定受信コードも記載。 スレッドを使うことも可能だが、タイムアウトを0秒にするポーリング型を想定。 とりあえず、負荷に影響を与えない&シンプルな実装にする。 2021.10.27 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その142【CAN連携⑥】 Python-CANで送信確認。 送信は成功している。 BusMasterで確認。 送信状況はモニタできている。 100ms周期より若干上振れしている。 Sleepで周期を作っているため、どうしても上振れ方向になる。 よって、今回は気にせず指令器としてはOKとする。 2021.10.26 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その141【CAN連携⑤】 Python-CANで指令値送信のコードを提示。 CAN関連の前回までの復習の話のまんま。 利便性を上げるためにコマンドライン引数を取り込む機能追加。 送信周期変更と繰り返し処理切替を追加。 動作確認はBusMasterでモニタすることで実施予定。 実際のCANだと対抗機が必要だがVirtual CAN Busでは不要。 2021.10.25 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その140【CAN連携④】 バックナンバーはこちら。 はじめに 前回はCAN経由で渡した情報やPython-CANのインストール、importの話。 今回はバス初期化、送信の仕方の復習になる。 一応、同じ話は過去記事でも扱ってはいる。 登場人物 博識フクロウのフクさん... 2021.10.24 事例
事例 【PyFMI】最小構成のMBD事例 第2章 その139【CAN連携③】 CAN経由で渡したい情報として指令値を仮定義。 Ramp Up、Ramp Down、Stepなどの組み合わせ Python-CANの復習。 インストールの話。 pip使えばOK。 importの話。 canをimportすればOK。 以降はバス初期化、送受信などの話が続く予定。 2021.10.23 事例