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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はMDFの物理変換ルールのrationalについて説明。
制限付き有理関数で、
\(\displaystyle f(x)=\frac{ax^2+bx+c}{dx^2+ex+f}\)
を構成を前提としてもので6個の係数を指定すればOKな仕様。

今回も引き続きtabularから説明開始。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

MDF conversion仕様 tabular

フクさん
フクさん

次のMDF conversion仕様はtabular。

太郎くん
太郎くん

名前的には表形式ってことのようだけど・・・。

フクさん
フクさん

これは本当に名前のまんまだね。
いわゆるテーブル変換だ。

太郎くん
太郎くん

1だったら10。
5だったら30。
8だったら60。
に変換みたな感じ?

フクさん
フクさん

そうだね。
あとは線形補間を入れる入れないのオプションもあるけど。

太郎くん
太郎くん

線形補間?

tabularの線形補間仕様

フクさん
フクさん

MDF conversionのinterpolation仕様といって、
線形補間をする場合”with interpolation仕様
線形補間をしない場合”without interpolation仕様
って言ったりもするね。

太郎くん
太郎くん

で、どういう違いがあるの?

フクさん
フクさん

さっきの太郎くんの例を元にまず表形式で表現すると以下になると思う。

input valueoutput value
110
530
860
フクさん
フクさん

で、これらをそれぞれ”with interpolation仕様”と”without interpolation仕様”で表現すると以下になる。

MDF conversion仕様tabular(Value to value tabular look-up)"with interpolation仕様"と"without interpolation仕様"
太郎くん
太郎くん

“with interpolation仕様”の方は間を補間されるのか!

太郎くん
太郎くん

“without interpolation仕様”の方も良く見ると
変換元の範囲を見てそうだね。
0~3が0。
3~6.5が30。
6.5以上は60。

フクさん
フクさん

そうそう。
同じtabularでも補間仕様を使うかどうかで表現が大きく変わってくる

tabularの指定の仕方

太郎くん
太郎くん

で、AsamMdfでtabularの変換ルールを使うにはどうしたら良いの?

フクさん
フクさん

今回のパターンだと以下の書き方だな。

conversion=dict()
conversion['raw_0']=1
conversion['raw_1']=5
conversion['raw_2']=8
conversion['phys_0']=10
conversion['phys_1']=30
conversion['phys_2']=60
フクさん
フクさん

さらに、”with interpolation仕様”にしたい場合は以下も追加。
尚、0を入れてはいるけど、‘interpolation’というKeyがあればOKなので、
Value側は何を入れてもOK。

conversion['interpolation']=0
太郎くん
太郎くん

あ、Keyが存在しているかどうかだけで切り替えてるのね。

フクさん
フクさん

この仕様はドキュメントとしては載ってなかったからソースコードから調べてきた感じだ。

太郎くん
太郎くん

まぁこの手のライブラリあるあるだねー。

フクさん
フクさん

まぁ比較的マイナーな仕様なんで知らなくてもそうそう困ることはないんだけどね。

まとめ

フクさん
フクさん

まとめだよ。

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

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました