Spiceコンポーネントを使った回路設計

チュートリアルレベル:中級Spiceコンポーネントを使用したバンドパスフィルターの回路設計方法について説明します。

重要: Available only with Twin Activate commercial edition.

このチュートリアルのファイル

aop.lib; Band pass filter.scm, Filter.scm; opnon.cir*

チュートリアルで構築するモデルの完成版と、チュートリアルを完了するために必要なすべてのファイルは、デモブラウザ:Tutorial Models > Integration and Collaboration > Designing a circuit with Spice componentsから入手できます。または、以下の場所から入手できます:<installation_directory>/Tutorial Models/Integration and Collaboration/Designing a circuit with Spice components
*opnon.cirは、eCircuit Center http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel2.htmの許可を得て提供する非反転増幅回路モデルです。ファイルをダウンロードする代わりに、チュートリアルのステップで必要な以下のコードをコピーすることができます。
OPNON.CIR - OPAMP NON-INVERTING AMPLIFIER
*
VS      1       0      AC      1      PWL(0US 0V  0.1US 1V)
*
R1      2       0      10K
R2      2       4      10K
XOP     1 2     4      OPAMP1	
*
* OPAMP MACRO MODEL, SINGLE-POLE 
* connections:      non-inverting input
*                   |   inverting input
*                   |   |   output
*                   |   |   |
.SUBCKT OPAMP1      1   2   6
* INPUT IMPEDANCE
RIN      1      2      10MEG
* DC GAIN (100K) AND POLE 1 (10HZ)
EGAIN    3 0    1 2    100K
RP1      3      4      1K
CP1      4      0      15.915UF
* OUTPUT BUFFER AND RESISTANCE
EBUFFER  5 0    4 0    1
ROUT     5      6      10
.ENDS
*
* ANALYSIS
.TRAN    0.1US  10US
*.AC     DEC     5 1K 10MEG
*
* VIEW RESULTS
.PROBE
.END

Spice回路モデルの概要

このチュートリアルでは、HyperSpiceパレットにあるブロックを使って回路を構成します。



SpiceCustomblockを使ったモデルの作成

SpiceCustomblockとScopeブロックをモデルに追加します。

  1. 新しいモデルを作成し、Filter.scmというファイル名で保存します。
  2. パレットブラウザ > Activate > CustomBlocksから、 SpiceCustomBlockを1つダイアグラムにドラッグしてダブルクリックします。
  3. パラメータタブで、SPICEネットリストボタンを選択します。


    Spice Netlist Editorが表示されます。
  4. opnon.cirファイルからコードをコピーし、Spice Netlist Editorにペーストします。


  5. OKをクリックします。
  6. Parametersタブから、Selected voltage outputsを定義するためのボタンを選択します。
    Select voltage output portsダイアログが開きます。
  7. Available Channelsの一覧から、4をダブルクリックします。
  8. OKをクリックします。
    注: 入力したSpiceネットリストにはすでに必要なデータが定義されているため、入力を定義する必要はありません。
  9. パレットブラウザから、Activate > SignalViewersを選択します。
  10. Scopeブロックを1つダイアグラムにドラッグして、SpiceCustomBlockの出力に接続します。


    モデルのこの部分の実行とテストの準備が整いました。
  11. 実行ツールから、設定(Setup) を選択します。
  12. Simulation Timeタブを選択します。
  13. 最終時間に10e-5秒と入力します。
  14. 実行をクリックします。
    モデル内のScopeブロックをダブルクリックします。プロットは次の図のようになります。

ModelicaモデルからSpiceモデルを作成

HyperSpiceのパレットからコンポーネントを用いて回路を作成します。提供されているModelicaの例に基づいて、モデルを作成します。

  1. デモブラウザから、BandPassFilter.scmを選択します。
    Modelicaのブロックから構築されたBPFモデルが表示されます。


  2. Filter.scmモデルから始めて、HyperSpiceパレットのブロックを使用して、Spice版の回路モデルを構築します。


    モデルに作成するコンポーネント Spiceのパレットから挿入するブロック
    電圧と電流刺激 Voltage Constant; Voltage Pulse; Voltage SIN
    線形コンポーネント Resistor; Capacitor; Inductor
    電圧と電流定数ソース モデルに必要なブロックを挿入します。
    半導体部品 Diode; BJTNPN; BJTPNP; Mos1N; Mos1P; Mos2P; Mos2N; Mos3N; Mos3P
    サブ回路 モデルに必要なブロックを挿入します。
    ケーブルまたはSパラメータ関数 モデルに必要なブロックを挿入します。
    ブロックの定義については、拡張定義を参照してください。

Spiceモデルの完成

モデルにxinstブロックを追加し、Spice .libファイルからブロックを参照します。

  1. パレットブラウザ > Spice > Analog > Basicを選択し、xinstブロックを1つ、現在のダイアグラムにドラッグします。
  2. 使用しているテキストエディターで、以下のコードを記述したテキストファイルを作成し、aop.libという名前で保存します。
    .subckt opampideal 2 1 3
    G1 0 3 2 1 100000000
    R3 3 0 1
    C3 3 0 636e-6
    .ENDS
    注: このチュートリアルの例では、aop.libファイルが.subckt(サブ回路) 記述を通してモデル内の xinst ブロックを参照しています。また、.model記述でブロックを参照することも可能です。
  3. モデル内でxinstブロックをダブルクリックし、以下のように定義します。
    パラメータ 入力値
    インスタンスモデル名またはsubcktインスタンス名 opampideal
    入力ポート番号 2
    出力ポート番号 1
    残りのパラメーターはデフォルトのままにします。
  4. OKをクリックします。
  5. パレットブラウザ > Spice > Analog > Basicを選択し、includeブロックを現在のダイアグラムにドラッグし、ブロックをダブルクリックします。
    includeブロックは、ダイアグラム内に存在する必要がありますが、ダイアグラム内のブロックとの接続は必要ありません。
  6. File name to includeにはaop.libと入力してください。残りのパラメーターはデフォルトのままにします。
  7. オペアンプが3つ必要なので、includeブロックも3つ必要です。現在のincludeブロックを複製するには、それを選択し、Ctrl+Dを2回押してください。
    最終モデルは次の図のようになります。


ダイアグラムのシミュレーション

  1. 実行ツールから、設定(Setup) を選択します。
  2. Simulation Timeタブを選択します。
  3. 最終時間に10秒と入力します。

    モデルの準備ができました。

  4. 実行をクリックします。
    過渡結果を表示するには、モデル内のScopeブロックをダブルクリックします。プロットは次の図のようになります。