【LTspice】関数の定義をする『.funcコマンド』の使い方

スポンサーリンク

関数の定義をする.funcコマンドについて説明します。

『.funcコマンド』とは

『.funcコマンド』とは、関数の定義をするコマンドです。変数の定義を行う『.param コマンド』の関数バージョンと考えてもらうと分かりやすいと思います。以下に『.funcコマンド』と『.param コマンド』のコマンド例を示しています。

  • .funcコマンド:関数の定義を行うコマンド
  • 【例】.func myfunc(x,y) {x+y}
    →関数myfunc(x,y)を『x+y』と定義する。

  • .paramコマンド:変数の定義を行うコマンド
  • 【例】.param A=1
    →変数Aを『1』と定義する。

『.funcコマンド』の構文

.func <関数名> ([引数]) {<数式>}

構文において「<」と「>」で囲まれたパラメータは省略できません。また、「[」と「]」で囲まれたパラメータは省略できます。

『.funcコマンド』のコマンド例

コマンド例1


【LTspice】『.funcコマンド』のコマンド例01

.func myfunc(x,y) {x+y}
→関数myfunc(x,y)を『x+y』として定義する。

関数myfunc(x,y)は2数(xとy)の和を求めています。例えば、抵抗の値に{myfunc(2,3)}と入力すると、抵抗値は『myfunc(2,3)=2+3=5』となり5Ωとなります。

コマンド例2


【LTspice】『.funcコマンド』のコマンド例02

.func f(a,b) {sqrt{a^2+b^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コマンド』の記述方法

【LTspice】『.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コマンド』を使用したシミュレーション

【LTspice】『.funcコマンド』のシミュレーション結果
上図に『.funcコマンド』を使用したシミュレーション例を示しています。

上図は抵抗R1に対して電流源I1の1Aを流している回路となっています。このようにすることで、抵抗R1にかかる電圧値が抵抗R1の抵抗値と等しくなります。シミュレーションでは『.funcコマンド』と『.paramコマンド』の両方を用いており、『.funcコマンド』の引数に変数を入れています。コマンドの関係図は以下のようになっています。
【LTspice】『.funcコマンド』のコマンド例03

上図のシミュレーションでは『.funcコマンド』を

.func myfunc(x,y) {x+y}

と記述しています。関数myfunc(x,y)は2数(xとy)の和を求める関数となります。

また、抵抗R1の抵抗値を

{myfunc(u,v)}

と記述しています。引数には数値ではなく、変数uと変数vを用いています。変数uと変数vは『.paramコマンド』で設定します。

今回、『.paramコマンド』は

.param u=2 v=3

と記述しているため、抵抗R1の抵抗値は

myfunc(u,v)= myfunc(2,3)=2+3=5

となります。抵抗R1にかかる電圧をみると、5V(すなわち抵抗値は5Ω)となっていることが確認できます。

スポンサーリンク