数学的なシミュレーション

<< 目次を表示 >>

ページ位置:  シミュレーション >

数学的なシミュレーション

Enterprise Architect 15.2では、強力な数学ツールや機能をシミュレーションに導入するための機能が大幅に追加されました。

 

バージョン15.2以降を利用すると、ソルバークラスを使用することで、MATLABのような統合された外部ツールの機能と連携させたり、Simulink・Stateflow・Simscape・OpenModelicaのようなツールで実行するためにモデルを出力することができます。

 

さらに、バージョン15.2では、JavaScriptで利用できる数学関数のライブラリが導入され、新しく大幅に拡張されたシミュレーション機能を支援します。

 

また、バージョン 15.2 では、スクリプト連携のチャート要素が導入されました。外部ツールを使用することなく、これらのチャート要素を利用することで、Enterprise Architect 内で直接実行されたシミュレーションから情報を抽出し、チャートとして表示することができます。

 

 

主な特徴

 

 

 

利用可能な連携機能

製品

説明

MATLAB

MATLABは、MathWorks社が開発した、広く普及している数値計算環境・プログラミング言語です。MATLABは豊富な数式や公式を提供しており、アプリケーション内で処理したり、Enterprise Architectのような他のアプリケーションに呼び出すことができます。

 

Enterprise ArchitectのMATLAB連携は、MATLAB APIを介して接続し、選択したMATLAB関数や式の値に基づいてEnterprise Architectのシミュレーションやその他のスクリプトを実行することができます。ソルバークラスを介してMATLABを呼び出したり、モデルをMATLAB Simulink・Simscape・Stateflowにエクスポートすることもできます。

