LastUPDATE '09.5.11 FETの記述を訂正; '06.11.13 素子Gの記述を訂正; '06.10.10 誤字の修正(pluse→pluse); '06.2.8 誤字の修正; '06.2.2 NGSPICE 用に書き直す; '05.1.25 E科 PC室の環境に合わせ一部改善; '02.3.19 目次を改善; (更新 02/3/11 最初の完成)SPICE3f4用に書き始める。

==================================
目次
        I       [NGSPICE 実行のための基本的な情報]
        II      [ .CIR ファイルの作成]
        III     [NGSPICE の実行]
        IV      [NGSPICE 利用上の Tips]

==================================
注意:この文書は,望月が自分自身の備忘録として
書き始めたものを,せっかくなのでWeb公開するものです。
ここに書いたものは最低限の使い方です。しかし,
ngspiceにはここで書いていないもっとすごい機能を
持っているようです。そうしたことに興味をお持ちなら,
NGSPICEのヘルプなどの情報をご覧になることをお勧めします。



I [NGSPICE 実行のための基本的な情報]

(1) 実行ファイルは, ngspice.exe です。
 デフォルト設定でインストールした場合, 
c:\ngspice\bin\ というフォルダ内におかれています。

(2)データを置くフォルダと,実行ファイルのフォルダは,
特に関連付けたりすることは不要のようです。
データファイルは,ngspice.exe を実行した後に設定できます。
その際のファイルの問い合わせ方は,通常のWindowsのアプリと同じです。

ただし,NGSPICE は 半角文字しか認識できないようです。
ファイル名や,フォルダ名に,全角文字を入れてみると,そのファイルを認識できませんでした。
従って,データフォルダも,ルートディレクトリに直接作ってしまうことを,私としては,推奨します。

例 z:\ngspice_data\


(3)ヘルプ情報
ngspice.hlp というファイルにヘルプ情報が入っています。ほぼ英語です。
デフォルト設定でインストールした場合,c:\ngspice\ フォルダに入っています。

また,c:\ngspice\ngspice_doc というフォルダも要チェックです。


==================================

IV [ .CIR ファイルの作成]

(1)回路情報を記入するファイルである cir ファイルの作成
        ・ファイルは,拡張子が .cir になります
        ・ルートディレクトリに近いところにデータを置くことを勧めます。例えば z:\ngspice_data\ など。
        ・ファイルを作ったり編集するには,notepad などのテキストエディタを使います。

(2)回路図をCIRファイルに変換する-1
        ・回路図内の各ノード(節点)に番号を付けます。ただし,グランドは必ず 0 (ゼロ) と名付けます。
        ・ノード間に接続される素子を(順番はどうでもいいから)全て書き出します。

        例:
        (GND=0)--- V1 ---(1)--- R1 ---(2)--- C1 ---(GND=0)

1|      V1      1       0       DC      3V      (直流電圧源)
2|      R1      1       2       10kOhm          (抵抗)
3|      C1      2       0       10nF            (容量)

        注意1 : 大文字も小文字も同じと解釈される
        注意2 : 小さい数字を表わす単位は,m u n p (ミリ マイクロ ナノ ピコ) など
        注意3 : 大きい数字を表わす単位は,k meg g t (キロ メガ ギガ テラ) など
        注意4 : 間違えやすい単位は,M(ミリ)と meg(メガ)である。なお,u はマイクロを表わす
        注意5 : 単位の V, A, Ohm, F, H, s, Hz は無視されるが,エラー防止に書いたほうが良い

(3)回路図をCIRファイルに変換する-2

        よく使われる素子

1|      R###    +端子     -端子     値(Ohm)             (抵抗)
2|      C###    +端子     -端子     値(F)               (容量)
3|      L###    +端子     -端子     値(H)               (インダクタ)
4|      D###    p端子     n端子     モデル名            (ダイオード)
5|      Q###    C端子     B端子     E端子     モデル名  (トランジスタ)
6|      J###    D端子     G端子     S端子     モデル名  (J-FET)                
7|      M###    D端子     G端子     S端子  Bulk端子  モデル名 (MOSFET)                

8|      V###    +端子     -端子     DC      値(V)             (直流電圧源)
9|      V###    +端子     -端子     AC      振幅(V)   [位相]  (交流電圧源)
10|     V###    +端子     -端子     sin(0V  141V    50Hz)     (交流電圧源 オフセット0V,振幅141V,f=50Hz)
11|     V###    +端子     -端子     pulse(0V 10V 1ms 2ms 4ms 6ms 20ms)
        (パルス電圧源=初期電圧0V, パルス電圧10V, 遅延時間1ms, 立上り2ms, 立下り4ms, パルス幅6ms, 周期20ms)
12|     I###    は電流源であり,記述はVと同様

13|     E###    +端子     -端子     +制御    -制御    ゲイン     (電圧制御電圧源)
14|     G###    +端子     -端子     +制御    -制御    トランスコンダクタンス (電圧制御電流源)
15|     F###    +端子     -端子     制御素子名        ゲイン     (電流制御電流源)
16|     H###    +端子     -端子     制御素子名        伝達抵抗   (電流制御電圧源)

        注意1 : ### 部は,数字やアルファベットを入れる。これにより他の素子との区別できる。


(4)回路解析方法の指定

1|      *                               (行頭の*は,その行がコメントであることを示す)
                        ;               (行中の ; 以降はコメントである)
