ビギナーのための回路シミュレータ(SPICE)の使い方講座 > 回路ファイル集

   コピーして試すことができる回路ファイル集です。TopSpice 8 シミュレータ(Demo版または製品版)をインストールしてお試しください。

   今回全ファイル見直し更新しておりますが、動作が再現しないなど、疑問や問題点がありましたらご遠慮なく弊社まで
   お問い合わせください。 (2012-03-14) 


TopSpice回路図ファイル
概     要
注)ダウンロードしたファイルは、パスに日本語(全角文字)が入らない場所に置いて、TopSpice 8シミュレータから実行してください。フォルダ名に日本語を使用すると誤動作の原因となります。
  例) C\Users\****\Documents\TopSpice Demo\Circuits\
注)TopSpice 8回路図ファイル以外に必要なファイルがない場合は、圧縮しないまま提供しています(*.sch)。
注)zip圧縮ファイルの場合は、解凍して回路図ファイル(*.sch)と補助ファイル(*.MIS)その他を同一フォルダに入れて下さい。*.MISファイルには、デバイスモデルやシミュレータ・コマンドが記述されています。
その他のファイルが含まれている場合も、リンクを特別に設定しない場合は、同一フォルダに入れて実行して下さい。
リサジュー図形
Lissajous_Figure.sch
リサジュー(リサージュ)図形を表示します。周波数f1,f2[Hz]や位相ph[degree]を変えて、いろいろな図形をお試し下さい。f1,f2は回路図上の.PARAMコマンドを直接、phはParametric Stepの値を変えて下さい。
X軸,Y軸への入力波形の式は、各々x=sin(360*f1*TIME),y=sin(360*f2*TIME+ph)です。
元の波形は、Simulation->Setup->AutoPlot->Next/PreviousでEnable probe setup #2,#3にチェックをし、#1のチェックを外すと見ることができます。
ドミソ和音発生回路
C_chord.sch
新しく追加になったAudio機能を使って、*.wavファイルの音を作成して聞いてみましょう。信号源は正弦波を使っています。音色をよくするために周波数が2倍の倍音を重ねています。
音の聴き方は、TopViewで波形を表示させ、Tools->Play Audio->Plot Traceです。Demo版でも動かせるように解析時間、分解ステップ数を抑えて、全体のデータ数を少なくしてあります。
ROM駆動回路
ROM_DAC.zip
アナデジ混在シミュレータの特性を生かしたサンプル回路です。16×4ビットのROMを使っています。出力を見やすく波形で示すために、Demo版にも付いている4ビットのDACを使用しました。ROMのシンボルをダブルクリックして、データを書き換えて、波形を変えることも可能です。ROMの構成は[Insert]->[Part]->[U Logic Element Symbol...]でシンボルを選ぶときに任意に指定可能です。ZIPファイルに圧縮されているROM_DAC.misファイルにROMのデータの説明がありますが、シミュレーションには使用していません。アドレス部にはバイナリ・カウンタを使用しています。
ツインT型ノッチ・フィルタ回路
Twin-T.sch  

(2012-03-09改訂)
アクティブ・フィルタ回路で、モンテカルロ解析を行ってみます。解析結果は、10kHz付近でのノッチ(V字型切れ込み)波形、ノッチ周波数の度数分布グラフ、ノッチ・レベルの度数分布グラフの3種類を得ることができます。ノッチ波形を見るときは、Format->Monte Carlo Formatで見やすく変更してください。度数分布は、TopViewを操作しても可能ですが、シミュレータのSimulation->Setup->Auto PlotでEnable plot setup #1のチェックをはずし#2や#3のいずれか一箇所にチェックした後でシミュレーションするとそれぞれ度数分布がすぐに表示されます。(#2,#3への移動はNextとPreviousで行います。必ず#1、#2、#3のうちの一つにのみチェックを入れます。) 実行回数は50になっていますが、100などと変更してみてください。抵抗のバラツキはガウス分布、コンデンサは一様分布としました。
乱数発生器
Random_Gen.sch
過渡解析用の乱数発生器で、ノイズ源などに使用できます。バークレーSPICEにはない機能です。出力最小値、出力最大値、時間間隔、乱数シード値の設定ができます。シード値を0以外の任意の数にすると、同じ乱数を再現させることができます。
数学関数各種
Math_Functions.sch

ポストプロセッサーTopVIEWの持つ数学関数のいくつかを使ってみました。回路の出力波形をシミュレータに組み込まれている関数で変形し、回路解析に役立てることができます。ここで使用しているのはAVG(移動平均)、RMS(根二乗平均)、DIFF(微分)、S(積分)、SQR(二乗)、SQRT(平方根)です。
ロット許容誤差
Monte_LOT1.zip

