LTspiceの活用法 - 電圧源/電流源でPWL関数を利用する
概要
「LTspice®」で電圧源や電流源を使用する場合、パルス波形や正弦波形を簡単に生成することができます。しかし、より複雑な波形を任意に定義して使用したいケースもあるでしょう。その場合、PWL(Piecewise Linear)関数を使用すると便利です。PWL関数では、時間と値(電圧または電流の値)のペアによって複数の点を定義していきます。それらの点をつないだ線分により、任意の波形を生成することができます。
はじめに
LTspiceのPWL関数を使用すると、一連の線分を定義できます。それらをつなぐことによって、電圧または電流の波形を表現することが可能になります。PWL関数における線分は、時刻と値のペアによって定義した2つの点を結ぶことで得られます。過渡応答のシミュレーションなどでは、電圧波形や電流波形を様々な方法で生成して使用することになるでしょう。PWL関数はその方法のうちの1つです。
なお、本稿で例にとる回路図は、サンプル・ファイル「PWL Examples.asc」に含まれています。
電圧源/電流源にPWL関数を適用する
ここでは、回路図上に電圧源または電流源を新たに配置するケースを考えます。それらにPWL関数を適用するためには、電圧源/電流源のシンボルを右クリックします。次に表示されるダイアログで「Advanced」をクリックすると、あらゆる設定を行うためのダイアログが表示されます(図1)。ここで、「Functions」のセクションに用意されている「PWL(t1 v1 t2 v2...)」を選択します。
PWL波形を定義する
「PWL(t1 v1 t2 v2...)」を選択したら、アクティブになった入力フィールドに時刻と値のペアを入力していきます。このペアは必要な数だけ設定可能です。5つ以上の点が必要な場合には「Additional PWL Points」をクリックしてください。入力が完了したら「OK」をクリックします。
PWLのステートメントは、「Advanced」ダイアログに入力した値を使用して以下のように構成されます。
PWL (0 0 1m 1 2m 1 3m 0)
図1のように4つの点を定義した場合、図2のような結果が得られます。これを見ると、PWL関数の構文とそれによって得られる電圧波形が表示されていることがわかります。
PWL関数で相対時刻を使用する
時刻の値は、以下に示すように「+」を付加することで、前の時刻に対する相対値として定義することができます。
PWL (0 0 +1m 1 +1m 1 +1m 0)
図3に、絶対的な時刻と相対的な時刻を使用した2つの例を示しました。どちらの方法でも同じ波形が生成されます。
定義したPWL波形を繰り返し生成する
上述したように、LTspiceでは「Advanced」ダイアログを使用することで時刻と値のペアを定義することができます。ただ、PWL関数では他の構文も使用可能です。回路図上のPWLステートメントを右クリックすると、そのステートメントに編集を加えることができます。例えば、定義したPWL波形を繰り返し生成するには、PWLステートメントに「REPEAT」と「ENDREPEAT」という要素を追加します。
まず、図2の波形を一定の回数繰り返す方法を紹介します。そのためには、「REPEAT FOR X」と「ENDREPEAT」を使用して以下のように記述します。
PWL REPEAT FOR 5 (0 0 1m 1 2m 1 3m 0)ENDREPEAT
では、図2の波形を無限に繰り返すにはどうすればよいのでしょうか。その場合、「REPEAT FOREVER」と「ENDREPEAT」を使用して以下のように記述します。
PWL REPEAT FOREVER (0 0 1m 1 2m 1 3m 0)ENDREPEAT
図4に、これらのステートメントによって得られる結果を示します。この図には、元の図2の例、波形を5回繰り返す例、波形を無限に繰り返す例が表示されています(複数のプロット・ペインを表示するには、波形ビューワを右クリックし、「Add Plot Pane Above」または「Add Plot Pane Below」を選択します)。
トリガを使用してPWLのシーケンスを開始する
次に、トリガ条件を使用するPWLステートメントの例を紹介します。以下のように記述した場合、トリガの条件式(V(trig) > 1)が真になると波形のシーケンスが開始されます。
この例では、トリガ条件が真の間、波形が繰り返し生成されます。条件式が偽になると波形は停止します(図5)。
PWL REPEAT FOREVER (0 0 1m 1 2m 1 3m 0)ENDREPEAT TRIGGER V(trig)>1
波形の伸長と圧縮
「TIME_SCALE_FACTOR」、「VALUE_SCALE_ FACTOR」の両パラメータを使用すると、波形を伸長または圧縮することができます。以下のステートメントでは、元の波形(図2)の周期を1/2に設定し、振幅を2倍に設定しています。
PWL TIME_SCALE_FACTOR=0.5 VALUE_SCALE_FACTOR=2 REPEAT FOREVER (0 0 1m 1 2m 1 3m 0) ENDREPEAT
これにより、図6に示す結果が得られます。
テキスト・ファイルで波形を定義する
非常に多くの点を定義して波形を生成したいケースもあるでしょう。ただ、そのようにすると回路図が煩雑になってしまいます。そのような場合には、テキスト・ファイルを利用すると便利です。つまり、テキスト・ファイルからそれらの点のデータをインポートするということです。そのためには、PWLステートメントにおいて、対象とするテキスト・ファイルの名前を指定します(以下参照)。
PWL REPEAT FOREVER FILE=data.txt ENDREPEAT
これにより、図7に示した結果が得られます。この例ではテキスト・ファイルを利用しつつ、それによって定義される波形を無限に繰り返すように設定しています。波形のデータのインポートに関する詳細についてはLTspiceのマニュアルをご覧ください。例えば、「FILE」、「SCOPEDATA」、「WAVEFILE」といった構文を使用できます。
PWL関数について更に詳しく知りたい方は、LTspiceのマニュアルの「Voltage Source」と「Current Source」のセクションを参照してください。
まとめ
過渡応答のシミュレーションなどで任意の波形が必要になる場合には、PWL関数を使用するとよいでしょう。そうすれば、波形のデータを柔軟に定義したり、データを記述したファイルをインポートしたりすることが可能になります。





