関数の定義をする.funcコマンドについて説明します。
『.funcコマンド』とは
『.funcコマンド』とは、関数の定義をするコマンドです。変数の定義を行う『.param コマンド』の関数バージョンと考えてもらうと分かりやすいと思います。以下に『.funcコマンド』と『.param コマンド』のコマンド例を示しています。
- .funcコマンド:関数の定義を行うコマンド
- .paramコマンド:変数の定義を行うコマンド
【例】.func myfunc(x,y) {x+y}
→関数myfunc(x,y)を『x+y』と定義する。
【例】.param A=1
→変数Aを『1』と定義する。
『.funcコマンド』の構文
構文において「<」と「>」で囲まれたパラメータは省略できません。また、「[」と「]」で囲まれたパラメータは省略できます。
『.funcコマンド』のコマンド例
コマンド例1
→関数myfunc(x,y)を『x+y』として定義する。
関数myfunc(x,y)は2数(xとy)の和を求めています。例えば、抵抗の値に{myfunc(2,3)}と入力すると、抵抗値は『myfunc(2,3)=2+3=5』となり5Ωとなります。
コマンド例2
→関数f(a,b)を『sqrt{a^2+b^2}』として定義する。
関数f(a,b)は2数(aとb)の2乗の和の平方根を求めています。例えば、抵抗の値に{f(3,4)}と入力すると、抵抗値は『f(3,4)=sqrt{3^2+4^2}=5』となり5Ωとなります。
『.funcコマンド』の記述方法
『. funcコマンド』は[SPICE Directive]で記述します。
ツールバーの[SPICE Directive]をクリックする(または、回路図ウィンドウ上で「S」を押す)と、[Edit Text on the Schematic]が表示されます。チェックが[SPICE directive]になっていることを確認して、例えば、『.func myfunc(x,y) {x+y}』と入力します。OKボタンを押すと、回路図ウィンドウ上に『.func myfunc(x,y) {x+y}』が表示されます。
『.funcコマンド』を使用したシミュレーション
上図に『.funcコマンド』を使用したシミュレーション例を示しています。
上図は抵抗R1に対して電流源I1の1Aを流している回路となっています。このようにすることで、抵抗R1にかかる電圧値が抵抗R1の抵抗値と等しくなります。シミュレーションでは『.funcコマンド』と『.paramコマンド』の両方を用いており、『.funcコマンド』の引数に変数を入れています。コマンドの関係図は以下のようになっています。
上図のシミュレーションでは『.funcコマンド』を
と記述しています。関数myfunc(x,y)は2数(xとy)の和を求める関数となります。
また、抵抗R1の抵抗値を
と記述しています。引数には数値ではなく、変数uと変数vを用いています。変数uと変数vは『.paramコマンド』で設定します。
今回、『.paramコマンド』は
と記述しているため、抵抗R1の抵抗値は
となります。抵抗R1にかかる電圧をみると、5V(すなわち抵抗値は5Ω)となっていることが確認できます。