その315【仮想HILS5】2022.04.18バックナンバーはこちら。バックナンバーModelicaによるプラント設計。それをFMUにして他のプラットフォーム(Python等)での再利用。XCP等)の事例を紹介していく話。Modelica用ツールとしてはOpenModelicaを使用する。追加コードまとめはじめに前回は、仮想HILSのMDF生成処理をボタン押下時に実施するための方法を解説。次の計測のための再初期化なども必要となる。今回は各種シグナル用のリストに計測データを蓄えていくところとなる。博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんのイラストを使用しています。太郎くん次はシグナル用のリストに計測データを保存していくところかな。リストに追記していくだけだから、処理としてはシンプルなはずだ。太郎くんちなみにどこで計測データを取り込むの?フクさんFMU処理をしているFMU_handlerって関数内が妥当だろう。太郎くんあと、仮想HILS側で見えてるデータって、FMUからの戻りのデータもあればXCPによる仮想ECUからの戻りのデータもあるよね?どれを取り込む想定になってるの?フクさん元々、仮想HILS側で描画してい居た信号はFMUからの戻りの信号になってる。よって、MDFに保存する信号もFMUからの戻りにしておくと、実際のリアルタイム波形と一致して評価できるんじゃないかな?太郎くんあ、そうか。正しいかどうかも判定する必要があるから、すでに表示している物をMDFとして保存した方が良いのか。追加コード太郎くんじゃー、FMU_handler内のFMU処理とかXCP処理が終わったところでMDF記録用のリストを更新する感じがよさそうだね。こんな感じのコードになると思ってる。MDF用記録self.time_sig.extend(res[self.model_sub2]['time'])self.voltage_sig.extend(res[self.model_sub2]['voltage'])self.current_sig.extend(res[self.model_sub2]['current'])self.speed_sig.extend(res[self.model_sub2]['speed'])self.loadTorque_sig.extend(res[self.model_sub2]['loadTorqueStep.tau'])self.target_sig.extend(res[self.model_sub1]['target'])フクさんうむ。太郎くんまぁ描画用の信号をdeaueに入れてる処理が有ったから、それをコピペしつつ、リスト名だけ書き換えただけだけど。フクさんそれでOKだ。基本的にはリストもdeaueも見た目上は似たようなものだし。deaueの場合は、指定したデータ数を超えると自動で消失するがリストの方はMDF出力するまではずっとため込む。いう振る舞いの違いがあるだけだな。太郎くんまぁいい感じにメソッドが共通化されてたから、使いまわしが効いた感じだ。フクさんじゃ、次回までに今までの修正の反映よろしく。太郎くん(僕がやるのか・・・まぁ大体できそうな気はしてるけど・・・。)まとめフクさんまとめだよ。計測データの取得場所はFMU処理をしているFMU_handler内が妥当。描画用のデータもここで取ってる。計測データ対象はFMUの戻りのデータ。仮想HILSが描画しているデータと合わせておくと評価し易い。追加コードは描画用データのdequeとほぼ一緒。リスト、dequeのメソッド名が共通化している恩恵。バックナンバーはこちら。バックナンバーModelicaによるプラント設計。それをFMUにして他のプラットフォーム(Python等)での再利用。XCP等)の事例を紹介していく話。Modelica用ツールとしてはOpenModelicaを使用する。その215【PID制御6】HILSもどきの前にDAQパケットを取得して波形表示する機能が必要。仮想ECU側の内部変数を表示することが目的。DAQパケットはECU側の計測値なので、内部変数と解釈しても差し支えない。上記機能はDAQリスナと命名。DAQリスナの実験構成を図示した。横からCANを覗き見るだけのシンプルな機能。その305【CANape1】MDFを異なるツールで読み込めるのは標準仕様の真骨頂と言える。CANapeへMDF内の信号取り込み方法を説明。MDFを開いた段階で選択する方法とエクスプローラの測定からのドラッグ&ドロップの方法がある。物理値、生値の切り替え方法を説明。グラフィックウィンドウの設定から可能。その206【AUTOSAR12】AUTOSAR-XCPのDAQ設定系コマンドの動作確認。FREE_DAQ、ALLOC_DAQ、ALLOC_ODT、ALLOC_ODT_ENTRYを一気に確認。ODT_ENTRYへの書き込み実施。SET_DAQ_PTR、WRITE_DAQを確認。listはDAQかSTIMかの利用方法の指定はしていない。その100【ダミーFMU2】ダミーFMU定義に向けての方針を提示。FMUのロードの仕方を再確認。_connect_dllという引数があった。_connect_dllをFalseにするとFMUがロードされずインターフェースだけが定義される。インターフェースを利用してでPython側からFMU出力制御可。時間の制御はできない。OSDが育ってきた文化について説明。車両のNVH(Noise、Vibration、Harshness)評価を想定したもの。ベンダー的にはあまりMDFは使用しない。MDFが育ってきた文化について説明。ベンダーが積極的にMDF利用。標準化の認識が日本人的には強烈なギャップあり。その123【リアルタイム描画17】FMU_handlerことFMUシミュレーション用処理のコードを提示。外部の変数を使用するためにglobal定義している変数あり。実時間の経過を元にFMUシミュレーション時間を決定している。実時間にシミュレーション時間を追いつかせる方式。開始と終了のstepが重複したり欠落したりするので微小時間の調整が必要。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。(14)KEI主に自動車開発関連の技術者っぽい人。領域はパワートレインがメインだが、それ以外もちょこちょことやってる感じ。カテゴリ的には凡そ以下。現場は疲れたので、シミュレーションで実物を扱わなくても仕事ができる環境を目指す。家に引きこもって外に出なくてもOKな世界。目指せ完全テレワーク。KEIをフォローするKEI2024.11.01はい。一般的な動画のfpsに近いものと思ってもらってOKです。※以下、たぶんDS検定では聞かれないと思いますが念のため...画像フレームレートという表現ですが、世間一般の表現ではありません。仮)(データサイエンティスト検定リテラシーレベル)KEI2024.11.01ありがとうございます。正解選択肢の内容が間違ってますね。逆というか、協調フィルタリング側が間違っている状態でした。仮)(データサイエンティスト検定リテラシーレベル)鋼鉄の戦士2024.11.01協調フィルタリングとコンテンツベースフィルタリングの説明逆な気がします。仮)(データサイエンティスト検定リテラシーレベル)あ2024.10.09先日お伝えした問題は無事解決しました。Usホーム検索トップサイドバータイトルとURLをコピーしました。