秋月ファンクラブ掲示板 過去ログ

LTSPICEにnetlistを打ち込む方法 - kurin

2013/08/17 (Sat) 15:02

LTSPICEに下記netlistをコピーしたいのですが、
その方法を教えてください。


.TRAN 1U 4M
.PARAM TS=1M
VP IN 0 PULSE (0,1)
E1 1 0 LAPLACE {V(IN)} = {EXP(-TS*S)}
E2 2 0 LAPLACE {V(OT)} = {EXP(-TS*S)}
E3 OT 0 VALUE = {0.5*TS*(V(IN)+V(1))+V(3)}
R1 2 3 1K
R2 3 0 1G
.PROBE
.END

Re: LTSPICEにnetlistを打ち込む方法 - inara1

2013/09/01 (Sun) 09:03

添付図のような回路になるかと思います。LT-spiceには、Net ListをLT-spiceの回
路図に自動変換する機能はないと思うので、Net Listを解読して、それと等価な回
路を描く必要があると思います。

添付回路のLT-spiceでのNet Listは以下のようになっています。
* C:\Documents and Settings\・・・\ltspice-net.asc
VP in 0 PULSE(0 1)
R1 p2 p3 1k
R2 p3 0 1G
E1 p1 0 in 0 laplace=exp(-{ts}*s)
E2 p2 0 ot 0 laplace=exp(-{ts}*s)
B1 ot 0 V=0.5*{ts}*(V(in)+V(p1))+V(p3)
.tran 0 40m 0 1u
.param ts=1m
.backanno
.end
p1,p2,p3,in,otはノードのラベル名です(0はGND)。過渡解析の最大時間は4msか
ら40msに変更しています。tsはパラメータです。

以下の文章をテキスト形式で保存して、ファイル名の拡張子をascとすれば添付図
の回路ファイルになります(そのファイルをWクリックすれば起動)。
Version 4
SHEET 1 880 680
WIRE -144 -32 -144 -64
WIRE 16 -32 -144 -32
WIRE 288 16 288 0
WIRE 464 16 288 16
WIRE 512 16 512 0
WIRE 576 16 512 16
WIRE 720 16 720 0
WIRE 720 16 656 16
WIRE -144 32 -144 -32
WIRE 64 32 64 0
WIRE 288 32 288 16
WIRE 512 32 512 16
WIRE 16 48 16 -32
WIRE 464 48 464 16
WIRE 720 48 720 16
WIRE -144 144 -144 112
WIRE 16 144 16 96
WIRE 16 144 -144 144
WIRE 64 144 64 112
WIRE 64 144 16 144
WIRE 288 144 288 112
WIRE 288 144 64 144
WIRE 464 144 464 96
WIRE 464 144 288 144
WIRE 512 144 512 112
WIRE 512 144 464 144
WIRE 720 144 720 128
WIRE 720 144 512 144
WIRE -144 176 -144 144
FLAG -144 -64 in
FLAG 64 0 p1
FLAG 512 0 p2
FLAG 288 0 ot
FLAG 720 0 p3
FLAG -144 176 0
SYMBOL voltage -144 16 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName VP
SYMATTR Value PULSE(0 1)
SYMBOL res 560 32 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R1
SYMATTR Value 1k
SYMBOL res 704 32 R0
SYMATTR InstName R2
SYMATTR Value 1G
SYMBOL e 64 16 R0
WINDOW 3 -68 156 Left 2
SYMATTR InstName E1
SYMATTR Value laplace=exp(-{ts}*s)
SYMBOL e 512 16 R0
WINDOW 3 -68 156 Left 2
SYMATTR InstName E2
SYMATTR Value laplace=exp(-{ts}*s)
SYMBOL bv 288 16 R0
WINDOW 3 -98 155 Left 2
SYMATTR InstName B1
SYMATTR Value V=0.5*{ts}*(V(in)+V(p1))+V(p3)
TEXT -200 224 Left 2 !.tran 0 40m 0 1u
TEXT -200 256 Left 2 !.param ts=1m

Re: LTSPICEにnetlistを打ち込む方法 - kurin

2013/09/01 (Sun) 10:06

回答ありがとうございます。

webで見つけたspiceのネットリストを
LTspiceで実践するには結構大変ですね。

波形だけでなく、回路にも展開するために作るnetlistは
結構な手間になりそうです。

大変参考になりました。ありがとうございました。


Re: LTSPICEにnetlistを打ち込む方法 - inara1

2013/09/01 (Sun) 10:10

Net Listの解説です。

