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

スポンサーリンク
広告

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

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

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

【OpenFOAM】やっとレーシングカーボディを仮想風洞実験しました エアロダイナミクスチュートリアル【CFD】
まずはレーシングカーの3Dモデルを探す<おぃ 自分で作ればいいんでしょうが、そこも手抜きで、落ちているものをいろいろ探してみました。なかな...

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

【電磁界解析】そろそろパソコンレベルででもできるようになってるかな?シミュレーション【CAE】
CFDが動くんだから OpenFOAMで結構なことができることは、わかっている。 GPU使わなくても、そこそこの時間内でできるので、...

で。。 若い頃に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

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

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

1DCAE.com
1DCAEに関する情報の総合サイト

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

OpenModelica のインストールと実行 - XSim
WindowsでOpenModelicaを使う - Qiita
『お手軽にモデルベース開発環境を構築したい』で紹介した、システムモデリングツールOpenModelicaの使い方についてです。 Modelicaとは Modelicaとは、オブジェクト指向のマルチドメイン・モデリング言語で...

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

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

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

Redirecting to ../tools.html

OpenModelica

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

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

OpenModelicaのインストール
OpenModelicaのインストールに関する問合せがありましたので,こちらに記載させて頂きます.Windows,Linux,Mac版がリリースされています.Windowsの場合は,他のオープンソースとほぼ同じなので基本的に難しくありません

直接行く場合は、ここ から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  です。

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

簡単なチュートリアル

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

OMEdit Demonstration

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

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

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

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

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

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

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

【読書感想文】成長の限界―ローマ・クラブ「人類の危機」レポート
1972年にローマクラブがMITにコンピュータシミュレーションを 委託して行われた研究をもとに導かれた本です。 経済成長や工...

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

Limits Revisited - a review of the limits to growth debate
The Debate Economic growth is supposed to deliver rising prosperity. Higher incomes should mean better choices, richer lives, an improved quality of life for us...

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

このシステムダイナミクスのシミュレーションも出来ます。簡単なやり方の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にも本当に沢山あります。論文も沢山ありますしね。もともと入っているモデルにも、その手のものがありますが、作ってくれたものを再利用するところから始めると、意外に。。よくわかります(笑)

例えば

GitHub - ALSETLab/MicroGrid: Small library made as final project for the course Modeling and Simulation of Cyber-Physical Systems.
Small library made as final project for the course Modeling and Simulation of Cyber-Physical Systems. - GitHub - ALSETLab/MicroGrid: Small library made as final...

これを、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というシミュレータもすごいですね

GridLAB-D Simulation Software

電気回路 など 日本語記事

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

OpenModelicaを使って電気回路のシミュレーションをしてみる - dec9ue's diary
マルチドメインモデリング環境である、OpenModelicaを使用した電気回路のシミュレーションの例を通して、その使用感や言語的側面に触れたいと思います。想定読者としてはModelicaに触れたことがない人で、バックグラウンドとして回路シミュレーションに多少なりとも興味がある人、という感じでしょうか。ちょっとした使い方...

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

Modelica の検索結果 - システムとモデリング
modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

日本語版のOpenModelica Tutorials

GitHub - UedaShigenori/OpenModelica_Tutorials_Ja
Contribute to UedaShigenori/OpenModelica_Tutorials_Ja development by creating an account on GitHub.

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

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。