SPICEで電気回路シミュレーションをマスター:設計者と学生のための実践ガイド
正しく活用すれば、コンピューターは科学と工学の不可欠な味方になります。最も強力な応用の一つが電気回路シミュレーションです。これらのプログラムにより、設計者は概念を素早く評価でき、実物試作に比べて時間とコストを大幅に削減できます。
エレクトロニクスを学び始めた学生にとって、シミュレーションはハードウェアを組み立てずに回路振る舞いを即座に体験できる実践的な手段です。実機テストは依然として不可欠ですが、仮想実験は直感構築と高速イテレーションを助けます。
このガイドでは、重要概念を説明するためにSPICEシミュレーションのスクリーンショットを随所に挟みます。これらの結果を研究することで、複雑な数式に煩わされることなく回路ダイナミクスを理解できます。
SPICEによる回路シミュレーション
コンピューターで回路をモデル化するために、SPICE(Simulation Program with Integrated Circuit Emphasis)を使用します。SPICEは、回路のテキスト記述(ネットリストと呼ばれます)を解釈し、詳細な数学解析の結果を出力します。
詳細を知りたい方は、本シリーズ第5巻のリファレンスセクションでSPICEを包括的にカバーしています。ここでは基礎とシンプルな例に焦点を当てます。
まず、SPICEをマシンにインストールする必要があります。多くのOSで無料利用可能で、ここでは使いやすい軽量版2G6でデモします。
次に、以前見た基本回路を解析します:10V電池と5Ω抵抗器の直列回路。SPICEがオームの法則(I = E/R)通りの電流を計算するか検証します。
SPICEはテキストベースのプログラム
SPICEはグラフィカルな回路図を解釈せず、純粋なテキスト記述を要求します。各ユニークな接続点にノード番号を割り当てます。同一電位のノードには同じ番号を与えます。SPICEはまた、基準(グラウンド)としてノード0を期待します。
このシンプルな例ではノード1とノード0の2ノードのみです:

この図はノード番号付けを示していますが、SPICEには同じ情報をプレーンテキストで与える必要があります。
テキストエディタでSPICEネットリストを作成
Windowsのメモ帳やLinuxのVimなど、テキストエディタでフォーマットフリーな環境でネットリストを書きます。SPICEはこれらのファイルの正確な構文に依存します。
まずタイトル行を追加:

電圧源を「v」、ノード番号、DC電圧値で定義:

次に抵抗器を「r」とノード接続で指定:

.end文でネットリストを閉じます。完成したネットリスト:

コマンドラインからSPICEを実行
ファイルを保存(例:circuit1.cir)したら、ターミナルからSPICEを起動:
spice < circuit1.cir
LinuxでのEnter前のコマンドライン例:

SPICEはネットリスト、ノード電圧、電源電流、総電力消費を出力します。例の出力:

SPICEは内部符号規約により電流を負の値で報告します。電力は科学的表記(2.00E+01 W)で表示されます。
出力をテキストファイルにリダイレクト
画面出力を抑制し、結果をファイルに保存するには出力をリダイレクト:

生成されたファイル(output1.txt)はテキストエディタで編集可能。不要なヘッダーを除去すれば、核心データが解析や文書への引用に備わります:

整理された出力をテキスト形式で直接示します:
my first circuit v 1 0 dc 10 r 1 0 5 .end node voltage ( 1) 10.0000 voltage source currents name current v -2.000E+00 total power dissipation 2.00E+01 watts
部品値の変更
部品を変更するにはネットリストを編集し、保存して再実行。例えば電圧を30Vに3倍すると:
second example circuit v 1 0 dc 30 r 1 0 5 .end node voltage ( 1) 30.0000 voltage source currents name current v -6.000E+00 total power dissipation 1.80E+02 watts
電流は2Aから6Aに増え、電力は9倍(20Wから180W)に増加。ジュールの法則(P = E²/R)と整合します。
SPICEのスイープとプロット機能
電圧範囲で回路を調べるには .dc ディレクティブを追加。コメント行(「*」で開始)でネットリストを文書化:
third example circuit v 1 0 r 1 0 5 * ".dc"文で"v"電源電圧を0から100Vまで5Vステップでスイープ .dc v 0 100 5 .print dc v(1) i(v) .end
.printコマンドで各ステップの表形式データ出力:
v i(v) 0.000E+00 0.000E+00 5.000E+00 -1.000E+00 1.000E+01 -2.000E+00 1.500E+01 -3.000E+00 2.000E+01 -4.000E+00 2.500E+01 -5.000E+00 3.000E+01 -6.000E+00 3.500E+01 -7.000E+00 4.000E+01 -8.000E+00 4.500E+01 -9.000E+00 5.000E+01 -1.000E+01 5.500E+01 -1.100E+01 6.000E+01 -1.200E+01 6.500E+01 -1.300E+01 7.000E+01 -1.400E+01 7.500E+01 -1.500E+01 8.000E+01 -1.600E+01 8.500E+01 -1.700E+01 9.000E+01 -1.800E+01 9.500E+01 -1.900E+01 1.000E+02 -2.000E+01
.printを.plotに変更すると、シンプルなテキストベースのグラフが生成されます:
Legend: + = v#branch ------------------------------------------------------------------------ sweep v#branch-2.00e+01 -1.00e+01 0.00e+00 ----------------------|------------------------|------------------------| 0.000e+00 0.000e+00 . . + 5.000e+00 -1.000e+00 . . + . 1.000e+01 -2.000e+00 . . + . ... 1.000e+02 -2.000e+01 + . . ----------------------|------------------------|------------------------| sweep v#branch-2.00e+01 -1.00e+01 0.00e+00
外部ツールでSPICE出力を解釈
Nutmegなどのグラフィカルプログラムは、SPICEのテキスト出力を読み込んで視覚的にプロットできます。典型的なNutmegプロットでは、抵抗器電圧v(1)が印加電圧に比例して直線的に増加する様子が表示されます。

SPICEの習熟度に関わらず、レポート内の数値を理解することは不可欠です。今後の例でも出力に注釈を付け、結果を解き明かし、ツールの潜在能力を最大限に引き出します。
関連ワークシート
- 基礎電気ワークシート
- 基礎DCワークシート
- 基礎ネットワーク解析ワークシート
- 基礎ACワークシート
- 基礎半導体ワークシート
- 基礎アナログ回路ワークシート
- 基礎デジタル回路ワークシート
産業技術