LTspice 小技集

published_with_changes 更新日: event_note 公開日:

labelLTspice Tips

LTspiceを使っているとき、こんなのあったらと思って探して見つけたTipsを整理します。都度、増やしていくかもしれません。

ポテンシオメータ(可変抵抗)サブ・サーキット

ボリュームは、下図のように2つの抵抗を関数で関連づけて使っていました。



サブ・サーキットモデルを見つけました。色々あるようですが、これが一番気に入りました。(使っていませんが、ライブラリにはB特性やアルプス品の特性などもあって、拡張性があります。)


Pots for SPICE - Barbarach BC

Pots for SPICE - Barbarach BC

Potentiometers do not come as standard with LT Spice. Here's a simplified adaptation of an existing open source library to fit my needs.


C接点スイッチ

ノーマルオープンがa接点、ノーマルクローズがb接点、どちらにも切り換えられるのがc接点と覚えていたが、SPDT(Single-Pole Double-Throw)というらしいです。

LTspiceには電圧スイッチがあって、a接点とb接点は容易に使えるのですが、c接点を作るのは電圧スイッチを2連にするとか、少し面倒でやったことはありません。

下記引用に、電圧スイッチからモディファイする方法が説明されていました。シンボルもクールで気に入りました。


SPDT in LTspice

SPDT in LTspice

I'm currently new to using LTspice as a circuit simulation software. Right now I'm trying to check if the IC (BD6221F-E2) that I included in the program is working. The process of making this IC is


 シンボルの作成

上記の説明通りに、電圧スイッチを加工してシンボルをつくり、"..\LTspiceXVII\lib\sym\MyParts\" などのフォルダに SPDT.asy の名前で保存します。

そして、新しい回路を描くときにF2キーを押してSPDTを選択します。

モデルの記述

下記の太字の部分が SPDT のモデル定義です。これを"Spice Directive" から回路図上に書き込みます。



Now, start a new schematic and hit F2 to get the list of parts. You should now see SPDT showing in the list. Grab it and put it down on the schematic. Now hit the "S" key to call up a Spice dialog box where you can enter in a model, now. Put in the following text into that box:

.subckt SPDT COM NO NC POS NEG
S1 COM NO POS NEG MYSW1
S2 COM NC NEG POS MYSW2
.model MYSW1 SW(Ron=.01 Roff=1000Meg Vh=.25 Vt=.5)
.model MYSW2 SW(Ron=.01 Roff=1000Meg Vh=.25 Vt=-.5)
.ends

Paste that into your schematic anywhere you want.

Here is what I did:

enter image description here

I think you can see that it works. Take a careful look at the switch models I used in the SUBCKT. Make sure you understand what I did there.

You will be able to make anything you like now. It's easy, really.


Later, when you get better at this kind of thing, you can save those SUBCKT models, too. Just stick them into the .\lib\sub directory and go back to the symbol editing and modify the <ModelFile> attribute using the Edit/Attribute/Edit Attributes menu option and enter in the file name where you've saved this text. That way, LTspice will automatically find the model in the disk file and you don't need to place it on the schematic, anymore. In fact, if you place LOTS of various SUBCKT models in that file (you are allowed to add as many as you want), then you can set up different model behaviors and select from any of them when you place the symbol down. (LTspice will notice that there is more than one model in the file. So you can change SPDT to something else, like SPDT1, and get a different behavior.)


サブサーキットのライブラリ利用

あるいは、任意のライブラリ名を付けて、ライブラリフォルダに保存します。たとえば、"..\LTspiceXVII\lib\sub\mylib\switches.lib" などとして、ライブラリフォルダに保存します。適時、ライブラリにモデルを追加して使うこともできると引用元には説明されています。

ライブラリファイルでモデルを定義する場合には、SPDT.asy に少し手を加えて、ModelFileが switches.lib である一行を追加する必要があります。




モデルをパラメータで定義する

電圧スイッチには次のパラメータがあります。パラメータを変えたモデルをライブラリに新しく追加することもできますが、後からでは識別不能となって使いずらいと思うので、その都度パラメータを変更する方法が良いと思います。それをメモしておきます。(きっと、忘れると思うので)

