openEMS-オープンソース電磁シミュレーター

この投稿では、openEMSオープンソース電磁シミュレーターについて説明します。 プロジェクトの著者は、Thorsten Liebig(ドイツ、デュイスブルクエッセン大学)です。 プロジェクトのウェブサイトはopenems.deです。 Githubリポジトリ: github.com/thliebig/openEMS-Project シミュレータはクロスプラットフォームであり、LinuxおよびWindowsで実行されます。



このプロジェクトを初めて見たとき、そのようなものが作成できるとは信じていませんでした。 電磁界シミュレータの作成はかなり時間がかかる作業であり、その前は、これはオープンソースコミュニティの力を超えていると思いました。 ただし、openEMSはこのビューに反論します。 これは完全な電磁界シミュレータです。 もちろん、彼はHFSSのレベルには達していませんが、これはすでに非常に価値のある結果です。



シミュレーターの使用例を次に示します。 これは、openEMSで取得した15 GHzホーンアンテナパターンです。







主な機能



このシミュレータの特徴は、独自のグラフィカルインターフェイスを持たず、OctaveまたはMatlabに組み込まれていることです。 シミュレーションタスクはOctaveまたはMatlabスクリプトであり、Paraviewプログラムを使用して結果を表示します。 たとえば、ホーンアンテナはこのようなスクリプトによってモデル化されます。



電磁界シミュレータは、交流電圧源と外部電磁界の両方によって励起される、さまざまなシステムの電磁界の分布を計算するように設計されています。



1. FDTD法(時間領域での差分法)による電磁界(電気力学)の計算



2.電磁システムのSパラメーターの計算



3.近距離および遠距離の電磁場の計算



4.アンテナパターンの計算



5.結果の視覚化



openEMSの利点は、Matlab / Octaveに組み込まれているため、モデルをパラメーター化する無限の可能性があることです。 結果を後処理するために、これらの数値数学システムのフルパワーを使用することもできます。 結果をエクスポートして数学システムにプッシュすることに煩わされる必要はありませんが、すぐにグラフを取得して記事に挿入できます。



openEMSの欠点は、エントリのしきい値が増加することです。 シミュレータは直感的ではありません。 それをどうするかを理解するには、マニュアルを読む必要があります。 Matlab / Octaveの知識がなければ、それを扱うことは一般的に不可能です。



設置



インストール手順はこちらwww.openems.de/index.php/OpenEMS#Installation



Linuxでのインストールでは、サードパーティのopenEMSリポジトリを接続することにより、ディストリビューションに既製のパッケージを使用できます。 たとえば、Debian 7の場合、インストールは2段階で実行されます。 まず、リポジトリを追加します。



wget -O- 'http://download.opensuse.org/repositories/home:/sibbi77:/openEMS/Debian_7.0/Release.key' 2>/dev/null | apt-key add - echo 'deb http://download.opensuse.org/repositories/home:/sibbi77:/openEMS/Debian_7.0/ /' > /etc/apt/sources.list.d/openems.list
      
      





次に、パッケージをインストールします。

 apt-get update apt-get install openems appcsxcad
      
      





Slackware14.1には、私からのSlackBuildがあります: github.com/ra3xdh/openEMS.SlackBuild



ディストリビューション用の既製のパッケージがない場合は、ソースからopenEMSをビルドする必要があります。 組み立て手順はこちら: www.openems.de/index.php/Compile_from_Source



ビルドするには、次のライブラリが必要です。





openEMSにはVTK6ライブラリと互換性のないVTK5ライブラリが必要であることに注意してください。 したがって、ディストリビューションにVTK6がある場合は、最初にVTK5をビルドしてインストールする必要があります。 VTK5をwww.vtk.org/downloadから入手してください

シミュレーション結果を表示するには、Paraviewをインストールする必要があります。 通常、ディストリビューションにあり、パッケージマネージャーを使用してインストールされます。



インストール後のセットアップ



次に、OctaveまたはMatlab構成ファイルでopenEMSパッケージへのパスを登録する必要があります。 openEMSが/ opt / openEMSにインストールされているとします。 次に、$ HOME / .octavercファイルに追加する必要があります。



 addpath('/opt/openEMS/share/openEMS/matlab'); addpath('/opt/openEMS/share/CSXCAD/matlab');
      
      





Matlabの場合、startup.mファイルに同じものを追加する必要があります



これで仕事に取りかかることができます。



試運転



最初に、openEMSカーネル自体が起動することを確認します。 これを行うには、コンソールでopenEMSがインストールされているディレクトリに移動し、openEMSを実行します。 たとえば、/ opt / openEMSにインストールする場合:



 cd /opt/openEMS/bin/ ./openEMS
      
      





コンソールで次のようなものを取得する必要があります。



  ---------------------------------------------------------------------- | openEMS 64bit -- version v0.0.32-14-g63adb58 | (C) 2010-2013 Thorsten Liebig <thorsten.liebig@gmx.de> GPL license ---------------------------------------------------------------------- Used external libraries: CSXCAD -- Version: v0.5.2-15-gcb5b3cf hdf5 -- Version: 1.8.13 compiled against: HDF5 library version: 1.8.13 tinyxml -- compiled against: 2.6.2 fparser boost -- compiled against: 1_54 vtk -- Version: 5.10.1 compiled against: 5.10.1
      
      





動作する場合は、続行できます。 そうでなければ、何かがインストールされていません

そう。



次に、Octaveでインターフェイスを確認します。 OctaveまたはMatlabを実行し、すべてが機能していることを確認します。 最初に、3DモデルをプレビューするためのプログラムであるCSXCADとの相互作用があることを確認します。 InitCSX()コマンドを入力する必要があり、システムは次のようになります。



 octave:1> InitCSX() ans = scalar structure containing the fields: Properties = [](0x0) ATTRIBUTE = scalar structure containing the fields: CoordSystem = 0
      
      





次に、時間領域で有限差分空間を作成するためにインターフェイスを確認する必要があります。



 octave:2> InitFDTD(0,0) ans = scalar structure containing the fields: ATTRIBUTE = scalar structure containing the fields: NumberOfTimesteps = 0 endCriteria = 0
      
      





次に、存在しないタスクでMatlab / OctaveからopenEMSを開始しようとします。



 octave:4> RunOpenEMS('.','nonexistent.xml','.') ---------------------------------------------------------------------- | openEMS 64bit -- version v0.0.32-14-g63adb58 | (C) 2010-2013 Thorsten Liebig <thorsten.liebig@gmx.de> GPL license ---------------------------------------------------------------------- [....] openEMS - unknown argument: . openEMS: Error File-Loading failed!!! File: nonexistent.xml
      
      





次に、CSXCADジオメトリビューアーを実行してみます。 これを行うには、Octave内にコマンドを入力します(空のファイルでCSXCADを起動します)。



 CSXGeomPlot('nonexistant.xml')
      
      





応答として、[OK]をクリックすると、CSXCADウィンドウが開くというエラーメッセージが表示されます。 次のようになります。







これらの手順がすべて完了したら、シミュレーターの習得を開始できます。 次のパートでは、2つの平行な板の間の空間での電磁波の伝播をモデル化する方法について説明します。



OpenEMSリソース



  1. プロジェクトサイopenems.de
  2. Github: github.com/thliebig/openEMS-Project
  3. Wiki: openems.de/index.php/Main_Page
  4. 機能リスト: openems.de/index.php/List_of_Functions



All Articles