Modelicaを使用したモデリング

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

Modelica言語

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

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

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

Modelica Standard Library

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

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

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

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

ModelicaコンパイラーとFMU

  • Twin 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ブラウザActivate > CustomBlocks > MoCustomComponentブロックを選択します。このブロックを、ダイアグラムにドラッグ&ドロップしてからダブルクリックします。
    ブロックのダイアログが開き、このブロックのポート、パラメーター、およびシミュレーション関数を定義するためのタブが表示されます。
  2. ポートタブで、ブロックに設定する入力ポートと出力ポートの数を入力し、各ポートの名前を入力してOKをクリックします。
  3. パラメータ(Parameters)タブで、このブロックのパラメーターの数を入力します。それらのパラメーターごとに、名前、値、およびタイプを入力してOKをクリックします。
  4. シミュレーション関数タブで、このブロックのシミュレーション関数を入力してOKをクリックします。

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

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

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

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

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