LTspice-サブサーキットモデル(.subckt)の追加方法

当記事では、SPICEモデルの内、サブサーキットモデル(.subckt)をLTspiceに追加する方法について詳しく説明します。
LTspiceで標準で搭載されているアナログ・デバイセズ(旧リニアテクノロジー含む)のSPICEモデル以外でも、追加して問題なく使用することが可能なのです。
なお、「デバイスモデル(.model)の追加方法」については以下の記事で解説しています。

サブサーキットモデルで追加可能な部品の種類は?
サブサーキットモデル(等価回路モデル)はSPICE記述言語(ネットリスト)の表記が「.subckt」で始まり、等価回路を組み合わせて表現されたSPICEモデルです。
デバイスモデルは、抵抗、コンデンサ、コイル、フェライトビーズ、ダイオード、バイポーラトランジスタ、J-FET、MOS-FETの8種類に限られました。
しかし、サブサーキットモデルでは等価回路を組み合わせることで、アイディア次第でどんな部品でも作り出すことができます。
ただ、LTspice初心者にとっては、サブサーキットモデルを自作するのは難しいので、まずは部品メーカーが提供しているオペアンプやICなどのサブサーキットモデルを入手して追加するのが現実的です。
なお、サブサーキットモデルの意味自体が良くわからない場合は、以下の記事をご覧ください。

サブサーキットモデルの入手
デバイスモデルを入手するには、部品メーカーが提供しているデバイスモデルを入手するのが最も簡単です。
以下の記事で、SPICEモデルを無償提供しているメーカーをまとめましたので、参考にして下さい。

当記事では、解説のためにアナログ・デバイセズのオペアンプ「AD8610」を入手してみます。
以下のリンクをクリックして、アナログ・デバイセズのWEBサイトでSPICEモデルがダウンロードできるページに移動します。
アナログ・デバイセズのWEBサイトのトップページから移動する場合は、設計支援⇒シミュレーションモデル⇒SPICE シミュレーション モデル / SPICE回路の順で移動できます。
以下のように、ダウンロードできるSPICEモデルの一覧が表示されます。

「Search」に「AD8610」と入力します。

「AD8610 SPICE Macro Model」をクリックします。

「License agreement for Spice Models」の画面が表示されるので、「I Accept」をクリックするとダウンロードが開始されます。
LTspiceにサブサーキットモデルを追加

ダウンロードした「ad8610.cir」をメモ帳で開くと.SUBCKTから記述が始まっているので、サブサーキットモデルであることがわかりますね。このサブサーキットモデルをLTspiceに追加していきます。

「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sub」に任意のフォルダを作成します。
LTspiceは定期的なアップデートによってファイルが更新されるので、単純にsubフォルダ内にサブサーキットモデルを追加していくと、自分で追加したファイルの場所がわからなくなってしまいます。
そこで、任意のフォルダを作成して、その中にサブサーキットモデルを追加していくのが後々、管理しやすいのでおすすめです。
フォルダ名は何でも構わないのですが、当サイトではメーカー別にフォルダを作成することにするので、「Analog_Devices」を作成します。

「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sub\Analog_Devices」に、先程ダウンロードした「ad8610.cir」を保存します。

「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sym」にも任意のフォルダを作成します。
同じように、メーカー別のフォルダとして、「Analog_Devices」を作成します。

回路図シンボルを一から作るのは大変なので、標準で用意されている回路図シンボルを流用することにします。
まずは、「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sym」からオペアンプの回路図シンボルである「opamp2.asy」をコピーします。

コピーした「opamp2.asy」を「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sym」に保存します。

「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sym\Analog_Devices」に保存した「opamp2.asy」を「AD8610.asy」に名前を変更します。
名前を変更した後、「AD8610.asy」のファイルを開きます。

LTspiceが起動され、「AD8610.asy」のファイルが開くので、「Edit-Edit Attributes」をクリックして、シンボル属性の編集画面を開きます。

「Edit-Edit Attributes」の各属性の詳しい意味は以下の通りになります。
属性 | 説明 |
---|---|
Prefix | 回路図シンボルの接頭辞 抵抗:R コンデンサ:C コイル:L サブサーキットモデル:X ※サブサーキットモデルであれば、抵抗、コンデンサ、コイルでも全て「X」になります。 |
Spice Model | |
Value | サブサーキットモデルのファイルで定義されている名前 例:「.SUBCKT AD8610」であれば「AD8610」 |
Value2 | |
Spice Line | Value以外のパラメータ |
Spice Line2 | 〃 |
Description | 回路図シンボルの説明 (シンボル上に表示) |
Model file | サブサーキットモデルの場所(パス) |

