EXCELでスピーカーシミュレーション(7)
7.EXCELでシミュレーションする
実際にEXCELで具体的な数値を入力して出力音圧の周波数特性をシミュレーションしてみます。ちなみに、各定数の具体的な数値は、ドライバーユニットのカタログに載っていたり、寸法を測って求めることができるものもありますが、計算や実験をしないとわからないものもあります。そのあたりは別途説明したいと思いますので、ここでは機械的に入力していきます。
音響インピーダンスには3種類あると書きましたが、ここでは、「機械インピーダンス」を用いて計算していきます。
7-1.ドライバーユニットの音圧
まず、ドライバーユニットの特性を求めます。
最初に、準備段階として、周波数を縦方向に20Hzから20kHzまで列記します(かなり面倒です)。定数とかを入力する欄を空けておきたいので、H列当たりに入力します。セルH1は見出しとして「f」とでもしておき、数値はセルH2から入力します。周波数の間隔は、JIS Z 8601の標準数列を使うのが良いと思います。測定機もこの数列の間隔で測定しているのが多いので、実測値と比較するときに便利です。今回はR80で並べてみます。

次に、隣のI列に
具体的には複素数を定義する関数のCOMPLEX()を用いて、セルI2に

と入力します。最初の引数は実部ですので0、次の引数は虚部ですので
次は、力
でしたので、まず定数を入力しておきます。数値はとりあえず下図のようにしておきましょう。とある8オームのドライバーユニットの実測値や換算値です。アンプの電圧は8オームユニットに対して1Wの入力になるときの電圧です。

これらを使って、J列に
| 演算 | 実数 | 複素数 |
|---|---|---|
| 和 | A1+B1 | IMSUM(A1,B1) |
| 差 | A1-B1 | IMSUB(A1,B1) |
| 乗 | A1*B1 | IMPRODUCT(A1,B1) |
| 除 | A1/B1 | IMDIV(A1,B1) |
と入力してオートフィルします。

定数のところは$で絶対参照にしておかないと、オートフィルのときに参照が狂うのでご注意。20Hzでは6.60631418561728-0.0598911188399136jとなっていればOKです。
続いて各インピーダンスを入力していきます。まず、定数を入力します。こんなかんじです。

質量
放射質量
空気密度
周波数に依存するインピーダンスは、

と入力し、

と入力し、

と入力して、それぞれオートフィルします。
次に、粒子速度
でしたので、セルN2に、

と入力します。
最後に音圧を求めます。計算式は、
でした。

と入力してオートフィルします。
そして、音圧の式として、セルP2に、
と入力してオートフィルします。

これで音圧の周波数特性が求まりました。しかし、これで求まった音圧
と入力してオートフィルします。これで音圧の値が求まりました。単位はPaです。一般的にはデシベルの方が慣れていると思いますので、20uPaを0dBとして計算します。セルR2に、
と入力してオートフィルします。
そして、H列の周波数とR列の音圧をグラフにとると、このようになります。

また、P列の複素数の音圧の偏角をとると、位相遅れを計算できます。偏角はIMARGUMENT()関数で求めることができますが、結果はラジアンで出てきます。度にしたければ、PI()/180で割ます。セルS2に、
と入力してオートフィルします。DEGREES()関数を使った方がはやいかも。
そして、H列の周波数とS列の位相とをグラフにとって、第二軸に加えると、このようになります。

-180度で+180度に折り返しているのは、位相が一周して更に遅れていることを表します。これは距離

位相遅れはいろんな情報を持っているのですが、例えば位相変化を角周波数で微分すると群遅延という値が得られます。群遅延はザックリ言うと、周波数のずれに対して音の発生が遅れる度合いがどのくらいかを示したもので、要は群遅延が大きい周波数の音は遅れて聞こえるってことです。定義としては、
群遅延も求めておきましょう。セルT2は空白にして、セルT3に
と入力し、オートフィルします。グラフにとると、このような感じです。

折り返しのところで計算がおかしくなってしまうので、距離遅延の

こんな感じになって見やすくなります。
ともあれ、一応の目的を達成できましたので、定数の値をいろいろいじって遊んでみてください。グラフの曲線が変わると思います。
7-2.密閉型エンクロージャの音圧
次は密閉型エンクロージャに入れたときの音圧をシミュレーションしてみます。
といっても、実際にはドライバーユニットの等価回路にキャビネット内の空気のスチフネスと機械抵抗
が直列に入るだけです。
ドライバーユニットの計算シートに続けて入力していきます。まず、定数を下図のように入力します。

