Pythonでマイクロストリップパッチアンテナの設計ツールを作る(5) これまでをまとめてクラス化・モジュール化した。パッチサイズ、入力インピーダンス、指向性、効率、利得が計算できる。使い方まとめ。
これまでやってきたことを全部まとめてクラス化した。コードは後で説明するとして、まずは使い方から。
クラス名はPatchAntennaで、それをpatchantenna.pyというファイルに記載している。なのでまずそのファイルをパスの通ったところにいれて
import patchantenna as pa
とでもしてインポートする。
①初期化
初期化は
ant = pa.PatchAntenna(2.2, 1.588, 10)
のようにインスタンス化する。ここでtanδとσを省略するとデフォルト値が入る。
この時同時にパッチ幅W、パッチ長さLが設計されて内部に保持される。
②パッチ寸法読み・書き
propertyのwidthとlengthを使う。設計値以外のものを使う場合は代入も可能。
import numpy as np
from scipy.integrate import quad
from scipy.special import sici, j0
from scipy.integrate import dblquad
class PatchAntenna:
"""
矩形マイクロストリップパッチアンテナ設計クラス
Parameters
----------
er : 基板の比誘電率
h : 基板の厚み[mm]
f0 : 共振周波数[GHz]
tanD : 基板誘電体のtanδ
(省略すると0.01)
sigma : パッチ導体の導電率[S/m]
(省略すると5.8E7)
"""
def __init__(self, er, h, f0, tanD = 0.01, sigma = 5.8E7):
self.er = er
self.h = h * 1.0E-3
self.f0 = f0 * 1.0E9
self.u0 = 4.0 * np.pi * 1.E-7
self.e0 = 8.85418782E-12
self.tanD = tanD
self.sigma = sigma
self.lambda0 = 1 /(self.f0 * np.sqrt(self.e0 * self.u0))
#パッチ幅
self.W = (1.0 / (2 * self.f0 * np.sqrt(self.e0 * self.u0))) * np.sqrt(2.0 / (self.er + 1.0))
#有効比誘電率ereff
self.ereff = (self.er + 1.0) / 2.0 + ((self.er - 1.0) / 2.0) / np.sqrt(1.0 + 12.0 * self.h / self.W)
#フリンジングΔL
self.dL = self.h * 0.412 * (self.ereff + 0.3) * (self.W / self.h + 0.264) / ((self.ereff - 0.258) * (self.W / self.h + 0.8))
#基板内波長
self.wave_length = 1 /(self.f0 * np.sqrt(self.ereff * self.e0 * self.u0))
#パッチ長さ
self.L = self.wave_length / 2 - 2 * self.dL
@property
def width(self):
"""
パッチ幅を読み書きするプロパティ
"""
return self.W * 1000
@width.setter
def width(self, W):
self.W = W * 1.0E-3
@property
def length(self):
"""
パッチ長さを読み書きするプロパティ
"""
return self.L * 1000
@length.setter
def length(self, L):
self.L = L * 1.0E-3
def input_impedance(self, offset = 0):
"""
矩形マイクロストリップパッチアンテナの入力インピーダンスを計算する。
Parameters
----------
offset : パッチ端からの給電位置[mm]
Returns
-------
入力インピーダンス[Ω]
"""
k0=2.0 * np.pi / self.lambda0
X = k0 * self.W
siX, _ = sici(X)
I1 = -2 + np.cos(X) + X * siX + np.sin(X)/X
G1 = I1 / (120 * np.pi**2)
def f(t, X, Y):
return ((np.sin(X*np.cos(t) / 2.0) / np.cos(t))**2) * j0(Y * np.sin(t)) * np.sin(t)**3
I2, _ = quad(f, 0, np.pi, args = (X, k0*self.L))
G12 = I2 / (120* np.pi **2)
Rin = 1 / (2 * (G1 + G12))
return Rin * np.cos(np.pi * offset * 1.0E-3 / self.L) ** 2
def directivity(self):
"""
矩形マイクロストリップパッチアンテナの指向性(Directivity)を計算する。
Returns
-------
指向性[dB]
"""
k0 = 2.0 * np.pi / self.lambda0
X = k0 * self.W
def f(theta, phi, X, Y):
return (np.sin(X*np.cos(theta)/2) / np.cos(theta)) **2 * (np.sin(theta) **3) * (np.cos(Y*np.sin(theta)*np.sin(phi)/2)) ** 2
I2, _ = dblquad(f, 0, np.pi, 0, np.pi, args=(X, k0 * self.wave_length /2))
self.D2 = (2* np.pi * self.W / self.lambda0) **2 * (np.pi / I2)
return 10 * np.log10(self.D2)
def efficiency(self):
"""
矩形マイクロストリップパッチアンテナの効率(efficiency)を計算する。
Returns
-------
アンテナ効率[dB]
"""
#放射Qの近似式
if self.er > 2:
self.Qr = 3 * self.er * self.lambda0 / (8 * self.h)
else:
self.Qr = (np.pi * np.pi * np.sqrt(self.er) / (4 * np.pi * np.pi - 16 * np.sqrt(self.er))) * (self.lambda0 / self.h)
#導体Q
ds = np.sqrt(2 / (2 * np.pi * self.f0 * self.u0 * self.sigma))
self.Qc = self.h / ds
#誘電体Q
self.Qd = 1 / self.tanD
#無負荷Q
self.Qt = 1 / (1 / self.Qc + 1 / self.Qd + 1 / self.Qr)
self.eta = self.Qt / self.Qr
return 10 * np.log10(self.eta)
def gain(self):
"""
矩形マイクロストリップパッチアンテナのアンテナ利得(Gain)を計算する。
Returns
-------
アンテナ利得[dB]
"""
D2 = self.directivity()
eta = self.efficiency()
return D2 + eta
def draw(self):
"""
矩形マイクロストリップアンテナの寸法説明
"""
print(" ←------ W --------→ ")
print(" ↑ ┌────────────────────┐")
print(" | │ │")
print(" | │ │")
print(" │ │")
print(" L │ │")
print(" │ │")
print(" | │ 〇 │")
print(" | │ | │")
print(" | │ | offset │")
print(" ↓ └────────────────────┘")
print(" Thickness: h")
|
« 高周波・RFニュース 2024年11月4日 IEEE Antennas and Propagation Magazineでアンテナ技術の進化とアレイのレビュー、EMC EuropeでAIをDe-embeddingに応用、I-PEXがシールド付き細線同軸コネクタ発表、iPhone 17からApple製Wi-Fiチップ?Huaweiの5G-Aᴬ | トップページ | 映画「八犬伝」を観てきた。物語の八犬伝と、それを書いた馬琴と北斎との交流が突然切り替わる面白い構成。切り替わるたびに話が進むので馬琴たちが老いていくのも。昔NHKの人形劇で観てたので玉が懐かしかった。しかし板垣李光人くんどう見ても女性にしか見えない… »
「パソコン・インターネット」カテゴリの記事
- Google ColabのJulia言語でFPUT問題(Fermi–Pasta–Ulam–Tsingou、非線形結合した振動子が最初に与えたモードに戻る再帰現象)をDifferentialEquations.jlの2階の常微分方程式ソルバーDynamicalODEProblemでシンプレクティック8次のKahanLi8で計算、振動子の動きも動画にしてみる。(2025.05.22)
- PythonでFDTD法で電磁界シミュレーションできるopenEMSを使う(2)例題にあるマイクロストリップパッチアンテナ(MSA)を計算する。Sパラメータや入力インピーダンスだけでなく近傍界から遠方界の変換で指向性も計算できる。電流分布も動画で見る。給電はLumpedポートが使える。(2025.05.19)
- PythonでFDTD法で電磁界シミュレーションできるopenEMSを使う(1)例題にあるマイクロストリップラインのノッチフィルタ(スタブ)を動かして電磁界分布を動画で見てみる。CSXCADでモデルは確認できるし、ParaViewで電磁界分布が見られる。Sパラメータも計算できる。(2025.05.14)
「学問・資格」カテゴリの記事
- 高周波・RFニュース2025年5月23日 HUBER+SUHNERが76-81GHzのミリ波レーダ向け3D waveguide antenna発表、Silicon LabsがIoT向けシリーズ3 SoC発表、GSMAがM360ユーラシアでAIと5Gのイノベーションと協業について発表、ロームがAIサーバー向けMOSFET発表(2025.05.23)
- 高周波・RFニュース 2025年5月22日 三星電機(SEMCO)が165℃対応の車載インダクタ発表、KYOCERA AVXがリップル電流についての技術文書発行、QualcommとXiaomiの契約15年目、OmdiaがNokiaをPrivate 5Gの2025の王者と決定(2025.05.22)
- Google ColabのJulia言語でFPUT問題(Fermi–Pasta–Ulam–Tsingou、非線形結合した振動子が最初に与えたモードに戻る再帰現象)をDifferentialEquations.jlの2階の常微分方程式ソルバーDynamicalODEProblemでシンプレクティック8次のKahanLi8で計算、振動子の動きも動画にしてみる。(2025.05.22)
- 高周波・RFニュース 2025年5月21日 TDKが0201のRFインダクタ発表、InfineonがUWBのFiraコンソーシアムの理事会に、ubloxがロボット用GNSSモジュール発表、FibocomがMediaTekのT930を使った5Gモジュール発表、Motolora Edge 60 Pro分解動画(2025.05.21)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース2025年5月23日 HUBER+SUHNERが76-81GHzのミリ波レーダ向け3D waveguide antenna発表、Silicon LabsがIoT向けシリーズ3 SoC発表、GSMAがM360ユーラシアでAIと5Gのイノベーションと協業について発表、ロームがAIサーバー向けMOSFET発表(2025.05.23)
- 高周波・RFニュース 2025年5月22日 三星電機(SEMCO)が165℃対応の車載インダクタ発表、KYOCERA AVXがリップル電流についての技術文書発行、QualcommとXiaomiの契約15年目、OmdiaがNokiaをPrivate 5Gの2025の王者と決定(2025.05.22)
- Google ColabのJulia言語でFPUT問題(Fermi–Pasta–Ulam–Tsingou、非線形結合した振動子が最初に与えたモードに戻る再帰現象)をDifferentialEquations.jlの2階の常微分方程式ソルバーDynamicalODEProblemでシンプレクティック8次のKahanLi8で計算、振動子の動きも動画にしてみる。(2025.05.22)
- 高周波・RFニュース 2025年5月21日 TDKが0201のRFインダクタ発表、InfineonがUWBのFiraコンソーシアムの理事会に、ubloxがロボット用GNSSモジュール発表、FibocomがMediaTekのT930を使った5Gモジュール発表、Motolora Edge 60 Pro分解動画(2025.05.21)
« 高周波・RFニュース 2024年11月4日 IEEE Antennas and Propagation Magazineでアンテナ技術の進化とアレイのレビュー、EMC EuropeでAIをDe-embeddingに応用、I-PEXがシールド付き細線同軸コネクタ発表、iPhone 17からApple製Wi-Fiチップ?Huaweiの5G-Aᴬ | トップページ | 映画「八犬伝」を観てきた。物語の八犬伝と、それを書いた馬琴と北斎との交流が突然切り替わる面白い構成。切り替わるたびに話が進むので馬琴たちが老いていくのも。昔NHKの人形劇で観てたので玉が懐かしかった。しかし板垣李光人くんどう見ても女性にしか見えない… »
コメント