2|      .model  Q1      NPN(xxx xx xx)  (デバイスパラメタの定義)
3|      .inc ファイル名                      (外部ファイルを(全て)読み込む)
4|      .lib ファイル名                      (ライブラリから(モデルやサブサーキットなど必要情報を)読み込む)
5|      .end                            (回路記述の終り)
6|      .op                                     (DCバイアスの計算)
7|      .dc     V1      -3      10      0.5     (DC解析。V1を,-3V〜10Vにわたって0.5Vづつ解析)
8|      .ac     dec     20      1k      10meg   (AC解析。1kHz〜10MHzを,10倍あたり20個所づつ解析)
9|      .tran   1ns     100ns   20ns    0.1ns   
                (過渡解析。プリント出力1nsごと,最終時間100ns,20nsはプリント出力しない,時間刻み0.1ns以内)

        注意1 : cirファイルの第1行目は,必ず * から始めるコメント行にする。
        注意2 : .ac の場合,回路内のAC電源は1つである。
        注意3 : .ac の場合, V ... sin,pluse は使えない。
        注意4 : .tran の場合,V...AC は使えない。

==================================

III     [NGSPICE の実行]

ここでは実行ファイルは c\ngspice\bin\ngspice.exe とする
また,は解析する回路のファイル名を I\ngspice_data\n21.cir とする。
なお,ファイル n21.cir は次の通り
Download
* circuit 21
.ac dec 20 0.1 100k
v1 1 0 dc 0 ac 1
r1 1 2 1k
c1 0 2 1u
.probe
.end
(a) ngspice の起動
手順1:c\ngspice\bin\ngspice.exe を起動する。
 (システムによっては,ウインドウズのスタートボタンからたどったり,ショートカットからたどれることもあります)

↓起動したところ


(b) ファイルの読み込み
手順2:次の図のように「file」メニューから「Open」を選びます。

手順3:I\ngspice_data\n21.cir を選びます。

読み込みが終了すると次のような画面になります。


(c) シミュレーションの実行
手順4:次の図のように「run」を実行させます。

成功すると,次のような画面になります。その際に音がピッと鳴ることがあります。

なお,実行に失敗すると何らかのメッセージが出ます。
(エラーの原因によってメッセージは異なります)


(d) グラフ表示
手順5:次の図のように「graph」を実行させます。

すると,次のように「どのデータを書くか」聞いてきます。
なお,ここで示された V(1) は,回路図の「1」で指定したノード(配線)の電圧を表わします。

もしも聞き方が次の図のようであって,当然聞かれるはずの V(1) や V(2) が無かったとしたら,
今までの手順のどこかで間違いがあったと言えます。

手順6:下の領域が記入する場所です。たとえば,次の図のように入力して「OK」を押します。
式を入力する際に例えば V(2) と入力したいなら,キーボードから打ち込んでも良いし,
左上の領域内の V(2) をクリックしても良いです。
なお,回路図からも分かるように,
V(1)-V(2) は, R1 に加わる電圧ですし,
V(2) (= V(2) - 0 ) は, C1 に加わる電圧です。
また,db( ) はデシベル計算をする関数です。

すると,次のようにグラフが表示されます。
縦軸はデシベルです。RC回路の周波数特性が見事に描かれました。

(e) グラフの印刷(お好みで)
手順7:図の様に,左上のボタンからメニューをたどると,印刷が可能です。
シミュレーションはたやすいですが,エコロジーを考えると,無駄な印刷は避けたいものです。

(f) グラフの削除
手順8:グラフのウインドウの右上にある[×]を押して,グラフを閉じます。
もしも改めてグラフを書こうとすると,次々に新しいグラフのウインドウが追加されるので,
(処理時間やメモリ領域の有効利用が考えるなら)不要なウインドウが直ぐに消したほうが良いです。
(この説明に対応する図は用意していません)

(g) 新たなグラフの作成
手順9:改めて 手順5〜手順6 を行えば,別のグラフを書くことができます。
例えば,式を改めて次の様にしてグラフを書き直しても良いです。
ここに示しましたように,掛け算(記号は *)など普通の数式が使えます。
また,グラフの項目数は2本に限らず,かなりの本数を同時に書かせることができます。
(複数のグラフを書くときの問題は,コンピュータの制限よりも,むしろ図が見難くなる事でしょう)

(h) 新たな条件の設定
手順10:次の図の操作をすると,テキストエディタが立ち上がります。
そうしたら,パラメタを変えることができます。(例えば抵抗値を10倍に変えるなど)
パラメタを変えたら,テキストエディタを終了します。
終了時には当然データをセーブします。

(i) (お好みで) 各部の電圧や電流の表示
手順11:上の図で,「EDIT source」を選ぶ代わりに「Print ALL」というコマンドを選ぶと,
各部の定常的な電圧を示します。
もしも V(2) の電圧だけで良いならば,キーボードから「print v(2) (enter)」と打ち込みます。
同様に,ある素子に流れている電流を知りたければ,キーボードから「show r1 (enter)」と打ち
込みます。


(k) 新しい条件での再計算
手順12:手順10で説明したテキストエディタの処理が終えたら,次の図の様に、「run circuit ?」
とPCが聞いてきますので,下の1行だけ用意されたウインドウで,キーボードから「run (enter)」
と打ち込みます。すると,再計算をしてくれます。
なお,「y (enter)」 でも,メニューの「Command」から「Yes and return」でも可能です。
これでちょうど手順4が終わったのと同等になります。あとは手順5から実施してください。

(l) 終了
手順13:「File」メニューから「Exit」を実行させます。
他の方法として,ウインドウの右上の[×]をクリックしたり,
「exit (return)」と入力しても終了できます。



==================================

IV	[NGSPICE 利用上の Tips]

'05.2.2からこのソフトを使い始めました。'05.2.2現在,ウラワザは殆ど知りませんが,
今後気が付いたら記載する予定です。

==================================


例題は,別ファイルに示します。