Voltage Controlled Switch Model Parameters

NameDescriptionUnitsDefault
VtThreshold voltageV0
VhHysteresis voltageV0
RonOn resistanceΩ1
RoffOff resistanceΩ1/Gmin
LserSeries inductanceH0
VserSeries voltageV0
IlimitCurrent limitAInfin.



変更するパラメータを決める

シンボルファイル SPDT.asy を編集します。シンボルファイルを開いて、右クリックから、”Attribute” , "Edit Attribute"を選びます。”Symbol Attribute Editor” のウィンドウが現れます。




”Symbol Attribute Editor” の SpiceLine に変更するであろうパラメータ(もともとは、ライブラリファイル内で定義したモデル記述の一部)を選んで、書いておきます。




続いて、再度右クリックから、”Attribute” , "Attribute Window"を選びます。現れた"Attribute Window" から SpiceLine をクリックすると、シンボル上に定義したパラメータが表示されます。
パラメータが表示されることを確認して、シンボルファイルを更新保存します。





パラメータを変更してシミュレーション

モデルにパラメータが表示されるので、その都度書き換えてシミュレーションできます。下記の例ではVh=0(ヒステリシスをゼロ)に変更してみました。



電圧制御電圧源"e" はアンプ(増幅器)

単にLTspice上で信号を増幅したいと思ったときに、オペアンプと抵抗を並べる回路図を書くのはしんどいです。そう思って調べてみると、電圧源はタイトルどおりに理想的な増幅器として使えることを再認識しました。周波数特性を考慮する必要もありません。

4種類の電圧・電流制御電圧源(電圧)、電圧・電流制御電流源がすべてに共通して理想的なアンプになります。


LTspiceを使ってみよう - 電圧制御電圧源で増幅器を作ってみよう - 半導体事業 - マクニカ

LTspiceを使ってみよう - 電圧制御電圧源で増幅器を作ってみよう - 半導体事業 - マクニカ

制御型の電圧源は4本の端⼦を備えています。左側の2端子が入力端子(制御端子)となり、入力電圧差に比例した電圧を出力させることができます。そのため、比例定数が1よりおおきければ増幅器と、1以下なら減衰器とみなすことができます。

差動増幅

とてもうれしいのは、単なる増幅器ではなくで、+入力とー入力の差分を取って増幅できることです。

下記の回路は試しに作ってみたものですが、LEDの3線式電圧計をイメージしています。最大30Vを表示するLED電圧計を想定しています。通常は"Vout-" がGNDですが、あえてGNDではない"Vout-"として、"Vout+"との差を増幅するようにしてみました。

実際と同じように3.3Vレギュレータを電源にしたかったので、大きな信号を1/10倍にして入力し、ボルテージフォロアのオペアンプを経た後、10倍して元に戻すという訳のわからないことをやってみました。


数値の検証をしてみます。
V(vout+) - V(vout+) = 14.640 - 0.662 = 13.978
V(n005) ; 13.978 x 1/10 = 1.3978
V(out) ; 1.3978 x 10 = 13.978


理想オペアンプを模擬

もう一例として、オペアンプの非反転増幅回路を電圧源で作ってみました。±1V入力を3倍に増幅する非反転増幅回路です。

この場合、電圧源の増幅率(オープンループ電圧利得)は非反転増幅回路のクローズドループ利得よりも十分大きな値にする必要があります。(下記、赤丸 1 x 10^10 , 200dB)

両者の比率をみると下図のようで、完全な模擬にはなっていない模様です。




周波数特性はどこまでもフラットです。



DC 0Vの電圧源を電流検出に使う

電流を読むのは回路上で電流プローブをクリックすれば良くって、そのとき表示されるラベル I(R1) とかを使えば、V(n001, n002) * I(R1) などと、電流と電位差との積で電力を計算することができます。

ただし、電流を検出するには素子が何か必要なようです。たとえば、下記のビヘイビア電源B1はノードだけだとエラーになります。I=v(T1,T2)*I(T1) はエラーで、I=v(T1,T2)*I(V1) はOKです。


