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

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

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

はじめに

前回からasammdfのSignalのオプション引数conversionは物理変換式について掘り下げ。
大きく8種類存在し、no conversion、linear、algebraicまで説明。
ここまでは比較的簡単な部類。

引き続き、rationalから説明開始。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

rational

フクさん
フクさん

次は物理変換ルールはrational。

太郎くん
太郎くん

rational?
直訳すると「合理的な」って意味っぽいけど、
ここからじゃなんのことやら・・・。

フクさん
フクさん

まぁこれもalgebraicと同じく代数式が入るのだけど、
制限付き有理関数って感じだな。

太郎くん
太郎くん

制限付き有理関数?

有理関数

フクさん
フクさん

まず有理関数ってのは2つの多項式を分母分子に持つ関数のことだな。
Wikipediaの説明を引用しよう。

数学における有理関数(ゆうりかんすう、英: rational function)は、二つの多項式をそれぞれ分子と分母に持つ分数として書ける関数の総称である。抽象代数学においては変数と不定元とを区別するので、後者の場合を有理式と呼ぶ。

Wikipediaより(https://ja.wikipedia.org/wiki/%E6%9C%89%E7%90%86%E9%96%A2%E6%95%B0)
フクさん
フクさん

具体的には
\(\displaystyle f(x)=\frac{P(x)}{Q(x)}\)
P,Qは\(x\)の任意の多項式。
例えば以下
\(\displaystyle f(x)=\frac{x^3-2x}{2x^2-10}\)

太郎くん
太郎くん

あー、なんとなくイメージは湧いた。

太郎くん
太郎くん

あと有理関数の英名がrational functionになってる!
ここからrationalってのが来てたのか!

フクさん
フクさん

そういうことだね。

太郎くん
太郎くん

あと、さっき制限付きって枕詞がついていたけど、
これは何?

制限付き有理関数

フクさん
フクさん

まぁ有理関数と表現すると、無限に項が定義できてしまうんで、
この項数に制限をかけてるってことだね。
MDFのrational仕様としては以下の形の有理関数を前提としている。
\(\displaystyle f(x)=\frac{ax^2+bx+c}{dx^2+ex+f}\)

太郎くん
太郎くん

うーん、なるほどと思いたいけど、ここまで複雑な式って使うのかな?

フクさん
フクさん

実際はさらに制限を掛けて使うことになるかな。
例えば分母側不要なら
\(d=0,e=0,f=1\)にすることで
\(\displaystyle f(x)=\frac{ax^2+bx+c}{1}=ax^2+bx+c\)
になるし、
さらに
\(a=0\)にすると
\(\displaystyle f(x)=\frac{bx+c}{1}=bx+c\)
linearと同じ変換式になるね。

太郎くん
太郎くん

あ、なるほど。
要らない項の係数を0にして消してしまえば良いのか。

フクさん
フクさん

そして、このa,b,c,d,e,fの6個の係数を指定してあげればMDFとしてOKってことになる。

MDFでのrationalの指定方式

フクさん
フクさん

そしてMDFとしてのrational変換式は指定方法は以下になる。

conversion = {
    'P1': 0,
    'P2': 4,
    'P3': -0.5,
    'P4': 0,
    'P5': 0,
    'P6': 1,
}
フクさん
フクさん

\(\displaystyle f(x)=\frac{P1x^2+P2x+P3}{P4x^2+P5x+P6}\)
の制限付き有理関数を想定していて、
上記の例の場合だと、
\(\displaystyle f(x)=\frac{0x^2+4x-0.5}{0x^2+0x+1}=4x-0.5\)
ってことになるな。
まぁこの式だとlinearを使った方が楽なんだけど。

太郎くん
太郎くん

でも、rationalの使い方は良く分かったよー。

まとめ

フクさん
フクさん

まとめだよ。

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

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

コメント

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