【Modelica】 OpenModelicaで力学系・エネルギー系・システムダイナミクスのシミュレーション【成長の限界】

シミュレーションいろいろ

昔に比べて、自分のNotePCくらいでできるシミュレーションが増えています。

OpenFOAMで流体シミュレーションやったり

【OpenFOAM】やっとレーシングカーボディを仮想風洞実験しました エアロダイナミクスチュートリアル【CFD】

電気系のシミュレーションもいろいろ

【電磁界解析】そろそろパソコンレベルででもできるようになってるかな?シミュレーション【CAE】

で。。 若い頃にS(今のR言語)でデータ分析したり、SPICEでシミュレーションできたことが、いろんな研究や活動で役にたったというか。。ほんとに計算機替わりに使えて便利だったので、NotePCでできるようなシミュレーションはツールとしていいなぁ~って思うんです。でも最近、あんまりみんなこういうツールを使わないなぁ~って思ってて。。もっと使えばいいのに。。と。。

Modelica

で。。。 仕事でエネルギー関係のモデルをいろいろ調べたら、Modelicaという力学系・電気系の言語が出てきていまして。。。欧州系のシミュレータ言語なんですが、どれくらい使えるか分からないけど、多くの実績はありそう。

ライブラリーも豊富にありそうなんで。。 それを使ってみようかな?って。。

何ができるか??っていうと。。こんなの、運動シミュレーションだったり

Modeling of a Racing Car with Modelica’s Multi-Body Library

Motercycleのモデルとかは、デフォルトで入っています(笑)ヨーロッパ人はMotoGPとか好きですよね~(笑) バイクのモデルは、見てみるとスゴイです。。サスペンションから空力まで全部そろってる(笑)

車のモデルもこんなのがデフォルトで入っています。

わからないけど、F1などのシミュレータの中の記述言語には、これ使っているじゃないかな? とか。。

他にも、たとえば。。

Greenhouses: A Modelica Library for the Simulation of Greenhouse Climate and Energy Systems

気候変動用のエネルギーシステムのシミュレーションだったり。。 ライブラリーがどんどん。。増えているのでいろんなことができるようです。

日本語の情報は、まだあまりないですけど。。

https://1dcae.com/

今は、1DCAEっていうのですね。

 

https://www.xsim.info/articles/OpenModelica/What-is-OpenModelica.html

https://qiita.com/ats030/items/62403cbd9a6db7a8124b

このあたりに、例が乗っています。

Modelica ライブラリーを使う 環境としては、売ってるのでは、Dymolaとかもあり、フリーだと jmodelica OpenModelica などがあるみたいです。

FreeTool類も、すごくいっぱいありますけど。。

https://modelica.org/tools/index_html#free-modelica-simulation-environments

OpenModelica

ここは、簡単に使えそうなOpenModelica で試してみますね。

Windows 版・Mac版インストール方法は、ここに詳しくのっています。

https://1dcae.com/openmodelica-install/

直接行く場合は、ここ からOfficial Releaseの64bit版のexeをダウンロードすればいいです。

注意事項は、ファイルの空き容量が5G Byteくらいいります。インストールするフォルダに空白文字とかアスキー文字以外は、入れれないので、デフォルトのまま使用しましょう。

Please choose an installation path without spaces and non-ASCII characters, otherwise OpenModelica installation is not guaranteed to work properly.

インストールに結構時間かかります。ライブラリーが多いからですね。

いろんなもんがインストールされますが、ブロックで計算したりするのは、

Windowsのプログラム > OpenModelica > OpenModelica Connection Editor  です。

立ち上げると、こんな画面が出てきます

簡単なチュートリアル

たぶん。。これ見れば。。だいたい使えます(笑)

SPICEやったことあったり。。したら。。誰でも使えると思います(笑) っておらんか??(笑)

まぁ、そんな難しくないですから。。

真面目にチュートリアルする人は、コースも用意されています。

ハイブリッド車のモデルなどを作りながら学ぶとか。。

これスゴイっす。。映像付き英語だと沢山あります。他の言語もそこそこあるのに。。日本語ないですね。。日本の大学とかの機械工学はどうなんだろう??違うシミュレータが流行っているのかな??

成長の限界 の シミュレーション

もう1975年ごろに出た「成長の限界」

【読書感想文】成長の限界―ローマ・クラブ「人類の危機」レポート

そして。。そのリバイス版のシミュレーションもできます。

Limits Revisited

まさに、今、この通りに、地球はなっていこうとしています。

このシステムダイナミクスのシミュレーションも出来ます。簡単なやり方のPDFはこちら Web版を翻訳して読む方がわかりやすいかな?

メデュースの「成長の限界」と、「2052」を読んだ人には、わかるのですが、地球規模のシステムダイナミクスでは、いろんなシナリオでシミュレーションしているのですが、ほぼ、人類が絶滅するシミュレーション結果となります。

