LastUPDATE '08.11.27(シミュレーションに関して説明を追加); UPDATE '07.1.11(リサージュについて追加。別の定数の回路を提示); UPDATE '06.11.29(容量値の変化について追加); New '06.11.13(新たに作成する)

結果を詳しく検討するには,CIRファイルから回路図を再現してください
TDO とは、Tunnel Diode Oscillator の略です。


TDO のシミュレーションのための基礎と実際

ファイル ' na101.cir ' の中身。 Download
* circuit a101
* Check NonLinear
.DC V1 -2.2 2.2 0.02
V1  1  0  6 
R1  1  2  1k  
R2  0  2  1k  
R3  3  0  1k
E1 3 0 poly(1) (2,0) 0 0 0 1
.probe
.END
回路 na101 は,ngspice において「非線形特性が実現できる」ことを体験する教材である。


回路 na101 をシミュレーションするための操作
(1) ngspice の起動
(2) 「file」>「open」から na101.cir を開く
(3) 「file」>「run」 コマンドによるシミュレーションの実行
(4) 「Graph」>「Select Vector」コマンドを選ぶ
--->すると,表示すべき電圧を聞いてくる。
(5) v(1) v(2) v(3) と打ち込む
(6) (お好みで)「Command」>「Edit source」から編集すればパラメタを変えられる。


DC解析は,直流電圧を変えたときの出力を見ることである。

ここで,R2 に加わる電圧を,E1 という「電圧制御電圧源」によって,R3 に加わる電圧に変換する。
その際に,POLY オプションを使うことによって,非線形性を実現している。

---課題:
E1 3 0 poly(1) (2,0) 0 0 0 1  ← これは(2,0)の端子間電圧を3乗して3,0 の端子間電圧にする。
E1 3 0 poly(1) (2,0) 0 0 1 0  ← これは2乗特性。
E1 3 0 poly(1) (2,0) 0 5 0 0  ← これは比例特性。  
E1 3 0 poly(1) (2,0) 5 0 0 0  ← これは0乗特性(=定数)

注意:課題の3行目(比例)は,次の3行のいずれとも同じである。
E1 3 0 poly(1) (2,0) 0 5 0
E1 3 0 poly(1) (2,0) 0 5
E1 3 0 2 0 5

注意:4行目(定数)は,次の行と同一である。
注意:課題の4行目(比例)は,次の4行のいずれとも同じである。
E1 3 0 poly(1) (2,0) 5 0 0
E1 3 0 poly(1) (2,0) 5 0
E1 3 0 poly(1) (2,0) 5
V1 3 0 DC 5
ファイル ' na102.cir ' の中身。 Download
* circuit a102
* make Esaki Diode Simulator
.DC V1 -0.1 0.6 0.02
V1 1  0  6 
E1 3  0  0  10 10000   
R1 10 3  1k  
G1 1  10 poly(1) (1,10) 0 0.063 -0.27 0.3
.probe
.END
回路 na102 は,G を用いることで江崎ダイオードの特性を代替できることを確認する教材である。
なお,G とは電圧制御電流源をシミュレーションする素子のことである。
江崎ダイオードの電圧電流特性の例を次に上げる。
回路 na102 内の G1 という素子が,この電圧電流特性を実現している。
この回路は,素子E1(電圧制御電圧源)が,ちょうど演算増幅器として働き,
ノード「10」が仮想接地点となり,素子 G1 と抵抗 R1 には同じ電流が流れる。
したがって,R1の両端に現われる電圧を見ると,G1 に流れる電流値が推察できる。

回路 na102 をシミュレーションするための操作
(1) ngspice の起動
(2) 「file」>「open」から na102.cir を開く
(3) 「file」>「run」 コマンドによるシミュレーションの実行
(4) 「Graph」>「Select Vector」コマンドを選ぶ
--->すると,表示すべき電圧を聞いてくる。
(5) v(1)-v(10)  v(10)-v(3) と打ち込む
(6) (お好みで)「Command」>「Edit source」から編集すればパラメタを変えられる。

注意:v(1)-v(10) とは,素子 G1 に加わる電圧
注意:v(10)-v(3) とは,抵抗 R1 に加わる電圧であるが,この値は,R1 に流れる電流に比例し,
その電流はそのまま素子 G1 に流れる。従って,v(10)-v(3) は素子 G1 に流れる電流とみて良い。
ファイル ' na103.cir ' の中身。 Download  
* circuit a103
* Esaki Diode Oscillator (Idea - HAMAYA,  Simulation - MOCHIZUKI)
.tran 1n 100u 0
.ic  V(1)=0.25
V1 10 0 0.30
Rp 2  10  4.5  
L1 1  2 0.14mH
C1 1  0 120nF
G1 1  0 poly(1) (1,0) 0 0.063 -0.27 0.3
.probe
.END

ファイル ' na103b.cir ' の中身。 Download
(こちらの定数は,E4の学生実験と全く同一です)

