バックナンバーはこちら。
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もソースブロックの一種になる。

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

そうなるね。
使用するソースブロック

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

まぁ分かり易い所ではforceとtrapezoidかな?

force?
trapezoid?

forceはその名の通り力を加えるブロック。
constant forceと一緒ではあるんだけど、可変に出来るという意味ではちょっと違う。
まぁ入力信号を力という物理量に変換してくれるって方がイメージが近いかな。

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

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

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

その通り。
trapezoidが具体的な信号生成。
forceがそれを物理量へ変換するソースブロックになるね。
ライブラリブラウザのフィルタ(検索)

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

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


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

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

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

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

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

まとめだよ。
- ソースブロックによっては様々な信号を入力できる。
- ソースブロックは信号を生成してくれるブロック。
- 信号を生成するソースブロックと物理量に変換するソースブロックがある。
- 今回はtrapezoidが信号生成、forceが物理量変換。
- Modelicaライブラリは大量にあるがライブラリブラウザで検索ができるようになってる。
バックナンバーはこちら。
コメント