(参考:MATLAB Simulinkを利用する

Simulink

ブロック間の有向メッセージのSysMLシミュレーションを実行するためのMATLABのコアアプリケーションがSimulinkです。Enterprise Architectでは、SysMLモデルをSimulink形式に変換し、シミュレーションを自動的に実行したり、選択した変数の出力をグラフとして表示したりすることができます。また、生成されたSimulinkファイルをSimulinkで直接開くことができ、シミュレーションの設定や出力機能を変更・微調整することができます。

 

一般的なビルトインSimulinkライブラリブロックをEnterprise Architect Simulinkパターンから直接ドラッグ&ドロップしたり、新しいSysPhS標準ステレオタイプパラメータを使用して独自のカスタムビルドブロックを参照したりすることができます。

 

Simulinkは、OpenModelicaと同じく、Enterprise Architectでシミュレーションを開発・実行するためのツールです。

(参考:MATLAB Simulinkを利用する

Simscape

Simscape は、物理システムのモデリングを可能にする MATLAB Simulink のオプション拡張機能であり、MATLAB に Simscape の膨大なライブラリブロックを使用して、様々な物理ドメインを横断して要求された出力をシミュレートしたりプロットしたりするよう指示します。Enterprise Architectは、SysML内部ブロック図をSimscapeに変換することができます。

Stateflow

Stateflowは、MATLAB Simulinkのオプションの拡張機能でもあり、Simulinkで実行するためのMATLAB Stateflowダイアグラムを生成する機能を提供します。Enterprise ArchitectでモデリングしたSysMLの状態マシンからStateflowダイアグラムに変換できます。

Modelica

Modelicaは、複雑な動的システムのモデリング・シミュレーション・最適化・分析のためのオープンな言語標準です。OpenModelica (フリー・オープンソース) や DymolaやWolfram Modeller (市販製品です。これらの製品も Enterprise Architect と連携し動作すると思われますが、動作確認やEnterprise Architectとの統合は行われていません) などのアプリケーションから利用・操作できるファイル構造を定義し、提供しています。

OpenModelica

OpenModelica は Modelica のオープン言語標準に基づいたフリー・オープンソースの環境です。OpenModelica は Modelica ファイルの読み込み・編集・シミュレーションができます。Enterprise ArchitectはOpenModelicaと統合されており、ステートマシン図やパラメトリック図のシミュレーションにおける定数や変数を定義するためのSysPhS標準の下での使用に対応しています。

 

また、OMEdit - OpenModelica Connection Editor で Enterprise Architect のモデルから SysML ブロック定義図を表示することもできます。ブロックの別名やノートが表示されます。

OpenModelicaは、Simulinkと同じく、Enterprise Architectでシミュレーションを開発・実行するためのツールです。

Octave

Octaveは数学関数のライブラリです。Enterprise ArchitectのJavascriptエンジンから、利用可能なOctave関数を使用するためにOctaveインタプリタと統合できます。Octaveは、シーケンスと行列に特に重点を置いて、MATLAB関数の代替手段を提供します。

JavaScript Math Library

JavaScript Math Libraryは、Enterprise Architect内のJavaScriptに直接組み込まれたCephesの数学ライブラリの実装であり、スクリプト化されたシミュレーション内(またはスクリプト連携のチャート・モデルアドインなど)での高度な数学関数の使用を可能とします。

 

 

ソルバー

製品

説明

ソルバークラス

ソルバークラスは、様々な外部ツールへの共通のAPIを提供します。これは、Enterprise Architectで使用されるどのJavascriptエンジンでも利用でき、MATLABやOctaveから数学関数を呼び出す際に特に有用です。外部ツール内で処理結果を確認したり、Enterprise Architect内で表示するためにJavaScriptエンジンに持ち込んだりすることができます。

(参考:ソルバー

MATLAB

MATLABソルバーは、MATLABがコンピュータにインストールされている場合に利用できます。ソルバーはMATLAB APIを使用して、利用可能な幅広いMATLAB関数へのアクセスを提供します。

Octave

Octaveソルバーは、Octaveがコンピュータにインストールされている場合に利用できます。ソルバーは、Octaveインタプリタと直接通信し、Octave環境内で関数やデータにアクセスできるようにします。

(参考:データセットの利用

 

 

シミュレーションの設定

種類

説明

設定要素

SysMLSim設定成果物は、Enterprise ArchitectでSysMLシミュレーションの設定や実行時の値を指定するために設計された成果物です。仕様の設定は、SysMLシミュレーションの設定ウィンドウで行います。

The SysML Extension for Physical Interaction and Signal Flow Simulation (SysPhS) Standard

SysPhS標準に従ったモデルを作成する場合には、設定要素を利用するのではなく、各要素内で変数・定数・初期値を定義してシミュレーションを実行することができます。これにより、変数・定数・初期値をダイアグラムやSysMLブロック上の追加区画に表示することができるため、シミュレーションの設定をダイアグラム内で視覚的に確認することができます。

複数のデータセットの定義

パラメトリックモデルで使用されているSysMLブロックは、シミュレーション設定の中で複数のデータセットを定義することができます。これにより、同じSysMLモデルを使用して異なる条件・初期値でのシミュレーションを行うことができます。

 

 

主な利用方法

内容

説明

ソルバーのコンソールを利用

  • スクリプトやシミュレーションで使用するコマンドを素早くテストする
  • MATLAB関数を呼び出して、期待通りの結果が返ってくるかどうか、エラーなしで実行されるかどうかを確認する
  • 一度だけ実行する必要のある JavaScriptを、スクリプトを作成し、実行後に削除するのではなく、直接実行する

シミュレーション内でソルバーを利用

  • Octaveの関数として定義されていた複雑な数学関数を呼び出す
  • MATLABのAPIルーチンを呼び出してデシジョンフローを実行する

SysML SysPhSのシミュレーション

  • Enterprise Architect SysMLでモデル化し、Simulinkを使用してシミュレーションする
  • Enterprise Architectで設計とモデル化を行い、既存のModelicaコンポーネントライブラリを使用してOpenModelicaでシステムのシミュレーションを実行する

状態マシンからStateFlowに連携

  • SysML の状態マシンを作成して、ユーザがシステムを繰り返しオン/オフするアクションを素早く定義します。シミュレーションを生成し、Stateflowで開いて状態の値をリアルタイムで表示し、Stateflowの設定を微調整する

状態マシンに対してEnterprise Architectのシミュレーション機能を利用

  • Stateflowでシミュレーションする前に、Enterprise Architectのシミュレーション機能を利用して内容を確認する

 

 

注意:

SysMLのパラメトリック図の背景で右クリックすると「SysML」→「ダイアグラムのシミュレーション」という項目がありますが、この機能はバージョン14.0以前に提供していた機能を呼び出すためのものです。現在は過去のバージョンとの互換性のためにのみ残しており、サポートの対象外です。このヘルプでも詳細な説明はありません。