KiCad8のSpice機能で回路シミュレーションを行う part2

記事後半についていたTipsを本記事に分割しました。

KiCad8のSPICE基礎を知りたい方はこちらを読むことをおすすめします。
KiCad8のSpice機能で回路シミュレーションを行う - おながわの日記

多回路オペアンプの使用方法

基板設計を考えると実際に使用するシンボルでシミュレーションをできた方が便利です。
本項では多回路シンボルの使用方法について説明します。

手法としては既存subcktを引用して2回路分のsubcktを作るというものです。
下記の手順で進めます。
Texas instrumentsのサイトよりTL072HのSPICEモデルをダウンロードする
テキストエディタでtl07xh_tl08xh.libを開く
③subcktとして下記4行を追加する

.subckt TL072H 1out 1in- 1in+ vcc- 2in+ 2in- 2out vcc+
XU1A 1in+ 1in- vcc+ vcc- 1out TL07XH_TL08XH
XU1B 2in+ 2in- vcc+ vcc- 2out TL07XH_TL08XH
.ends

④KiCad側でTL072Hを読み込む

⑤ピン対応を確認する

⑥回路を完成させる

⑦シミュレーションを実行する

トランスの使い方

KiCadではテキストでspice命令を記述できるようになっています。
テキストでK1 L1 L2 0.999のように書くことで結合インダクタを作ることができます。

POTの使い方

オーディオ系の工作ではポテンショメータが必須となります。
実現方法は多々ありますが、KiCad forumでHolger Vogt(ngspiceのmaintainer)さんが紹介している方法が簡単で良いと思います。
https://forum.kicad.info/t/basic-potentiometer-simulation/22681/7

ここでポイントとなるのが、PARAMS:という書き方です。
PARAMS以下に宣言した変数は外からオーバーライドすることが可能です。

.subckt RPOT 1 2 3 PARAMS:value=1k ratio=1
R1 1 2 {value*ratio + 0.001}
R2 2 3 {value*(1-ratio) + 0.001}
.ends

トグルスイッチの扱い方

トグルスイッチもsubcktで実現できます。
片方を1mΩ、片方を1GΩのようにしてオープンショートを模擬します。

.subckt SPDT out1 in1 out2 PARAMS: orm1=10m orm2=1G
R1 in1 out1 orm1
R2 in1 out2 orm2
.ends

この方法はお手軽なのでよく使用されますが、スイッチを切り替えた際に片方がオープンになる回路では注意が必要です。
これはSPICEの計算上の問題であり、未接続ノードがあると多くの場合で計算が収束しません。

XSPICE Analog Modelsについて

ngspiceには、ミックスドシグナル解析を行うためにXSPICE拡張機能が実装されています。
XSPICEはコードレベルモデリングを利用してデジタル素子を含むシミュレーションの高速化に寄与します。

ユーザーはあらかじめ内包されたコードモデルの使用及び、独自のコードモデル定義が可能です。
定義済みコードモデルはAnalog Model , Digital Model , Hybrid Modelの3つが存在します。
ここではAnalog Modelsに内包されているGainというモデルを例に説明します。

コードモデルはAxxxのように書くことで使用可能です。(xxxは任意

*usage : Axxx input output モデル名
.subckt gain01 1 2 PARAMS: gain=1.0
a1 1 2 amp
.model amp gain(gain={gain})
.ends

シンボルは2ピンで適当なものを作って配置します。

コードモデルのgainパラメータを設定します。(ここではgain=2.0とする)

シミュレーションを実行し入力信号が2倍になっていることを確認する

以上がAnalog Modelsの使い方になります。
Gain以外にも定義済みモデルとしてSummer,Multiplier,Divider,Limiterなどが内包されていますので概念検証には便利かと思います。

XSPICE ユーザー定義モデルの使用方法

現在執筆中

ロジック素子の使用方法

現在執筆中

収束性向上について

ROHMさんのLTspiceモデルの使い方 収束性の改善ヒントが参考になりますのでそちらを参照ください
https://fscdn.rohm.com/jp/products/databook/applinote/common/how_to_use_ltspice_models_tips_for_improving_convergence_an-j.pdf

ROHM資料 SPICEシミュレーションの収束性と安定性
https://techweb.rohm.co.jp/product/simulation/8143/