Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lab-circuit-python

Python で電子回路を「コードとして」書き、シミュレーションし、波形を出すための小さな練習場です。 個人ラボとして自分の手で動かしながら書いているので、整備の度合いはお作法的なライブラリよりもラフです。 そのつもりでお付き合いいただけたら嬉しいです。

使っている道具:

  • schemdraw — 回路図を Python から PNG で出す
  • skidl — 回路を Python オブジェクトで「組み立てて」ネットリストを吐く
  • PySpice — ネットリストを SPICE で解いて Bode などを返す
  • ngspice — sudo 無しで動くようユーザ空間に置く(手順は記事に書いています)

対応記事

記事
examples/01_schemdraw_amp.py 回路図を Python で — schemdraw / skidl / PySpice の役割分担
examples/02_skidl_netlist.py 同上
examples/03_pyspice_rc.py 同上
examples/04_pyspice_bode.py ngspice の壁 — sudo 無しで PySpice を通すまで
examples/05_aaf_design.py FFT が汚れる前に — AD コンバータの手前で 4 次 LPF を E12 / E24 でどう組むか

セットアップ

ngspice の sudo 無し導入は記事側にまとめてあります(examples/04_pyspice_bode.py の冒頭の記事)。 Python 環境だけ用意してから、その記事に沿って ngspice の共有ライブラリのパスを通してください。

python -m venv .venv
source .venv/bin/activate
pip install schemdraw skidl pyspice matplotlib numpy

outputs/ に各例の出力(PNG / .cir)が入ります。記事の図と同じものが再現できるよう、生成済みのものも追跡しています。

例の動かし方

# 例: 反転増幅回路を schemdraw で描く
python examples/01_schemdraw_amp.py

# 例: 受動 RC ローパスの Bode 線図(ngspice を通すところまで)
python examples/04_pyspice_bode.py

# 例: 4 次 Butterworth AAF を E12 / E24 で設計する
python examples/05_aaf_design.py --topology sallenkey --fc 20e3 \
                                 --fix-c1 1e-9 --series-r e24 --series-c e12

examples/05_aaf_design.py --help でオプションが出ます。

ライセンス

MIT License(LICENSE)。 ご自分のラボや授業の素材として、自由に流用してください。 誤りや「ここはこう書くともっと良い」というご指摘も、Issue でいただけると助かります。

About

Python で電子回路を書き、組み、SPICE で解く小さな練習場。4 次 Butterworth AAF を E12 / E24 で設計するヘルパ同梱。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors