掲示板一覧   -   トピック一覧
   SysML
     OpenModelicaを用いたSysMLシミュレーションにおいて、独自のライブラリを利用したい


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
umesan
投稿日時: 2023-7-19 11:34
EA Administrator
投稿: 1510

OpenModelicaを用いたSysMLシミュレーションにおいて、独自のライブラリを利用したい

サポート宛てにいただきましたご質問の要約です。

○ご質問
OpenModelicaを用いたSysMLシミュレーションにおいて、標準ライブラリではない個別で作成したmodelicaライブラリを使って計算を行いたいです。

独自のライブラリを作成し、EA上で独自のライブラリを模擬したModelicaBlockを作成を行いましましたが、ライブラリのロード時に失敗しました。
しかし、EAが作成してくれたmoファイルをOMEditで別途開いた場合は、ライブラリモデルの構成を再現しており、計算もできます。

EAにて標準ライブラリはロードしており、個別ライブラリも同じように扱うことは可能であると思われ、適切な設定方法を教えて頂ければ幸いです。


また、EAではomc.exe実行時にmoファイルとライブラリを指定して実行する形でしょうか?(下記リンクのように)

https://www.opencae.or.jp/wp-content/uploads/2021/04/OpenModelicaUsersGuide.pdf


○回答
EAのSysMLシミュレーションにおいて「コード生成」と「シミュレーションの実行」をそれぞれ実行しております。

「コード生成」は下記URLのヘルプの「コードの生成」のメニューで実行されるように、特定フォルダに3つのファイルを作成します。

◇SysMLシミュレーションの設定タブ
https://www.sparxsystems.jp/help/16.0/sysml_sim_window.html

「シミュレーションの実行」は、EAのメニューからも実行出来ますが、上記コードの生成で作成されたファイルのうち、Shell.cmd を実行することでも同じ結果となります。

「コードの生成」で作成された3ファイルは、それぞれテキストファイルですので、内容を確認頂けると思います。


1つめのご質問の「個別ライブラリ」につきましては、モデルに記述の内容から、mos ファイルにloadModel(classname) を生成しております。
こちらは、EAのモデルからは、ファイルパスの指定が困難なため、上記のようになっていると推測されます。
このことより、OpenModelica 側で、loadModel(classname) で実際のファイルパスからライブラリが読み込まれるように設定していただく必要があります。
この設定につきましては、OpenModelica 側の設定となりますので、詳細につきましては、OpenModelica の資料等をご確認頂けますようお願いいたします。(頂きました「OpenModelica ユーザーズガイド和訳」にも掲載されているようです。)

もしくは、下記URLのヘルプの「Modelicaスクリプトのテンプレートを編集する」の部分を参考に、フルパスのライブラリの指定の出力と不要なLoadModelが出力されないように、テンプレートを編集頂くのが対応方法になるかと考えます。

◇Modelicaライブラリを利用したモデリングとシミュレーション
https://www.sparxsystems.jp/help/16.0/sysml_sim_modelica_lib.html


2点目の内容につきましては、上記内容ならびに、生成された Shell.cmd の内容をご確認頂けますようお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