« 高周波・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タグ »

2025年5月28日 (水)

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)

 

Openemswaveguide1

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$')

Openemswaveguide2

なるほど計算できてそうだ。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年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タグ »

最近の記事

2025年6月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最近のコメント

無料ブログはココログ
フォト