KiCad付属ngspice入門 その3 ダイオードとトランジスタ

概要

前回までモデルを利用しない分析をしてきましたが、今回はモデルを利用しての分析に入っていきたいと思います。しかしながらモデルの選定がかなりの鬼門でした。

ダイオード(D)の分析

とりあえず、100Vの交流電源からダイオードに流して整流ができているかを確認してみたいと思います。このときまずダイオードの型番を確定する必要があります。抵抗などと違って、部品によって特性が違うので分析結果も違って来ます。

こんなときはまずは秋月電子さんのカテゴリ一覧を見てみます。

https://akizukidenshi.com/catalog/c/c/

んー、いろいろダイオードがありますね。一番上の整流用ダイオードが一般的なやつだと思いますのでこれを選択します。

https://akizukidenshi.com/catalog/c/csilicon/

デフォルト順序が売れている順のはずですが、2素子入ファストリカバリダイオードはよくわからない製品です。2位にある汎用電流用ダイオードは型番も1Nからはじまる標準的なダイオードな気がします。

https://akizukidenshi.com/catalog/g/gI-00934/

最も有名な整流用ダイオードですね。これに決めます。

モデル検索

「1n4007 spice model」でGoogleで検索すると一位にONSEMIさんのサイトがひっかかります。

https://www.onsemi.jp/products/discrete-power-modules/rectifiers/1n4007

技術文章の中にSPICEモデルがありました。さて問題はどのファイルを利用するかです。結果だけいうとSPICE3モデルを利用します。PSpiceとSaberは商用の分析ツール用で、SPICE2かSPICE3のどちらでも利用できるようですが、新しい3のバージョンを利用します。

各種SPICE分析環境はSPICE3から派生している事が多いのですが、PSpiceやLTspiceは独自拡張されており、独自拡張部分をngspiceでは読み込むことができません。

モデルの設定

ダウンロードしたファイルを回路図と同じ場所か、別のフォルダなどを作成して移動しておきます。「ファイル選択」ボタンをおしてモデルを選択するのですが、拡張子SP3だと一覧に表示されません。拡張子を.libか.modに変更するか、すべてのファイルを対象にしてから読み込んでください。そうすると上記のような画面になります。

注意点としてはモデルのところが利用したい部品になっているかの確認と、タイプがダイオードになっているかを確認しておきます。

分析

はい、きれいに整流されていますね。ただマイナス方向の電圧ですね。。。

ダイオードをRボタンを2回押して、方向を修正しました。

プラス方向になりました。まあ、今回はあまり方向関係ない回路なんですけれどね。これ抵抗の電圧を測定しているので、ダイオードの方向を変更するのではなくて抵抗とダイオードの位置を交換するのが正しそうです。

NPNトランジスタ(BJT)の分析

とりあえず上記のような回路にしてみました。0Vから2Vまでの交流をトランジスタに入れて、200Ωの抵抗に電流を流します。本当はLEDとかがここの負荷にある回路を想定しています。

モデルを探す

https://akizukidenshi.com/catalog/g/gI-11428/

汎用っぽいトランジスタとして上記がありました。しなしながらモデルを検索しても有料で販売しているモデルしかありません。どうやらメーカーが無償でモデルを公開していないようです。このへんの汎用トランジスタは古い製品が多く、製造中止になったりモデルを提供していなかったりと探すのが結構たいへんです。

https://toshiba.semicon-storage.com/parametric?region=apc&lang=ja&code=param_306&p=50&i=1&sort=0,asc&cc=0d,1d,40d,3d,31d,32h,4d,5d,6d,22d,7d,8d,23d,24d,25d,26d,9d,10d,27d,28d,29d,30d,11d,15d,12d,13d,14d,17d,16d,33h,34h,35h,36h,37h,38h,39h

東芝デバイス&ストレージさんのホームページで検索します。PSpiceとLTspiceのモデルがあるかをパラメトリック検索で探すことができます。ただし、結論からいうとこのモデルを利用するのはおすすめできません。両方とも独自拡張をしているので、あまりngspiceではうまく動かない可能性があります。

まあ、実際のところトランジスタは非常に単純なパラメータなので、問題はおこならないと思いますが他の複雑なモデルを使うときにハマったりします。

https://toshiba.semicon-storage.com/parametric?region=apc&lang=ja&code=param_306&p=50&i=1&sort=0,asc&cc=0d,1d,40d,3d,31d,32h,4d,5d,6d,22d,7d,8d,23d,24d,25d,26d,9d,10d,27d,28d,29d,30d,11d,15d,12d,13d,14d,17d,16d,33h,34h,35h,36h,37h,38h,39h&f%5B%5D=5%7CNPN

とりあえず、NPNトランジスタのみに絞り込んでから、一番上にある2SC2712を選んでみたいと思います。PSpiceとLTspiceの2種類あるので両方ダウンロードしてみます。

