KiCAD + ngspice

回路図を作成するために久しぶりにKiCADをインストールしたので、ついでにKiCADについてググってみたところ、KiCADでSPICEシミュレーションができるという記事を見かけました。
そこで、試しにやってみました。環境はLinux Mint 20です。

インストール

すでにKiCADはSynapticなどからインストールしてある状態からです。
まず、ngspice と gnucap をインストールします。(両方必要なのかはわかりません)

$ sudo apt install ngspice gnucap

次に、Linux Mint 20ではgrepとegrepがインストールされている箇所の違いから問題が出る、という記事を見かけましたので、そのワークアラウンドを探して実行しました。

$ sudo ln -s /bin/grep /usr/bin/grep
$ sudo ln -s /bin/egrep /usr/bin/egrep

回路図の作成

新規プロジェクトを作成し、回路図(.sch)をダブルクリックして開きます。

必要なシンボルを配置していきますが、シンボル選択で spice と入力するとspiceシミュレーションができるシンボルだけを絞り込み表示できます。

電圧源を選択したところ。

回路図を作成し、各部品にリファレンス(部品番号)と定数を設定します。
今回はCRローパスフィルタのシミュレーションをしてみます。

抵抗値は1kΩ、コンデンサは1uFとしました。カットオフ周波数は

となりますので、計算上は 1÷(2×3.14×1000×10^-6) = 159.24Hz となります。
電圧源は右クリックして、「プロパティを編集」を開いた後、「Spiceモデルを編集」をクリックしてパラメータを設定します。

ここでは、DC/AC解析のAC振幅に1V、過渡応答解析のパルスに以下の設定を行いました。

SPICEシミュレーションの実行

「ツール」⇒「アノテーション」、「ツール」⇒「ネットリストを生成」とした後、「ツール」⇒「シミュレータ」でシミュレータの画面を開きます。

「設定」で「AC」タブを開いて、以下の設定を行います。

「実行」ボタンをクリックした後、プローブをクリックして、回路図上のコンデンサの端子をクリックすると、周波数応答が表示されます。右上の信号欄で信号を選んで「カーソルを表示」とすると、グラフ中にカーソルを表示できます。

カーソルを移動することで、位相遅れが-45°になる周波数は159.115Hz、この周波数でのゲインは-3dBVとなり、机上計算の通りであることが確認できます。

設定で「過渡応答」タブを開いて、

として、同様に「実行」をクリックしてからプローブで抵抗の両端をクリックしすると、それぞれの位置での過渡応答波形が表示されます。

拡大したい部分を選択すると、

過渡応答波形が表示されます。

細かい使い方がまだわかりませんが、インストールで躓くことなく簡単に使えるのは嬉しいです。LTSpiceのようにWine上でエミュレーション動作させるのではなく、ネイティブ(?)に動作させられるのが良いです。

こちらの記事を参考にさせてもらいました(基本、なぞっただけです)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)