【Modelica】最小構成のMBD事例 第2章 その21【massモデル⑩】

【Modelica】最小構成のMBD事例 第2章 その21【massモデル⑩】 事例
【Modelica】最小構成のMBD事例 第2章 その21【massモデル⑩】

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

はじめに

前回、「Modelicaコード内で定義した変数に注釈」入れてみた。
OpenModelica Connecter Editorの変数ブラウザ上からも注釈が確認でき、
変数の意味が一目でわかるようになった。

今回は少しモデルを修正し、信号入力を可変にできるか試みる。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

入力を変えられないのか?

太郎くん
太郎くん

とりあえず、Modelicaコードの変数を変数ブラウザから書き換えることで
シミュレ―ションパターンがいろいろ作れるのはわかったけど・・・。

フクさん
フクさん

まだなんか悩みがあるの?

太郎くん
太郎くん

うん。
結局は固定的な入力データでシミュレーションしてるじゃん?
これを動きのある入力にできないのかなーって。

フクさん
フクさん

なるほど。
できるよ。

太郎くん
太郎くん

(あっさりだな)

ソースブロックの差し替え

フクさん
フクさん

結局はソースブロックを何にするかってところだな。

太郎くん
太郎くん

ソースブロック?

フクさん
フクさん

端的に言うと何かしらの信号を生成したり、物理量に変換してくれるブロックかな。
いままで使っていたconstant forceもソースブロックの一種になる。

太郎くん
太郎くん

ということは、そのソースブロックを変えればいいってことか。

フクさん
フクさん

そうなるね。

使用するソースブロック

太郎くん
太郎くん

で、どれを使えばいいのかな?

フクさん
フクさん

まぁ分かり易い所ではforcetrapezoidかな?

太郎くん
太郎くん

force?
trapezoid?

フクさん
フクさん

forceはその名の通り力を加えるブロック。
constant forceと一緒ではあるんだけど、可変に出来るという意味ではちょっと違う。

まぁ入力信号を力という物理量に変換してくれるって方がイメージが近いかな。

フクさん
フクさん

そして、forceに対して可変にするための入力信号が必要となる。
これにtrapezoidブロックを使用する。

フクさん
フクさん

trapezoidブロックは台形波を出力するブロックで
波形の高さ立ち上がり時間立下り時間を指定することで出力波形が決定する。

太郎くん
太郎くん

ほう。
ということは、その2つのブロックを組み合わせることで
台形波の形で力をmassにくわえられるってことか。

フクさん
フクさん

その通り。
trapezoidが具体的な信号生成。
forceがそれを物理量へ変換するソースブロックになるね。

ライブラリブラウザのフィルタ(検索)

太郎くん
太郎くん

で、そのブロックってどこにあるの?
OpenModelicaのブロックって大量にあり過ぎてどこになるのかわからないんだよねー。

フクさん
フクさん

名前を知っていればブラウザライブラリのフィルタで探せるけどね。

OpenModelica Connection Editor、Filter Classes、ライブラリブラウザ、ファイル、編集、ビュー、シミュレーション
太郎くん
太郎くん

お!じゃぁこれで検索すれば・・・。

フクさん
フクさん

と、言ってもそれだけだとどこに何があるか覚えられないので・・・。

太郎くん
太郎くん

いやー、折角あるんだから検索で・・・。

フクさん
フクさん

大雑把でも良いから何があるか知っておかないと何ができる/できないがわからないよ?

太郎くん
太郎くん

うーん、じゃぁまじめにどこにあるか探すか。

まとめ

フクさん
フクさん

まとめだよ。

  • ソースブロックによっては様々な信号を入力できる。
    • ソースブロックは信号を生成してくれるブロック。
  • 信号を生成するソースブロックと物理量に変換するソースブロックがある。
    • 今回はtrapezoidが信号生成、forceが物理量変換。
  • Modelicaライブラリは大量にあるがライブラリブラウザで検索ができるようになってる。

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

コメント

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