記事後半についていた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/