(2012-03-09改訂)
参考:
PSpiceリファレンス ・ブック  6.10節 p.348
TopSpiceには、他のSPICEにはない.STATステートメントがあり、簡単に複雑な許容誤差を設定することができます。このサンプルは、モンテカルロ解析で部品がロットによる特定の傾向がある許容誤差を持つ場合の設定方法です。
回路図には10個の抵抗がありますが、それぞれバラツキに関して以下のような設定をします。
RAグループ:個々に独立したσ=±3%で上限下限がカットされた正規分布特性
RBグループ:ロット性のバラツキ。1kΩ±10%の一様分布。個々のバラツキは評価のためわざと設定せず。
RCグループ:個々のバラツキσ=±3%でカットされた正規分布+ロット性のバラツキ1kΩ±10%の一様分布
RDグループ:線形相関係数CC=0.9である1kΩ±10%の一様分布
グラフを表示させるには、波形表示プログラムの解析選択ダイアログで、デフォルトのTRANSIENTではなく、Other DATAを選んでください。横軸は、モンテカルロ解析の繰り返しの回数を示し、縦軸は抵抗値を示します。
RAグループは、全くランダムにばらついています。RBグループのように、個々のばらつきはなく、同一ロット内の部品という設定をすると、バラツキは全く同じとなります。従って、ロット性の分布を表現するには、RCグループのように、個々の部品のバラツキとロットの持つ傾向を示すロット許容誤差を加算する形で指定します。
RDグループの設定は、TopSPICE独自のトラッキング誤差の例です。CC(線形相関係数)の値が、0ならば全く独立してバラつき、1ならば同一のバラツキになります。この例では0.9としています。
ディジタル信号源
Digital_signal.sch   
ディジタル回路用の信号源には、CLOCKとDATAの2種類あります。どちらも時間と0または1を指定することでパルスが作成できますが、CLOCKの場合は"TPER="のパラメータで周期を設定することにより、1周期分の記述だけで連続パルスをあらわすことができます。CLOCK,DATAともにオプションで"TDELAY="によりパルスの始まり部分の遅延時間を指定できます。
コンデンサ・マクロモデル
Cap_macromodel.zip
SPICEのC素子は理想的なキャパシタンスですが、より現実に近い解析をするには、直列抵抗成分や寄生インダクタンス成分などを追加したコンデンサの等価回路を使用する必要があります。この等価回路をサブサーキット化することにより、複数個使う場合や別の回路でも使用する場合に役に立ちます。この例でサブサーキットの使用法を紹介しています。TopSPICEには、以下のような3種類のサブサーキットの使用法があります。お好みやケースバイケースで使い分けて下さい。
1.サブサーキットを回路図で作成し、それを解析回路で使用(CAP1)
2.サブサーキットをSPICEステートメントで表し、解析回路図から参照(CAP2)
3.サブサーキットをモデルライブラリ・ファイルとして保存、解析回路図から参照(CAP3)
出力はコンデンサのインピーダンス−周波数特性を示しています。Miscファイル内の#AUTOPLOT行中のM[{Z1=V(in1)/I(V1)}]により複素インピーダンスの絶対値を得ています。
左の圧縮ファイルを解凍したものの内、CAP3.libファイルは任意のフォルダに保存できますが、必ず[Project]-[Add/Edit Model Links...]とクリックしAddでこのファイルを参照する設定をして下さい。
固定バイアス型NMOSFETアンプの設計
Enhance_NMOS_Amp.zip  

(2012-03-09追記改訂) 
MOSFETのId-Vds特性と負荷直線を表示する回路と、そのMOSFET一石を使った簡単な増幅回路の2つの回路図ファイルが含まれています。増幅回路では、負荷抵抗と入力信号のDCオフセット値を変えて、負荷直線の最適動作点での波形を観測しています。簡単な例ですが、設計の手順をSPICEで確認できます。.ALTERコマンドを使用すると2つ以上のパラメータを自由に変えながら、繰り返しシミュレーションを行うことができ便利です(PSpiceコマンドにはなし)。この例では、VoffとRdをセットで2回変更し、3条件で解析を比較しています。
左の圧縮ファイルには、回路図ファイル(*.sch)が2つとオルタネート・ファイル(*.ALT)1つが入っていますので、解凍して同じフォルダに入れてから実行して下さい。
波形の加算
Waveform_Add.sch    
2つの電圧信号を加算する場合の5種類の例です。電圧制御電圧源Eの3種類のステートメントのADD,VALUE,POLY(2)を使っています。自由度の高いEBシンボルを使うと3種類のどのステートメントでも使用することができます。減算は、片方の信号にマイナスを付けることで対応できます。
波形の乗算
Waveform_Multiply.sch  
2つの電圧信号を乗算する場合の5種類の例です。電圧制御電圧源Eの3種類のステートメントのMULTIPLY,VALUE,POLY(2)を使っています。自由度の高いEBシンボルを使うと3種類のどのステートメントでも使用することができます。
波形の除算
Waveform_Divide.sch   
2つの電圧信号を除算する場合の3種類の例です。電圧制御電圧源Eの2種類のステートメントのDIVIDE,VALUEを使っています。自由度の高いEBシンボルを使うとどちらのステートメントも使用することができます。
基本的なトランスのモデル 
Full-Wave_Rectifier.zip
2006-6-12改訂
SPICEに組み込まれているKデバイスを使った基本的な結合インダクタ型トランス・モデルによる全波整流回路です。後段に平滑回路、定電圧回路をつけると最も簡単な定電圧電源回路となります。なお、このトランス・モデルでは巻き線洩れインダクタンスしか考慮されていませんので、このサンプル回路では巻き線抵抗を追加してあります。インダクタンスと抵抗値は実際のトランスの実測例の値を参考にしました。トランスをもっと正確にシミュレーションしたい場合は、巻き線抵抗の他に、巻き線浮遊容量、飽和型コア・モデル(または単に励磁インダクタと鉄損)を追加したものを使用する必要があります。理想トランスを使った等価回路で表したい場合は、理想トランス・モデルにこれらの成分を付加して下さい。理想トランス(TopSpice製品版には含まれています)は、ビヘイビアモデルが有名ですが、簡単な方法として結合インダクタ型トランス・モデルの結合係数を1としても実現できます。
電圧制御スイッチの動作を波形で見る
SW_norm.zip
TopSpiceや他の多くの商用SPICEに組み込まれている電圧制御スイッチは、単純にオンオフをしている訳ではありません。オン入力電圧とオフ入力電圧を設定しなければなりません。ではその間の入力電圧ではスイッチはどうなるのでしょうか? このサンプル回路ではVon=3V, Voff=2Vの場合とVon=4V, Voff=1Vの場合についてその動きを波形で示しています。2つ目の回路は電流制御電圧源を使って電流制御スイッチとしています。
このような複雑な指数関数を使っている理由は、スイッチのオンオフ時におけるシミュレータの収束エラーを防ぐためです。2番目の入力電圧の条件は、*.ALTファイルで設定しています。
下方で、ヒステリシス型のスイッチについても記述があります。(2012-03-09追記)
ベース電流補償カレント・ミラー回路   
Current_mirror3.zip

