やっかいなのは、LTspiceに組み込まれていない部品モデルをシミュレーションしたい場合です。色々なモデルを組み込むには、シンボルとモデルの区別、モデルの種類の違いなど、一定程度の基礎知識が必要です。
以下に、まず、モデルは大きく3種類に分けることができるなどの要点を簡単にまとめます(1~3節)。次に、モデルを追加するには、モデルの種類ごとに、どう処理すれば良いかを説明します(4節)。
LTspiceでシミュレーション用の回路図を作成するには、回路図に部品シンボルを配置し、ワイヤでつなぎます。外部の部品モデルを使いたい場合も、まずその部品のシンボルを回路図に配置することから始めます。シンボルが置いてあるのは、モデルの種類に関わらず、標準では以下の場所です。
C:\Users\<ユーザー名>\AppData\Local¥LTspice¥lib¥sym
回路図キャプチャのメニューより、Edit-->Componentをクリック、またはツールバーの「ICアイコン」をクリックして、希望のシンボルを選択します。ツールバーにアイコンがある素子はそれをクリックして回路図に配置できます。
特殊なICなどのモデルで、標準のシンボルがなく自作しなければならない場合は、基本的な場合の説明の後で説明したいと思います。(4.(4))
- 組み込み基本モデル(回路図上のシンボルにおいて直接パラメータや式を指定するモデル)
(1) RLC受動素子の設定可能なパラメータ素子記号
Prefix種 類 シンボル名 パラメータ R 線形抵抗 res,res2 抵抗値,tc, temp L 線形インダクタ/
フェライトビーズind,ind2,
ferritebead,
ferritebead2インダクタンス値, Rser, Rpar, Cpar, m, ic, tc1, tc2, temp 非線形インダクタ Hc, Br, Bs, Lm, Lg, A, N C 線形キャパシタ cap,polcap キャパシタンス値, Rser, Lser, Rpar, Cpar, RLshunt, m, temp, ic 非線形キャパシタ Q=式, m, ic
これらのパラメータを設定するには、回路図にシンボルを配置したら、
・抵抗値、キャパシタンス、インダクタンスだけを入力する最も簡単な方法は、その値部分を右クリックして、入力します。
・その他のパラメータも入力したい場合は、シンボルを右クリックします。現れたダイアログで該当するパラメータ値を入力します。
・さらに入力する欄がないパラメータがある場合は、シンボルをCtrlキーを押しながら、右クリックします。Component Attribute Editorが開くので、Value, Value2, SpiceLine, SpiceLine2の各行を使って、パラメータ=値を入力します。
(参考)デフォルトで、標準のモデルは下記のフォルダにそれぞれのファイル名で保存されていますが、Version.24以降ではstandard.***ファイルのユーザーによる追加変更は禁止になりましたので、注意が必要です。どの部品にどんなパラメータが設定されているかは見ることが出来ます。オリジナルのライブラリの作り方は、4節(1)項を参照してください。
C:¥Users¥ユーザー名¥AppData¥Local\LTspice¥lib¥cmp
standard.res :抵抗
standard.ind :インダクタ
standard.bead :フェライトビーズ
standard.cap :キャパシタ
(2) その他の素子
素子記号
Prefix種 類 シンボル名 パラメータ B 任意制御電圧源 標 準 bv V=式, tripdv, tripdt, laplace=式, window, nfft, mtol 任意制御電流源 標 準 bi,bi2 I=式, tripdv, tripdt, Rpar, laplace=式, window, nfft, mtol ビヘイビア抵抗 R=式, ic, tripdv, tripdt, Rpar 任意制御電力源 P=式, vprx, ic, tripdv, tripdt E 電圧制御電圧源 線 形 e,e2 ゲイン テーブル関数 table=テーブル・データ ラプラス関数 laplace=式 非線形POLY Epoly 多項式係数 F 電流制御電流源 線 形 f モニター電流計名, ゲイン 任意ビヘイビア value=式 非線形POLY 多項式係数 G 電圧制御電流源 線 形 g,g2 ゲイン テーブル関数 table=テーブル・データ ラプラス関数 laplace=式 任意ビヘイビア value=式 非線形POLY Gpoly 多項式係数 H 電流制御電圧源 線 形 h モニター電流計名, トランス抵抗値 任意ビヘイビア value=式 非線形POLY 多項式係数 I 独立電流源 標準 current,load,
load2DC電流値,AC振幅値,load 過渡解析用 current パルス,正弦波,指数関数,FM波,折れ線近似 テーブル関数 table=テーブル・データ ステップ負荷 load,load2 基準値,ステップ値 抵抗負荷 R=値 .WAVファイル電流源 current wavefile=ファイル名 K インダクタ結合 右記文字列 Kxxx L1 L2 [L3 ...] 係数 T 無損失伝送線路 tline Z0=値,TD=値 V 独立電圧源 標 準 voltage, cell
battery,signalDC電圧値,AC振幅値, Rser, Cpar 過渡解析用 voltage,
signalパルス,正弦波,指数関数,FM波,折れ線近似 .WAVファイル電圧源 wavefile=ファイル名
- デバイス・モデル(.MODEL記述によりパラメータ指定するモデル)
素子記号
Prefix種 類 シンボル名 シンボルで指定できるパラメータ(.MODELとは別) D ダイオード 線 形 diode,zener
schottkyモデル名, area, off, m, n, temp 拡張バークレー J 接合型FET njf,pjf モデル名, area, off, temp M MOSFET モノリシック nmos,nmos4
pmos,pmos4モデル名, m, L, W, AD, AS, PD, PS, NRD, NRS, off, ic, temp VDMOS モデル名, L, W, M, m, off, ic, temp O 有損失伝送線路 ltline モデル名 Q バイポーラ・
トランジスタ修正ガンメルプーン npn,npn2,
npn3,npn4,
pnp,pnp2,
pnp4,lpnpモデル名, area, off, temp VBIC S 電圧制御
スイッチsw
モデル名,[on,off] U 一様分布
RC伝送線路urc,urc2 モデル名, L, N W 電流制御
スイッチcsw モデル名, [on,off] Z MESFET
またはIGBTMESFET mesfet モデル名,area, m, off, temp IGBT NIGBT,PIGBT
回路図シンボルとは別に、ドットコマンド.MODELにより始まる構文でできたモデル・ファイルまたはライブラリ・ファイル(複数のモデル記述が併記されている)が、用意されていなければなりません。当然ですが、シンボルで指定されたモデル名とこの構文内のモデル名は一致している必要があります。そして、モデル・ファイル内に記述される構文には、SPICEエンジンで規定されているモデルのパラメータが必要です。次節のサブサーキットとの大きな違いは、デバイス・モデルの等価回路は、ユーザーには見えない形でSPICEシミュレータ・エンジンに組み込まれていることです。サブサーキットもユーザーには見えないものも多いですが、シミュレータ内部には組み込まれていません。
(重要)他の多くのSPICEでは、R,L,C,Kについては、デバイス・モデルとして.MODEL記述で詳細に特性を設定することもできる仕様となっています。しかし、LTspiceではできませんので注意が必要です。その分、直接パラメータとして設定できる項目(1節参照)を若干増やしています。また、キャパシタなどの部品メーカーより提供されている等価回路モデルは、デバイス・モデルではなく、3節のサブサーキットとして取り扱います。
(参考)デフォルトで、標準のモデルは下記のフォルダにそれぞれのファイル名で保存されていますが、Version.24以降ではstandard.***ファイルのユーザーによる変更は禁止になりましたので、注意が必要です。どの部品にどんなパラメータが設定されているかは見ることが出来ます。
C:¥Users¥ユーザー名¥AppData¥Local\LTspice¥lib¥cmp
standard.bjt :バイポーラトランジスタ
standard.dio :ダイオード
standard.jft :接合型FET
standard.mos :MOSFET
- サブサーキット(.SUBCKT記述のモデル)
X素子として回路に配置され、単一のモデルでは特性を表せない場合に上記1,2節で示したモデルを複数組み合わせて一つの部品のように使用する方法。回路図シンボルとは別に、ドットコマンド.SUBCKT~.ENDS構文でできたモデル・ファイルまたはそれらを複数含むライブラリ・ファイルが、用意されていなければなりません。回路図に配置される素子シンボルの形状やピン数は、任意です。ただし、回路素子記号(Prefix)は「X」です。
モデルの保存場所は標準では、
C:¥Users¥ユーザー名¥AppData\Local¥LTspice¥lib¥sub
サブサーキットの2つの利用方法
・ライブラリ・ファイル型
通常の使い方です。ライブラリ・ファイルまたはモデル・ファイルと呼ぶネットリスト形式で記述されたファイルを、回路図シンボルと関連付けて使用します。サンプル図
・階層化型
サブサーキット部を、ネットリスト形式でなく、回路図形式で作成します。上層の回路図中に配置したシンボルをダブルクリックすると、階層化されている下層の回路図が表示できます。サブサーキットを、ヴィジュアル化することで、回路を読みやすくできる、修正がし易くなるなどのメリットがあります。下層の回路図には、上層のシンボルのピンになるポート(または端子)が存在する必要があります。上層のシンボル名(***.asy)と下層の回路図名(***.asc)は同じでなければなりません。
作成の仕方は、トップダウン、ボトムアップがありますが、ここではボトムアップを紹介します。下層の回路図をピンをつけて描き、保存します。この回路図について、回路図キャプチャのメニューよりHierarchy-->Create a New Symbolでシンボルを作成します。シンボルは、管理上、上層下層の回路図と同じフォルダに保存するのが良いと思います。このシンボルは、下層の回路図と関連付けられているので、このシンボルを上層の回路図で配置すると、階層化が完成します。サンプル図
- 外部モデルの追加方法
あるデバイス・モデルやサブサーキットを実験的に使用したいだけという場合は、回路図に相当するシンボルを配置後、直接回路図上に.MODELや.SUBCKT~.ENDSコマンドで記述することも、簡易的で便利な方法です。ユーザー・ライブラリとして保存しておき、そのモデルを繰り返し使いたいという場合は、モデル・タイプにより、以下の手順で行なってください。
(1) 組み込み基本モデル(RLC受動素子のみ)
シンボル 既存のシンボル(1節(1)項)をそのまま利用 モデル ライブラリ作成機能により、手入力する。
LTspiceバージョン24より、標準ライブラリstandard.***へのユーザーによるモデルの追加が禁止され、ユーザー・オリジナルのモデルを保存する場合は、user.***ライブラリを作成する機能が追加されました。現在作成中のシミュレーション回路でのみ使用するのであれば、配置したシンボルを右クリックして現れるダイアログでパラメータを入力します。しかし、モデルを保存しておいて複数回それらを使用したい場合は、以下の手順で行います。
- R,L,Cのシンボルを回路図に配置したら、シンボルを右クリックする。
- 現れたダイアログで、[Select ***] ボタンをクリックする。
- 現れたダイアログで、[Quit and Edit User Library] ボタンをクリックする。
- user.***ウィンドウが開くので、新たな行をダブルクリックする。
- パラメータを入力し、ウィンドウを閉じる。
C:¥Users¥ユーザー名¥Documents¥LTspic
CやLでは、メーカーが等価回路をサブサーキットとして提供している場合がありますが、これは(3)項で述べます。
(2) デバイス・モデル(.MODEL記述によりパラメータ指定するモデル)
シンボル 既存のシンボル(2節)をそのまま利用。追加するモデル名を設定。モデル側と名前が一致すること。 モデル 外部入手したファイルを任意の場所に置く。 シンボルとモデルの
リンク方法・回路図上に.MODEL記述を直接ペースト。または
・回路図ファイルと同じフォルダに置き、.libコマンドでパス無しでモデルファイルを指定。または
・任意のフォルダに置き、そのフォルダへのサーチパスをSettingsにて設定する。.libコマンドは不要。
2節で示したように、標準のモデル・ライブラリに、追加編集することは出来なくなりました。デバイス・モデルでは、user.***ライブラリ作成機能はありませんので、以下の手順でマニュアルで追加してください。 .MODEL構文には、LTspice(SPICEエンジン)で規定されたパラメータが必要です。パラメータはSPICEにより微妙に違っている場合があるので、ユーザーが追加したモデルには問題がないか、シミュレーション実行後、 エラーログ・ファイル等で確認します。これらのモデルを追加する場合に、モデルのシンボルは、新たに作成する必要はありません。追加の手順は、以下の通りです。- .MODEL記述されたモデル・ファイルまたは、複数のモデルが含まれるモデル・ライブラリ・ファイルを入手する。(LTspiceに対応するモデルであること)
- このモデル・ファイルを任意の場所に置く。回路図ファイルと同じフォルダまたは、(1)項と同じ場所など。
- ユーザー・モデル専用のフォルダを設定して活用する場合は、Settings >Search PathsにおいてUser Filesの欄に、パスを設定する。例.
C:¥Users¥ユーザー名¥Documents¥LTspic
このフォルダ下にライブラリの名前を付けたフォルダを置き、シンボル、モデルを入れると、Componentダイアログから通常の部品と同様の方法で扱うことができるようになる。 - 簡易的に済ませたくて、b項で示した方法まで行なう必要がなければ、次項の手順に従う。
- 追加したいモデル・ファイルまたは、ライブラリ・ファイルを、回路図ファイルと同じフォルダに置く。
- 2節で示したシンボルを回路図に配置し、シンボルのValue上で右クリックする。モデル・ファイルで指定されているモデル名を入力する。
- 回路図上に、.libコマンドによりモデル・ファイルまたはライブラリ・ファイルの参照を設定する。.lib記述において絶対パスは必要ない。 また、ここで使用するドットコマンドは、.incではなく.libを推奨する。(コラム参照)
例. .lib ST_SIGNAL_SCHOTTKY_V8.lib - 追加したいモデル・ファイルまたは、ライブラリ・ファイルを、サーチパスの通っていない回路図ファイルと別のフォルダに置いた場合は、回路図上に、.lib
絶対パス+モデル・ファイル名で指定する。
(3) サブサーキット
シンボル 既存のシンボル(1,2節)のPrefixをXに変更したもの。または外部入手したもの、自作したもの。
モデル側で使われているモデル名を設定する。モデル 外部入手したファイルを任意の場所に置く。 シンボルとモデルの
リンク方法・回路図上に.SUBCKT~ENDS記述をペースト。または
・回路図ファイルと同じフォルダに置き、.libコマンドでパス無しでモデルファイルを指定。または
・任意のフォルダに置き、そのフォルダへのサーチパスをSettingsにて設定する。.libコマンドは不要。
任意のフォルダ内に、新たに追加したいモデル・ファイルまたはモデル・ライブラリを保存します。 ファイルの拡張子は、***.lib, ***.txt, ***.modなどテキストファイルであれば自由です。また、単一のモデルだけを記述してあっても、複数のモデルが記述されていてモデル・ライブラリとなっていても使用できます(下記コラム参照)。
任意のフォルダと言っても、SPICEエンジンのサーチパス内でなければ、.libコマンドによって絶対パスを含んで指定する必要があります。
C:¥Users¥ユーザー名¥AppData\Local¥LTspice¥lib¥sub\User
- .SUBCKT記述されたモデル・ファイルまたは、複数のモデルが含まれるモデル・ライブラリ・ファイルを入手する。(LTspiceに対応するモデルであること) LTspice用(***.sym)として同時に提供されているシンボルがあれば、それも入手する。
- このモデル・ファイルを任意の場所に置く。回路図ファイルと同じフォルダまたは、(1)項と同じ場所など。
- R,L,Cまたはデバイス・モデルを、サブサーキット構文で使用する場合は、相当するシンボルを回路図に配置し、シンボル上でCtrl+右クリックする。(モデルと同時に提供されているシンボルは変更の必要なし。)
- 現れたダイアログで、PrefixをR,L,C,D,JN,MN,...からXに変更する。(デバイス・モデルでなくサブサーキットであるから)
- b項において、モデル・ファイルを任意の場所に置いた場合は、回路図上に、.libコマンドによりモデル・ファイルの参照を設定する。(.lib 絶対パス+モデル・ファイル名)ここで、モデル・ファイルを置いている場所へのパスが通っていれば、絶対パスは必要ない。また、ここで使用するドットコマンドは、.incではなく.libを推奨する。(コラム参照)
例. .lib WE-FB.lib .lib C:¥Users¥ユーザー名¥Documents¥LTspice\WE-FB.lib - ツールバーのSettings >Search Pathsにおいて、User Filesで常に使う場所を次のような場所にセットしておくと、.lib記述そのものが必要ない。任意のフォルダ名を付け、シンボル、モデルを直接中に入れる。
例. C:¥Users¥ユーザー名¥Documents¥LTspic\フォルダ名
- それ以外の場所に、シンボルやモデル・ファイルを別々に置く場合は、Settings >Search Pathsにおいて下2つの欄にシンボル、モデルのパスを設定する。
(4) LTspiceにおけるサブサーキット用のシンボルの作成
LTspiceで、サブサーキット用シンボルを準備するのは、他のSPICEに比べてやや面倒です。それは、このSPICEシミュレータの生まれた経緯からやむを得ないと思われます。そのシンボルによって、方法、作り方は4通りに分かれます。
- モデルとともにメーカーで提供している場合
そのまま変更なしで使用できます。 - 組み込み基本モデルまたはデバイス・モデル
そのシンボル形状をそのまま使って、サブサーキット化できます。まず、希望する部品シンボルを、回路図に配置します。 シンボル上で、単に右クリックするか、「ctrl+右クリック」します。するとComponent Attribute Editorダイアログが開きます。 そこでPrefixの項目を、R,L,C,D,QN,QP,MN,MP...などの素子記号から、Xに書き換えます。そして、ValueまたはSpiceModelの項目に、対応させたいモデル名を入力します。 - 数少ない外部サブサーキット・モデルに使えるシンボル
opamp, opamp2, DIP8, DIP10, DIP14, DIP16, DIP20
これらのシンボルは、回路図に配置し右クリックしただけで、Component Attribute Editorダイアログが開きます。 Prefixの項目は、すでにXとなっていますので、ValueまたはSpiceModelの項目に、対応させたいモデル名を入力します。 残念ながら上記以外は、Component Attribute Editorダイアログが開かないシンボルです。そのシンボルは、他のモデルに流用することはできません。 最も機会の多いであろうOPアンプの場合も、既存の型名のモデルを別名には、変更できません。 この場合は、上述の3ピンのモデルならばopamp、5ピンのモデルならばopamp2というシンボルを使ってください。ピンの順番は一般的な順番となっているので、モデル記述が違っていたら、シンボルまたはモデル側で編集し一致させます。 ピン数が6ピン以上などの場合は、ゼロからシンボルを作成しなければなりません。
- サブサーキット・モデル・ファイルから直接シンボルを作成
LTspice回路図キャプチャでモデル・ファイルまたはモデル・ライブラリを開き、.SUBCKT記述部分の上にカーソルを合わせ、右クリックします。プルダウンメニューが現れるので、Create Symbolをクリックし、モデル名.asyで保存します。初期状態では、シンボル形状は、どんなモデルであれ、ただの長方形となりますので、余裕があれば自由に修正してください。同様にシンボルを作成する方法として、回路図全体を一つのシンボルにする階層化がありますが、これは3節を参照してください。
コラム: .inc(.include)と.libコマンドの違い LTspiceでは、どうもこの二つのコマンドの機能に違いは無いように見えます。ヘルプでは多少別のことが書いてありますが、使用上は、全く同じ動作のようです。ただし、同じ動作をするコマンドだという表記はありません。(想像ですが、他のSPICEとの互換性を持たせる目的で、後から.libコマンドを追加したのかも知れません。)
現在のSPICE系シミュレータの元祖、カリフォルニア大バークレー校のSPICE2では、これらのコマンドはありませんでした。その後リリースされたSPICE3においては、.includeコマンドのみ追加されました。時期的にはそれ以前に商用SPICEの業界標準ともなっていたPSpiceでは、.libと.incの両方のコマンドが追加されていました。そして、同じ機能のコマンドが二つ必要な筈もなく、次のような決定的な機能の違いがあります。
・.incコマンドでは、このコマンドで指定されたテキストファイルの内容すべてが、回路ファイル(ネットリスト)に読み込まれます。
・.libコマンドでは、指定されたテキストファイル内のモデルまたはサブサーキット部分のみを参照し、回路ファイルに必要なモデルまたはサブサーキットを読み込みます。
従って、参照するのが単品のモデル・ファイルなら、どちらのコマンドでも大きな違いはありません。しかし、多くのモデルやサブサーキットが一つのファイル内に収められたライブラリ・ファイルであった場合は、.incコマンドを使うことは、この違いを持つSPICEでは推奨できません。LTspice以外のSPICE系シミュレータでは、PSpiceの他、HSPICE、TopSpiceなど、明確にこの二つのコマンドには、機能の違いがあります。LTspice以外のSPICEを使用する機会があったならば、その時には、この違いにくれぐれもご注意ください。
参考資料: (1) LTspice Help (2)(株)マクニカ オンラインセミナー「LTspiceへ部品モデルをインポートする方法を学んでみよう!」 (3) 電子回路シミュレータPSpiceリファレンス・ブック(森下勇著、CQ出版社)