【LTspice入門】バイポーラトランジスタの自作サブサーキットモデルを作成する


2021/10/10
蛸壺の中の工作室|バイポーラトランジスタの自作サブサーキットモデルを作成する

今回はバイポーラトランジスタの自作サブサーキットモデルに基づく、単独コンポネント化の方法を紹介します。

基本的な手順は以下の記事にまとめています。

この手法をベースにして、バイポーラトランジスタの自作部分へ組み込む勘どころを簡潔に解説してみます。


バイポーラトランジスタの自作サブサーキット

以前、バイポーラトランジスタの基本特性をシミュレーションした際の記事で、ビルドインライブラリであるstandard.bjtを使う方法をやっていました。

“LTspice バイポーラトランジスタ”などでウェブ検索すると大体同じような方法を紹介されている技術サイトがほとんどかと思います。

このLTspiceのビルドインライブラリはプログラムをインストールした場所の
./lib/cmp/以下に配置されているstandard.~のような名前のファイル群であらかじめ用意されています。

なので、このライブラリのリストに無いプロダクトモデルを使いたい場合、同カテゴリの
standard.~に追加するスタイルで利用できるようになります。

この方法が自作デバイスを試すには一番手っ取り早いです。

もしくは
./lib/subフォルダ以下にモデルファイルを保存して、解析スクリプト中で.INCLUDEから呼び出す方法もあります。

これらの方法でデバイスの自作モデルを使うアドバンテージは、
「お手軽にシミュレーションで使いやすい」ということが挙げられます。

ですが、そのお手軽さ故に、以下のデメリットも存在します。

            - 自作モデルをstandard.~に継ぎ足すと、
    標準のモデルに埋もれて混乱しやすい・区別が付きにくく

- 単独のライブラリモデルにすると、
    シミュレーションの度に外部リンクで.includeするのが面倒
        

では今回はどうするかというと、
前回の記事で説明していた・自作コンポーネントの作成のテクニックを使うことで自作バイポーラトランジスタで回路にひょいとつまんで配置するだけで済むようにしてみます。

合同会社タコスキングダム|蛸壺の中の工作室

こうやって特定のバイポーラトランジスタが摘んで置くだけで、回路に組み込むことができるため、感覚的にも理解しやすくなります。


バイポーラトランジスタ用の自作コンポネント作成

自作サブサーキットコンポネントの作り方は慣れればとても簡単です。

サブサーキットファイルと、それを紐付けしたシンボルファイルを2つ用意して、それぞれ以下のような適切なシステムのディレクトリに配置すればすぐに使えるようにできます。

            $ tree -L 3
.
└── LTspiceXVII
    ├ ....
    └── lib
        ├ ...
        ├── sub #👈サブサーキットファイルの保存先
        └── sym #👈シンボルファイルの保存先
        

バイポーラトランジスタ用のサブサーキット

先にサブサーキットモデルを作成します。

題材として、前回のブログ記事で取り上げて、個人的に良く利用している
2C2120をサブサーキット化した例を取り上げます。

バイポーラトランジスタの詳細な記述用法は
Q Bipolar transistor|LTspice Wikiで確認してください。

            Q*** [コレクタのノード] [ベースのノード] [エミッタのノード] [モデル関数]
        
バイポーラトランジスタのプレフィックス記号はQです。

ここでは
npn1.subcktという名前の空のテキストファイルを新規作成し以下のような内容にします。

            .SUBCKT bjt-test_2C2120 1 2 3
.model MY_2C2120 NPN(IS=1E-14 VAF=100 Bf=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips)
Q1 1 2 3 MY_2C2120
.ENDS
        
バイポーラトランジスタのノード構成については、

            コレクタ (1)
ベース   (2)
エミッタ (3)
        
としています。

なので、このサブサーキット化したバイポーラトランジスタは
Q1 1 2 3 <モデル名>と定義することができます。

なおモデルの部分定義は
.MODEL構文で分割したほうがすっきり書けると思います。

後はこの
npn1.subcktを、./lib/subフォルダの中に配置しましょう。

バイポーラトランジスタ用のシンボル

では先程のサブサーキットモデルを紐付けしたシンボルを作成します。

