私のSPICE歴

かつて岡村廸夫さんがPSPICEの活用を提唱したとき、私も岡村さんの本を購入し、CQ出版社版のPSICE(MS DOS版)も買って使ってみました。その後CQ出版社版のMicroCap5も購入しましたが、三角波発振器のシミュレーションに少し使っただけに終わっていました。最近になって本格活用を始め、スイッチング電源のシミュレーションを行っています。
今使っているのはMicroCap9デモ版、SIMetrix5.40評価版、LTspiceⅣ、いずれも無料のものです。

NCP101xのSPICEモデル

メーカ(On semiconductor社/旧モトローラ)がSPICEモデルを提供しています。Onsemi社は自社製品の多くのSPICEモデルを提供しています。さすがです。
NCP101x内の素子をトランジスタレベルでシミュレートすると素子数が多くなりすぎるため、アナログ・ビヘイビア・モデルを多用したモデルです。しかしこれでもSIMetrixの評価版ではアナログノード数オーバとなり、シミュレーションできませんでした。
LTSPICEでは動作したのですが、以下に述べる問題がありました。
ソースのRevは2003年4月6日でした。これです。
このICは4端子で、その一つはGNDと称しています。SPICEのシミュレーションではGNDは0(ゼロ)番端子です。しかし提供モデルではこの端子を4番と指定しています。
私のシミュレーションした回路はGNDを出力端子のように扱っていました。AND8334/Dの9ページにあるFigure 12の非絶縁型回路です。このICは、アプリケーションノートAND8334/Dのように、GNDを浮かして使う回路構成も想定されているので、データシート上GNDという名称でも0番でなく、4番端子にしてあるのは、GNDを浮かして使うことを考慮してのことと思いました。
ところが、SPICEのsubcktスクリプトは4番を0番と混同して扱っており、4番をシミュレーション上のグランド0番と一致させないと動作が異常になることが分かりました。

 回路のノードの電圧、例えば1番ノードの電圧V(1)は0番端子=グランドに対する電圧です。ところがsubcktモデルは4番端子を基準とする電圧をV(1)と書いていました。これをV(1)-V(4)=V(1,4)に修正し、一方、論理動作は0番基準に統一するという方針で、4番と0番の使い分けの混乱を修正したところ正常に動作するようになりました。

MC34063AのSPICEモデル

OnSemi社がSPICEモデルを提供しています。
このモデルのファイルには、MC34063とMC34063AのSubcktが一緒に載っています。AバージョンとA無しバージョンで、モデルの内容は大きく異なります。A無しモデルでPNPトランジスタを使っている部分をA付きでは数式モデルに置き換えています。またロジック部の構成も異なります。
現在市場にあるICはAバージョンなので、A付きのsubcktモデルを使用しました。このモデルを使った回路はSIMetrixとMicro-Cap9では正常に動作しました。ところが、LT spice Ver4.02(09.04.03)では動作が極めて遅くなり、結果が出ません。
A付きモデルでは電流検出値に応じて TC(Timing Capacitor) の充電電流を増やす回路を数式モデルで計算しています。全体特性にフィットする一つの数式を作れなかったため、2つの数式を用意し、電流検出電圧が0.3V辺りで2つの式を切り替えているのですが、その切り換えの前後で2つの式の値が一致せず、段差があるため、LTspiceは計算が収束しないようです。初期動作点の計算で行き詰まるので、この推定は誤りかも知れませんが、数式モデルをやめ、A無しモデルで採用しているのと同様なPNPトランジスタで近似する方法にA付きモデルを修正すると正常に動作しました。
その一方A無しモデルは、SIMetrixとMicro-Cap9では初期条件が定まらず、エラーになります。LT spiceは、スムースにシミュレーションできます。なぜかLT spiceだけ傾向が違います。PSPICE用モデルなので、PSICEならどちらのモデルも正常に動作するのかも知れません。
ただしA無しモデルをLT spiceでシミュレーションした場合でも、供給電圧を0Vからスタートさせると、TCの電圧が最初負に振れる異常が出ます。これは入力電圧が3Vより低いとき電流源が-220uAになってしまうためでした。Vccが3.1V以下では電流源=0(まだ動作しない)という条件を入れてやると、IC=0Vでも負に振れなくなります。本来このような条件をモデルに入れるべきだろうと思います。
A無しモデルがSIMetrixで初期DC動作点の計算で収束しないというエラーとなる原因は、内部のロジック回路の初期状態が定まらないためのようです。

TRIACモデルについて

仕事でトライアックを含む回路のSPICEシミュレーションを行いました。
トライアック(双方向サイリスタ)は、2個のサイリスタを逆並列に接続し、双方向に電流を流せるようにし、交流でも直流でも使えるようにしたものであるというように説明されています。しかし、これだけでは、すべてのトリガ条件で動作するシミュレーションモデルになりません。

サイリスタモデル

トライアックモデル