読み込めましたが、モデルになにもありませんのでこのファイルは利用することができません。LTspice Encrypted Fileと先頭にありましたので、暗号化してある特殊形式のようです。このようにSPICEモデルは特性を暗号化して見せなくしているものがあったりします。

PSpice用の.libファイルを読み込んでみました。こちらはモデルに2SC2712がいるので大丈夫そうですね。ただし、タイプがサブ回路になってしまいました。これはトランジスタ直接ではなく中の配線などを変更できたり、他の部品を追加可能なサブサーキットモデル(.subckt)という機能を使っているためです。

本来トランジスタはSpice_ModelがQのハズなのですが、サブサーキットなのでXになっています。モデルを見た限りサブサーキットにする必要はないのですが、結構東芝のデータはサブサーキットになっていました。あとSpice_Modelは標準で表示しない項目ですが、表示するように変更したほうがあとでわかりやすいと思います。

こんな感じの回路になりました。

分析

赤が信号で、青がR2の200Ωに流れる負荷部分の電流です。0.7V以上の電圧をトランジスタにかけると、負荷に電流が流れています。こちらが標準的なスイッチングの回路になります。

トランジスタの分析で注意すること

トランジスタの部品は実はいろいろなタイプがあります。上記が一般的なやつですが6タイプもありますね。機能としては同じなのですが1ピン、2ピン、3ピンをどこに配置したのかの違いになります。一般的にはエクボとおぼえたECBな気がしますが、いろいろあります。

*********************************************************************
*  (C)  Copyright  TOSHIBA CORPORATION  2016
*  Date                 :27/07/2016
*  File Name            :2SC2712.lib
*  Part Number          :2SC2712
*  Parameter Ver.       :Ver.1
*  Simulator            :PSpice
*  Model Call Name      :2SC2712
*  TNOM                 :25 degree
*  Pin Assign           :1=Collector 2=Base 3=Emitter
*********************************************************************

さて、SPICEではピンの並びは固定で指定されています。先程の先頭にありますがトランジスタはすべてCBEの順番になります。

https://toshiba.semicon-storage.com/info/2SC2712_datasheet_ja_20210706.pdf

実際のデータシートをみてみますとBECですね。

さて、上記のように2SC1815という、普通のトランジスタの部品もあります。こちらはECB配列ですのでCBEとはピン番号が違います。この場合には分析がおかしくなるので注意してください。個人的には分析用の回路図はすべてQ_NPN_CBEなどとSPICEモデルと同じ足の順番のものを使うほうが安全です。

先程の回路を2SC2712の正式なピンレイアウトに置き換えました。BECですね。

このまま分析してみると、よくわからない結果になります。ピンレイアウトが違いますからね。

こんなときには一番したの代替ノードシーケンスを利用します。

もともと1ピンだったところが3、2ピンだったところが1、3ピンだったところが2なので順番に「3 1 2」と指定します。

これで正しく分析することができました。

PNPトランジスタ(BJT)の分析

https://toshiba.semicon-storage.com/parametric?region=apc&lang=ja&code=param_306&p=50&i=1&sort=0,asc&cc=0d,1d,40d,3d,31d,32h,4d,5d,6d,22d,7d,8d,23d,24d,25d,26d,9d,10d,27d,28d,29d,30d,11d,15d,12d,13d,14d,17d,16d,33h,34h,35h,36h,37h,38h,39h&f%5B%5D=5%7CPNP

PNPも東芝さんのサイトで一番上にある2SA1162を使ってみたいと思います。

回路

こんな回路図にしました。PNPトランジスタは一番右側にある形が初期値ですが、上から下に流したかったので上下を反転させています。ともかくピンの順番はCBEになっている必要があります。

分析する

ちょっとわかりにくいですが赤が電流で青が電圧です。PNPトランジスタの場合にはエミッタとベースの電圧差によって流れる量が変わります。エミッタには3.3Vが流れており、ベースの電圧が2.6V前後から下がると急激に流れなくなっています。

ちょっとこれだとわかりにくいので他の分析もしてみます。DC伝送にして、V1の電圧を0から3.3Vまで10mV(0.01V)単位で変更してみます。

こんなグラフが出てきました。これをみると2.5Vぐらいから流れる電流が減っていますね。2.8Vぐらいでほぼ0になっています。あれ、先程の結果と電流が逆になっていますね。

上記は先程のNPNトランジスタの2SC2712の結果です。0.6Vぐらいから電流が流れて、0.8Vぐらいで安定するグラフになりました。こちらは大丈夫そうですね。

ちょっとここはよくわからないですが、動き的にはちょっとおかしい気がします。

トラブル対策

どのモデルを使えばいいの?

個人的にはまったくわかりません。同じ部品のモデルでもファイルによって微妙に中身のパラメーターが違っていたりします。全般的にngspiceで複雑な分析をするのはモデルを揃えるのが大変な気がしています。