一からシンボルをお絵描きしても良いのですが、ここでは既にあるバイポーラトランジスタのシンボルをコピペして利用します。

合同会社タコスキングダム|蛸壺の中の工作室

シンボルライブラリから
./lib/sym直下にある、npn*もしくはpnp*などが再利用できます。

ここでは
npn.symをコピーして、npn1.symとして以下の内容に編集します。

            Version 4
SymbolType CELL
LINE Normal 44 76 36 84
LINE Normal 64 96 44 76
LINE Normal 64 96 36 84
LINE Normal 40 80 16 64
LINE Normal 16 80 16 16
LINE Normal 16 32 64 0
LINE Normal 16 48 0 48
WINDOW 0 56 32 Left 2
WINDOW 3 56 68 Left 2
SYMATTR Value bjt-test_2C2120
SYMATTR Prefix X
SYMATTR Description Bipolar NPN 2C2120
SYMATTR ModelFile bjt-test/npn1.subckt
PIN 64 0 NONE 0
PINATTR PinName C
PINATTR SpiceOrder 1
PIN 0 48 NONE 0
PINATTR PinName B
PINATTR SpiceOrder 2
PIN 64 96 NONE 0
PINATTR PinName E
PINATTR SpiceOrder 3
        
なおシンボルファイル(.asy)はシンボルエディタでも修正可能です。

慣れてくるとテキストファイルを直接修正したほうが楽に感じるようになります。

ここでの重要なチェック項目は以下の通りです。

項目

設定

説明

Prefix

X

サブサーキットコンポネントを指定

Value

bjt-test_2C2120

他のライブラリと衝突しないようなコンポネント識別名

ModelFile

bjt-test/npn1.subckt

サブサーキットファイルの相対パス(./lib/sub以下)

PinName/SpiceOrder

C/1

コレクタのノード定義

PinName/SpiceOrder

B/2

ベースのノード定義

PinName/SpiceOrder

E/3

エミッタのノード定義

シンボルファイルができたら、./lib/sym内に配置します。

合同会社タコスキングダム|蛸壺の中の工作室

ライブラリファイルの配置

では先程のnpn1.subcktnpn1.symをそれぞれ./lib/sub./lib/symの中に配置します。

sub(sym)フォルダ直下に置いても良いのですが、後々区別できなくなると困るので、サブフォルダを作ってそこにファイルを入れます。

サブフォルダ名は自分の分かりやすい名前でOKです。

ここでは
bjt-testというサブフォルダにしています。

            $ tree -L 3
.
└ LTspiceXVII
  └─ lib
      ├─ sub
      │   └─ bjt-test
      │      └── npn1.subckt
      └─ sym
          └─ bjt-test
              └── npn1.asy
        


回路シミュレーションへの利用

では先程のサブサーキットモデルが正しく機能しているかを簡単なテストをしてみます。

LTspiceの回路図面作成で、ツールボックスからコンポネントを呼び出してみます。

サブサーキットモデルが正しく読み込まれているとシンボルが表示されている状態になっていると思います。

合同会社タコスキングダム|蛸壺の中の工作室

後は抵抗のような他のコンポネントと同じで配置するだけで、定義済みのバイポーラトランジスタデバイスとして機能するはずです。

ここでは
2C2120の出力特性が再現されているかをチェックします。

バイポーラトランジスタの特性自体の話はここではしませんが、前回と同様解析用のスクリプトは以下のようなものを使います。

            .dc Vce 0 6 0.01
.step param Ib list 0 1m 2m 3m 4m 5m 6m 7m 8m
        
解析を走らせると、バッチリとコレクタ電流のシミュレーション結果が再現できております。

合同会社タコスキングダム|蛸壺の中の工作室


まとめ

以上、バイポーラトランジスタのサブサーキットモデルの自作化について解説していきました。

今回のテクニックを使ってサブサーキット形式のコンポネントとしてデバイス毎にライブラリを整備していくことで、自分にも使いやすく、他の利用者にも分かりやすいLTspiceのシミュレーション環境を整えることが可能かと思います。

もちろん従来のモデルライブラリを使った方法のほうが好ましいと考える方もいると思います。

自分にあった回路設計スタイルを開拓し、より効率的で快適なLTspice開発環境を工夫しながら使い慣れていきましょう。

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。