🐕

ギター電装系の解析をPythonで自動化する

に公開
2026/01/12

はじめに

あまり知られていない話ですが、LTspiceはPythonのPyLTspiceライブラリを使えば解析を自動化できます。

プログラミングに自信が無くても、最近ならCodexやClaude Codeを使えば簡単に自動化を実現できます。

出力フォーマットを変えたかったり、決まった組み合わせをシミュレーションするときは、今回紹介する手法がかなり有効だと思うので、是非やってみてください。

目的

PyLTspiceを使って、以下の作業を自動化します。

  • ピックアップセレクターの切り替え(Neck / Middle / Bridge)
  • トーンノブ・ボリュームノブの値を変化させる(0〜10)
  • 各組み合わせでのAC解析を実行

手作業だと数十回の操作が必要ですが、Pythonスクリプトなら一度実行するだけで全パターンが得られます。

方法概要

大まかな流れは以下の通りです。

  1. 測定:ピックアップやケーブルの電気特性を測定
  2. 回路作成:LTspice上で配線を再現
  3. スクリプト作成:Pythonで自動化コードを書く(AIに任せてOK)
  4. グラフ準備:Excel + VBAでグラフフォーマットを設定
  5. 実行:スクリプトを走らせて結果を取得

今回作成したファイル(.asc、.py、.xlsm)は全てGitHubにアップロードしているので、参考にしてください。

電装系の測定

シミュレーションの精度を上げるには、実測データが必要です。

測定するもの

  1. ピックアップの電気特性

    • DCR(直流抵抗)
    • インダクタンス
    • 並列容量・抵抗

    測定方法の詳細はギターピックアップにおける電気的特性のモデル化手法を参照してください。

  2. ケーブル容量

    シールドケーブルの静電容量は周波数特性に大きく影響します。LCRメータで測定しておきましょう。

  3. 配線のトポロジー

    ネットで回路図を探すか、Fender系ならサービスマニュアルを参考にすると良いです。トーンコンデンサの容量も測定しておくと、より厳密な再現ができます。

LTspice上で電装系を再現

測定データが揃ったら、LTspice上で配線を組んでいきます。

今回は少し複雑ですが、Fender American Professional II Stratocaster HSSの配線を例にします。
Simulation conditions of the tone circuit in LTspice
Simulation conditions of the tone circuit in LTspice

スイッチ配線のポイント

ピックアップセレクターなどのスイッチは、電圧制御スイッチで実現します。これがPyLTspiceで自動化するときのキモになります。

基本的な配線

まず、電圧制御スイッチの基本的な使い方を押さえましょう。


電圧制御スイッチの基本配線

スイッチの+と-に制御用の電圧源を接続します。ただし、このままだとスイッチの挙動(オン抵抗、しきい電圧など)が定義されていません。

以下のSpice Directiveを追加します(Windowsなら.キー、Macならsキー)。

.model SW SW(Ron=1m Roff=1G Vt=2.5)

パラメータの意味:

  • Ron:オン抵抗(1mΩ = ほぼ短絡)
  • Roff:オフ抵抗(1GΩ = ほぼ開放)
  • Vt:しきい電圧(2.5V = 制御電圧が5Vならオン、0Vならオフ)

もしSW名を変更した場合(例:MySW)は、以下のように書きます。

.model MySW SW(Ron=1m Roff=1G Vt=2.5)

SPDTスイッチの実現

ピックアップセレクターのような「どちらか一方だけオン」というスイッチは、2つの電圧制御スイッチを組み合わせます。


SPDTスイッチの実現方法

ポイントは、制御電圧の極性を逆にすることです。

  • S1:制御電圧が高いときにオン
  • S2:制御電圧が低いときにオン(GND側が+5Vに固定されているため)

こうすることで、制御電圧を1つ変えるだけで排他的なオン/オフが実現できます。Pythonスクリプトでは、この制御電圧を切り替えるだけで済むので楽です。

Pythonスクリプト作成

シミュレーションを実行するためのPythonスクリプトを作成します。プログラミング経験がなくても、AIにコードを書かせれば大丈夫です。

AIを使った開発

Claude CodeやCodexなどのコーディング支援AIを使うと、かなり楽に作れます。私が作成したスクリプトをGitHubにアップロードしているので、これをAIに読み込ませると良いです。

プロンプトのポイント

AIにコードを書かせるときは、以下を明確に指示してください。

  1. 電圧源のリファレンス(例:V2, V3)
  2. 出力ノード(例:Amp-In)

これらが曖昧だと、うまく動かないコードが生成されるので注意が必要です。

プロンプト例

LTspiceのascファイルで、V2~V6の値を以下の組み合わせに設定して、
それぞれの組み合わせにおいてノード`Amp-In`の周波数特性をCSVで出力するPythonスクリプトを作成してください。
PyLTspiceライブラリを使用します。

グラフ描画用Excelファイル作成

グラフ描画はExcelでもPythonでも何でも良いと思いますが、馴染みのあるExcelを使おうと思います。

グラフのスタイル設定は、AIにVBAを書かせるのがお勧めです。一度マクロを作っておけば、後から設定変更も簡単ですし、複数のグラフで統一したフォーマットを維持できます。

参考:【Excel】グラフ作成の効率化テクニック

Excelを使うメリットとして、csvファイルのインポート-->グラフのpng出力まで一連の流れを一気に行うことができます。一旦Excelファイルを作作り込んでしまえば、Excelファイルを開く-->マクロ実行の2ステップで全て完結してしまうことができます。

結果

Fender American Pro II HSS PU測定データにある18枚のグラフを簡単に得ることができました。

Pythonを使わない場合は電圧制御スイッチの設定や、トーン/ボリュームノブの切り替えを手作業で行う必要があったため、かなりの手間になったかと思います。

Bode Plot of the Tone Control Circuit — Neck Position, Volume Knob
【出力例】 Bode Plot of the Tone Control Circuit
— Neck Position, Volume Knob Adjusted

まとめ

PyLTspiceを使うことで、LTspiceのシミュレーションを自動化できます。

今回のワークフロー:

  1. ピックアップ・ケーブルを測定
  2. LTspiceで配線を再現(電圧制御スイッチがポイント)
  3. Pythonスクリプトでパラメータを自動変化
  4. Excel + VBAでグラフを一括作成

手作業だと数十回の操作が必要ですが、スクリプト化すれば一度実行するだけで全パターンが得られます。

最後に

pyLTspiceパッケージを活用することで、電装系のシミュレーションだけでなく、データ収集や回路設計に役立てることができます。
難しそうに見えますが、私の作成したPythonスクリプトを叩き台にして、自分の用途に合うスクリプトをLLMを活用して作成してみてください。

Discussion