Tips1  (03.12.30 〜/ LastUpDate:04.01.17)

このページは、PSpiceLite(CQ版/トランジスタ技術誌2002年5月号付録)の中級Tipsをまとめてみました。
最低限の使い方はマスターされたかた向けの内容となっています。
雑誌に載っていなかったものを特に選んだつもりですが、
載っていたかも知れません(^^;

私はMacユーザなのですが、会社ではWindowsマシンを使っていまして、製品版PSpiceを使っています。
製品版のコマンドなど、CQ版でも使えるものか?と試したら、結構使えるものがあったので、今回はCQ版向けにまとめてみました。


1.Search Command

2.PIVOT

3.LAST PLOT

4.SPICE A/D のマクロ

5.Evaluate Goal Function

6.Append Waveform

7.旧OrCADのデータをOrCAD Captureに取り込む

1.Search Command (双眼鏡アイコンコマンド) カーソルを目的点を探して移動


 このコマンドは、PSpice A/D(グラフ表示ウィンドウ)において、カーソル使用時にすばやく目的の場所までカーソルを移動させるコマンドです。
 まず、カーソルをアクティブにします。
 その後、双眼鏡アイコンをクリックすると、図のようなウィンドウが出るので、そこにコマンド入力、及びボタンでカーソル1か2かを選びます。
 コマンドは
 SFXV()、SBXV()
 (SerchForwardXValue(),SerchBackwardXValue() )

 これは、現在カーソルのある位置よりデータとして先(:SFXVまたは手前:SBXV)に()内で示した横軸値(ex.周波数特性なら周波数、トランジェント解析なら時間など)がある最初のポイントへカーソルを移動させます。

 SFLE()、SBLE()
 (SerchForwardLEvel(),SerchBackwardLEvel() )

 これは、現在カーソルのある位置よりデータとして先(:SFLEまたは手前:SBLE)に()内で示した縦軸値(ex.電圧、dBなど)がある最初のポイントへカーソルを移動させます。

 この例では、カーソル2の横軸を10k(10000)に+方向に移動させる、というコマンドになります。

 たとえば、こんな使い方ができます。
 ・現在カーソルで見ている値より10dB下がった点を見つけたい時・・・・・
 カーソルから現在見ている値α(dB値)を読み取り、α−10を計算して、双眼鏡コマンドでSFXV(α-10)またはSBXV(α-10) (但し()内は式は書き込めないので、計算後の値を入れる)と入れれば、コマンド実行直前のカーソルの位置から最も近い目的のレベルのポイントへカーソルが移動します。

 ・周波数特性で、ちょうどβ[Hz]の値をみたい
 SFLE(β)またはSBLE(β)と入れれば、βが中途半端な値でも、出来るだけその値に近いポイントまでカーソルが自動的に移動されます。

 ▲Top

 

2.PIVOT パラメータ・シートの表記をみやすく


 OrCAD Captureにおいて、PropertyEditor(回路図上のパーツをダブルクリックすると表示される)のスプレッドシートの横表示と縦表示とを切り替えられます。CQ版でのデフォルトは横表示で、見にくい事があるので、切り替えておくと便利です。
 スプレッドシートの表の左上のブランクのセルのところでマウスの右クリックすると、出てくるメニューに[PIVOT]というコマンドがあるのでこれを選択すると、スプレッドシートの縦横表示が逆転します。

    
▲Top

 

3.LAST PLOT グラフ表示を毎回同じに


 PSpiceA/Dでグラフを表示する機能はいろいろありますよね。グラフを分割したり、たくさんの表示を複雑にしても、シミュレーションを再スタートすると、デフォルトでは毎回毎回、一から表示の設定をやり直さなければなりません。

 ですが、Simulation Settingsのコマンドで、ウィンドウの一番右のタブ[Probe Window]をクリックしてみましょう。このタブに出てくる[Show]の中から、[LastPlot]のボタンをクリックしておいてシミュレーションを行うと、PSpiceA/Dのグラフ表示の設定は直前の状態が保持された状態でグラフを表示するようになります。これは、アプリケーションを終了して再度立ち上げた時にも有効です。

▲Top

 

4.SPICE A/D のマクロ よくやる操作を記録/再実行


 PSpiceA/Dで、上記の様にシミュレーションをやるたびに、毎回グラフ表示のセッティングをしなければならないという事に対して、もう一つ解決策があります。それは、マクロです。

 [File]メニューの[Log Commands...]を選ぶと、その時点からの操作がマクロバッファに記録されます。したがって、マクロを記録したい操作の直前に[Log Commands...]を選び、その操作を行い、一通りの操作終了後に再度[Log Commands...]を選びます。すると、マクロ記述ファイルの保存が行われるためにファイル名と保存場所を尋ねてきますので、適当な場所(普通はカレントのシミュレーションが入っているフォルダ)に、適宜の名前を付けて保存します。マクロ記録中は[Log Commands...]の左端にチェックマークが出ます。

 次に、今記録したマクロを実行したい場合、[File]の[Run Commands...]を選ぶと、どのマクロファイルを実行するか尋ねてきますので、実行したいファイルを選べば、そのマクロファイルに記録されたマクロが実行されます。

 マクロファイルは、マクロ記述時に全てを記述するので、間違えると、間違えの通り記述します。例えば、指定するプロットの記述を間違えて(たとえば「V2」と入れたいところ、「V1」と入れてしまい、「V2」と書き直した場合など)バックスペースを押すと、バックスペース操作まで全て記録してしまいます。それでよいのであればいいのですが、動作速度が若干落ちますので、再度記録し直すか、マクロコマンドはシンプルなので、マクロファイルをテキストエディタで開くと、マクロコマンドが記述されており、直接手でマクロファイル内部を書き換えて、保存してもよいですね。マクロファイル内部のコマンドは、見てみると何となくわかります(^^;。

▲Top

 

5.Evaluate Goal Function    ゴール関数をつくってみる

 


 ゴール関数という、いろいろな計算をやらせてしまう関数が用意されています。
 PSPICE A/Dの[Trace]メニューのなかの[Evalute Goal Function]を選択します。

 上記は、「Bandwidth」という関数を実行するコマンドで、波形の中のV(OUT)に関して、”-3dB”計算での帯域幅を求め、その結果は2.2038*10^5[Hz]です、という結果が得られている様子です。

 ただし、周波数特性を求める関数が、ピーク値−3dBを求めてしまい、ピークがあるf特の時にきちんとしたfcを表示しないので、10Hzのレベルを基準にした−3dBを求める関数を組んでみました。もちろん、シミュレーションした周波数の中に10Hzがないと、エラーがでます。下記に関すを示します。

 

Cuttoff3dBfrom10Hz(1)= x2

*#Desc#* Cuttoff frequency -3dB at 10Hz level

* by kephis@nifty.com 2003.09.30

*

* Usage:

* Cuttoff3dBfrom10Hz(<Trace name>)

*#Arg1#* Name of trace to search

*

*#ForceDBArg1#*

 

 

{

1|Search forward XValue(10) !1

Search forward Level(y1-3) !2;

}

 使いかたは、
 
Cuttoff3dBfrom10Hz(V(OUT))
 等です。強制dB計算です。

 また、10Hzのレベルを求めるものもつくりました。

db10Hz(1) = y1

*#Desc#* 10Hz dB level

* by kephis@nifty.com 2003.09.30

*#Arg1#* Name of trace to search

*

*#ForceDBArg1#*

* Usage:

* db10Hz(<Trace name>)

{

1|Search forward xvalue(10) !1;

}

 上記ふたつとも、”(10)”を他の数字に変えれば、その周波数のレベルを計算します。関数定義式の中を見れば、SFXVやSFLEのSearchCommand関数と同じものが使われているのがわかるとおもいます。

 これらの関数を組み込むには、PSPICE A/Dの[Trace]メニューのなかの[Goal Functions...]を選択すると、下図のようなウィンドウが出てきます。

 このウィンドウの[New]ボタンをクリックすると、下図の新関数入力ウィンドウが出てきます。

 ここにファンクション名(任意、普通は関数の()の直前までと同じにするとよい)と、どこに保存するかのボタンを選んで[OK]を押します。どこに保存するかは、現在やっているシミュレーションプロジェクトのみであれば、[use local file]を、他のシミュレーションでも使いたければ、[use global file]をクリックします。

 すると、Edit New Goal Functonというウィンドウが現れますので、デフォルトではいっている文(x1(1)=......)を消して、そこに関数定義をコピーして[OK]をクリックすれば終了です。

Edit New Goal Function

 これで新しい関数の組み込みが完了します。

▲Top

 

6.Append Waveform 違うプロジェクトのシミュレーション結果を同じグラフに表示


 同じ回路を一部変更してシミュレーション結果を比較したい時など、違うシミュレーションプロジェクトファイルでシミュレーションして、同じグラフ上にグラフを表示させる事が出来ます。

 まず、ひとつの表示させたいシミュレーションを実行して、見たいように波形を表示します。そして、PSpice A/Dの[File]コマンドの[Append Waveform]または、小さい”+”文字がついているオープンアイコンをクリックし、シミュレーション結果のファイルを尋ねてきますので表示させたいもう一つのシミュレーションの出力ファイルを指定すると、初めに表示したグラフと回路上同じノード名の電圧なり電流なりを同じグラフ上に表示してくれます。
 このとき、二つのシミュレーションで、表示させたいノードの名前を共通にしておかなければうまく表示してくれません。二つ以上の比較表示も可能です。

 また、二つのシミュレーションで回路が少しでも違っていると、

 というメッセージが出ます。[Skip...]の方をクリックすると、この操作はキャンセルされます。[Do Not Skip...]の方をクリックすると、上手く表示されます。

▲Top

 

7.旧OrCADのデータをOrCAD Captureに取り込む(回路図エディタとして使用する場合)


 シミュレーションではなく、回路図CADとして使うばあい・・・・・・

 まず、ディスク内にOrCAD SDT(DOS版)を用意します。

 「SDT.CFG」という名前のファイルをそのなかから探し出し、SDTの旧回路図(*.schファイル)の入っているフォルダにコピー(×移動)します。

 コピーした*.schのあるフォルダ内のSDT.CFGをテキストエディタで開き、いくつかパスが指定されている行を、全てその時点でのパスに変更し保存します。(注:旧OrCADは、拡張子[sch]以外でも回路図作成可能ですので、回路図ファイルが*.schとは限りません。)

 特に回路図とライブラリが保存されているフォルダのパスをきちんと指定します。

 OrCAD Captureの[File]コマンドの[Open >]の中の[Design...]を選び、ファイル指定を*.*にして、読み込みたい*.schファイルを指定します。

 すると、エラーが無ければ変換が始まります。

 たいてい、ワーニングが出て、完璧には変換されないようですが、ほぼ回路は読めます。

 エラーが出て全く変換できなかった場合には、[Session Log]ウィンドウにエラーが出ていますので、ここを見て、どこが悪いか考えて頑張ってみて下さい(^^;。

 たいてい、最初のワーニングまたはエラーが原因です。

 同様にライブラリの変換も出来ます。ライブラリは、SDT.CFGファイルの作成は不要です。[Open >]の[Libraly...]から、ファイル指定を*.*にして読み込みたい*.LIBファイルを指定するだけです。

▲Top