KiCadで作成した回路図は、Ngspiceでシミュレーションすることができます。しかし、現時点ではシミュレーション結果を表示させるのに少し制限があり、LTSpiceのWaveform viewerの方が使いやすいと感じます。また、収束性やシミュレーション速度もLTSpiceの方が良いことが多いようです。
しかし、回路図作成はKiCadの方が使いやすいと思います。
今回は、KiCadで書いた回路図をLTSpiceでシミュレーションする方法を簡単に紹介します。
(KiCad Version: 7.0.6, release buildを使いました)
まだ、KiCadでの回路シミュレーションは使い始めたばかりですので、間違やもっと良いやり方があるのかもしれません。
回路図
とりあえず説明用に作成した回路図です。(実際に動くかどうかわかりません)
ネットリスト作成とシミュレーション
この回路図からネットリストを作成します。
ファイル→エクスポート→ネットリスト… で回路図からネットリストを生成します。
この時、「外部シミュレータのコマンド」にLTSpiceを指定すると、ネットリストを生成し、LTSpiceを実行してくれます。
① LTSpiceのパスを追加します。
私の環境では、LTSpiceのパスは、C:\Program Files\LTC\LTspiceXVII\XVIIx64.exe でした。
”%I”の部分は消さずに残してください。LTSpiceに引数としてネットリストを渡します。
②「ネットリストを作成して、シミュレーターのコマンドを実行」をクリックします。
自動的にLTSpiceが起動して、シミュレーションが実行されます。エラー無くシミュレーションが終わったら、Waveform Viewerで表示したい波形を選択します。
この時、Plot Settings → Save Plot Settingsで設定を保存しておくと、次にシミュレーションしたときに同じ設定でシミュレーション結果が表示されて便利です。解析によっては、グラフのレンジがリセットされ、波形が選択されるだけかもしれませんが、波形を選択しなおさなくて良いだけも便利です。
信号源をサイン波形にした場合、KiCadから出力されたネットリストそのままでは、期待したシミュレーション結果が得られないかもしれません。
その場合は、修正が必要です。
V1 vin 0 DC 0 SIN( 0 0.15 10meg 0 0 0 0.15 ) AC 0.15 の
SIN( 0 0.15 10meg 0 0 0 0.15 ) 部分を
SIN( 0 0.15 10meg 0 0 0) 修正します。
もし、3サイクル(周期)の信号にしたい場合は SIN( 0 0.15 10meg 0 0 0 3) とします。
0.15の部分は、LTSpiceでは NcycleになるべきところにAC解析の振幅値が入力されてしまっているようです。なので、過渡解析をする場合は AC magnitude(ac) を0にすれば、過渡解析では連続になります。
ただし、AC解析をする場合は、修正が必要です。ネットリストを直接修正しても良いと思います。
これは、KiCadのバグじゃないかな~と思うので、きっとその内修正されると思います。
AC解析もやってみました。
う~ん、発振しそう…(笑)
KiCad+Ngspiceでも良いやり方があるのだと思いますが、まだ見つけられていません…