LTspiceでボリュームを作る(3)特性Aカーブ
■特性Aのボリュームを実現する
前回までは、回転角の変化と分割される抵抗値の比率が比例関係にあるB特性のシミュレーションを行いました。B特性のボリュームに電圧を加えて、そのボリュームの回転角と出力電圧との間には、次に示すような直線関係が示されます。信号レベルの調整などはボリュームのこの原理を利用しています。
聴覚と音の大きさとの間には、一次直線でなく指数関数の関係があります。騒音などの測定にdB表示を利用するのはそのためです。ボリュームもこの変化を指数関数に合わせたA特性の製品もあります。A特性のボリュームは回転角度に対して指数関数で抵抗の分割値が変化します。
シミュレーション時間の変数timeを利用して、シミュレーションの経過時間に応じて変化させるようにします。
指数関数を求めるために、pow(x,y)関数を使用します。この関数はx**yの計算を行います。
●抵抗の値の計算式
pow(x,y) x=2 y=time*10 |
と設定すると、シミュレーションを開始後100ms後にはtime*10の値が1となり、
2**(time*10)=2 |
となります。**は累乗を示します。
R1、R2は10kΩを想定していますので、シミュレーションの抵抗値の変化を示す式は、
2**(time*10)*10000/2) |
となります。
実際R1、R2の値は、pow()関数で次のようになります。
R2の値;
R=pow(2,time*10)*10000/2 |
R1の値;
R=10k-pow(2,time*10)*10000/2 |
シミュレーション結果は次のようになります。
10Vの入力電圧をボリュームで分割した出力電圧は、指数関数のカーブになっています。手持ちのA特性の可変抵抗器は回転角が中間で15%くらいの値でした。この特性を得るための指数関数の底の値を検討します。
●A特性のボリューム
帝国通信工業のボリュームの資料には、A特性に、A5、A10、A15、A25のカーブ特性の説明がありました。
A5 は ボリュームの中間点(50%)で全抵抗の5%を示す特性 A10 は ボリュームの中間点(50%)で全抵抗の10%を示す特性 A15 は ボリュームの中間点(50%)で全抵抗の15%を示す特性 A20 は ボリュームの中間点(50%)で全抵抗の20%を示す特性 |
この特性を満たす指数関数を検討します。
R=A**(time*n)*Rall/A R : timeで示される回転状態のときの抵抗値 time*nは0から1の範囲で変化する。 A :指数関数の底 Rall :ボリュームの全抵抗 |
この式で、time*n=0.5(ボリュームのタップが中間の50%)のとき、抵抗値の比率R/Rallが5%、10%、15%、25%になるAを求めます。
R =A**(0.5)*Rall/A R/Rall =A**(0.5)/A (R/Rall)= A**(0.5)*A**(-1)=A**(-0.5)=1/A**(0.5) A**(0.5)=1/(R/Rall) A = 1/((R/Rall)*(R/Rall)) |
この式から、R/Aallの値がA5(5%=0.05)、A10(10%=0.10)、A15(15%=0.15)、A25(25%=0.25)のときのAの値が次のようになります。
A5の場合 A =1/(0.05*0.05)=400 A10の場合 A=1/(0.10*0.10)=100 A15の場合 A=1/(0.15*0.15) =44.4 A25の場合 A=1/(0.25*0.25) =16 |
● .stepコマンドでAの値を変えてシミュレーションする
底の値をAとして、 .stepコマンドで今回得られた値をセットしてシミュレーションします。入力信号は10Vp(ピーク)の正弦波を利用しました。
次のような結果が得られました。
各シミュレーション結果が重なって判別できないので、ボリュームの中間点を示す50ms近辺を拡大し、次に示します。
2.5V(25%)、1.5V(15%)、1V(10%)、0.5V(5%)と想定した値になっています。
ボリュームは回転角度によって大きく抵抗値が変化します。回路によっては前段の出力インピーダンスの影響を受けるものもあります。そのような回路の場合、実際のボリュームの様子を示すこのボリュームによるシミュレーションが役立つと考えています。
(2017/1/8 V1.0)
<神崎康宏>