
前回はOpenModelica付属のExampleの中からVehicleデモを鑑賞。今回は、どちらもスプリングとダンパからなる「似た」コンポーネントSpringDumperとElastoGapの特性を比較しているElastoGapデモを動作させてみます。ギャップがあると、一気に複雑な特性をモデリングできるみたい。
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはWindows 11の パソコン(64bit)上にインストールした、The Open Source Modelica Consortium(OSMC)様の以下のバージョンを使用させていただいてます。(なお、ModelicaはModelica Association様の登録商標です。)
Openmodelica v.1.25.1 (Official Release版)
ElastoGapデモ
今回「鑑賞のデモ」はOMEditのライブラリ・ウインドウから以下の赤枠の項目を選択することでロード可能です。
上下に2つのモデルが並んでいる感じデス。どちらも「スプリング+ダンパ」で質量を両側から挟み込んで、最終的には落ち着くところに落ち着かせるという感じ。ただし、
-
- 上は両側から押さえつけるのはSpringDumperモデル
- 下で両側から抑えてこむのはElastGapモデル
という違いです。比較のためと思いますが、上下左右ともスプリングのバネ定数、ダンパの抵抗係数などはみな同じ。
SpringDumperは、バネとダンパを並列につないだ素直なモデルです。一方、ElastoGapは、バネとダンパを並列につないだものは含まれているのですが、そこに「ギャップ」が設けられています。ギャップの部分が埋まるまで、バネもダンパも動作せず、ギャップが埋まってからおもむろに動作するみたい。
いつもだとこの辺でGoogleの生成AI、Gemini様に、ElastoGapについて教えていただくところなのですが今回は「遠慮」しておきます。実はお伺いをたてたものの、Gemini様の教えてくださる特性はちょっとシミュレーションの結果やOpenModelica のドキュメントと違うような気がしたからです。ハルシネーションってやつ?知らんけど。
シミュレーション結果
以下は、デモのシミュレーション結果です。上はSpringDumperで抑え込まれている mass1 の位置と、速さをプロットしたもの。下はElastoGapで抑え込まれる mass2 の位置と、速さをプロットしたもの。赤線が位置で青線が速さです。
このグラフだけだとイマイチよくわからないので、それぞれに働いている力もプロットしてみましたぞ。まずは、SpringDumperから。
緑色が左のSpringDumper1からmass1への力、紫が右のSpringDumper2からmass1への力です。単純明快、両方のコンポーネントは逆向きに同じ力を与えていて、結果、mass1は急速に「釣り合い位置」に落ち着いていくのが分かります。ホントか?
さて一方ElastoGapの場合のグラフが以下に。「網掛け」はお惚け老人が書き加えたもの。
緑色の部分はElastoGap1がmass2に「制動かけてる」部分で、紫色はElastoGap2がmass2に「制動かけてる」部分です。
白く抜けている部分は、どちらも力を及ぼしてないので、mass2 は「慣性の法則」どおり定速で移動しているみたい。
さらにいうと、スプリング+ダンパ部分の力も「不連続にならず」また「ひっつき」が起こらずといった「配慮」も含まれているよし。詳しくは、ライブラリの解説ご参照。
グラフにすれば違いは明らかだけれども、使いこなすのムツカシーそう。どうなんだ?