LTSpiceでシミュレーション

はじめに

Spiceというアナログ回路シミュレータがあるのはずっと知っていて、これを使って真空管回路をシミュレートしている人たちがいるのもネットで知っていたけど、なんだか難しそうなので自分ではやらなかった。

たぶんこの道で日本で一番、有名な人はAyumiさんという人で、彼のサイトではSpiceによる真空管アンプのシミュレーションをものすごく丁寧に解説している。すべてを無料で公開していてすばらしい。そうこうしているうちに数年前に本まで出た。「真空管アンプのしくみと基本」という本で、これ一冊ですべてできるみたいだ。ただ、サイトの内容を見ると大量の数式で、たしかに中学校の数学なのだが、僕が見てもなかなかついてゆくのが難しく感じてしまう。

真空管ギターアンプに限ってネットをあさると、Spiceでシミュレーションしている人がぽつりぽつり見つかる。一般的なアナログ回路設計が難しいので、Spice上でまずは仮組して、素子の数値をいじってカットアンドトライで回路設計する、という人もいた。なるほど、これなど、ちょうど僕が板切れの上で半田で仮組して部品をとっかえひっかえして回路設計(決定?)するのと同じである。

あと、音を出している人もいた。シミュレーションソフトの入力にギターを録音したオーディオファイルを入れてシミュレーションして出力をオーディオファイルに落として鳴らすわけである。これは、なかなか面白い。

というわけで、いろいろあるわけだが、今回、とうとう実際にソフトに手を出してやってみた。最初は右も左も分からなかったが、いろんなサイトを参考にして、やっているうちに何とかあるていどできるようになったので、ここに備忘録も兼ねてまとめておこう。

LTSpiceを真空管回路で使う

最初は、大御所のAyumiさんのサイトを読めばあっさりできるかな、って思ったけど、Spiceにもいろいろ種類があるみたいで、さらにそのサブシステムもあれこれあって、ざっと読んでもさっぱりわからなかったので、他のサイトも参考にしながら、LTSpiceというものを使うことに決めて、まずは、やってみることにした。以下は、その手順である。

・LTSpiceのインストール

まず、Linear Technologyのここのサイトへ行く

http://www.linear.com/designtools/software/

ここで、「Download LTspice IV for Windows」のリンクでLTSpiceのインストーラをダウンロードする。リンクをクリックすると、変なポップアップが出て、一瞬アレ?となるが「No thanks」の方を押せばダウンロードが始まる。ダウンロードが終わったらダブルクリックしてふつうにインストールする。

・真空管を部品として登録する

LTSpiceはもともとはディスクリートのデジタル回路やトランジスタ回路なのどのアナログシミュレータで、真空管はそのままでは使えない。なので、真空管回路で使う部品を自分で用意しないといけない。LTSpiceでは、部品を数式でモデリングすることで、使うことができる。モデリング自体は当然、専門知識が無いとかなり難しい。

そこで、当の真空管の用意だが、やはりこれはAyumiさんのデータがすばらしい。100本以上の真空管のモデルをフリーで公開している。サイトは以下。

http://ayumi.cava.jp/audio/index.html

ここの、「電脳時代の真空管アンプ設計—プログラム・データ」のWindows用をダウンロードして解凍する。真空管のデータのみでいい場合は「SPICE用真空管モデル」の方でもよいようだ。

次に、以下の手順で真空管を登録する。ここでは双三極管の12AX7を例にとって説明しよう。

  • .incというファイルが部品のモデリングのファイルである。一方、回路図上のシンボル(図形)を定義しているのが.asyファイルで、これはLTSpiceのインストールディレクトリの下にある。
  • 自分の作業フォルダに、Ayumiさんの解凍ファイルから12AX7.incをコピーする
  • 同じ場所に、”C:\Program Files (x86)\LTC\LTspiceIV\lib\sym\Misc”の中のtriode.asyをコピーしてきて、これを12AX7.asyにリネームする。
  • triode.asyは、図形だけで中身の無い三極管である。このほかに、tetrode.asy(4極管)とpentode.asy(5極管)がある。
  • まず、12AX7.incをテキストエディタで開いて、「^」を「**」に全置換して保存する。演算子の仕様が違うそうだ。
  • 12AX7.asyをテキストエディタで開いて、SYMATTR Value Triode
    SYMATTR Prefix X
    SYMATTR Description This symbol is for use with a subcircuit macromodel that you supply.というところに、12AX7.incの定義を参照する行を付け加え、名前も書きかえる。たとえば次の通り。

    SYMATTR Value 12AX7
    SYMATTR Prefix X
    SYMATTR ModelFile 12AX7.inc
    SYMATTR Description This is 12AX7 made using Ayumi’s lib

以上で、12AX7が使えるようになる。

