LastUPDATE '09.5.12(誤字脱字を修正した。周波数軸の特性の解析について解説を増やした) ; UPDATE '09.5.11(公開できるレベルになった) ; New '09.5.9(新たに作成する)

回路図のない回路について,結果を詳しく検討するには,CIRファイルから回路図を再現してください


2009-E4 PBL Relaxation Oscilator
オペアンプピン配置
テスト回路。2009年4月の実測では446.3Hz
回路図
原理解説用回路図
時間軸で解析(オシロスコープを使った測定のような解析)
※弛張発振回路の解析は,時間軸の解析のみであり,周波数軸の解析は無意味です。
ファイル ' ng2009rt.cir ' の中身。 Download
シミュレーションの手順:
前提:使い方の基本は「'06.2.2 NGSPICE の使い方」を参照してください。

  1. <まず,サーキットファイル(回路図の情報が記載された,NG-Spice用のファイル)をダウンロードします。手順は 1.以降の通りです。>
    ここから6行ほど上の,「ファイル ' ng2009rt.cir ' の中身。Download」 という行の,「Download」というところにマウスカーソルを合わせます。
  2. マウスの右ボタンを押すとダイアログが現れます。
  3. 現れたダイアログの中から「対象をファイルに保存...」を選択します。
  4. そのファイルを z:\ ドライブに保存します。(ファイル名は ng2009rt.cir のハズです)

  5. <続いて,NG-Spiceでシミュレーションをします>
    NG-Spiceを起動します。作業領域は z:\ とします。(詳細は「'06.2.2 NGSPICE の使い方」参照のこと)
  6. NG-Spiceのメニューバーの「File」メニューから,「Open...」を指定します。
  7. 手順 4. で保存した ng2009rt.cir を選び,そのダイアログ内の「開く」ボタンを押します。
    これで,NG-Spiceは回路 ng2009rt.cir を読み込みました。
  8. NG-Spiceのメニューバーの「File」メニューから,「Run」を指定します。これによって,シミュレーションを実行します。

  9. <続いて,V(1) V(2) V(3) の波形をグラフにします>
    NG-Spiceのメニューバーの「Graph」メニューから,「Select Vector...」を指定します。すると,Ngspice Graph Editor という名前のダイアログが表れます。
  10. 確認します。Ngspice Graph Editor ダイアログの下の欄に,V(1) V(2) V(3) が現れていないでしょうか? 立ち上げて初めてこのダイアログを見た時には現われていないハズですから,手順 11.以降に従いましょう。もしも現われていたら,手順 14.に進みます。
  11. ダイヤログ内の左側にある V(1) をクリックします。すると,ダイヤログの下のほうに V(1) という表示が表れます。
  12. 続いて,ダイヤログ内の V(2) をクリックします。すると,ダイヤログの下のほうの,先ほど V(1) と表示された隣に,1文字ぶん空白を挟んで V(2) という表示が表れます。
  13. 更に続いて,ダイヤログ内の V(3) をクリックします。すると,ダイヤログの下のほうの,先ほど V(1) V(2) と表示された隣に,1文字ぶん空白を挟んで V(3) という表示が表れます。
    以上の 11.〜 13.の操作で,Ngspice Graph Editor ダイアログの下の欄に,V(1) V(2) V(3) が現れたハズです。
  14. Ngspice Graph Editor ダイアログの右上の「OK」ボタンを押します。
  15. 確認します。新しいウインドウが開き,V(1) と V(2) と V(3) がグラフ表示されたハズです。

  16. <定数(つまり,抵抗やコンデンサの値)を変更します>
    NG-Spiceのメニューバーの「Command」メニューから,「EDIT Source」を指定します。すると,Windows内蔵の「メモ帳」という名前のエディタが起動し,ng2009rt.cir の中身を編集できるようになります。
    ここでは,容量 C1 の値が,もともと 0.010uF だったところ,2倍の,0.020uF に変更してみましょう。
  17. エディタ(メモ帳)を終了しましょう。エディタ(メモ帳)のウインドウの右上にある「×」ボタンを押せば終了できます。
  18. 確認します。NG-Spiceのウインドウの下のほうに,「run circuit?」と現れたハズです。
  19. 一度「Enter」キーを押します。(この操作は,ちょうど手順(7)と同じく,シミュレーションを実行させます。)
  20. 以下,続けたければ手順 9.に戻ります。終了したければ,手順 21.に進みます。

  21. <NG-Spiceの終了>
    NG-Spiceのメニューバーの「File」メニューから,「Exit」を指定すれば,終了できます。 

  22. <改めて再編する>
    もう一度シミュレーションをする際に,前回の編集を引き継ぎたいなら,手順 5.から実施します。
    もう一度シミュレーションをする際に,最初から実施したいなら,手順 1.から実施します。
シミュレーション時に注意すること
  • 今回使用したオペアンプは5V電源で使うものと決められていますので,それ以外の電圧では使えません。電圧を変えた解析は,オペアンプの内部構造まで踏み込んだ編集が必要です。
  • 2009年度のPBLでは発振周波数が問題になります。
    出力電圧は方形波になっているはずです。まずは1周期の時間を求めましょう。電卓で「1/<1周期の時間>」を計算すれば,周波数に変換できます。
  • 各素子の値を変更して,波形がどう変化するか観察してみよう。
    例えば,コンデンサC1を2倍にすると,どうなるでしょう?
    このように考えながら,各素子の発振への関わりをみて行ったら良いと思います。


2009-E4 PBL Wien Bridge Oscilator
オペアンプピン配置
テスト回路。2009年4月の実測では169.5Hz
回路図
原理解説用回路図
時間軸で解析(オシロスコープを使った測定のような解析)
ファイル ' ng2009wt.cir ' の中身。 Download
時間軸解析の NG-Spice の操作方法は,弛張発振回路の操作方法に倣ってください。

時間軸のシミュレーション時に注意すること
  • 時間軸解析の際は,NG-Spiceでは回路は「回路図」の通りとして扱います。「原理解説用回路図」でも,演算増幅器(オペアンプ)の出力は直接コンデンサに接続されています。つまり,「原理開設用回路図」の中の青い破線は無視してください。
  • 今回使用したオペアンプは5V電源で使うものと決められていますので,それ以外の電圧では使えません。電圧を変えた解析は,オペアンプの内部構造まで踏み込んだ編集が必要です。
  • 2009年度のPBLでは発振周波数が問題になります。
    出力電圧は方形波になっているはずです。まずは1周期の時間を求めましょう。電卓で「1/<1周期の時間>」を計算すれば,周波数に変換できます。
  • 各素子の値を変更して,波形がどう変化するか観察してみよう。
    例えば,コンデンサC1を2倍にすると,どうなるでしょう?
    このように考えながら,各素子の発振への関わりをみて行ったら良いと思います。
周波数軸で解析(スペクトルアナライザを使った測定のような解析)
ファイル ' ng2009wf.cir ' の中身。 Download
シミュレーションの手順:
前提:使い方の基本は「'06.2.2 NGSPICE の使い方」を参照してください。

周波数軸のシミュレーション時に注意すること(1/2)
  • 周波数軸解析の際は,NG-Spiceでは回路は,「原理解説用回路図」に示された青色の破線で配線が切断されているものと考えます。
  • 発振回路というものは,回路内で信号がぐるっと一周回るような構成になっています。この回路でも,ノード番号33を起点に確認してみましょう。(33と3は本来は同じ配線ですが,わかりやすさを考えてあえて別物として説明します。) ノード番号33の信号は,コンデンサ等を通ってオペアンプの入力部(ノード番号1)に伝わり,オペアンプで増幅されてノード番号3に戻ります。つまり,ノード番号33から始まりノード番号3に戻ります。
    ループ利得は,<ノード番号3の電圧>/<ノード番号33の電圧> と定義されています。
  • 発振の理論によると,次の条件が満たされます。
    「発振条件とは,ループ利得の位相を 0 度 の遅れ(進み)となる周波数において,ループ利得の大きさが 1 以上になる」
  • ng2009wf.cir では,交流電圧源 V1 が ノード33 に対して交流信号を与えています。周波数解析では,回路を示すファイル内では交流信号源が1つ存在します。

周波数軸のシミュレーションを行う手順
  1. <まず,サーキットファイル(回路図の情報が記載された,NG-Spice用のファイル)をダウンロードします。手順は 1.以降の通りです。>
    ここから6行ほど上の,「ファイル ' ng2009wf.cir ' の中身。Download」 という行の,「Download」というところにマウスカーソルを合わせます。
  2. マウスの右ボタンを押すとダイアログが現れます。
  3. 現れたダイアログの中から「対象をファイルに保存...」を選択します。
  4. そのファイルを z:\ ドライブに保存します。(ファイル名は ng2009wf.cir のハズです)

  5. <続いて,NG-Spiceでシミュレーションをします>
    NG-Spiceを起動します。作業領域は z:\ とします。(詳細は「'06.2.2 NGSPICE の使い方」参照のこと)
  6. NG-Spiceのメニューバーの「File」メニューから,「Open...」を指定します。
  7. 手順 4. で保存した ng2009wf.cir を選び,そのダイアログ内の「開く」ボタンを押します。
    これで,NG-Spiceは回路 ng2009wf.cir を読み込みました。
  8. NG-Spiceのメニューバーの「File」メニューから,「Run」を指定します。これによって,シミュレーションを実行します。

  9. <続いて,ループ利得 V(3)/V(33) の特性をグラフにします>
    NG-Spiceのメニューバーの「Graph」メニューから,「Select Vector...」を指定します。すると,Ngspice Graph Editor という名前のダイアログが表れます。
  10. 確認します。Ngspice Graph Editor ダイアログの下の欄に,phase(V(3)/V(33)) db(V(3)/V(33)) が現れていないでしょうか? 立ち上げて初めてこのダイアログを見た時には現われていないハズですから,手順 11.以降に従いましょう。もしも現われていたら,手順 12.に進みます。
  11. ダイヤログ内の下の欄で,phase(V(3)/V(33)) db(V(3)/V(33)) とタイピングします。なお,V(3)V(33) とタイピングする代わりに,ダイアログの左側にある V(3)V(33) とクリックしてもいいでしょう。
  12. Ngspice Graph Editor ダイアログの右上の「OK」ボタンを押します。
  13. 確認します。新しいウインドウが開き,V(3)/V(33) の位相(phase)に関するグラフと V(3)/V(33) の利得をデシベル(dB)表記したグラフが表示されたハズです。
    なお,位相は度で表現されています。位相が90とは,π/2 ラジアンということです。
    また,利得はデシベル表記されています。0 デシベルは 1倍,20デシベルは 10倍,-20デシベルは 0.1倍を表します。
    更に確認しましょう
    今回の波形が「発振を確認できる特性なのか」考察しましょう。
    ダウンロードした回路ファイルの特性を見ます。初めに位相のグラフから位相を 0 にする周波数を探します。見つかりました! それは 160Hz付近です。続いて利得特性に注目しましょう。発振する回路ならば,160Hz(つまり,位相が 0 になった周波数)において,利得が 1 倍(つまり 0 デシベル)と等しいかまたは僅かに大きな値になるはずです。利得のグラフでは,僅かに 0 デシベル(つまり 1 倍)を超えています。従って,位相も利得も共に条件を満たすことが分かります。この回路は発振することがわかります。
    同じ定数で臨んだ時間軸でのシミュレーション(つまり,ng2009wt.cir を使った計算)では,発振波形が見られていたのですが,今回のシミュレーションによって,周波数特性からも発振が確認できたというわけです。


  14. <定数(つまり,抵抗やコンデンサの値)を変更します>
    NG-Spiceのメニューバーの「Command」メニューから,「EDIT Source」を指定します。すると,Windows内蔵の「メモ帳」という名前のエディタが起動し,ng2009wf.cir の中身を編集できるようになります。
    ここでは,容量 C1とC2 の値それぞれが,もともと 0.010uF だったところ,どちらも2倍の,0.020uF に変更してみましょう。
  15. エディタ(メモ帳)を終了しましょう。エディタ(メモ帳)のウインドウの右上にある「×」ボタンを押せば終了できます。
  16. 確認します。NG-Spiceのウインドウの下のほうに,「run circuit?」と現れたハズです。
  17. 一度「Enter」キーを押します。(この操作は,ちょうど手順(7)と同じく,シミュレーションを実行させます。)
  18. 以下,続けたければ手順 9.に戻ります。終了したければ,手順 19.に進みます。

  19. <NG-Spiceの終了>
    NG-Spiceのメニューバーの「File」メニューから,「Exit」を指定すれば,終了できます。 

  20. <改めて再編する>
    もう一度シミュレーションをする際に,前回の編集を引き継ぎたいなら,手順 5.から実施します。
    もう一度シミュレーションをする際に,最初から実施したいなら,手順 1.から実施します。

周波数軸のシミュレーション時に注意すること(2/2)
  • 改めて回路図について注意します。
    周波数軸解析の際は,NG-Spiceでは回路は,「原理解説用回路図」に示された青色の破線で配線が切断されているものと考えます。
  • 今回使用したオペアンプは5V電源で使うものと決められていますので,それ以外の電圧では使えません。電圧を変えた解析は,オペアンプの内部構造まで踏み込んだ編集が必要です。
  • 2009年度のPBLでは発振周波数が問題になります。
    出力電圧は方形波になっているはずです。まずは1周期の時間を求めましょう。電卓で「1/<1周期の時間>」を計算すれば,周波数に変換できます。
  • 上記手順では,ノード33を始点として,ノード3に対してどのように信号が伝達するかシミュレーションしました。
    それでは,同じくノード33を始点として,ノード2や,ノード1や,ノード11 に対してはどのように信号が伝達するでしょうか,シミュレーションしてみましょう。
  • 今回の回路ファイル(ng2009wf.cir)では,V1 は振幅 1V の電圧をノード 33 に与えています。この条件のもとでは,例えばV(3)について言えば,V(3)/V(33) = V(3) が成り立ちます。
    この式が成り立つ理由は,V(33) の大きさが 1 のためです。そのおかげで,V(33) で割り算をしても値は変わりません。その結果,V(33) による割り算は不要になりました。
    こうした簡単な数式が成り立つのは,交流信号の電圧が 1V という特別な条件のお陰です。交流信号の電圧を 1V にすること,シミュレーション時の数式入力を単純にする裏ワザとして,NG-Spice では広く使われています。
  • 各素子の値を変更して,波形がどう変化するか観察してみよう。
    例えば,コンデンサC1とC2のどちらも2倍にすると,どうなるでしょう?
    このように考えながら,各素子の発振への関わりをみて行ったら良いと思います。