PSpiceを使う

PSpiceは製品版のCADに付属する分析ツールのため、モデルデータもかなりお金をかけて整備されています。ただし、無償版では使える回路に制限があり、大きな回路の分析ができません。通常使う範囲であれば無償版で問題ない気がしますがいざ有償版を購入しようとしても、単体で購入できないのでびっくりする価格の商業用CADを購入する必要があります。

LTspiceを使う

LTspiceは無償で使え、モデルなども比較的充実しているので一番いい気がします。ただし、モデルはあまり同梱していないのでngspiceと同じように探し回る必要があります。とはいえ、最低限のモデルは内蔵しているので、そこから選択するだけでもある程度の分析は可能です。

第三者のモデルデータ集を使う

たとえば上記はKiCAD用のSpiceデータ集です。

上記のngspice公式サイトからもリンクされています。最初これを使えばいいのかと思っていたのですが、そんなに甘くはありませんでした。

まずライセンスが怪しいです。適当にいろいろなところから持ってきたデータなのでごちゃ混ぜのライセンスです。データによって正しいものや、おかしいものが混ざっている可能性があります。

あと、、、ngspiceで動かないモデルデータがあります。

モデルデータが動かない場合

これはKiCad-Spice-LibraryのDIODE2.libに入っている1N4007を分析しようとした場合のエラーです。

上記のファイルになります。

.model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07 mfg=OnSemi type=silicon)

上記のモデルデータなのですが、最後のtype=siliconがngspiceではサポートされていないパラメータになります。

**************************************
*      Model Generated by MODPEX     *
*Copyright(c) Symmetry Design Systems*
*         All Rights Reserved        *
*    UNPUBLISHED LICENSED SOFTWARE   *
*   Contains Proprietary Information *
*      Which is The Property of      *
*     SYMMETRY OR ITS LICENSORS      *
*Commercial Use or Resale Restricted *
*   by Symmetry License Agreement    *
**************************************
* Model generated on May 30, 03
* MODEL FORMAT: SPICE3
.MODEL 1n4007 d
+IS=7.02767e-09 RS=0.0341512 N=1.80803 EG=1.05743
+XTI=5 BV=1000 IBV=5e-08 CJO=1e-11
+VJ=0.7 M=0.5 FC=0.5 TT=1e-07
+KF=0 AF=1

ちなみにオン・セミコンダクター純正のモデルが上記です。モデルのパラメーター自体は同じようですね。

# Unofficial LTSpice Wiki Page: http://ltwiki.org/index.php?title=Standard.dio Date of latest edit	02:34, 4 July 2013

あと1行目に上記のコメントがありますが、ngspiceではコメントは*なのでこの行がエラーになります。これはこのライブラリ作った人が書き加えたコメントで、まちがって#にしてしまっていますね。

もともとコピーライトが書いてあった行になります。個人的にはコピーライト消すのは好きじゃないのでこのライブラリはちょっと使いたくないです。

ちなみにこのモデルファイルは1行目を*に書き換えて、typeのところをすべて消せばngspiceも使えると思います。

モデルデータが動かない場合その2

上記はオンセミの2SC4617.SP3を使いました。なにやらいろいろエラーが出ていますね。これはもうよくわからないので使うことができません。

オンセミさんと東芝さんのモデルは検索しやすくて、使いやすいのですがngspiceでは動かないものが混じっています。ダイオードはオンセミさんがよくって、トランジスタは東芝さんが動きました、次回以降で紹介するMOSFETは東芝さんだめでオンセミさんが動きました。。。オペアンプは非常に苦戦して、LTspiceとPSpice拡張機能を使っている物が多くROHMさんのデータでなんとか動かすことができました。

※その後の実験でROHMさんのデータが一番ngspiceに適していることがわかりました。次回以降はROHMさんのモデルデータで検証しなおしたいと思います。

分析結果がおかしい

上記はCUHS20S60というダイオードを使った回路です。

60Vまでしか電圧が出ていません。データシートを見たところ逆電圧が60Vのダイオードでした。そもそも60Vまでのダイオードなので、60Vを超えた部分の分析はおかしくなります。こんな感じで定格を超えた部品を使っていると分析結果では動いているように見えて、実際の回路では故障するパターンもありますので注意してください。

まとめ

モデルデータを自分で用意する必要があるのが非常に辛いです。とくにLTspice向けデータが多いのでngspiceで動くかはやってみないとわかりません。ngspiceだと使いたい部品じゃなくって、とりあえず動くモデルを探して、それでなんとなくの分析をするのに適しているような気がします。

おそらくモデルを内蔵しているPSpiceが一番楽だと思うのですが、どうも商用ソフトの無償版ってすきになれないんですよね。とくに商用版の価格が一切非公開で、見積もり取らないとわからないタイプみたいです。

続編

コメント