ここで、.asyファイルと.incファイルの「ピン接続」について書いておく。asyファイルの中の

PINATTR SpiceOrder 1 とかPINATTR SpiceOrder 2

というのがあるが、ここの1, 2, 3というナンバリングと、incファイルの中の

.SUBCKT 12AX7 A G K

のA(プレート)、G(グリッド)、K(カソード)の順番が対応している。なので、他の部品を登録するときは、この規則に注意して、正しいピン番号に割り当てるようにする。

・真空管回路を描く

まずは真空管回路を描くわけだが、面倒なのであんまりここで詳しくは説明しない。たぶん、あれこれやっているうちに描けるようになると思う。ユーザーインターフェースは、まあまあよくできてるんで、マウス操作していれば直感的に習得できると思う。ここでは、分かりにくいところだけあげて書いておく。

  • まずはFileのNew schematicで白紙を開いて、ここに部品を置いて結線して行く。最初に回路図データファイル(.ascファイル)を作業ディレクトリに保存しておいて、取りあえずそこに、asyとかincとかのファイルを入れておけばすぐ参照できる。慣れてきたら、ライブラリー化したり、インストールディレクトリの方に集めておいたりすればいいと思う。
  • 作った真空管を使うときは、Edit~Componentを選び、一番上のTop directoryというところで真空管の.asyファイルがある作業ディレクトリを選べば、12AX7が見えるはずである。それを選べば回路図に置ける。
  • 抵抗、コンデンサ、アースはアイコンから選べばいい。結線は、鉛筆のアイコンでする。
  • 抵抗やコンデンサーの値は、部品の上で右クリックしてウィンドウ内に入力する。コンデンサのμFのμは無いので、「u」を使う。
  • 直流電源は、いくつかあるみたいだが、Edit~Component(アイコンもある。論理回路の形したやつ)で、インストールディレクトリのlib\symの方を選び、その中のMiscのbatteryを選ぶと乾電池のシンボルが出る。このシンボルを右クリックするとウィンドウが出るので、そこのDC Valueにボルト数を入力すればいい。
  • 電源などはラベルを使うと便利である。ラベルは、「A」と描かれたラベルアイコンを押せば出る。たとえば直流電源にVccというラベルを付け、増幅回路の方の電源を供給していところにやはりVccというラベルを付けておけば、電源を供給できる。
  • 信号源は、Edit~Componentの中のMiscの中のsignalを使う。シンボルを右クリックするといろいろ設定できるウィンドウが出てくる。デフォルトでは正弦波のSINEがチェックされていて、DC offsetが0、Amplitudeが1ボルト、Freq(周波数)が1KHzになっているので、ここで数値入力して変えられる。
  • この他、アンプの場合、ボリュームや出力トランスが必要だけど、これらもデフォルトでは無いので、自分で登録しないといけない。これについては、また別ページで書くことにする。

シミュレーションする

回路図が描けたらすぐシミュレーションできる。

Simulate~Edit simulation Cmdを選ぶと設定ウィンドウが開く。ここで、Transientを選ぶと波形のシミュレーションができる。取りあえずStop timeに0.05を入れてOKを押し、Simulate~Runを選べばシミュレーションが始まる。0.05秒間の波形がウィンドウ上で見られる。回路図上で、波形を見たいポイントでプローブのアイコンを出し、左クリックするとそのポイントの波形が出る(複数波形のオーバーラップになっているときは、何回かクリックすると出る)

spice1

次は周波数特性だが、この時は、まず信号源のsignalのシンボルを右クリックして、「Small signal AC analysis」でAC Amplitudeに例えば1を入れておく。それで、Simulate~Edit simulation Cmdを選び、AC Analysisを選び、たとえば、Number of points per octaveに5、Start Frequencyに20、Stop Frequencyに20000を入れる。これで、20Hz~20kHzの周波数特性になる。Simulate~Runを選べばシミュレーションが始まり、周波数特性グラフが出る。これも、回路図上でプローブを出して好きなポイントで左クリックすればいい。実線が振幅特性で、点線が位相特性である。

spice2

素子に流れる電流が見たいときは、回路図上で素子の上にカーソルを持って行き、変なクランプメータらしいアイコンが出たら左クリックする。そうすると、電流値が読める。

回路の各ポイントの直流電圧が見たいときは、信号源のSINEのAmplitudeを0にして、シミュレーションすれば、波形のグラフ上で電圧(直流なので横棒)が読める。

★実際のギターアンプのシミュレーションは、また後日アップします。

参考サイト
Ayumi’s Lab.: オーディオ: http://ayumi.cava.jp/audio/
LTspice入門 : http://www.geocities.jp/side2949be/LTspice.html
LTSpice を使う by Kimio Kosaka : http://make.kosakalab.com/ltspice/