LTspiceで使いたいトランジスタのモデルを作成する方法

LTspice

LTspiceは標準でトランジスタモデルが入っていますが、使いたい素子が入っているとは限りません。
その時は自分でモデルを作る必要がありますが、作業自体は難しくはありません。
今回作るバイポーラトランジスタは、日本ではおなじみの2SC1815/2SA1015です。

モデルの設定方法

LTspiceで自作のモデルを作ります。
以下は、npnトランジスタをLTspiceで動かすための最低限で最も簡単なSPICEモデルです。
高精度版は後ほど作ります。

.model 2SC1815 NPN (IS=6e-15 BF=200 VAF=120)

使用しているパラメーター一覧です。
IS:飽和電流
BF(hFE):順方向電流増幅率
VAF:アーリー効果

バイポーラトランジスタ3端子の電流は、この3つのパラメータを用いて順方向では概ね以下の式で計算されます。

コレクタ電流:

IC=ISexp(VBEVT)(1+VCEVAF)I_{C} = I_{S}\exp\left(\frac{V_{BE}}{V_{T}}\right)\left(1+\frac{V_{CE}}{V_{AF}}\right)

ベース電流:

IB=ICBFI_{B}=\frac{I_{C}}{B_{F}}

エミッタ電流:

IE=IC+IBI_{E}=I_{C}+I_{B}

ここでVTはq/kTで表される熱電圧です。

次に作成したモデルをLTspiceに読み込ませます。
いくつか方法はありますが、standard.BJTという標準ファイルに書き込むのが最も簡単で使いやすいです。
standard.BJTは、LTspice(ver/26.0.1)では以下のフォルダに保存されいます。

C:\Users\あなたのユーザー名\AppData\Local\LTspice\lib\cmp\standard.bjt

standard.BJTを開いて直接書き込みます。
書き込み後は一度、LTspiceを再起動しましょう。

標準ファイルに書き込むので、更新の際などに消える可能性もあります。
私は、編集前、編集後は必ずバックアップを取っています。

作成したモデルでシミュレーションを行う

作成したトランジスタモデルでシミュレーションを行ってみます。
まずLTspiceでcomponentからnpnを選択して配置します。

配置後、素子の上で右クリックして、Pice New Transistorから先程設定したモデルを選択します。

今回はバイポーラトランジスタの出力特性を確認するために、以下のように回路図を作成しました。

シミュレーションの実行文であるSPICE Directiveは以下のとおりです。
.step文では、Iinのベース電流を6uAから60uAまで6uA刻みで変化させます。
.dc文では、各ベース電流の値で、トランジスタのコレクタ電圧を0Vから10Vまで0.05V刻みで掃引します。

.step param Iin 6u 60u 6u
.dc VCC 0 10 0.05

実際にシミュレーションを行い、コレクタ電流をモニタした結果が以下の通りです。
典型的なバイポーラトランジスタの出力特性を得ることができました。

より高精度なモデルを生成AIで作る

完全なモデルを作るのは簡単ではありません。
素子の製造会社から出されているモデルもありますが、それらも常に正しいとは限りません。
モデルの高精度化は、研究機関や企業でも苦労しているところだと思います。

今回は、そこそこの精度を得ながらも、最も簡単にモデルを作ります。
具体的には、データシートを生成AIに食べさせて、作ってもらいましょう。

以下は出力されたモデルです。
基本はそのままですが、様々なパラメータが追加されました。
ついでに2SA1015も載せておきます。

.model 2SC1815 NPN (
+ IS=6e-15        NF=1.00     BF=200        VAF=120      IKF=0.12
+ ISE=2e-14       NE=1.50
+ BR=6            NR=1.20     VAR=25        IKR=0.06
+ RB=80           RBM=12      IRB=0.001
+ RC=1.0          RE=0.6
*
* Junction capacitances (fit priority: Cob?3.5pF@VCB=10V, and Cib curve shape)
+ CJC=6.2p        VJC=0.80    MJC=0.38      XCJC=0.25
+ CJE=18p         VJE=0.75    MJE=0.33
*
* Transit time / high-frequency behavior (fit priority: fT?80MHz@IC=1mA,VCE=10V)
+ TF=1.6n         XTF=3.0     VTF=4.0       ITF=0.08
+ TR=50n
*
* Breakdown helpers (datasheet: V(BR)CBO=60V, V(BR)EBO=5V)
+ BV=60           IBV=100u
+ BVE=5           IBVE=100u
+ EG=1.11         XTB=1.5
+)
.model 2SA1015 PNP (
+ IS=8e-15        NF=1.00     BF=400        VAF=50      IKF=0.10
+ ISE=2e-14       NE=1.50
+ BR=6            NR=1.20     VAR=20        IKR=0.05
+ RB=90           RBM=15      IRB=0.001
+ RC=1.2          RE=0.7
*
* Junction capacitances (fit priority: Cob?7pF@VCB=10V,f=1MHz)
+ CJC=18p         VJC=0.80    MJC=0.38      XCJC=0.25
+ CJE=22p         VJE=0.75    MJE=0.33
*
* Transit time / high-frequency behavior (fit priority: fT?80MHz@IC=1mA,VCE=10V)
+ TF=1.8n         XTF=3.0     VTF=4.0       ITF=0.08
+ TR=60n
*
* Breakdown helpers (datasheet: V(BR)CBO=-50V, V(BR)EBO=-5V)
+ BV=50           IBV=100u
+ BVE=5           IBVE=100u
+ EG=1.11         XTB=1.5
+)

先程の出力特性と比べ、形状が変わりました。
参照したデータシートにも近づいています。

以上のように、生成AIを使うと手軽に高精度なモデルを作れます。
ただし、出力されたパラメータを100%信じるのではなく、使いたい素子のデータシートや実測結果と照らし合わせながら調整するのが良いです。
モデルを作るだけでも、技術的な深さとおもしろさを感じます。

コメント

タイトルとURLをコピーしました