.TRAN 1U 4M
過渡解析の時間ステップを1us、最大時間を4msとする[1]

.PARAM TS=1M
tsというパラメータの値を1m(0.001)に設定する

VP IN 0 PULSE (0,1)
名前がVから始まる素子は制御端子のない独立電圧源(LT-spiceの
Voltage,Battery,Cellの記号に相当)で、VPというのが電圧源の名前になります
(V1やV2など、Vの後の名前で他の独立電圧源と区別する)。その次のIn 0 は、出
力端子のノードになります(Inが+側、0が-側)。ノード番号で書いてもいいです
が、INのようにアルファベットで書くこともできます。0と書くと強制的にGNDの意
味になります。LT-spiceではノードにラベルをつけて描くと、そのラベル名がNet
Listでのノード名になります。その次のPULSE (0,1) は、PULSE(V1 V2 TD TR TF
PW PER)という内容の一部を省略したもので、矩形波や三角波や台形波を発生させ
るコマンドです。PULSE (0,1) と書くと、0がV1、1がV2で、それ以降のパラメータ
は省略(デフォルト値)という意味になります。PULSE (0,1) と書いたとき、最低
値が0V、最大値が1Vの階段波(ステップ関数)になります。TDに0より大きい数値
を入れると、階段が始まるまでku棊チ抉篁・屬鮴瀋蠅任④泙后・・侖毛・┛・・は
遅延なしの意味なので、シミュレーション開始直後に0Vから1Vに変わる信号になり
ます[2]。

E1 1 0 LAPLACE {V(IN)} = {EXP(-TS*S)}
E2 2 0 LAPLACE {V(OT)} = {EXP(-TS*S)}
E3 OT 0 VALUE = {0.5*TS*(V(IN)+V(1))+V(3)}
Eで始まる素子は普通は、電圧制御型の線形電圧源[3]で、LT-spiceではe記号の電
圧源になります。この場合、E**の後の端子パラメータは4個(出力2個、入力2個)
書きますが、2個しかなく、その後にLAPLACEとかVALUE=が来ると、非線形電源[4]
の意味になります。この場合、入力はV(1)とかV(in)など、他のノードの電圧など
を使い、それをパラメータとした式で表すので、E**の後の端子パラメータは出力
端子の2個しか書きません。

E1 1 0 LAPLACE {V(IN)} = {EXP(-TS*S)}の場合は、出力端子がノード1(+側)と
0(GND)で、INという名前のノードの電圧V(IN)に対して、ラプラス変換
EXP(-TS*S)で表される関数値を出力するという意味になります。LT-spiceでE1 1 0
LAPLACE {V(IN)} = {EXP(-TS*S)}と等価な記号を作るには、E電源(電圧制御電圧
源)の入力をノード1とノード0とし、Value欄に laplace=exp(-{ts}*s) と書きま
す。tsを括弧で囲んでいるのは、tsがこちらで決めたパラメータであるという意味
です。

E3 OT 0 VALUE = {0.5*TS*(V(IN)+V(1))+V(3)}のほうは、ラプラス変換ではないの
で、LT-spiceのBV素子(ビヘイビア電圧源)を使って、Value欄に
V=0.5*{ts}*(V(in)+V(p1))+V(p3)と書きます。p1とp3は回路図のラベル名ですが、
ノード1とノード3という意味で使っています。式全体を{ }で囲まなくてもエラー
にはなりません。出力端子はot(ラベル名)と0(GND)です。

R1 2 3 1K
ノード2とノード3の間に1kΩの抵抗を接続する[5]

R2 3 0 1G
ノード3とノード0(GND)の間に1GΩの抵抗を接続する[5]

.PROBE
測定点を指定する場合にPROBE以降にノード名などを書きますが、電圧の場合は何
も書かなくてもいいようです。

.END
Net Listの最後を表します。Spiceモデルでも最後は.ENDで終わっています。

[1] 過渡解析 
http://ayumi.cava.jp/audio/spiceman/node4.html#SECTION00043900000000000000
[2] 独立電圧源,電流源
http://ayumi.cava.jp/audio/spiceman/node3.html#SECTION00032100000000000000
[3] 電圧制御線形電圧源
http://ayumi.cava.jp/audio/spiceman/node3.html#SECTION00032220000000000000
[4] 非線形電圧源 
http://ayumi.cava.jp/audio/spiceman/node3.html#SECTION00032300000000000000
[5] 抵抗 
http://ayumi.cava.jp/audio/spiceman/node3.html#SECTION00031100000000000000