6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MATLAB/Simulink/Simscapeで真空管アンプのシミュレーション その1

Last updated at Posted at 2019-08-07

動機

真空管アンプが好きです。といってもオーディオマニアじゃないのでエレキギター用の真空管アンプです。壊れたアンプをヤフオクで買って、修理して使ってます。Soldanoは入手したけど、BognerのEcstacyとDiezelのVH-4Sが欲しい。

LTSpice使って真空管アンプのシミュレーションとかもやってみたけど、SIN波スイープとか単純なことしかできない。Simulinkでできればもっと面白いことができるんじゃない?

LTSpice

有名なフリーの回路シミュレータ。真空管のシンボルなんかも出回っている。名機と言われるギターアンプの回路図は出回っているので、回路図起こしてシミュレーションするのは容易。下図はMarshall 1987のPre部のSIN波100Hz入力時の応答波形。ギターアンプなのでSIN波も歪んでこんな波形になる。
LTSpice1.png

Simscape Electrical

Simscape ElectricalはSimscapeの電気回路ライブラリ。Simscapeはブロック線図シミュレータSimulinkの物理モデリング用ライブラリ。Simulinkはプログラム環境MATLABのシミュレーション用オプション。MATLABのひ孫みたいなもの。
電気・電子回路ライブラリは一通り揃っているけど、LTSpiceと違うのは、回路シンボルが各社の型番ごとにあるわけではなく、素子ごとにしか無いこと。SimscapeではSPICEのネットリストやシンボルはそのまま使えないのでまたこれが面倒。

例えばLTSpiceだとNPNトランジスタでも2SC1815(東芝)とか2SCR512(ROHM)とかメーカーの型番ごとにライブラリ(シンボル)が用意されているのに対して、Simscape ElectricalではNPN Bipolar Transister1つ。
Ssc.png

だから素子ごとの特性は使用する部品ごとに入力してやる必要がある。

真空管シンボルのSimscapeへのインポート

Simscape Electricalにはsubcircuit2sscというコマンドがあって、SPICEライブラリをインポートできる。
これを使ってどこかからダウンロードしたプリ管12AX7Aのシンボルをインポートしてみた。

subcircuit2ssc('12AX7A.lib', '+mylibrary')

これでSimscapeのソースコードができるので、ビルド。

ssc_build('mylibrary')

するとこんなブロックが生成される。
sscblock.png

見た目が良くないので、絵を書いてブロックのマスクに設定してとりあえずインポート完了。
sscblock2.png

シミュレーション用Simscapeモデル作成

シミュレーションするのにモデル(回路図)を作成する。
真空管の代表的な特性Ep-Ip特性を取るために、Plate電圧とGrid電圧を可変にして、Plate電流を測定できるモデルを作った。
sscmodel.png

MATLABでSimscapeモデルを駆動

パラメータスイープしながら出力特性を取るため、MATLABプログラムでSimscapeモデルを実行。

%% Parameter類
DCSW = 1;
VgStep = (-5:1:0);
VpStep = (0:20:500);
IpTable = zeros(length(VpStep), length(VgStep));
Ip = 0;
%% Simulation実行
set_param(gcs,'FastRestart','on') % 高速スタート
for n = 1:length(VgStep)
    for nn = 1:length(VpStep)
        Vg = VgStep(n);
        Vp = VpStep(nn);
        simOut = sim(gcs);
        tmp = simOut.get('Ip');     % for FastRestart
        IpTable(nn,n) = 1000*tmp(end);  % A =>mA
    end
    plot(VpStep, IpTable(:,n), 'b.-'), grid on, hold on
end
title('Ep-Ip Characteristics')
xlabel('Ep(V)')
ylabel('Ip(mA)')

Simscapeで真空管のEp-Ip特性を取得

上のMATLABコード実行して12AX7AのEp-Ip特性取れた。書籍の特性と比較しても所望の特性が出ている。
EpIpPlot.png

続く

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?