探していたら、回路上の何もないノード上の電流を測定する方法がありました。電圧がゼロVのDC電源を測定したいノード位置に配置することです。

電気を基礎から学んでいる人には当たり前のことだとも思えますが、趣味のにわか電子工作屋には新鮮です。電圧がゼロVの電源とは、内部抵抗=0Ωでかつ電圧値=0Vの電源、すなわち導線と等価な電源ということだと思います。





OPアンプをドロップダウンリストで選ぶ

一つのシンボルファイルに一連のサブサーキットを関連付けてドロップダウンリスト(プルダウンリスト)で選択できるようにする方法を見つけました。複数のサブサーキットで構成されている .lib ファイル から、リスト化されたサブサーキットを下図のように選択できます。


やり方は実に簡単で、シンボルファイル(xxx.asy)をテキストエディタで編集する方法と、LTspice上でシンボルファイルを修正する方法があります。

テキストエディタで編集する方法

S-Audio.Systemsから入手したライブラリファイル NE5534_SN.lib には、4種類のサブサーキットが含まれていました。今まで使っていたのは最初に載っている NJM5534_SN だけで、Opamp2.asyから作ったシンボルファイルを NJM5534.asy という名前にしていました。これを修正します。下記のシンボルファイルリストを参照です。

NJM5534.asy をエディタで開き、
  SYMATTR SpiceModel NJM5534_SN
を1行加えます。これで、ドロップダウンリストが現れます。

これまでモデル名の表示は、SYMATTR Value NJM5534 文で行っていましたが、これはコメントアウトするか消去します。かわりに、選択されたサブサーキット名を表示するように、
  WINDOW 38 15 126 Left 2
を追加しました。このフォーマットは下記のようです。
  38: SpiceModel の呼び出しコード
  15 126: 表示する座標位置
  Left: 左揃え
  2: 文字サイズ(1.0)

これを NE5534.asy で保存しました。

Version 4

SymbolType CELL

LINE Normal -32 32 32 64

LINE Normal -32 96 32 64

LINE Normal -32 32 -32 96

LINE Normal -28 48 -20 48

LINE Normal -28 80 -20 80

LINE Normal -24 84 -24 76

LINE Normal 0 32 0 48

LINE Normal 0 96 0 80

LINE Normal 4 44 12 44

LINE Normal 8 40 8 48

LINE Normal 4 84 12 84

WINDOW 0 16 32 Left 2

WINDOW 3 16 96 Left 2

WINDOW 38 15 126 Left 2

*SYMATTR Value NJM5534

SYMATTR Prefix X

SYMATTR SpiceModel NJM5534_SN

SYMATTR Description Low Noise Amplifier

SYMATTR ModelFile NE5534_SN.lib

PIN -32 80 NONE 0

PINATTR PinName In+

PINATTR SpiceOrder 1

PIN -32 48 NONE 0

PINATTR PinName In-

PINATTR SpiceOrder 2

PIN 0 32 NONE 0

PINATTR PinName V+

PINATTR SpiceOrder 3

PIN 0 96 NONE 0

PINATTR PinName V-

PINATTR SpiceOrder 4

PIN 32 64 NONE 0

PINATTR PinName OUT

PINATTR SpiceOrder 5

 

LTspice上でシンボルファイルを修正する方法

シンボルファイルをLTspiceで開いて、"Attributes"から、”Edit Attributes” と続けます。現れた”Symbol Attribute Editor” の”SpiceModel” にNE5534_SN.lib にあるサブサーキット名をどれか一つ正確に記入します。


続いて、サブサーキット名を表示する設定を行います。"Attributes"から、”Attribute Window” と続けます。現れた”Attribute Window” から”SpiceModel” を選び、OKを押します。


ほどよい場所に、<SpiceModel> を置き、続けてこれをクリックすると"Symbol Attribute" が現れるので、文字位置と大きさを好みに設定します。



エディタで変更した方が早いですが、<SpiceModel>の表示位置が決められないので、合わせ技が良いかもしれません。

Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down