キャビネットのサイズは61.4cm×32.7×33.1cmで。細かいですが、実際作ったのがこれくらいだったので。キャビネット内空気の機械抵抗は適当です。
次に、キャビネットのスチフネスを入力します。空洞内のスチフネスは、
です。比熱比
と入力してオートフィルします。
あとは粒子速度
と入力します。
そして、音圧
と入力し、X列とY列には絶対値とデシベル値を、Z列とAA列には位相と群遅延を入力します。
グラフはこんな感じです。


キャビネット内の空気で振動板の動きが制動されるので、ほんの少し低域が出なくなります。その代わり群遅延は若干改善します。
7-3.位相反転型エンクロージャの音圧
次は位相反転型エンクロージャに入れたときの音圧をシミュレーションしてみます。追加する定数は下図の通りです。

ポートの直径は15.6cmで長さは10cmとしておきます。ポートの開口面積は
ポート内の空気の質量は、ポートの体積に空気の密度をかければいいのですが、ポートのような筒形状の場合、開口部周囲の空気を若干巻き込んで動くらしく、その分を長さで補正すると良いようです。長さの追加分は、直径×0.73だそうですので、
ポート内の空気の機械抵抗ですが、これは筒の中を動く流体の粘性抵抗となるので、一応近似式があり、
ポートの放射質量は、振動板の放射質量の
最後に、振動板面積
位相反転型はキャビネット内の空気を介して、ドライバーユニットの振動系とポート内の振動系が結合した構造をしています。このように、異なる質量を空気バネで結合する場合、等価回路としてはトランスが介在する形となります。

というのは、ポートの開口面積は振動板よりも小さいので、振動板によってキャビネット内の空気に与えた力がポートに加わるときには、小さい面積に大きな圧力がかかるため、ポートに加わる力は振動板とポート開口部の面積比の分だけ大きくなります。そうなると、機械回路としては、変圧比=振動板面積/ポート開口面積のトランスが入った状態と等価に考えることができます。そして、ドライバーユニット側と一次側、ポート側を二次側と考えたときに、機械回路を一次側換算すると、トランスの計算のように、ポートの各インピーダンスは変圧比の二乗が掛かった状態になるのです。これが、振動板面積

さて、EXCELに戻ります。位相反転型エンクロージャでは、振動板の振動速度
EXCELの入力作業を分かりやすくするために、式に合わせて各インピーダンスを
と入力し、セルAD1を
と入力し、セルAE1を
と入力します。
そして、列AF、AGをそれぞれ、V1、V2とします。セルAF2には、
と入力し、セルAG2には、
と入力します。実数の指数は^記号で入力できましたが、複素数の指数は、IMPOWER()という関数を用います。
音圧は、トータルだけ分かればいいのですが、せっかくなので振動板から出ている音圧
AH、AI、AJの列はそれぞれ
と入力し、セルAI2には、
と入力し、セルAJ2には、
と入力します。
あとは同じ要領で、列AK、AL、AMにはポートの音圧、デシベル値、位相を入力し、列AN、AO、APには、トータルの音圧、デシベル値、位相を入力します。群遅延は列AQにトータルのものだけ求めておきましょう。
こんな感じになっていればOKです。

各グラフはこのようになります。



ところで、EXCELで位相角のアンラップをする関数ってないんですね。見にくい・・・IF分使って無理やりできんこともないでしょうけど、面倒。
7-4.ドロンコーン型エンクロージャの音圧
最後にドロンコーン型エンクロージャに入れたときの音圧をシミュレーションしてみます。追加する定数は下図の通りです。

ドロンコーン型は位相反転型に対してスチフネスが追加になるだけなので、計算式はほぼコピーで使えます。
ドロンコーンの振動板の直径はドライバーユニットの振動板と同じでもいいのですが、少し小さめに20cmくらいにして、質量も25gくらいにします。スチフネスは2000くらいにしましょうか。機械抵抗は適当で。放射質量はポート開口面積をドロンコーンの振動板面積に入れ替える。変圧比も忘れずに。
列ASには、ドロンコーンの質量と放射質量を合わせて、セルAR2に、
と入力し、列ATにはドロンコーンのスチフネスを入れます。セルAS2に、
と入力します。等価回路では
と入力します。変圧比を掛けるのを忘れずに。
あとは位相反転型と同じ要領で、列AU、AVに振動速度V1'、V2'を入力します。続いて列AW、AX、AYにはドライバーユニットの振動板による音圧、デシベル値、位相を入力し、列AZ、BA、BBにはドロンコーンの振動板による音圧、デシベル値、位相を入力し、列BF、BD、BE、BFにはトータルの音圧、デシベル値、位相、群遅延を入力します。
こんな感じになっていればOKです。

各グラフはこのようになります。



次からは番外編です。まず、インピーダンス特性を求めてみたいと思います。