そのライブラリが、既に用意されています。

ファイル>システムライブラリ>SystemDynamics というのが、そのライブラリーです。

この中に、World 2やWorld 3というのがあります。

例えば、World3のシナリオ2を動かしてみましょう。

Senerio2をクリックして、メニューバーにある → が、シミュレーションスタートです。

シナリオを実行すると、変数をグラフで見ることができます。右の変数ブラウザで、ポピュレーション(人口) や 食料 Food/Dollar など。。 見れます。

それぞれのシナリオを実行して、一つのグラフで見ることもできます。

シナリオ1~4と、9を実行して、人口を、みてます。

  • シナリオ0:限界をなくせば,無限に成長する(無限のシナリオ)
  • シナリオ1:参照シミュレーション(再生不可能な資源の危機)
  • シナリオ2:再生不可能な資源がより豊富にあった場合(地球規模の汚染の危機)
  • シナリオ3:入手可能な再生不可能な資源がより多く,汚染除去技術がある場合(食糧の危機)
  • シナリオ4:入手可能な再生不可能な資源がより多く,汚染除去と土地の収穫率
  • 改善の技術がある場合(土地浸食の危機)
  • シナリオ5:入手可能な再生不可能な資源がより多く,汚染除去,土地の収穫率
    改善,そして土地浸食軽減の技術がある場合(多くの危機の組み合わせ)
  • シナリオ6:入手可能な再生不可能な資源がより多く,汚染除去,土地の収穫
    率改善,土地浸食軽減,そして資源効率改善の技術がある場合(コストの危機)
  • シナリオ7:世界が2002年から人口を安定させるという目標を採り入れた場合(汚
    染の危機)
  • シナリオ8:世界が2002年から人口と工業生産を安定させるという目標を採り入れ
    た場合
  • シナリオ9:世界が2002年から人口と工業生産を安定させるという目標を採り入れ
    ,かつ,汚染,資源,農業に関する技術を加えた場合(均衡社会の達成)

詳しく知りたい人は、この本を読んでみるといいです。

こういう問題も、シミュレートしていろいろ変数を振ってみて、みるとどうなるのか?が予測できます。

あくまでもシミュレーションなので、これが正しいという話ではないのですが、この精緻ともいえるし、大雑把ともいえるシナリオ1は40年たって。。この通りの動きをしているのは、本当に、面白いというか。。絶望感がでてきます(笑)

 

これは、あまりにも大きいシミュレーションなので、中身みるの大変ですけど。。こんな感じで、もともとシステムライブラリーに入っているものを見ていくと、チュートリアルなどもあるので、理解しやすいかと思います。

マイクログリッドのシミュレーションの例

Modelicaのシミュレーションモデルは Githubにも本当に沢山あります。論文も沢山ありますしね。もともと入っているモデルにも、その手のものがありますが、作ってくれたものを再利用するところから始めると、意外に。。よくわかります(笑)

例えば

https://github.com/ALSETLab/MicroGrid

これを、Zip Downloadしてきます。あとは、これを読んで(笑)

解凍して、MicroGridフォルダーに移動し、モデルpackage.moをロードします。 この行為により、使用されているModelica準拠のソフトウェアの「Working」タブにすべてのモデルがロードされます。 メインパッケージMicroGridは、次の名前の6つのサブパッケージで構成されています。(1)例、(2)電気、(3)蓄電池、(4)太陽光発電機、(5)コントロール、および(6)センサー。

マイクログリッドの例は、MicroGrid_Example.moという名前の(1)Examples内にあります。

他の例は、電気/例および制御/例にあります。 モデルExamples / MicroGrid_Example.moは、使用されているModelica準拠のソフトウェアに応じて、さまざまな方法でシミュレートできます。

OpenModelicaとDymolaの場合、ユーザーは[シミュレーション]タブに移動し、[シミュレーション]ボタンをクリックする必要があります。 SystemModelerの場合、[シミュレーション]ボタンは[モデリング]タブにあります。

例えば、これの、Exampleをやってみると、いろんなエラーが出てきます。

ControlのPWMのExampleなどは、簡単なので、こういうのは、どういう条件(シミュレーション方法なども見たりして。。)で動いているのかを見ならが、学習していくといいと思います。

論文1 論文2 なども参考になりますね。

電力関係では、DoDのGrid-Labというシミュレータもすごいですね

https://www.gridlabd.org/

電気回路 など 日本語記事

こんな記事も見つけました。

LT-Spiceが圧倒的に楽ですけどね(それは、SPICEを使っていたからかも)(笑)

http://otepipi.hatenablog.com/search?q=Modelica

日本語版のOpenModelica Tutorials

https://github.com/UedaShigenori/OpenModelica_Tutorials_Ja

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください