※ 当ページには【広告/PR】を含む場合があります。
2021/10/04
【LTspice入門】電源(V/Bシンボル)を使って自作コンポネントを作成する方法
しばらくLTspiceを触るのもご無沙汰しておりまして、久しぶりに触ると思い出す手順が多くて困ってしまう時があります。今回は自分の防備録も兼ねて、LTspiceの自作コンポーネント作りの基礎的なテクニックを実例を踏まえながら考えてみたいと思います。なお著者のメインの開発環境はLinux(Debian)上で動作させております。WindowsやMacOSではインストール版が存在しますのでLTspiceは簡単に利用できますが、Linuxで利用されるのには少し工夫が要ります。Linuxで利用をしたい方は以前の記事をご覧ください。【LTspice】Debian LinuxでLTspiceをインストールしてみるLTspiceをDebian Linuxにインストールして起動させてみる手順をまとめます。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 サブサーキット形式とは?
まずは少しSPICEのコンポネントモデルを記述する上で欠かせない、サブサーキット形式
をおさらいしておきます。以前の記事の中で、メーカーサイトから提供されたサブサーキット形式のライブラリファイルのインポートの行い方に触れました。【LTspice】サブサーキットファイルでのモデル追加 〜 LM358の場合実例をとりながらLTspiceにサブサーキットモデルを追加する手順を解説します。
今回の趣旨では自作のサブサーキットファイルを作って、コンポネントシンボルに割り当てることが狙いです。ので、まず以下のような何もしないサブサーキットファイルを作成しましょう。まずサブサーキット形式はSPICEで利用されるライブラリのコンポネントの記述形式の一つです。*
から始まる行はコメントとして扱われます。上の基本フォーマットで①の箇所は、利用者に向けた情報を記述してある場合が多いようですが、無くても構いません。②の箇所は回路図面で利用させるコンポネントの名前です。この名前はシンボルファイルのアトリビュートでValue
でも利用されるので、ライブラリ内の他のコンポネントの名前と重複しないような命名をする必要があります。③はコンポネントが外部から接続されるためのピンの名称を配列で記述します。④の部分が内部要素ごとの電気特性とノード(接続点)間の接続関係を記述していくエリアになります。SPICEではまさにこの④の部分の実装が奥深く、回路シミュレーション結果の良し悪しに直結することになります。以降ではじっくりとこの④の実装をどう読み解けば良いのかの基礎に触れていこうと思います。最低限覚えて置くべきは、最小の構成要素の種類は、行頭の頭文字(Prefix;プレフィックス)で表現されるということです。一部ですがよく使う主要なプレフィックスとしては、プレフィックス | 対応要素 |
---|
C | 容量 |
D | ダイオード |
J | JFET |
L | インダクタ |
M | MOSFET |
Q | バイポーラ・トランジスタ |
R | 抵抗 |
V | 独立電圧源 |
X | 外部サブサーキット要素 |
以降の節からは自作のサブサーキットモデルをどのように回路シミュレーションへ取り込むのかを簡単な例をもって説明していきます。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 自作コンポーネントのシンボル作成
LTspiceで自作のサブサーキットモデルを回路の要素としてつかうためにはシンボル
としてライブラリ登録をする必要があります。今回は仮想的なシンボルとして、以下のような部品を考えてみましょう。この自作部品は4つのピンを持った特に意味はない抽象的な部品です。まずはこのシンボルの作成方法をおさらいしましょう。シンボルファイルの作成手順
LTspiceの初期画面で、[file] > [New symbol]
で空のシンボルエディタを表示します。このシンボルエディタ上でシンボルの作成作業が可能です。基本は右クリック(メニューバーからでも選択可能)から必要な作業ツールが選択できます。このツールはいくつかありますが、今回は適当に四角([Draw] > [Rect])
と線([Draw] > [Line])
を使ってシンボルを描いてみましょう。描く基本図形を選んで、描き始めの座標で左クリック、描き終わりで右クリックです。とりあえず適度にお絵描きしたところで、このシンボルを1.asy
という名前で保存して、テキストエディタで開いてみます。ファイルを見ていただければ分かるように、asyファイルも特定のフォーマットを持ったテキストだと分かります。現時点では四角一つと直線4つを適当に書き入れただけですので、中身を覗くとなんとなくお分かりかと思います。Version 4
はシンボルファイルのお約束なのでこういうものだと思ってもらって、次の行に目をやるとSymbolType
はBLOCK(デフォルト)
とCELL
があります。このブロックか、セルか、の使い分けは、シンボルとして使う要素に階層化回路図面(ブロック図面)を仕込むかどうかで判断が分かれます。今回はどちらに設定しても構いませんが、回路の階層化はここでは解説しませんので、CELL
にしておきます。シンボルの作図を進めましょう。右クリックからAdd Pin
を選択し、追加したいピンを設定します。このピンと呼ぶ特別なノードにより、回路図上でシンボルが外部の要素に接続できるようになります。ピンの設定はLabel(ピンノードのラベル名)
とNetlist Order(リスト番号)
が、回路シミュレーション上で直接利用されます。後はラベル名をどの位置に表示するかを調整する場合にはPin Label Justification欄
をお好みで変更します。見やすい位置に調整すると良いでしょう。ピンノードの設定ができたら、[OK]
ボタンを押し、ピンとしたい座標をクリックし確定させます。この内容を変更後に1.asy
に適用させてテキストファイルを開くと、以下の三行が追加されていることが分かります。また、設定したピンの属性で座標・ピンノード名・ノード番号もそれぞれ設定されていることが分かります。同じ手順で残りの3つのピンノード(OUT/VCC/GND
)も設定していきます。この時点で、追加した4つのピンノードの定義部分を抜き出すと以下のようになります。まだサブサーキットライブラリとのリンクさせるためのシンボル属性の設定は済んでおりませんが、この1.asy
をLTspiceで利用するために、LTspiceのインストール先のフォルダ直下の./lib/sym
ディレクトリに以下に保存するようにします。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 空のサブサーキットでテスト
自作のサブサーキットファイルを作って、先程のシンボルに割り当てる作業から説明します。まず以下のような何もしないサブサーキットファイルを作成しましょう。コンポネント名はMY_CUSTOM_R1
という名前で登録します。このファイルを1.subckt
という名前で保存します。モデルファイルの保存先も特定の場所以外では、LTspiceのシンボルはプログラム外部の呼び出しができません。LTspiceのインストール先のフォルダ直下の、./lib/sub
ディレクトリに以下に保存するようにします。./lib/sub
ディレクトリ以下であれば、新しくフォルダを作成して、ファイルを整理しても構いません。今回は自作ライブラリというとで、MY_CUSTOM
というフォルダ以下に1.subckt
として保存します。シンボルにモデルを紐付け
それではこのサブサーキットモデルを、先程作成したシンボル(1.asy
)に割り当てる作業をやってみます。再びシンボルエディタから1.asy
を編集の続きを行います。右クリックして、[Attributes] > [Edit Attributes]
をクリックしてみます。Symbol Attributes Editor
が開くので、以下の諸元を入力します。これらの属性を軽く解説すると、まずPrefix: X
は外部のサブサーキットファイルを参照する要素であることを意味します。Value
は図面作成の際にライブラリ読み込みの時に表示されるシンボル名になります。このValue
の設定はライブラリ読み出しに重要で、先程シンボルの定義でサブサーキットの名前として与えたMY_CUSTOM_R1
と一致させる必要があります。ModelFile
はその名の通り、ライブラリの参照先です。先程./lib/sub
フォルダ配下に保存したMY_CUSTOM/1.subckt
を相対パスで指定して利用します。sub
フォルダからのファイルの相対パスですので、スペルミスなどがないかをチェックしましょう。シンボルの属性を入力後に[OK]
を押すと、シンボルの背景は薄い黄色となり、これでモデルが呼び出し可能になりました。この変更内容を適用後、1.asy
をテキストエディタで開くと以下のような項目が追加されていることが分かります。LTspiceの自作コンポネントを利用する場合、.asyファイルと.subsktファイルの扱いが重要になります。特にリソースファイルの配置は重要で、今回だと以下のようになっています。これで通常通りの図面作成でライブラリから1.asy
として利用できるようになります。悪乗りでこのまま、この空のシンボルを使って適当な回路図を描いてみます。当然、今のままではモデル定義も空ですので、内部の配線は全て断線している状態です。無理矢理測定を実行してみると解析エラーが発生します。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 サブサーキットモデルの作成
シンボルファイルの作成の話で前置きが長くなりましたが、ここからはサブサーキットモデルの作成手順を説明していきます。自作のコンポーネントを正常に動作させるために、サブサーキットを適切に内部の要素定義と配線を行っていけば良いわけです。なおLTspiceでは、一般にコンポーネントの内部定義を作る方法として、の2つ方法があります。1のやり方が基本になります。今回の内容も1の方法で解説しています。もう一つの2のやり方はかなり複雑な構造を持つICプロダクトなどのモデル化に無くてはならない手法です。LTspiceにある程度使い慣れてきてから試してみるのが宜しいかと思います。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 抵抗の直列モデル
初歩的な回路でサブサーキット回路の中身を埋めて、モデル化の理解を深めてみましょう。まずここでは2つの抵抗を利用して以下のような内部構成を持つ素子(と呼ぶにはあまりにシンプル)モデルを作成します。この模式図は、INP(ピン1)とOUT(ピン2)の間に2つの抵抗R1とR2を直列で接続し、その中間の接続ノードを5という構成を表しています。VCC(ピン3)とGND(ピン4)に関してはまだ未接続にしておきます。ではこのイメージを念頭に、内部構造のサブサーキットファイル1.subckt
を以下のように修正します。今回は定抵抗だけ構成されていますが、回路素子の記述方法は種類によって規約があります。抵抗(プレフィックス: R
)だけに限ると、となります。先の素子内部イメージでいうと、R1
とR2
の両端の接続ノードと、その内部抵抗値をそれぞれ定義しているというだけのことです。もう少し詳しいLTspiceの抵抗の定義については、R. Resistor|LTspice WIKIでご覧になれます。この修正を1.subckt
に適用させて、以下のようなテスト回路で簡単にDC動作点解析(.op
)をさせてみますと、分圧計算が実行されて、それらしい結果が得られていることが分かります。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 抵抗の並列モデル
次に先程直列に繋いでみた抵抗を並列繋ぎで試してみます。このイメージから、先程の1.subckt
は以下のように修正されます。再度DC動作点解析をかけると、並列繋ぎにした分、抵抗値が小さくなってそうな結果が見て取れます。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 ホイルストーンブリッジ風
もう少しサブサーキットを複雑化させて、まだ未使用だったVCC(ピン3)とGND(ピン4)も使ってみましょう。このイメージ回路から、1.subckt
を以下のように修正します。シミュレーション用の回路も接続を以下のように修正し、三度DC動作点解析をかけると、と分圧計算の結果をエラー無く得ます。
電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 LTspiceで動作を見ながらOPアンプ回路を理解する LM358Nデュアルオペアンプ ノーブランド品 20個 Raogoodcx 15種2N2222〜S9018 NPN/PNPパワートランジスタキット OSOYOO 電子工作基本部品セット 電子回路シミュレータ LTspice XVII 「基本操作・回路作成編」 まとめ
以上、手動でテキストファイルをハードコーディングしていくスタイルのサブサーキットモデルの作り方を、もっとも簡単な自作のコンポーネント作成方法を解説していきました。今回は抵抗プレフィックス・Rだけしか使いませんでしたが、他にも様々な種類の基礎メソッドが存在していますので、気になる方はLTspice Annotated and Expanded Help*|LTspice WIKIのヘルプなどで詳しい用法を確認してください。簡単な内部構成のコンポーネントでは手動による実装も可能ですが、より複雑な内部構造を持つモデルの構築には、図面階層化のテクニックを使うほうが現実的です。とはいえ、今回のやり方はSPICEの理解を深めるには良いやり方です。じっくり学習したい方は自作のモデルをテキストファイルで記述していくことに慣れるところから始めると効果的です。