サブサーキットモデルの「ad8610.cir」と回路図シンボルの「AD8610.asy」を関連付けます。
「Value」をad8610.cirのサブサーキットモデルの名前と同じ「AD8610」、「Model File」をad8610.cirが保存されているパスの「Analog_Devices\ad8610.cir」に変更します。
当記事では、サブサーキットモデルのパスを「Model File」で設定しましたが、「Control Panel」-「Sym. & Lib. Search Paths」-「Library Search Path[*]」で定義することもできます。

当記事で解説している「AD8610」を例とすると、「Library Search Path[*]」に「ad8610.cir」が保存されているフォルダのパスとして「C:\Users\ユーザー名\Documents\LTspiceXVII\lib\sub\Maker\Analog_Devices」を入力します。

そして、「AD8610.asy」の「Symbol Attribute Editor」-「Model File」にはAD8610.asyに関連付けるサブサーキットモデルのファイル名として「ad8610.cir」を入力します。
後々、サブサーキットモデルのファイルの保存場所が変わる可能性がある場合、「Library Search Path[*]」に入力するフォルダのパスを修正するだけで、一括して変更できるので便利です。
また、LTspiceのSPICEモデルを提供している部品メーカーの中には、SPICEモデル(デバイスモデル・サブサーキットモデル)と一緒に回路図シンボルも配布しているケースもあります。
このような場合は、回路図シンボルの「Symbol Attribute Editor」-「Model File」には関連付けるサブサーキットモデルのファイル名がすでに入力されているので、「Control Panel」-「Sym. & Lib. Search Paths」-「Library Search Path[*]」でサブサーキットモデルが保存されているフォルダの場所を定義するだけで簡単にSPICEモデルを追加することができます。
当記事では、サブサーキットモデルのパスを「Model File」で設定しましたが、「.lib/.include(.inc)」構文を使用して回路図上で定義することもできます。
例えば、今回の場合で言えば、SPICE Directiveで「.lib Analog_Devices\ad8610.cir」と入力して、AD8610を使用する回路図に配置します。
※「.lib」の代わりに「.include(.inc)」でも動作します。
「.lib/.include(.inc)」構文の詳しい使い方は以下の記事で解説しています。

しかし、この方法だと、いちいち回路図に「.lib/.include(.inc)」構文を配置しなければならないので面倒です。やはり、「Symbol Atribute Editor」で設定してしまった方が良いでしょう。

これで、回路図シンボルが「AD8610」に変更されました。
続けて、サブサーキットモデルの「ad8610.cir」と回路図シンボルの「AD8610.asy」において、ピン配置が一致しているのか確認します。

「ad8610.cir」をメモ帳で開くと、Non-Inverting Input(+入力)、Inverting Input(-入力)、Positive supply(+電源)、negative supply(-電源)、output(出力)の順でピン番号が配置されていることがわかります。
そのため、AD8610の入出力、電源とピン番号は以下のような対応になります。これはLTdpiceに標準で格納されているオペアンプの回路図シンボルのピン番号と同じです。
AD8610 | ピン番号 |
---|---|
non-Inverting Input (+入力) | 1 |
inverting Input (-入力) | 2 |
positive supply (+電源) | 3 |
negative supply (-電源) | 4 |
output (出力) | 5 |
※AD8610実部品のピン番号ではないのでご注意ください。

回路図シンボル「AD8610」に戻り、各ピンを右クリックすると、「Pin/Port Properties」の画面が開き、サブサーキットモデルと回路図シンボルのピン番号が一致しているのか確認できます。

In+(+入力)を右クリックすると、回路図シンボルのNetlist Order(ピン番号)が「1」になっており、サブサーキットモデルと一致していることがわかります。
同様に、他のNetlist Orderについても確認しておきましょう。

ピン番号が一致していることを確認後、保存します。これでサブサーキットモデルの追加作業は終了です。
追加したサブサーキットモデルの確認

LTspiceで新規の回路図エディタを開き、「Component」をクリックします。

「Select Component Symbol」から「AD8610」を確認することができました。
念のため、回路図に配置するため、「AD8610」を選択してOKをクリックします。

他の部品と同様に、「AD8610」も問題なく配置できるはずです。