SPICE Quirks
「ガベージイン、ガベージアウト」 -匿名
SPICEは非常に信頼性の高いソフトウェアですが、慣れが必要なちょっとした癖があります。 「癖」とは、エラーメッセージを表示せずに機能するために、特定の方法でソースファイルを書き込むようにユーザーに要求することを意味します。
私は しません 誤った結果または誤解を招く結果を生成するSPICEのあらゆる種類の障害を意味します。これは、より適切には「バグ」と呼ばれます。バグと言えば、SPICEにもいくつかあります。
これらの癖の一部(またはすべて)は、私が広く使用した唯一のバージョンであるSPICEバージョン2g6に固有のものである可能性があります。これらは、後のバージョンで修正されている可能性があります。
良い始まり
SPICEは、ソースファイルが回路記述「デッキ」の最初の「カード」以外のもので始まることを要求します。ソースファイルのこの最初の文字は、改行、タイトル行、またはコメントにすることができます。何かが必要です。 ファイルの最初のコンポーネント指定行の前にあります。
そうでない場合、SPICEは分析をまったく拒否し、「デッキ」に重大なエラー(不適切なノード接続など)があると主張します。
良い結末
SPICEは、 .end を要求します ソースファイルの最後の行は、改行文字または復帰文字で終了していません。つまり、「 .end 」と入力し終えたら 」 [Enter] を押してはいけません キーボードのキー。
テキストエディタのカーソルは、「 .end 」の直後の「d」の右側で停止する必要があります。 」とそれ以上進みません。この癖に注意を怠ると、「 .endカードがありません」という結果になります。 分析出力の最後にある」エラーメッセージ。
実際の回路解析はこのエラーの影響を受けないため、通常はメッセージを無視します。ただし、「完璧な」出力を取得したい場合は、この特異性に注意を払う必要があります。
ノード0が必要です
回路ノードの番号付けには多くの自由が与えられますが、必須 SPICEが機能するためには、ネットリストのどこかにノード0があります。ノード0は、回路アースのデフォルトノードであり、単一ノードの場所で指定されたすべての電圧の基準点です。
SPICEによって単純なDC解析が実行されると、出力には回路内のすべての非ゼロノードの電圧のリストが含まれます。これらすべての電圧測定値の基準点(アース)はノード0です。例:
ノード電圧ノード電圧(1)15.0000(2)0.6522
この分析では、ノード1とアース(ノード0)の間に15ボルトのDC電圧があり、ノード2とアース(ノード0)の間に0.6522ボルトのDC電圧があります。どちらの場合も、電圧の極性は、ノード0で他のノードに対して負になります(つまり、ノード1と2の両方がノード0に対して正になります)。
開回路を避ける
SPICEはいかなる種類の開回路も処理できません。たとえば、ネットリストで電圧源が開いている回路が指定されている場合、SPICEは分析の実行を拒否します。
このタイプのエラーの主な例は、電圧源を電圧依存源の入力に「接続」する場合に見られます(オペアンプのシミュレーションに使用されます)。 SPICEは電流の完全なパスを確認する必要があるため、通常、値の大きい抵抗を接続します( rbogus と呼びます)。 !)最小負荷として機能する電圧源の両端。
特定のコンポーネントループを回避する
SPICEは、回路内のコンポーネント、つまり電圧源とインダクタの特定の途切れのないループを処理できません。次のループにより、SPICEは分析を中止します。
ネットリストl12 4 10m l2 2 4 50m l3 2 4 25m
netlist v1 1 0 dc 12 l1 1 0 150m
ネットリストc15 6 33u c2 6 7 47u
SPICEがこれらの条件を処理できない理由は、DC分析を実行する方法に起因します。つまり、すべてのインダクタを短絡として扱い、すべてのコンデンサを開放として扱います。短絡(0Ω)と開回路(無限抵抗)は数学的無限大を含むか生成するため、コンピューターはそれらを処理できません。したがって、これらの条件のいずれかが発生した場合、SPICEは分析を中止します。
SPICEでインダクタとコンデンサを処理する方法
これらのコンポーネント構成をSPICEに受け入れられるようにするには、適切な値の抵抗を適切な場所に挿入して、それぞれの短絡と開回路を排除する必要があります。直列抵抗が必要な場合は、非常に低い抵抗値を選択してください。
逆に、並列抵抗が必要な場合は、非常に高い抵抗値を選択してください。例:
並列インダクタの問題を解決するには、問題のある各インダクタと直列に非常に小さな値の抵抗を挿入します。
元のネットリストl12 4 10m l2 2 4 50m l3 2 4 25m
固定ネットリストrbogus12 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m
並列インダクタを使用した前の例と同様に、補正抵抗(R 偽物)を作成することが重要です。 )回路の動作に実質的な影響を与えないように、抵抗が非常に低い。
直列コンデンサ回路を固定するには、コンデンサの1つに抵抗シャントが必要です。 SPICEには、分析のために各コンデンサへのDC電流パスが必要です。
元のネットリストc15 6 33u c2 6 7 47u
固定ネットリストc15 6 33u c2 6 7 47u rbogus 6 7 9e12
R 偽物 9テラオームの値は、C 1 へのDC電流パスを提供します (およびC 2 周辺 )回路の動作に実質的な影響を与えることなく。
電流測定
SPICEでは電圧の印刷やプロットは非常に簡単ですが、電流値の出力は少し難しくなります。電圧測定は、適切な回路ノードを宣言することによって指定されます。
たとえば、リード線がノード4と7の間に接続されているコンデンサの両端の電圧を知りたい場合は、 .print を作成できます。 ステートメントは次のようになります:
c1 4 7 22u .print ac v(4,7)
ただし、SPICEに現在を測定させたい場合 そのコンデンサを通して、それはそれほど簡単ではないでしょう。 SPICEの電流は、任意のコンポーネントではなく、電圧源に関連して指定する必要があります。例:
c1 4 7 22u vinput 6 4 ac 1 sin .print ac i(vinput)
この .print カードは、電圧源V 入力を流れる電流を出力するようにSPICEに指示します。 、これはたまたまノード4と7の間のコンデンサを流れる電流と同じです。しかし、電流測定の基準となるそのような電圧源が回路にない場合はどうなるでしょうか。
1つの解決策は、回路にシャント抵抗を挿入し、回路の両端の電圧を測定することです。この場合、C 1 を流れる電流1アンペアあたり1ボルトを生成するために、1Ωのシャント抵抗値を選択しました。 :
c1 4 7 22u rshunt 6 4 1 .print ac v(6,4)
ただし、意図した範囲の電流に対して意味のある電圧を落とすのに十分な大きさの余分な抵抗を回路に挿入すると、物事に悪影響を与える可能性があります。 SPICEのより良い解決策はこれですが、実際にはそのような現在の測定解決策を探すことは決してありません。
c1 4 7 22u vbogus 6 4 dc 0 .print ac i(vbogus)
ゼロボルトの「偽の」DC電圧源を挿入しても、回路の動作にはまったく影響しませんが、SPICEが電流測定を行うのに便利な場所を提供します。興味深いことに、V 偽物は問題ではありません。 AC電流の測定を検討している場合はDC電源です!
SPICEがAC電流の読み取り値を出力するという事実は、「 ac 」によって決定されます。 ” .print の仕様 カードとそれ以上のものはありません。 SPICEが電流測定に極性を割り当てる方法が少し奇妙であることにも注意する必要があります。例として次の回路を取り上げます。
例v11 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1).end
合計電圧が10ボルト、合計抵抗が10kΩの場合、SPICEは、電圧源V 1 に1mA(1e-03)の電流が流れることを通知すると予想される場合があります。 、しかし実際には、SPICEはネガティブの数値を出力します 1 mA(-1e-03)! SPICEは、DC電圧源の負の端(法線方向)からの電流を、正の電流値ではなく、負の電流値と見なします。
SPICEに正を出力させるために、このようなDC回路に「偽の」電圧源を投入することがあります。 現在の値:
例v11 0 r1 1 2 5k r2 2 3 5k vbogus 3 0 dc 0 .dc v1 10 10 1 .print dc i(vbogus).end
V 偽物に注目してください は、回路電流が正の側(ノード3)に入り、負の側(ノード0)から出るように配置されます。この向きにより、回路電流の正の出力値が保証されます。
フーリエ解析
波形に対してフーリエ(周波数領域)解析を実行する場合、 .print を使用して波形を印刷またはプロットする必要があることがわかりました。 または .plot それぞれカード。印刷またはプロットしない場合、SPICEは分析中に一時停止し、「初期過渡解」を出力した後にジョブを中止します。
また、「パルス」によって生成される方形波を分析する場合 」ソース関数の場合、波形に有限の立ち上がり時間と立ち下がり時間を与える必要があります。そうしないと、フーリエ解析の結果が不正確になります。何らかの理由で、立ち上がり/立ち下がり時間がゼロの完全な方形波は、かなりのレベルの偶数を生成します SPICEのフーリエ解析オプションに従った高調波。これは実際の方形波には当てはまりません。
産業技術