第3章 サブサーキットと素子ライブラリ

3.1 サブサーキットとマクロモデル

Spiceシミュレーションは、Qucsサブサーキットのすべての特徴をサポートします。ユーザは、NgspiceとXyceのどちらでもパラメータ化されたサブサーキットを使うことができます。サブサーキットに埋め込まれたQucsの式は、SPICEネットリストの.PARAMセクションに変換されます。式についての制約は、第4章で検討されています。サブサーキットの中にシミュレーション指示を埋め込むことはできません。

サブサーキットを持ったプロジェクト例を考えてみましょう。これは、HC-49/Uという8.86 MHzの水晶共振器のモデルです。水晶共振器は、RCL回路で表現できます。このプロジェクトは、2つの回路図から構成されます:quarz.schは、水晶共振器のサブサーキット、quarz_test.sch は、テスト回路です。

この例はexamples\ngspice\ 以下のディレクトリにあります。

図3.1に、水晶共振器のサブサーキットを示します。水晶共振器の動作原理は https://en.wikipedia.org/wiki/Crystal_oscillatorに簡単に書かれています。

Quarz_SUBCKT_EN

図3.1 水晶共振器の等価回路

水晶は、2つの共振周波数を持ったRCL回路で表現されます:

fs=12πLqCq
fp=12πLqCq1+CqCs

この式から、直列容量 Cq を得ることができます。

Cq=14π2f2sL2q

この式は、サブサーキットに置かれています。

さて、水晶共振器の振幅応答をシミュレーションしてみましょう。この目的のためには、AC simulation を実行する必要があります。図3.2は振幅応答の測定のためのテスト回路を示します。

Quarz_EN

図3.2 水晶共振器のテスト回路

シミュレーション終了後に、出力電圧(ac.v(out) 変数) または伝達係数K (変数 ac.k)をプロットすることができます。図3.3はNgspiceとXyce両方のシミュレーション結果を示しています。見ての通り、結果は一致しています。唯一の違いは、シミュレーション結果の後処理は、まだXyceには実装されていない点です。そのため、Xyceでプロットできるのは出力電圧だけです。グラフで、出力をデシベル表示するためには、Y軸にログスケールを使う必要があります。

Quarz_Sim_EN

図3.3 HC-49/U水晶結晶板の振幅応答

サブサーキットは、.SUBCKTルーチンに変換されています。テスト回路図(図3.2)に対するSpiceネットリストの例を以下に示します:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
* Qucs 0.0.19  /home/vvk/qucs/examples/ngspice/quarz_test.sch
* Qucs 0.0.19  /home/vvk/qucs/examples/ngspice/quarz.sch
.SUBCKT quarz _net0 _net1 f=8863k Lq=0.01406 Cs=6.5p 
.PARAM Cq={1/(4*3.1415926539^2*f^2*Lq)}
R1 _net0 _net1  50MEG
C2 _net0 _net1  {CS} 
R2 _net2 _net1  2
L1 _net3 _net2  {LQ} 
C1 _net0 _net3  {CQ} 
.ENDS
R1 out 0  1
V1 _net0 0 DC 0 SIN(0 1 1G 0 0) AC 1
R2 _net0 in  50
XSUB1  in out quarz f=8863K Lq=0.01406 Cs=6.5P
.control
set filetype=ascii
AC LIN 400 8800K 9000K 
let K=dB(V(out)/V(in))
write quarz_test_ac.txt v(in) v(out)  K
destroy all
exit
.endc
.END

3.2 部品と回路のライブラリ

ライブラリ部品は、spice4qucsサブシステムでサポートされています。ユーザは、ライブラリ部品をすべて使用することができます。いくつかのライブラリには、もともとの部品のSPICEコードが埋め込まれています。これらのライブラリには、Qucsの回路図で最高のSpiceシミュレーション結果が得られたものを保管すべきでしょう。ライブラリ部品(MOSFETS ライブラリのIRFZ44 MOSFET)の使用例は、examples/ngspice/irfz44_switch.schにあります。

3.3 製造者の部品データライブラリを使うには

電子部品の製造者がデータシートにSPICEモデルを提供することはよくあります。SPICE netlist部品を使って、これらデータシートのSPICEモデルを貼り付けることができます。部品データベースのSPICEモデルを使うには、以下のステップを実行する必要があります。Spice netlist builderを使えば、余計な変換なしにSPICEモデルを出力のネットリストに置き換えることができます。

1. Spiceネットリストのテキストを切り出し、テキストファイルとして保存します。このファイルではどういう拡張子を使っても構いません。好ましいのは、**.ckt* , **.cir*, **.sp*です。

2. 回路図に、SPICE netlist部品を配置し、標準のSPICE component propertiesダイアログを使って、SPICEネットリストのノードを部品のポートに入れます。

3. 回路図をNgspice/Xyceを使ってシミュレーションします。

SPICEネットリスト部品を、.END文を使って終了することのないよう、くれぐれも注意してください。そうしないと、シミュレータは.SUBCKT ルーチンを読み込むと終了してしまい、シミュレーションが実行されません。

SPICEモデルの使用例 (LM358 opamp) を図3.4に示します。

LM358_EN

図3.4 LM358オペアンプのNgspiceを使ったACシミュレーション

これが、LM358のSPICEモデルのネットリストです。モデルは、LM358のデータシートを見てください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
* from http://www.ti.com/lit/zip/sloj045
* LM358 OPERATIONAL AMPLIFIER "MACROMODEL" SUBCIRCUIT
* CREATED USING PARTS RELEASE 4.01 ON 09/08/89 AT 10:54
* (REV N/A)      SUPPLY VOLTAGE: +/-5V
* CONNECTIONS:   NON-INVERTING INPUT
*                | INVERTING INPUT
*                | | POSITIVE POWER SUPPLY
*                | | | NEGATIVE POWER SUPPLY
*                | | | | OUTPUT
*                | | | | |
.SUBCKT LM358    1 2 3 4 5
*
C1   11 12 5.544E-12
C2    6  7 20.00E-12
DC    5 53 DX
DE   54  5 DX
DLP  90 91 DX
DLN  92 90 DX
DP    4  3 DX
EGND 99  0 POLY(2) (3,0) (4,0) 0 .5 .5
FB    7 99 POLY(5) VB VC VE VLP VLN 0 15.91E6 -20E6 20E6 20E6 -20E6
GA    6  0 11 12 125.7E-6
GCM   0  6 10 99 7.067E-9
IEE   3 10 DC 10.04E-6
HLIM 90  0 VLIM 1K
Q1   11  2 13 QX
Q2   12  1 14 QX
R2    6  9 100.0E3
RC1   4 11 7.957E3
RC2   4 12 7.957E3
RE1  13 10 2.773E3
RE2  14 10 2.773E3
REE  10 99 19.92E6
RO1   8  5 50
RO2   7 99 50
RP    3  4 30.31E3
VB    9  0 DC 0
VC 3 53 DC 2.100
VE   54  4 DC .6
VLIM  7  8 DC 0
VLP  91  0 DC 40
VLN   0 92 DC 40
.MODEL DX D(IS=800.0E-18)
.MODEL QX PNP(IS=800.0E-18 BF=250)
.ENDS
.

back to the top

Comments