LTspiceで高周波解析(1)伝送線路のマイクロストリップライン素子(Microstrip LineのWheelerやHammaerstadモデル)をサブサーキットとして作ってみて、かつSパラメータ解析まで.net文をつけてやってみる。線幅、基板厚、比誘電率などをパラメータで計算できる。
LTspiceという無償のSpice系のシミュレータはよく使われている。(アナログデバイセズが買収したがもともとリニアテクノロジーが提供していたのでLTという名前が今でも残っている)。
https://www.analog.com/jp/design-center/design-tools-and-calculators/ltspice-simulator.html
ただ同じく無償のQucsやQucsStudioが様々な伝送線路モデルがあってSパラメータ解析も簡単なのに比べると、LTspiceには一応伝送線路モデルが2つ、ロスレスのTLINEと一応ロスがあるLTLINがあるというもののものすごく使いにくい。
そのためLTspiceは高周波系にはあまり使われない。むしろ半導体モデリングやディスクリートのアンプ、OPアンプのモデルが提供されているときのシミュレーションが多いのではないだろうか。
ということで伝送線路モデルLTLINに.paramで様々な式を入れてサブサーキット化してちょっとは使いやすくしようと思った。
(LTspiceしか使えない!という若手が出てきたので…)
あんまり複雑なモデルは挫折したので、前に高精度計算サイトkeisan.casio.jpに自作式で作った
と同じ、
(参考文献)"Microwave Solid State Circuit Design 2nd ed.", Bahl and Bhartia, Wiley
とした。Wheeler、Hammaerstadモデルを基にした式を計算している。
でどうやるか?まず回路にたくさん.param文をつけてこうした。
式が長すぎて途中で切れているのでサブサーキットのテキストはこちら(後で.ascと.asyファイルは添付しますが):
* block symbol definitions
.subckt microstripline Port1 Port2
O1 Port1 0 Port2 0 LTRA1
.model LTRA1 LTRA(Len=L R=Reff C=Ceff L=Leff)
.param c=299792458
.param Ceff=1/(v*Z0) Leff=Z0/v Reff=1/(t*W*sig)
.param W0=if(W/h-1/(2*pi)+0.5,W+(1.25/pi)*t*(1+ln(2*h/t)),W+(1.25/pi)*t*(1+ln(4*pi*W/t)))
.param eeff=if(W/h-0.5,(eps+1)*0.5+0.5*(eps-1)*((1+12*h/W)**(-0.5))-(eps-1)*t/(4.6*h*sqrt(W/h)),(eps+1)*0.5+0.5*(eps-1)*((1+12*h/W)**(-0.5)+0.04*(1-W/h)**2)-(eps-1)*t/(4.6*h*sqrt(W/h)))
.param Z0=if(W/h-0.5,(120*pi/sqrt(eeff))/(W0/h+1.393+0.667*ln(W0/h+1.444)),60*ln(8*h/W0+0.25*W0/h)/sqrt(eeff))
.param v=c/sqrt(eeff)
.ends microstripline
LTspiceのif文の扱いがめちゃくちゃ特殊で、、、あとべき乗が^じゃなくて**なのにはまったりいろいろ。
パラメータはWが線幅、hが基板厚み、tは線路の導体厚み、Lは線路長さ、epsは基板の比誘電率、sigは線路導体の電気伝導率で、後で出てくる入力時の数値の中で
mと書いてあるのはメートルではなく!ミリのこと(mm, 1e-3)、同じくuはμ(1e-6)のことです。
シンボルは、絵心がないがこんな感じで。
でLTspiceでは.net文を使うことで実行できる。説明はヘルプ参照で(説明が面倒、、、)。X1のクリックで先ほどの形状パラメータW,h,t,L,eps,sigが入力できる。さっきもいったけどmはメートルじゃなくてmm。
計算結果はこちら。まずはdB表示。
位相表示。
一応QucsStudioで計算した結果とも比べていい感じであってることも確かめた。
ただし大問題があって、ロスがR,Gで入れられるのだが一定値しか入れられない。
なので電気伝導損の表皮効果も表面粗さの影響も入れられないし、基本周波数に比例する誘電損(tanδが0でない場合の)も取り入れられない。
S21は基本あまりあてにならないのでご注意。
なんとか周波数に依存して反射がないロスのモデル作れないかな…と考え中。
ではLTspiceのモデルをアップロードしておきます。
« 光明寺でお参り。一本だけ赤くなっている紅葉があった。 | トップページ | 神とさざなみの密室(市川憂人さん)を読んだ。右翼・左翼の政治団体の2人が目覚めると密室で遺体が、というソウを思わせる序盤からSNS、ヘイト、森友、ナッジなど盛り込み驚愕の真相に。それと正当性確率の計算をやってみようとカシオの高精度計算サイトに作ってみた。 »
「パソコン・インターネット」カテゴリの記事
- Interface2025年8月号Pythonで体験!はじめての暗号を買った。上杉暗号からRSA、AES、DHなど、特に楕円曲線暗号についてはコードも実際に動かすところまで詳しくかかれていた。耐量子暗号や聞いたことなかったY-00暗号や関数型暗号も記載。(2025.07.10)
- Gemini CLIが使えるようになっていたので早速VSCodeのターミナルから使って、JavaScriptで連立一次方程式を計算するコードを書いてもらった。普通にガウスの消去法で計算するhtmlを作ってくれた。(2025.06.27)
- Google ColabのJulia言語で1次元のGray-Scottモデル(∂u/∂t=u²v-(F+k)u+Du∂²u/∂x²,∂v/∂t=-u²v+F(1-v)+Dv∂²v/∂x²)を計算してパルスが次々分裂する様子を見る。空間6次の差分、時間8次のルンゲクッタ法で計算。(2025.07.08)
« 光明寺でお参り。一本だけ赤くなっている紅葉があった。 | トップページ | 神とさざなみの密室(市川憂人さん)を読んだ。右翼・左翼の政治団体の2人が目覚めると密室で遺体が、というソウを思わせる序盤からSNS、ヘイト、森友、ナッジなど盛り込み驚愕の真相に。それと正当性確率の計算をやってみようとカシオの高精度計算サイトに作ってみた。 »
コメント