標準ライブラリを複写して使う(OpenModelica)

OpenModelica

OpenModelicaには,MSL(Modelica Standard Library)と呼ばれる標準ライブラリが付属しています.この標準ライブラリは,機械,制御,電気,流体,伝熱などの各工学分野に渡り,各ライブラリの中の例題(Example)を勉強するのはModelicaを理解するのに非常に有効です.今回はこのMSLのExampleを学ぶ前に行っていただきたい「複写」の仕方を説明します.

OpenModelicaのExample

OpenModelicaのライブラリブラウザには,下記のように各分野のライブラリが用意されています.これを標準ライブラリ(MSL: Modelica Standard Library)と言います.

ライブラリブラウザ上に表示されているMSL

 

機械系の並進系ライブラリ(Mechanics>Translational)を開いてみると「Examples」というパッケージがあり,この下に各例題が納められています.のアイコンは例題を表しています.

Mechanics>Translationalの例題モデル

 

例として,どれかの例題モデルを開いてみてください.(下記はSignConventionというモデルを開いています)

Exampleモデルの一例:SignConvention

 

ダイアグラム上にコンポーネントが配置されています.ダブルクリックで開くと,パラメータを入力するためのダイアログが開きますが,どのコンポーネントもOKボタンがグレーアウトされていて数値の修正ができません.(新たにコンポーネントを追加したり削除することもできません)これは標準ライブラリ中のモデルは,勝手に消したり修正したり出来ないようになっているためです.

OKボタンがグレーアウトされている

 

複写の方法

この読み取り専用の例題をいろいろ触れるようにするには,自分のモデルに「複写」すればよいです.複写の仕方は,複写したいExampleのところで右クリックして「複製」を選びます.

右クリックメニュー > 複製

 

出てきたダイアログ上で,名前とパスを入力してください.名前は同じでも構いません.(ここではわかりやすく区別するために「MySignConvention」としました)複写したい自分のパッケージのパスか,もしくはパスを空白にするとルートに複写されます.

 

パッケージの作り方は下記から

 

下記のようにライブラリブラウザ上に複写されました,このモデルは自由に修正できます.もちろん元のExampleには影響を与えません.別のモデルですから.

複写されたモデルがライブラリブラウザ上に表示されている

 

複写したMSLの注意点

ただし,ここで注意があります.モデルを開くとExampleによってはコンポーネントが正しく表示されていません.これはコンポーネントの場所が見つからないという事を表しています.

ダイアログビューの表示がおかしい

 

左上のタブのをクリックして「テキストビュー」に切り替えるとわかりますが,これは元の例題モデルのコンポーネントのパスが相対指定になっており,複写したモデルからは場所が特定できないためです.(例題モデルにもよりますが,このように相対パスされているものが結構あります)

参照先のクラスが相対パスで指定されている

 

絶対パスに修正するために,Ctrl+Fを押して「検索・置換メニュー」を出します.

検索・置換メニュー(Ctrl+F)

 

この例では「Translational」→「Modelica.Mechanics.Translational」と置換しています.

 

正常に表示されました

正常に表示された

 

コンポーネントのパラメータや初期値が,自由にさわれるようになりました.

 

複写機能を使わない方法

またModelicaのモデルファイル(拡張子mo)はテキストファイルですので,検索や置換などはいつも使っている自分のエディタを利用して,それを貼り付けても構いません.(下記は秀丸エディタを使った例)

 

・・・ということは「複製」機能を使わずに,テキストビュー上でスクリプトを全コピペしても同じことです.

スクリプトベースでコピペができる

ただしOpenModelica(バージョン v.1.12.0現在)は,一般的な商用ソフトのようにダイアグラムベースでのコピペは今のところできません.

ダイアグラムベースではコピペできない

以上,Modelicaのモデルファイルは特にencode処理などをしていなければ,基本的にテキストファイルですので,テキストベースで柔軟に修正することが可能です.

 

機械系の技術者にときどき勘違いされるのですが,Modelicaは「ソフトウェア」ではなくて「言語」です.このModelicaというプログラム言語をベースにいろいろな無償・商用ツールが作られています.生産性が高いので業務では必須の商用ツール群ですが,商用ソフトの便利なGUIのみに頼ってしまうと逆に生産性が落ちます.まずはModelicaが言語であることを理解した上で,商用ソフトを上手に利用しましょう.

 

日本機械学会 機械力学・計測制御部門 1Dモデリング研究会(A-TS 10-42)主査 / 物流機器製造業の開発部門に勤務/「1DCAEによるモデリング」について大学・学会等で講義・講演を行っている/1DCAE.com運営者/技術士(機械部門)/ 博士(工学)

田尻 明子をフォローする
OpenModelica
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
田尻 明子をフォローする
1DCAE.com