LTspiceシミュレーションが機能しない、何が間違っているのですか?

Aug 24 2020

この単純なランプジェネレータについて話していました。最も単純なBJTベースの*線形*ランプジェネレータは何でしょうか。 シミュレーションについて話します。そこで、LTspiceをダウンロードして回路を作成し、測定を開始しました。しかし、それは機能していません!ここで、緑色のトレースはQ1とQ2のコレクターにあり、青色のトレースはPULSEジェネレーターにあり、正しくセットアップされていることを確認します。

Q1、Q2のコレクターでのみ測定すると、次の奇妙な線が表示されます。

これがramp.ascファイルです。私は本当に愚かなことをしているに違いありません。誰がエラーを見つけることができますか?

Version 4
SHEET 1 1196 680
WIRE -64 -144 -240 -144
WIRE 96 -144 -64 -144
WIRE 96 -32 96 -64
WIRE -240 0 -240 -144
WIRE -64 16 -64 -64
WIRE 32 16 -64 16
WIRE 96 96 96 64
WIRE 352 96 96 96
WIRE -64 128 -64 16
WIRE 96 144 96 96
WIRE 352 144 352 96
WIRE 576 192 496 192
WIRE -240 288 -240 80
WIRE -64 288 -64 208
WIRE -64 288 -240 288
WIRE 96 288 96 208
WIRE 96 288 -64 288
WIRE 352 288 352 240
WIRE 352 288 96 288
WIRE 576 288 576 272
WIRE 576 288 352 288
WIRE -64 304 -64 288
WIRE 800 464 768 464
FLAG -64 304 0
SYMBOL res -80 -160 R0
SYMATTR InstName R1
SYMATTR Value 2k
SYMBOL res -80 112 R0
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL res 80 -160 R0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL res 512 176 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 1k
SYMBOL cap 80 144 R0
SYMATTR InstName C1
SYMATTR Value 33 pF
SYMBOL pnp 32 64 M180
SYMATTR InstName Q1
SYMATTR Value BC556B
SYMBOL npn 416 144 M0
WINDOW 3 57 67 Left 2
SYMATTR InstName Q2
SYMATTR Value BC546B
SYMBOL voltage -240 -16 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 124 Left 2
SYMATTR InstName V1
SYMATTR Value 5
SYMBOL voltage 576 176 R0
WINDOW 3 44 86 Left 2
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value PULSE(0 5 0 0 0 .005 .01 100)
TEXT -274 328 Left 2 !.tran 0.05

回答

4 aconcernedcitizen Aug 24 2020 at 13:49

最初の画像から正確な回路図を再作成しても、波形を再現することはできません。いくつかの設定を変更しましたか?私は使用.stepの値の間のサイクルに33p(自分の価値、黒のトレース)と33nのために(青のトレース)C1、ほとんど違いを示すために、だけでなく、(あなたが期待通りではないが)、それが機能することを示すために、:

デフォルトのインストールからdeafultモデルを検討しています。トランジスタのモデルを何らかの方法で変更した場合、シミュレーションの結果は異なる場合があります。また、特定の数の期間PULSE()が本当に必要でない限り、ソースの期間の数を指定する必要はありません。0は、パルスが永久に繰り返されることを意味します。

あなたが提供した「ネットリスト」は役に立ちません。@SpehroPefhanyがコメントで述べたように、.ascファイルの内容をコピーして貼り付ける必要があります。これは単純な回路図なので、再作成するのにそれほど時間はかかりませんでしたが、もっと大きな回路図がある場合は...それでも、実際に機能しない場合は、いくつかの解決策が考えられます。

フラグを指定していないため、ソルバーは最初に操作ポイントの解決を試みます。つまり、「実行」を押すと、回路は時間の初めから実行されており、シミュレーションの開始時に表示される特定の動作点まで、考えられるすべての過渡現象を解決する時間があります。そのためには、インダクタは短絡と見なされ、コンデンサは開回路と見なされます。プロットに示されているのは、〜4.78 Vから始まるコンデンサ両端の電圧です。これはR[1:3]、によって形成される抵抗分割器と、それらの抵抗によって分極されたトランジスタの静的抵抗を考慮すると意味があります。

「通常の」動作(つまり、期待する動作)を確認したい場合は、心を読み取ることができないため、ソルバーに通知する必要があります。いくつかの選択肢があります。

  1. startupフラグを追加します:.tran 0.05 startup。これにより、DCソースは合計シミュレーション時間の何分の1かで増加します(10 us、IIRC)。このように、シミュレーションの開始では、t = 0での供給電圧が0Vと見なされるため、コンデンサもゼロから開始します。

  2. 初期条件を追加します。これにより、ソルバーはそのノードの電圧のカスタム値を考慮するようになります。これは2つの方法で行うことができます。

  • SPICEディレクティブを使用したグローバル条件:(そのノードのラベル.ic v(x)=<value>と見なさxれます)。あなたの場合、<value>0にすることができます。

  • ic=<value>コンデンサにその値の隣に追加することによるローカル条件(あなたの場合も0)。

  1. uicフラグを追加します。これにより、ソルバーは操作ポイントの計算を回避し、すべてをゼロから開始します。つまり、時間の始まりは「実行」を押すことから始まると見なされます。その瞬間から、シミュレーションが進むにつれてすべての値が計算されて表示されます。このオプションは、1分間のシミュレーションと1時間のシミュレーションの違いを意味する可能性があるため、注意して使用してください。この場合、それは非常に単純な回路です。

シミュレーションの開始後にコンデンサを強制的に短絡して開く実際の回路(おそらくVCSW)や、前にゼロ電流を強制する単純なマイナーパルス電流源を追加するなど、他のよりエキゾチックな方法があるかもしれません。シミュレーションとその後の非常に狭いパルス、電圧のキックスタート(これは主に発振器に使用されますが、ここでも機能します)ですが、マトリックスソルバーに余分な負担を加えるだけです。


.ascファイルのコードを投稿したので、それは私に良い笑いを与えました。33<space>pFコンデンサの値として割り当てたので、思ったより目が悪くなっているに違いありません。エラーログがポップアップすることについて何も言わなかったのは驚きです。それは物事を大幅に単純化したでしょう(もちろん、エラーの原因についてちょっと悲鳴を上げます)。最初の行は次のとおりです。

Error on line 6 : c1 n004 0 33 pf
     Unknown parameter "pf"

それは<space>パーサが二つの値としてそれを解釈し、ますので、数値とそのメトリックプレフィックスの間属していない33pFpFキーワードまたはフラグとして認識されず、評価できないため(最後に中括弧または一重引用符がないためではありません)、最初の値のみを解釈し33、コンデンサを33 Farad、と見なします。エラーログの残りの部分について文句を言います。そのため、そこではほぼ純粋なインテグレータの動作が見られます。

ただし、上記の内容V2は、コンデンサの放電に積極的に寄与しているため、設定なしで回路が正しく機能することに加えて、依然として有効です。しかし、上記の説明により、私の写真でも、約4.78Vから始まることがわかります。

ところで、単位(書き込むことでそこの何も間違ってFuHkOhm、など)は、LTspiceはそれらを無視しますが、それは単位を見て好きな場合を除き、役に立たないのです。