Modelicaを使用したモデリング

Modelica言語とModelicaブロックを使用したモデリングについて学習します。

Modelica言語

Modelicaは、特に物理コンポーネント挙動のモデリングに適した方程式ベースの言語です。

Modelica言語は、Modelica Associationが規定し、維持しています。

Modelicaの概要については、上級ユーザーのための拡張定義およびwww.modelica.orgをご参照ください。

Modelica Standard Library

Modelica Associationは、多くの分野に対応したオープンソースライブラリであるMSL(Modelica Standard Library)を作成しています。MSLは基準ライブラリであり、他のすべてのライブラリの基礎として機能します。

  • MSLのバージョンは、Modelica言語仕様のバージョンと共に進化しています。
  • Activateの現行バージョンは、MSLバージョン3.2.3をサポートしています。

ActivateのModelicaコンパイラーとModelicaライブラリ

信号ブロックと物理ブロックを混用するActivateの高機能なセマンティクスへの依存もさることながら、それ以上にActivateにおけるModelicaブロックの応用では、ブロックライブラリとコンパイラーを多用しています。Activateのブロックライブラリは、MSLなどの各種ライブラリに基づいています。コンパイラーはModelicaコードを、Activateで扱うコードに変換します。

ModelicaコンパイラーとFMU

  • ActivateにはModelicaコンパイラーが付属しています。このコンパイラーは、Modelicaブロック(モデルにあるすべてのブロックのModelicaコードのアセンブリ)を入力として、FMU(Functional Mock-up Unit)を作成します。
  • ModelicaコンパイラーはMaplesoft™の機能に基づいています。

C/C++コンパイラー

Modelicaブロックを使用するにはFMUを作成する必要があるので、結局C/C++コンパイラーを使用する必要があります。

サポートされていないVisual C++ターゲットオプションというエラーメッセージが表示された場合は、システムにC++コンパイラーがインストールされていません。このエラーを修正するには、サポートされているMicrosoft Visual Studio C++コンパイラーをインストールしてください。システムにインストールされているコンパイラーを表示するには、OMLコマンドウィンドウでvssGetCompilerName()と入力します。

Modelicaカスタムブロック

MoCustomComponentブロックでコンポーネントとModelicaブロックを定義します。

Modelica言語を使用して陰的コンポーネントを定義できるように、Modelica Custom Componentブロックが用意されています。このブロックは、そのポート、パラメーター、シミュレーション関数を含め、自由にカスタマイズできます。このブロックを使用すると、既存のあらゆるModelicaコードを利用して、新しいコンポーネントの作成や既存のModelicaブロックの変更が可能です。
  1. Palette BrowserActivate#menucascade-separatorCustomBlocks#menucascade-separatorMoCustomComponentブロックを選択します。このブロックを、ダイアグラムにドラッグ&ドロップしてからダブルクリックします。
    ブロックのダイアログが開き、このブロックのポート、パラメーター、およびシミュレーション関数を定義するためのタブが表示されます。
  2. ポート(Ports)タブで、カスタムブロックに設定する入力ポートと出力ポートの数を入力し、各ポートの名前を入力してOKをクリックします。
  3. パラメーター(Parameters)タブで、このブロックのパラメーターの数を入力します。それらのパラメーターごとに、名前、値、およびタイプを入力してOKをクリックします。
  4. シミュレーション関数タブで、このブロックのシミュレーション関数を入力してOKをクリックします。

Modelicaライブラリのインポート

Activateモデルで使用するModelicaブロックをインポートします。

Modelicaライブラリは、www.modelica.orgなどのソースから取得できます。Activateでは、ファイル#menucascade-separatorライブラリ#menucascade-separatorModelicaライブラリのインポートの順で選択するオプションを使用して、ModelicaライブラリからActivateライブラリを作成できます。Activateでは、Modelicaライブラリのコンポーネントをインポートし、Activateブロックとしてパレットに表示します。ModelicaとActivateではセマンティクスが異なるので、インポートしたブロックをテストし、必要に応じて編集したうえで使用する必要があります。
ImportantColonSymbol

インポートしたライブラリは、MSL 3.2.3に準拠している必要があります。また、ライブラリは、標準のModelicaフォルダ構造を持ち、<package>.moをファイル形式とする有効なModelicaパッケージであることが必要です。

  1. 目的のModelicaライブラリをローカルシステムに保存します。
  2. メニューバーでFile#menucascade-separatorライブラリ#menucascade-separatorModelicaライブラリのインポートを選択します。
    または、File#menucascade-separatorライブラリ#menucascade-separatorマネージャーを選択して、Modelicaライブラリから新規ライブラリを作成オプションを選択します。
  3. 表示されたLibrary Creatorダイアログで、インポートするライブラリのパスをModelicaライブラリパスに入力します。ライブラリの保存先とするパスをActivateライブラリパスに入力してOKをクリックします。
    選択したModelicaライブラリがActivateライブラリに変換され、指定したディレクトリに保存されます。インポートしたライブラリはPalette Browserから使用でき、アンインストールするまではそれ以降のセッションでも使用可能な状態が維持されます。
    ImportantColonSymbol インポートしたライブラリには、ブロック定義に記述された固有IDが設定されています。モデルを共有する際は、そのモデルで参照しているすべてのインポート済みライブラリも共有する必要があります。