モデルベース開発

事例

【Python】最小構成のMBD事例 第2章 その288【AsamMdf⑧】

MDFのrationalの変換式は制限付き有理関数。有理関数はxの多項式が分母分子に来るもの。MDFの場合は分母分子が2次までの有理関数を想定している。rationalには有理関数の6個の係数を指定するだけでOK。P1~P6をKeyとして、それぞれの係数をValueと置く。
事例

【Python】最小構成のMBD事例 第2章 その287【AsamMdf⑦】

asammdfのSignalのオプション引数conversionは物理変換式。大きく8種類存在。no conversion。無変換。linear。線形変換。algebraic。代数変換。文字列で式を表現。sin、cos、log、exp等の算術関数が使用可能。
事例

【Python】最小構成のMBD事例 第2章 その286【AsamMdf⑥】

今回からPythonによるMDF生成を開始。まずはimportasammdfモジュールのMDFとSignal。疑似データ生成用にnumpyも。numpyでタイムスタンプ生成。シグナルを生成。信号、タイムスタンプを引数にして生成。これ以外のオプションもあるがconversionが魔境。
事例

【Python】最小構成のMBD事例 第2章 その285【AsamMdf⑤】

生成するMDFの方針としては複数のDG、特殊な物理値変換を入れる。上記を元にMDF構成を決めた。DG2つ、CN3つ&それぞれに物理値変換式を含む。AsamMdfによるMDF生成手順を確認。最初にシグナルを作っておいてその後にMDFのデータ構造を作って行って最後にファイル保存。
事例

【Python】最小構成のMBD事例 第2章 その284【AsamMdf④】

AsamMdf付属Viewerで読み込ませてみるのはASAM MDF仕様と同梱されてるサンプルMDF。仕様を取得できない場合は、ASAM公式サイトから入手することも可能。実際にMDFを読み込ませてみた。波形表示だけでなく、詳細データ表示も可能。サンプルMDFはCANape、INCAが出力したもの。
事例

【Python】最小構成のMBD事例 第2章 その283【AsamMdf③】

AsamMdfのインストール方法は簡単なパターンだとpipとcondaの2種類。pipの場合、付属Viewerが必要な場合はasammdf[gui]を指定する必要がある。AsamMdf付属のViewerはPython環境直下のscriptフォルダにインストールされる。OS管理側は特に汚さない。
事例

【Python】最小構成のMBD事例 第2章 その282【AsamMdf②】

AsamMdfの基本機能を確認。公式サイトで説明はされている。基本機能と未対応機能を列挙。今回使用する範囲の機能は問題無し。念のためMDF生成実験の時に使用する機能をもうらできるようなデータ構造を考えておく必要はある。複数のDG/CG。CGに複数のCN。比較的特殊な物理値変換式。
事例

【Python】最小構成のMBD事例 第2章 その281【AsamMdf①】

PythonパッケージにAsamMdfというものがあり、これを使えば簡単にMDFを作成できそう。Viewerも付属している。今後の方針を打ち出した。基本機能確認インストール。View実験。MDF生成。他のツール(CANape)で作成したMDFを読めるか実験。仮想HILS組み込み。
事例

【ASAM】最小構成のMBD事例 第2章 その280【MDF⑨】

ODSとMDFの計測データの格納状態の違いに起因する問題。MDFのレコードを走査する仕様はODS側にある。unsorted MDFの場合、ODSのレコード走査仕様は使えない。よって、自動車業界としてはsorted MDF推奨の流れ。さらにMDF仕様がversion UPしてODS都合の仕様になる可能性もある。
事例

【ASAM】最小構成のMBD事例 第2章 その279【MDF⑧】

ODSとMDFの具体的な問題に突入。計測結果の再現性ポリシーが違う。MDFはECUに生値を入れたい動機がある。計測データのレートの取り方が違う。ODSは一定サンプリング、MDFは可変サンプリング。計測データの格納状態が違う。ODSはチャンネル別、MDFはCG単位のレコード。