(2006-9-11改訂)  

バイポーラIC回路の中でもっとも基本的かつ重要な回路といわれるカレント・ミラー回路のベース電流補償タイプの例です。エミッタ面積比2と4のトランジスタのシンボルを作成、追加しています。ステートメント上は、「AREA=」を追加するか(Q5)、単にモデル名の後ろにスペースを入れて面積値を記入(Q6)しても構いません(ファイル例参照)。これらを接続して複数出力を取り出しています。グラフの横軸は、トランジスタのhFEをパラメータとして10から1000まで振らせて出力電流への影響を観測しています。「#TABULATE I(VA1) I(VA2) I(VA3)」により、モデル・パラメータを変動させての出力データの集合を、TopViewで表示可能な出力データ形式に変換しています。参考書籍:アナログICの機能回路設計入門
アーリー効果対策を施したカレント・ミラー  
Current_mirror5AB.zip 
アーリー効果対策を施したカレント・ミラー回路の例です。基本カレント・ミラー回路にQ3とQ4を追加することにより、Vccが変動してもアーリー効果の影響がなくなる(Current_mirror5Aの回路)、hFEが小さくてもベース電流補償がうまく行われる(Current_mirror5Bの回路)ことが出力電流がフラットになっていることで確認できます。エミッタ抵抗は、対策の効果を際だたせるためにほぼ0としています。参考書籍:上に同じ
Vbe依存型電流源電圧源回路
Vbe_Dependent_Source2.sch
IC回路で、電源電圧(Vcc)が変動しても一定の電流や電圧を得たい場合に使用されます。Q1のベースをQ4のベースに接続する基本型に対し、本回路ではQ1のベースをQ4のエミッタと接続し、帰還型としています。Q2,Q3はダイオード・スタックでN=2であり、任意のスタック数Nを使って出力電圧と電流は Vout=(N+1)Vbe,Iout=(N+1)(Vbe/R2) で求まります。Vbeはトランジスタのベース-エミッタ間電圧です。参考書籍:上に同じ
バンド・ギャップ電流源回路
Band-gap_Current_Source.zip

(2012-03-11改訂 太字追加)
IC特有の電流源回路です。回路全体の温度係数が TC=TCvt-TCr で表されます。(TCvt:熱電圧Vtの温度係数、常温で約3300ppm/℃。TCr:抵抗の温度係数) IC内の抵抗の温度係数TCrをTCvtに近づけることにより、回路の温度係数を0に近づけることができます。回路図中の.MODEL RTEMP RES (TC1=0.0033) により全抵抗の温度係数を3300ppm/℃に設定しています。コメント記号*を付け替えてTC1=0の場合を確認して下さい。Iout-Vcc特性を直接見たい場合は、F8キーを押して現れる画面でコメント記号を下記のように入れ替えます。
#AUTOPLOT 1 YAXIS=(0,140u,20u) I(Vout1)
#AUTOPLOT 2 YAXIS=(0,140u,20u) I(Vout2)
*#MEASURE DC VALUE Iout1 YVAR=I(Vout1) XVAL=5V
*#AUTOPLOT OTHER YAXIS=(50u,150u,20u) X=TEMP Iout1
参考書籍:上に同じ
Vbeマルチプライヤ
Vbe_Multiplier.sch
トランジスタのVbeを任意定数倍する回路です。R1両端電圧とR2両端電圧の和 V(out,2)=(1+R1/R2)Vbe で表されます。シミュレーションでは、R2=5kΩ,R1=0〜25kΩとしています。参考書籍:上に同じ
遅延時間素子
Delay.sch 

