OpenModelicaには,MSL(Modelica Standard Library)と呼ばれる標準ライブラリが付属しています.この標準ライブラリは,機械,制御,電気,流体,伝熱などの各工学分野に渡り,各ライブラリの中の例題(Example)を勉強するのはModelicaを理解するのに非常に有効です.今回はこのMSLのExampleを学ぶ前に行っていただきたい「複写」の仕方を説明します.
OpenModelicaのExample
OpenModelicaのライブラリブラウザには,下記のように各分野のライブラリが用意されています.これを標準ライブラリ(MSL: Modelica Standard Library)と言います.
機械系の並進系ライブラリ(Mechanics>Translational)を開いてみると「Examples」というパッケージがあり,この下に各例題が納められています.のアイコンは例題を表しています.
例として,どれかの例題モデルを開いてみてください.(下記はSignConventionというモデルを開いています)
ダイアグラム上にコンポーネントが配置されています.ダブルクリックで開くと,パラメータを入力するためのダイアログが開きますが,どのコンポーネントもOKボタンがグレーアウトされていて数値の修正ができません.(新たにコンポーネントを追加したり削除することもできません)これは標準ライブラリ中のモデルは,勝手に消したり修正したり出来ないようになっているためです.
複写の方法
この読み取り専用の例題をいろいろ触れるようにするには,自分のモデルに「複写」すればよいです.複写の仕方は,複写したいExampleのところで右クリックして「複製」を選びます.
出てきたダイアログ上で,名前とパスを入力してください.名前は同じでも構いません.(ここではわかりやすく区別するために「MySignConvention」としました)複写したい自分のパッケージのパスか,もしくはパスを空白にするとルートに複写されます.
パッケージの作り方は下記から
下記のようにライブラリブラウザ上に複写されました,このモデルは自由に修正できます.もちろん元のExampleには影響を与えません.別のモデルですから.
複写したMSLの注意点
ただし,ここで注意があります.モデルを開くとExampleによってはコンポーネントが正しく表示されていません.これはコンポーネントの場所が見つからないという事を表しています.
左上のタブのをクリックして「テキストビュー」に切り替えるとわかりますが,これは元の例題モデルのコンポーネントのパスが相対指定になっており,複写したモデルからは場所が特定できないためです.(例題モデルにもよりますが,このように相対パスされているものが結構あります)
絶対パスに修正するために,Ctrl+Fを押して「検索・置換メニュー」を出します.
この例では「Translational」→「Modelica.Mechanics.Translational」と置換しています.
正常に表示されました
コンポーネントのパラメータや初期値が,自由にさわれるようになりました.
複写機能を使わない方法
またModelicaのモデルファイル(拡張子mo)はテキストファイルですので,検索や置換などはいつも使っている自分のエディタを利用して,それを貼り付けても構いません.(下記は秀丸エディタを使った例)