モデルベース開発

事例

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

MDF conversion仕様 value to textについて説明。 利用シーンとしては状態名の表示。 シフトなどが代表的。 AsamMdfでのvalue to textの設定方法について説明。 辞書型に対してval_、text_のテーブルを設定。 指定外の数値だとdefault caseになる。
事例

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

MDF conversion仕様のtabularについて説明。 一言で言うとテーブル変換。 tabularには線形補間に関連する仕様がある。 with interpolation仕様。 指定した点の間を線形補間。 without interpolation仕様。 線形補間はしないが中点を境に変換範囲を推定。
事例

【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生成を開始。 まずはimport asammdfモジュールの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組み込み。