PythonでFDTD法で電磁界シミュレーションできるopenEMSを使う(3)TE01モードの矩形導波管を計算してSパラメータ表示と電界分布を動画にする。
マイクロストリップラインノッチフィルタ、マイクロストリップラインパッチアンテナと来て今度は矩形導波管。
https://docs.openems.de/python/openEMS/Tutorials/Rect_Waveguide.html
https://wiki.openems.de/index.php/Tutorial:_Rectangular_Waveguide.html
まずはモジュールをインポート。
import os
import numpy as np
import matplotlib.pyplot as plt
from CSXCAD import ContinuousStructure
from openEMS import openEMS
from openEMS.physical_constants import C0
|
次に寸法や周波数を設定。
Sim_Path = os.path.join("C:\\Users\\tomoh\\Documents\\Python Projects\\OpenEMS", 'Rect_WG')
post_proc_only = False
unit = 1e-6 #drawing unit in um
# waveguide dimensions
# WR42
a = 10700 #waveguide width
b = 4300 #waveguide height
length = 50000
# frequency range of interest
f_start = 20e9
f_0 = 24e9
f_stop = 26e9
lambda0 = C0/f_0/unit
#waveguide TE-mode definition
TE_mode = 'TE10'
#targeted mesh resolution
mesh_res = lambda0/30
|
そして励振と境界条件を設定。0がPECで導波管の壁になる。3はPMLで終端に相当。
0 = PEC or 'PEC'
1 = PMC or 'PMC'
2 = MUR-ABC or 'MUR'
3 = PML-ABC or 'PML_x' with pml size x => 4..50
FDTD = openEMS(NrTS=1e4)
FDTD.SetGaussExcite(0.5*(f_start+f_stop),0.5*(f_stop-f_start))
# boundary conditions
FDTD.SetBoundaryCond([0, 0, 0, 0, 3, 3])
|
モデルを作る。導波管は直方体書くだけなので簡単。
CSX = ContinuousStructure()
FDTD.SetCSX(CSX)
mesh = CSX.GetGrid()
mesh.SetDeltaUnit(unit)
mesh.AddLine('x', [0, a])
mesh.AddLine('y', [0, b])
mesh.AddLine('z', [0, length])
|
次はポート設定。矩形導波管専用のポートがある。
ports = []
start=[0, 0, 10*mesh_res]
stop =[a, b, 15*mesh_res]
mesh.AddLine('z', [start[2], stop[2]])
ports.append(FDTD.AddRectWaveGuidePort( 0, start, stop, 'z', a*unit, b*unit, TE_mode, 1))
start=[0, 0, length-10*mesh_res]
stop =[a, b, length-15*mesh_res]
mesh.AddLine('z', [start[2], stop[2]])
ports.append(FDTD.AddRectWaveGuidePort( 1, start, stop, 'z', a*unit, b*unit, TE_mode))
mesh.SmoothMeshLines('all', mesh_res, ratio=1.4)
|
ここで電界分布をみるための設定をしておく。設定はこう。
- DumpType:
- 0: for E-field time-domain dump (default)
- 1: for H-field time-domain dump
- 2: for electric current time-domain dump
- 3: for total current density (rot(H)) time-domain dump
- 10: for E-field frequency-domain dump
- 11: for H-field frequency-domain dump
- 12: for electric current frequency-domain dump
- 13: for total current density (rot(H)) frequency-domain dump
- 20: local SAR frequency-domain dump
- 21: 1g averaging SAR frequency-domain dump
- 22: 10g averaging SAR frequency-domain dump
- 29: raw data needed for SAR calculations (electric field FD, cell volume, conductivity and density)
Et = CSX.AddDump('Et', file_type=0, sub_sampling=[2,2,2])
start = [0, 0, 0]
stop = [a, b, length]
Et.AddBox(start, stop)
|
そして計算。一応モデルも確認。色がついているのは励振部分。
if 1: # debugging only
CSX_file = os.path.join(Sim_Path, 'rect_wg.xml')
if not os.path.exists(Sim_Path):
os.mkdir(Sim_Path)
CSX.Write2XML(CSX_file)
from CSXCAD import AppCSXCAD_BIN
os.system(AppCSXCAD_BIN + ' "{}"'.format(CSX_file))
if not post_proc_only:
FDTD.Run(Sim_Path, cleanup=False)
|
Sパラメータの図示。
freq = np.linspace(f_start,f_stop,201)
for port in ports:
port.CalcPort(Sim_Path, freq)
s11 = ports[0].uf_ref / ports[0].uf_inc
s21 = ports[1].uf_ref / ports[0].uf_inc
ZL = ports[0].uf_tot / ports[0].if_tot
ZL_a = ports[0].ZL # analytic waveguide impedance
plt.figure()
plt.plot(freq*1e-6,20*np.log10(abs(s11)),'k-',linewidth=2, label='$S_{11}$')
plt.grid()
plt.plot(freq*1e-6,20*np.log10(abs(s21)),'r--',linewidth=2, label='$S_{21}$')
plt.legend()
plt.ylabel('S-Parameter (dB)')
plt.xlabel(r'frequency (MHz) $\rightarrow$')
|
なるほど計算できてそうだ。PECなんでロスなしなのがいまいちだが。
電界分布もParaViewで見る。面でスライスしないと見えなかった。
« 高周波・RFニュース 2025年5月28日 Spectrum Controlが40GHzのアップコンバータSiPなどを発表、Nuvotronicsが40GHzまでのQuadplexer発表、中国が2025年に5G-Advancedに向けて30億ドル投資、ローデ・シュワルツの5G NTNホワイトペーパー | トップページ | 高周波・RFニュース 2025年5月29日 Qualcommが40周年、Xiaomiが15S Proに自社開発SoC XRING O1採用、SEMCOがADAS向けにMLCCの使い方提案、ZTE,AIS,MediaTekが5G-Aに向けUEアグリゲーションを共同開発、3GPPが2024優秀賞発表、NXPの新NFCタグ »
「パソコン・インターネット」カテゴリの記事
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年6月19日 QorvoがSバンドレーダ用のBAW switched filter bank発表、Ericssonがミッションクリティカル用途のアンテナ発表、SEMCOが125℃保証の0201インチX7T 1.0㎌ 6.3V MLCC発表、iFixitがトルクスプラスねじについて解説(2025.06.19)
- 高周波・RFニュース 2025年6月18日 Qorvoが5Gインフラ向けBAWフィルタとプリドライバアンプ発表、KeysightとNTTらが300GHz帯で280Gbpsを達成する信号発生システム発表、TDKが自動車用パワー・オーバー・コアクス・インダクター発表、NordicがNeuton AI買収(2025.06.18)
- 高周波・RFニュース2025年6月17日 everythingRF magazineはIMS2025特別号、MITの6Gに向け光でディープラーニングを行うチップ論文、NGMNが6Gに向けたキーメッセージを出版、Litepoint、Spirent、ViaviのTest and Measurementのトレンドレポート(2025.06.17)
- 高周波・RFニュース 2025年6月16日 iFixitのSamsung Galaxy S25 Edge分解でCTスキャンで2階建て基板の内部や5Gミリ波アンテナモジュールが鮮明に見える、Microwave JournalでRFのヘテロジニアスインテグレーションとローデ・シュワルツの複数ポートをもつスペアナFSWX紹介(2025.06.16)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年6月19日 QorvoがSバンドレーダ用のBAW switched filter bank発表、Ericssonがミッションクリティカル用途のアンテナ発表、SEMCOが125℃保証の0201インチX7T 1.0㎌ 6.3V MLCC発表、iFixitがトルクスプラスねじについて解説(2025.06.19)
- 高周波・RFニュース 2025年6月18日 Qorvoが5Gインフラ向けBAWフィルタとプリドライバアンプ発表、KeysightとNTTらが300GHz帯で280Gbpsを達成する信号発生システム発表、TDKが自動車用パワー・オーバー・コアクス・インダクター発表、NordicがNeuton AI買収(2025.06.18)
- 高周波・RFニュース2025年6月17日 everythingRF magazineはIMS2025特別号、MITの6Gに向け光でディープラーニングを行うチップ論文、NGMNが6Gに向けたキーメッセージを出版、Litepoint、Spirent、ViaviのTest and Measurementのトレンドレポート(2025.06.17)
- 高周波・RFニュース 2025年6月16日 iFixitのSamsung Galaxy S25 Edge分解でCTスキャンで2階建て基板の内部や5Gミリ波アンテナモジュールが鮮明に見える、Microwave JournalでRFのヘテロジニアスインテグレーションとローデ・シュワルツの複数ポートをもつスペアナFSWX紹介(2025.06.16)
« 高周波・RFニュース 2025年5月28日 Spectrum Controlが40GHzのアップコンバータSiPなどを発表、Nuvotronicsが40GHzまでのQuadplexer発表、中国が2025年に5G-Advancedに向けて30億ドル投資、ローデ・シュワルツの5G NTNホワイトペーパー | トップページ | 高周波・RFニュース 2025年5月29日 Qualcommが40周年、Xiaomiが15S Proに自社開発SoC XRING O1採用、SEMCOがADAS向けにMLCCの使い方提案、ZTE,AIS,MediaTekが5G-Aに向けUEアグリゲーションを共同開発、3GPPが2024優秀賞発表、NXPの新NFCタグ »
コメント