* circuit a103b
* Esaki Diode Oscillator (Idea - HAMAYA,  Simulation - MOCHIZUKI)
.tran 0.25u 100u 0
.ic  V(1)=0.25
V1 10 0 0.30
Rp 2  10  4.5  
L1 1  2 0.47mH
C1 1  0 120nF
G1 1  0 poly(1) (1,0) 0 0.063 -0.27 0.3
.probe
.END
回路 na103 または na103b をシミュレーションするための操作
(1) ngspice の起動
(2) 「file」>「open」から na103.cir または na103b.cir を開く
(3) 「file」>「run」 コマンドによるシミュレーションの実行
(4) 「Graph」>「Select Vector」コマンドを選ぶ
--->すると,表示すべき電圧を聞いてくる。
(5) (v(10)-v(2))/4.5   v(1) と打ち込む
注意1:v(1) とは,エサキダイオードに加わる電位差のことである。
注意2:v(10)-v(2) とは,Rp の両端の電位差のことである。
注意3:(v(10)-v(2))/4.5  とは,Rp が 4.5Ω の時の,Rpに流れる電流のことである。
注意4:(v(10)-v(2))/4.5  がグラフ上で小さすぎるなら,例えば (v(10)-v(2))/0.45 により10倍に広げられる。
(6) (お好みで)「Command」>「Edit source」から編集すればパラメタを変えられる。
注意5:抵抗値を変えたなら,(v(10)-v(2))/rrr  の,rrrの部分も変更する。

(7) 「Graph」>「Select Vector」コマンドを選ぶ
--->すると,表示すべき電圧を聞いてくる。
(8) (v(10)-v(2))/4.5  vs v(1) と打ち込む 
注意6: vs というのはリサージュ図を描くためのコマンド
        リサージュ図形を書く場合,vs の左に1個以上,右に1個のパラメタが必要である。
注意7:抵抗値を変えたなら,(v(10)-v(2))/rrr  の,rrrの部分も変更する。

.ic というコマンドは,強制的に初期条件を設定するもの。発振を始めるには必須。

---課題:
・容量 C1 を減らしたときの波形の変化を見よう
・コイル L1 を減らしたときの波形の変化を見よう
・電圧 V1 を変えたときの周期とデューティー比について調べよう。また,発振しない条件は?
・抵抗 Rp をどこまで大きくすると,発振が止むだろう?

参考:E4学生実験「負性抵抗発振回路の特性」



コンデンサと制御電源を組み合わせることで、単体のコンデンサとは異なる容量を実現する

ファイル ' na106.cir ' の中身。 Download
* circuit a106
* Check NonLinear Capacitor
.tran 100n 6m 0
V1 11  0   sin(0 1.0V 500)
R1 11  1   1k
C1  1  0   1uF
R2 11  2   1k
C2  2 12  10nF
E2  0 12   2   0  100
R3 11  3   1k
C3  3 13  10nF
E3  0 13  poly(1) (3,0) 0 89 0 90
.probe
.END
これは spice にて「コンデンサ等でも非線形特性が実現できる」ことを理解する教材である。


回路 na106 をシミュレーションするための操作
(1) ngspice の起動
(2) 「file」>「open」から na106.cir を開く
(3) 「file」>「run」 コマンドによるシミュレーションの実行
(4) 「Graph」>「Select Vector」コマンドを選ぶ
--->すると,表示すべき電圧を聞いてくる。
(5) v(1) v(2) v(3) と打ち込む
(6) (お好みで)「Command」>「Edit source」から編集すればパラメタを変えられる。

(課題)V1 の振幅を,0.3[V], 1.0[V],3.0[V] と変更したときの応答を見てみよう。

この回路は,ひとつの電源V1と,
R1とC1からなる分路1と,
R2とC2と制御電源E2からなる分路2と,
R3とC3と制御電源E3からなる分路3
から出来ている。

抵抗は,R1=R2=R3=1kΩである。
容量は,V1の振幅が1[V]のときに,どれも1μF として働くように,定数を調整してある。

分路1は,まさに文字通りのRC回路であり,特に解説は不要であろう。

分路2は,使われている容量は10nFであるが,制御電源をつかった「ミラー効果」によって
等価的な容量値を100倍(= 1+A 倍)にしている。
今回の課題では,どの条件のときも,分路1と同じ結果が得られるはずである。

分路3は,ミラー効果を利用して等価的な容量値を増やしているが,制御電源に非線形性を
含めたために,等価的な容量も非線形性を持っている。
従って,
・V1の振幅が0.3[V]のときは,等価的な容量値がC1よりも小さいため,V(3}はV(1)より大きい,
・V1の振幅が1.0[V]のときは,等価的な容量値がC1とほぼ同じになるため,V(3}はV(1)とほぼ同じ,
・V1の振幅が3.0[V]のときは,等価的な容量値がC1よりも大きいため,V(3}はV(1)より小さい,
という結果が得られる。