各々アナログおよびディジタル回路で任意の遅延時間を生成したいときに使用できる素子です。アナログのものは、サブサーキットで作成しています。無損失の理想伝送路に整合負荷およびバッファを付けています。(参考書籍:トラ技SPECIAL No.62 電子回路シミュレータの本格活用法
ディジタルのシンボルは、[Insert]->[Part]->[U Logic Element Symbol...]からDELAYを選んで下さい。ディジタル・プリミティブ素子のUGATEのパラメータTPLHとTPHLに遅延時間を設定します。
ROMとRAMとDAC
ROM-RAM-DAC.zip  
ROMとDACを使ったサンプル回路は、上で示しましたが、StaticRAMへの書き込みと読み込みを試してみます。ROMとRAMデバイスのシンボルは、[Insert]->[Part]->[U Logic Element Symbol...]で選んで下さい。出力数とアドレス数には、どちらも4を入力します。DACは4ビットのモデルだけが評価版についていますので、[Insert]->[Part]->[Symbol...]からXDAC4BITを選びます。ROMとRAMの初期データは、上記「ROM駆動回路」でやったようにシンボルをダブルクリックして記入するのが簡単ですが、今回は少し工夫してROM,RAMをサブサーキット化し、そのステートメントとして**.MISファイル内にデータを記入しました。ROM,RAMのシンボルの属性設定でDevice:Xとするのがポイントです。0〜100usまでがROM内のデータをRAMに書き込んでいるサイクルで、それ以降がRAMの読み出しサイクルになっています。ビット数が足りませんがDACから疑似正弦波が得られます。解凍してできる2つのファイルを同一のフォルダに入れて実行して下さい。

各素子の消費電力の測定
Const_voltage_rl.zip

(2012-03-11改訂 x軸変数
)   
TopSpiceで素子の消費電力を測定しグラフ表示する場合は、波形表示プログラムであるTopVIEWの機能を使います。通常電圧または電流の出力変数を指定しますが、ここで変数として抵抗R1の消費電力をグラフ化したい場合には、{P=V(1)*I(R1)}というような式を入力します。
サンプルの定電圧回路では、負荷電流を変化させた場合の出力電圧や各素子の消費電力の変化を表示しています。
ワースト・ケース解析   
Worst_Case_of_BPF.zip

(2012-03-11改訂 TopSpice8の仕様変更に合わせる)
TopSpiceに組み込まれているワースト・ケース解析の例です。素子値がばらついたときのバンドパス・フィルタ回路出力の最悪値を予測します。大前提として、素子がとる値をバラツキの上限下限と公称値に限定します。これらの組み合わせをすべて計算して結果を表示します。ユーザーは、結果から最悪値とそのときの素子条件を読みとることができます。モンテカルロ解析により、最悪値を予測するためには、繰り返し数をかなり多くしないと正確な値は得られません。なお、TopSpiceのワースト・ケース解析は、PSpiceのものとは違っています。PSpiceにおいて自動化により誤判定する場合を、単純化により排除しています。本サンプル回路の具体的な動かし方は、こちらを参照下さい。
1〜15分プリセット・タイマー
1-15min_Timer.zip

(2012-03-14 改訂 Tr数の関係で555モデル変更)
カップ麺やキッチン・タイマー用途として自作可能な回路です。DEMO版の制限により、LEDと圧電ブザーの駆動部およびブザー用発振回路、バッテリー回路は回路図から省かれています。時間の設定は、スイッチ・オンでLOとなるようにし(負論理)、2進数で入力します。3分ならば、"off,off,on,on"です。回路図の$D_LO,$D_HIを書き換えて、時間設定を変えてみて下さい。
ディジタルICは、DEMO版にはモデル・ライブラリが付属していないため、ディジタル・プリミティブを使用しています。U4が8ビット2進ダウンカウンタで、U5が4ビットの2進アップカウンタです。メニューバーより[Insert]-[Part]-[U Logic Element Symbol...]をクリックし、COUNTを選択します。U4は、分周カウンタDIVNも使用できます。その場合はカウント数を60とします。U4で1secのクロックを1/60に分周し、U5で60secを何回繰り返すか設定しています。実際に作製して動作を確認しましたが、使用ICはそれぞれ40103と74HC161です。また、実際の回路では、D-FFに対するパワーオンリセットが安定動作しなかったため、CLRB端子に小さな容量のコンデンサをぶら下げる必要がありました。

デッドタイムを持つ2つのパルス
DeadTime_Pulse.sch

TopSpiceユーザー様から、周波数、デューティ、デッドタイム、立ち上がり/立ち下がり時間を任意に設定できる2つのパルス信号源を簡単に作成できないか?というお問い合せがありました。ロジック・ゲートを使う方法もありますが、SPICEの独立電源を使った基本のパルス信号源に、数式表現を用いて簡単なものが実現できましたのでご紹介します。
各パラメータは、freq:周波数,duty:信号Aのデューティ,c,d:デッドタイム,e:立ち上がり時間,f:立ち下がり時間を表しています。定数変更は、回路図中の.PARAMコマンドをダブルクリックして行って下さい。出力波形はこちらです。



任意の回路ブロックの複素インピーダンスを計測してSPICEモデル化する
FREQtable_test.zip



任意の回路ブロックを、ネットワーク・アナライザで測定(2ポート測定)し、その複素インピーダンス値が得られたとき、そのデータを使って回路ブロックをSPICE回路に組み込むことができます。AC解析と過渡解析に使用可能です。解析が終了したら、AC SweepまたはTRANSIENTをラジオボタンで選んで下さい。別の解析結果グラフを表示させるときは、TopViewの[Plot]-[Autoplot]で再度選択ダイアログが現れます。
TopSpiceEデモ版にもついているサンプル回路ファイルFREQ table.CIR(ネットリスト形式)を、回路図に置き換えてみました。アナログ・ビヘイビア・モデルEBまたはGBの周波数レスポンス・テーブルを使いますが、測定データが多い場合には、EBやGBのシンボルをダブルクリックして表示される属性設定ダイアログに入力するのが大変です。この例では、サブサーキット化してデータをテキスト・ファイル(*.MIS)側に記入するという、以前にも使用したテクニックを使っています。
回路例では、上から電流出力(ゲイン/位相・データ)、電圧出力(ゲイン/位相・データ)、電圧出力(抵抗/リアクタンス・データ)となっています。下記ステートメントの[format]部分に記入するキーワードにより、データ・フォーマットを変えることができます。なお、Sパラメータ・データを使用する場合は、TopSpice付属のサブサーキット内に記入します。

Ename +node -node FREQ {入力式}=[format] <テーブル・データ>
[format]
<テーブル・データ・フォーマット>
デフォルト(記入なし)  周波数(Hz)  ゲイン(dB)  位相(°)
MAG (=SPARAM)  周波数(Hz)  ゲイン(絶対値)  位相(°)
RAD  周波数(Hz)  ゲイン(dB)  位相(rad)
R_I   周波数(Hz)  レジスタンスR(Ω)  リアクタンスX(Ω)
SPARAM  周波数(Hz)  ゲイン(絶対値)  位相(°) 
OPアンプ オフセット電圧と電流の研究
OPamp_Offset.sch

(2012-03-14 追記)

参考:
PSpiceリファレンス ・ブック
 5.1節 p.245
解析を実行すると、過渡解析が行われ2つの反転増幅回路の入力と出力波形が表示されます。上段のグラフでは、入力オフセット電圧が0Vにもかかわらず、出力オフセット電圧は、1.6mV程度あります。下段のグラフでは、Rc2=Rs2//Rf2があることによりバイアス電流によるオフセット電圧がキャンセルされるので、23μV程度になっています。
OPアンプの性能がよくなっても、完全にオフセット電圧とオフセット電流(バイアス電流)を無くすことは困難です。OPアンプ自身が持っているオフセット電圧やバイアス電流が、回路出力にどう現れるかは、いろいろな書籍等で式が示されています。しかし、意外と±符号などがアバウトで、SPICEで確認してみても結果が合わないものが時々見られます。以下に入力オフセット電圧・電流と出力オフセットの一般式を示しますので、回路図のアンプや抵抗値を変えたりして、確認してみて下さい。解析実行後、回路図エディタに戻り[View]-[OP Voltages & Source Currents]で回路図上にバイアス電圧・電流が表示されます。過渡信号源による入力は、回路の動作確認も兼ねています。反転アンプとしていますが、オフセットを考える場合は、信号源を+入力側に持ってきて、非反転アンプと考えても下記式に変わりはありません。

OPアンプの出力オフセット電圧を求める一般式 

ΔVos=(1+Rf/Rs){(Ib-)・(Rs//Rf)-(Ib+)・Rc-Vio}
    =(1+Rf/Rs){-(Ib+)・Rc-Vio}+(Ib-)・Rf

ただし Ib-:−入力バイアス電流,Ib+:+入力バイアス電流(いずれもアンプに流れ込む方向を正とする),Vio:入力オフセット電圧(−入力側を基準とする),Rs//Rf:RsとRfの並列合成抵抗1/(1/Rs+1/Rf)=Rs・Rf/(Rs+Rf)

デザインウェーブマガジン
2009年3.4月合併号 解説記事
「LSI周りのアナログ回路を理解する」 
DWave_TopSpice Files.zip

(2012-03-15 TopSpice 8用ファイルに更新)

左記の記事で使用しているTopSpiceシミュレーション回路図ファイルです.
=============
使い方
=============
1. 回路図ファイル(***.sch),解析設定ファイル(***.SIM),ユーザ・ファイル(***.MIS)を,Circuitsなどの同一フォルダ内に入れます.(パスおよびフォルダ名に日本語は使用しないで下さい.)
2. 回路図エディタから回路図ファイルを開いて,そのままシミュレーションを実行します.(ツール・バーの信号機アイコンをクリック)
3. 自動的に,設定に従い結果の波形を表示します.
4. RC_Filter.sch では解析結果選択により、DC解析と過渡解析結果を切り替えて表示できます.MonteCarlo_WorstCase_of_BPF.sch では、分布の生波形、ゲインの最大値分布ヒストグラム、ゲイン最大値周波数分布ヒストグラムを表示することができます.

設定の変更など,詳細な使い方はデザインウェーブマガジン本誌またはCQ出版社殿WEBをご参照下さい.

多次元のパラメトリック解析

Cap_Multidimension_Step.zip

(2012-03-15 改訂 統合した回路4を追加)
複数のパラメータを同時に任意に変化させるパラメトリック解析の応用的な方法です。
通常のパラメトリック解析では、一つのパラメータしか変化させら
れませんが、パラメトリック解析にテーブル関数を応用することにより、希望する複雑なパラメトリック解析が一度の実行で可能になります。

使用例
.PARAM CASE=1 −−−−−−−−−−−−−−−−任意の変数を指定する
.PARAM Cnom={TABLE(CASE,1,1u,2,10u,3,100u)} −−CASEが1のとき1u,2のとき10u,3のとき100u
.PARAM Rs={TABLE(CASE,1,10m,2,100m,3,1)} −−−−CASEが1のとき10m,2のとき100m,3のとき1
.PARAM Ls={TABLE(CASE,1,10n,2,100n,3,1u)} −−−−CASEが1のとき10n,2のとき100n,3のとき1u
パラメトリック解析で、任意の変数CASEを1,2,3と変化させると、テーブル関数で設定した複数のパラメータ値を同時に変えることができる。
パラメータがサブサーキット内の値でも、デバイスモデルのパラメータ値でも同様に扱えます。
パラメータ値が電源電圧値、電源電流値、R値、C値、L値、動作温度の場合は、テーブル関数を直接、値として入力することも可能です(Cap_Multidimension_Step2.sch)。
左の回路図ファイルは、4種類ありますが、キャパシタの等価回路の各パラメータを振らせているという内容は同じです。通常の階層なしの回路2種類と、サブサーキットを使用したもの1種類です。回路4は前者3つを一つの回路に統合しました。サブサーキットは階層化しており、CAP1を選択しAlt+PageDownキーで下の層の等価回路を見ることができます。Alt+PageUpキーで上の層に戻ります。

力学系と電気回路系のアナロジー(バネ・マス・ダンパー)

Differential_Equation_Spring.zip

おもり(質量:マス)にバネとダンパー(制動器,減衰器,緩衝器)をつけたシステムの動作を解析しています。外から加える力をf、質量をm、その変位をx、バネ係数をk、減衰係数をDとすると、運動方程式は
m*(d^2)x/dt^2 + D*dx/dt + k*x = f
と表されます。この二階微分方程式は、電気回路のLCR直列共振回路の回路方程式
L*(d^2)q/dt^2 + R*dq/dt + (1/C)*q = v
と同じ形をしており、定数をうまく選んでやると、まったく同じ減衰振動をします。サンプル回路ファイルには、SPICEを数値計算ソフトのように使ったビヘイビア・モデルと、RLC回路素子を直接使って力学系を代用させたモデルの両方が含まれています。RLC回路は、直列共振と並列共振回路の2種類含まれています。

サブサーキットのネスティングとユーザー・パラメータ

Subcircuit_test_LPFX.zip

(2011/08/26変更:サブサーキット部分がまったく回路図に現れないものと、すべて表示されているもの)

サブサーキットは、モデルとしての利用の他に、同一回路内に同じ回路構成が何回か繰り返される場合にも、有効です。サブサーキットの中に別のサブサーキットを入れるというネスティング(入れ子)も可能です。ただし、SPICE構文としては、.SUBCKT〜.ENDSの中に入れられるのはX素子(サブサーキット・コール)になります。そのX素子が、下層の別のサブサーキットを呼び出すという形式です。
サンプル回路は、Sallen-Key回路を4段つなげた8次のチェビシェフ型アクティブ・ローパス・フィルタです。Sallen-Key回路1つを1つのサブサーキットとして、4段にするのがもっとも合理的ですが、ここではわざと2回路で1つのサブサーキット2FILTERSとしました。OPアンプ内部は、簡略化してE素子と入力抵抗、電源部抵抗としました。OPアンプ部がサブサーキット内にネスティングされたサブサーキットになります。回路の最上層から2層下の位置にあたります。
このフィルタ特性を得るためには、回路構成は同じながら各段の素子定数は違った値が必要です。これを実現するには、サブサーキット内の素子定数をユーザー・パラメータで表し(一旦適当な値を入れておく必要あり)、回路図の最上層で個別の値を指定します。
ここまでは一般的に行われている方法ですが、サブサーキットが多層構成でかつ最上層の下の下以下にあるパラメータを、最上層より制御したい場合は、ちょっとした工夫が必要です。最上層X素子引数パラメータ→2層目サブサーキット・パラメータ→2層目X素子引数パラメータ→3層目サブサーキット・パラメータ→・・・・とたどっていけるような指定が必要です。この回路例では、サブサーキット2FILTERS内のX素子記述のPARAMS:以降が重要です。
X1 1 2 P3 P4 2 OPAMP_spl PARAMS: rp={rp1}
(最上層で指定したrp1の値を2FILTERSの前段のOPAMP_splのrpの引数とする。)
X2 3 P2 P3 P4 P2 OPAMP_spl PARAMS: rp={rp2}
(最上層で指定したrp2の値を2FILTERSの後段のOPAMP_splのrpの引数とする。)
rpはOPアンプの電源につながれた抵抗で、4個のOPアンプに対して電源電流が順に1mA,2mA,3mA,4mAで合計10mAとなるように設定しています。(解析結果で確認OK)
なお、サンプル回路は、Subcircuit_test_LPFX2.schとSubcircuit_test_LPFX3.schの2つ入っていますが、サブサーキット内部が回路図に示されているかどうかの違いだけです。前者は、サブサーキット部分を**.MISファイルに記述していますが、**.LIBファイルに記述して.LIBコマンドにより外部参照しても同じです。


階層化構造の回路図

Hierarchy_test_LPFX.zip

上記の回路図を、TopSpice 8で新しく導入された階層化構造とした例。ブロック部分を選択し、「Alt+PageDown」とショートカット・キーを押すと、下の層に降りてブロック部分の回路図が表示されます。その回路図にブロックがあれば、さらに下の層に移動できます。上の層に上がるには「Alt+PageUp」を押します。移動はメニューバーからも可能です。前の層への移動、最上層への移動も可能です。SPICEの構文としては、サブサーキットを利用しており、上項と同じですが、階層部分を最上層のメイン回路図と独立して作成や管理ができる点が違います。頻繁に使用するモジュール回路があれば、その部分を階層ブロック回路としておき、いろいろな場面で使用することが可能になります。基本的なサブサーキット形式では、モジュール回路部分を、モデル・ファイルとして保存しておき利用しますが、階層ブロックでは回路図ファイルとして保存し利用できる点が便利です。
サンプル回路では、Hierarchy_test_LPFX1.schが最上層、2LPFs.hscがその下層、OPAMP_spl.hscがさらにその下層に位置します。各回路図をおく位置は参照できれば任意です。同一フォルダ内におく方法がもっとも管理しやすいと思われます。
上項とダブりますが、実際にサブサーキットや階層ブロック化する場合に必要となるノウハウを再度述べておきます。同一のSallen-Key回路が4段つながっていますが、構成素子定数は4段とも同じではなくすべて違っています。定数まで同じ回路が4段あるわけではありませんので、単純に4つ配置するだけでは回路が実現できません。基本回路では素子定数を変数パラメータ化して、かつデフォルト値を指定しておきます(変数の構文ルールのため)。個別のパラメータは、そのブロックのすぐ上の層で指定しておく必要があります。具体的には、階層ブロックをダブル ・クリックして現れる属性設定ダイアログに入力します。パラメータのデフォルト値は、ブロック回路図を保存するときに設定します。具体的には、Project→Hierarchy→Save As Block...で保存した後に開くダイアログにおいて入力します。
ドップラー効果の
  シミュレーション

Doppler_Effect.zip
ホームページ『わかりやすい高校物理の部屋』の内容を参考にさせていただき、ドップラー効果の式を使って回路図を描き、TopSpiceのオーディオ演奏機能により、実際に音の変化を聞いて確認します。音を聞く場合は、過渡解析終了後、波形表示プログラムTopViewのメニューからTools→Play Audio→Plot Traceを選択します。
お遊び的な内容ですが、信号源の作り方、解析対象のモデリング、サブサーキットの作り方の例という側面もあります。
元になる公式
   fo=(V-vs)/(V-vo)×fs
ただし
観測者に聞こえる音の振動数: fo (Hz) (または f’ ) oはobserverの頭文字
音源の振動数: fs (Hz) (または f ) sはsource の頭文字
音速: V  (m/s) TopSpice回路図では、avとしています。
観測者の移動速度: vo  (m/s) 音源との相対関係で負号が付く場合あり。 
音源の移動速度:  vs  (m/s) 観測者との相対関係で負号が付く場合あり。
回路図Doppler_Effect.schは、2つの信号源を自由に前半後半で設定して、上記変数の実験ができます。
回路図Siren_of_Ambulance_Car1.schでは、この応用として、近づき遠ざかる救急車のサイレン音を模擬しています。
同じ数式を使う信号源を4つ使うので、ドップラー音源部分を階層化構造(サブサーキット)Doppler_Source.HSCにしています。ブロック部分を選択し、「Alt+PageDown」とショートカット・キーを押すと、下の層に降りてブロック部分の回路図が表示されます。上の層に上がるには「Alt+PageUp」を押します。
このサブサーキットごとに別の変数を指定する必要があります。サイレン音では、ドップラー効果用の上記変数に加えて、正弦波信号源の振幅(vm)、初期遅延(dt)、減衰係数(df)も最上層から設定しています。
(なお、拡大すると波形は荒くなっていますが、Demo版のデータ数の制限内にまとめているためです。)


ポスト・プロセッサTopViewの
グラフ設定オプション

Transient_Response_RLC.sch


RLC直列回路に理想的なスイッチで直流電圧(ステップ電圧)を加えた場合について、R>2√(L/C)、R=2√(L/C)、R<2√(L/C)の3つの条件にて、R1の値を変えて過渡応答を解析しています。
この例の目的は、回路よりも結果のグラフ表示においての細かい設定オプションの紹介です。

回路図エディタのシミュレーション設定ダイアログ(Simulation->Setup...)において、デフォルトのままよりも、グラフを読みやすくするために、詳細な設定を行っています。plot#2〜4については、y軸ラベルの記入、plot#4については他のグラフとの比較のため、y軸最大最小値の設定をしています。plot#4は、デフォルトの自動モードで表示させると、グラフ表示範囲が他のplotと変わってしまい比較しづらいので、希望値を設定しています。この設定は、回路図ファイルに解析設定と同時に保存されるので、最初一度のみ行うだけで済みます。(リファレンス・マニュアル 8.10aの4.2節のコマンド参照。この内容はRev.8.10aにて追記しました。)


SWモデルの使い方

VSWITCH_and_SW.sch

参考:
PSpiceリファレンス ・ブック  
3.9節 p.116

PSpiceでは、長く1種類のスイッチのみ使われてきましたが(正確には電圧制御と電流制御スイッチの2種類)、比較的最近、ヒステリシス型のスイッチが追加されました。これは、SPICE3標準のスイッチを取り入れたと思われます。TopSpiceでも同様にヒステリシス型のスイッチが追加になっています。
この回路例でその2種類のスイッチの違いとモデル記述方法が確認できます。S1,S2がVSWITCHタイプであり、急激なオンオフによる収束エラーを防ぐために、切り替えが指数関数に従い変化する仕様です。S1とS2の違いはVonとVoffパラメータ値の違いのみで、VonとVoffの値の差が大きければより緩やかに切り替わります。S3,S4がSWタイプで、Vtに閾値を入力し、Vhに全ヒステリシス幅の1/2の値を入力します。この例では、LEVEL以外のモデルパラメータをすべて記述していますが、デフォルト値で構わない場合は省略可能です。
TopSpice TIPS(スイッチ・モデルの使い方)にも記述があるので、参照ください。さらに詳しい内容を知りたい場合は、製品に添付のTopSpiceリファレンスや左記書籍(CQ出版)を参照ください。

ホイートストーン・ブリッジ

Wheatstone-bridge.sch
未知の抵抗値を求める古典的な回路ですが、ここではPSpiceを参考に作成した斜め45度の抵抗体のシンボルを使う例として、作成しました。シンボルを自作する場合は、座標(0,0)をシンボルの中心に作成すると、シンボルの上下反転(Fキー)、左右反転(Mキー)、回転(Rキー)をするときに、配線の変更が少なくてすみます。
回路は、Rxを未知の抵抗とし、R4を可変して検流計が0Aとなる値を予式に代入するとRxが求まることを示しています。
SPICE3回路ファイル
概     要
微分回路・積分回路
biseki.cir
RとCだけで作られた微分回路、積分回路に矩形波を入力して、波形を観測します。時定数τ=CRが正しく計算されているか、電圧電流波形の関係などの確認ができます。電圧0のVA1とVA2は電流計として使っています。
インタラクティブ・コマンド例:plot v(in) v(out1) v(out2),plot v(out1) i(va1)*1000,
plot v(out2) i(va2)*1000,print v(out1) v(out2)
LRC直列共振回路
LRCs-osc.cir
過渡解析では、ステップ入力時の減衰振動波形を見ることができます。AC解析では、入力信号をスイープさせて共振点を観測することができます。
インタラクティブ・コマンド例:過渡解析 plot v(out),AC解析 plot i(v1) loglog,print i(v1)
LRC並列共振回路
LRCp-osc.cir
同 上
インタラクティブ・コマンド例:過渡解析 plot v(1),AC解析 plot v(1) loglog
ツェナーダイオード靜特性
zenertest1.cir
ツェナーダイオードの順方向と逆方向にバイアスを加え、流れる電流を観測します。
インタラクティブ・コマンド例:plot -i(v1)
ツェナーダイオード動作確認
zenertest2.cir
変動する入力電圧を、定電圧化できるかどうかを観測します。
インタラクティブ・コマンド例:plot v(1) v(3),plot -i(v1) i(va)
バイポーラ・トランジスタ静特性1
BJTvceic.cir (9/14/2004改訂)
BJTのエミッタ接地型回路のVce-Ic特性(出力特性)を表示します。Ibを20μAから100μAまで20μAおきに変化させています。
インタラクティブ・コマンド例:.plot -i(vc) xlabel Vce ylabel Ic
バイポーラ・トランジスタ静特性2
BJTvbeib.cir (9/14/2004改訂)
BJTのエミッタ接地型回路のVbe-Ib特性(入力特性)を表示します。Vce=6Vとしています。
インタラクティブ・コマンド例:plot -i(vb) xlabel Vbe ylabel Ib
トランジスタ1石反転アンプ
Q1amp.cir
CR結合エミッタ接地型トランジスタ増幅回路です。過渡解析とAC解析を行っています。過渡解析では、比較のため入力信号を10倍して表示します。ACでは入力信号の位相を180°としました。
インタラクティブ・コマンド例:過渡解析 plot 10*v(in) v(out),AC解析 plot db(v(out)),set units=degrees,plot ph(v(out))
無損失伝送線路
T-Line.cir
(10/18/2004改訂)

信号源側の出力インピーダンス、伝送線路特性インピーダンス、負荷インピーダンスのマッチングによる信号への影響を観察します。両側終端、電源側片終端、負荷側片終端、両端不整合の4通りを比較しています。信号源の出力インピーダンスを11Ωとしています。伝送線路は、プリント基板を想定しています。 (参考文献:トラ技SP62,分布定数回路のすべて(碓井有三著))
インタラクティブ・コマンド例:
plot V(1) V(near1) V(far1) yl -0.5 1.5 title ZI=Z0=ZL
plot V(2) V(near2) V(far2) yl -0.5 1.5 title ZI=Z0_ZL=open
plot V(3) V(near3) V(far3) yl -0.5 1.5 title ZI=0_Z0=ZL
plot V(4) V(near4) V(far4) title ZI=0_ZL=open
有損失伝送線路
O-Line.cir
上記の伝送線路を、有損失のモデルで表しています。ただし、 コ ン タ ゙ ク タ ン スGは0としています。解析には、CPUへの負荷が若干かかるようです。ご注意下さい。
インタラクティブ・コマンド例:
plot V(1) V(near1) V(far1) yl -0.5 1.5 title ZI=Z0=ZL
plot V(2) V(near2) V(far2) yl -0.5 1.5 title ZI=Z0_ZL=open
plot V(3) V(near3) V(far3) yl -0.5 1.5 title ZI=0_Z0=ZL
plot V(4) V(near4) V(far4) title ZI=0_ZL=open
ノコギリ波
sawtooth.cir
独立電圧源Vの折れ線近似とパルスの2種類の構文を使ってみました。
インタラクティブ・コマンド例: plot v(out1) , plot v(out2)
単安定マルチバイブレーター
one-shot.cir
パルス回路の基本として教科書に載っているトランジスタによる単安定マルチバイブレーターです。出力のパルス幅が、およそ0.693・C2・R2(sec)となるはずです。
インタラクティブ・コマンド例: plot v(in) v(out) , plot v(6) v(1) , plot v(3) v(2)
ローパス・アクティブフィルタ
LPF.cir
正帰還(セレン・キーorVCVS)型回路による3次と5次のバターワース特性のローパスフィルタです。オペアンプは簡易型のモデルを使用しています。
インタラクティブ・コマンド例: plot db(V(out1)) db(V(out3)) db(V(out5)) , plot ph(V(out1)) ph(V(out3)) ph(V(out5))
ハイパス・アクティブフィルタ
HPF.cir
多重帰還型回路による4次のチェビシェフ特性のハイパスフィルタです。チェビシェフ特性の通過域リップル0.5dB、カットオフ周波数10kHzです。オペアンプは簡易型のモデルを使用しています。
インタラクティブ・コマンド例: plot db(V(out)) , plot ph(V(out))
バンドパス・アクティブフィルタ
BPF.cir
非反転入力の状態変数型(ステート・バリアブル型)回路による単峰特性の2次バンド・フィルタです。中心周波数は10kHz、Q=2で計算しています。バンドパス出力の他に、ローパスとハイパス出力も得ることができます。
インタラクティブ・コマンド例:plot db(v(outBP)) db(v(outHP)) db(v(outLP)) , plot ph(v(outBP)) ph(v(outHP)) ph(v(outLP))
フーリエ解析
four_test.cir 

パルス波と正弦波を作り、それらをフーリエ解析します。高調波成分を調べることができます。結果は表出力で得られます。ここでは基本波の直流成分から第19次高調波までと指定しています。THDは総合高調波歪みです。理想的な正弦波ではほとんど0であることが確認できます。Norm.は、基本波で正規化された値です。
インタラクティブ・コマンド例:
plot V(1) V(2) ,set nfreqs=20 fourgridsize=300 polydegree=3,four 100Meg V(1) V(2)

Home | What's Simulation | How to use | Links | Books | Services | About us | Contact us | Blog

Copyright(C) 2019 SimCircuit Technologies Co., Ltd.