【LTspice】コンパレータの作成方法

スポンサーリンク

LTspiceでコンパレータを作成する方法について説明します。
コンパレータの作成方法は大きく2つあります。ビヘイビア電源(BV)を使う方法と電圧制御電圧源(E)を使う方法です。

ビヘイビア電源(BV)でコンパレータを作成する方法

Select Component Symbolを開いて、ビヘイビア電源(BV)を配置する

Select Component Symbolを開いて、ビヘイビア電源(BV)を配置する
ツールバーにあるオペアンプのような図をクリックして、Select Component Symbolを開きます。その後、bvを選択し、OKボタンを押すと、回路図上にビヘイビア電源(BV)を配置することができます。
ビヘイビア電源(BV)配置後、マイナス端子をGNDに、プラス端子をノード(Vcomp)に接続します。

ビヘイビア電源(BV)のValueを置き換える

ビヘイビア電源(BV)のValueを置き換える
ビヘイビア電源(BV)を右クリックすると、Component Attribute Editorが開きます。そこでValueを以下のように置き換えます。

V=if(V(IN+)>V(IN-),{Vhigh},{Vlow})

上記のように記述すると、ビヘイビア電源(BV)は以下のように動作します。

  • V(IN+)>V(IN-)の時
  • ビヘイビア電源(BV)の出力電圧VcompがVhighとなる。

  • V(IN+)

    ビヘイビア電源(BV)の出力電圧VcompがVlowとなる。

VhighとVlowの値は.paramコマンドで指定します。例えば、Vhighを10V、Vlowを0Vにしたい場合には、

.param Vhigh=10 Vlow=0

と記述します。
なお、VhighとVlowを用いずに以下のように値を直接記入することもできます。

V=if(V(IN+)>V(IN-),10,5)

比較したい電圧のノードをIN+とIN-にする

比較したい電圧のノードをIN+とIN-にする
ビヘイビア電源のValueに『V(IN+)>V(IN-)』と記載しているので、比較したい電圧のノードを『IN+』と『IN-』にします。今回、一例として、

  • ノード電圧(IN+)
  • 周波数1Hz、振幅2Vの正弦波

  • ノード電圧(IN-)
  • 1Vの直流電圧

に設定しました。

シミュレーションで確かめてみる

ビヘイビア電源(BV)でコンパレータを作成する方法
ノード電圧(IN+)とノード電圧(IN-)を比較してみましょう。シミュレーション結果より、ノード電圧(IN+)がノード電圧(IN-)より大きい時は、Vhigh電圧の10Vが出力されています。一方、ノード電圧(IN+)がノード電圧(IN-)より小さい時は、Vlow電圧の0Vが出力されています。

電圧制御電圧源(E)でコンパレータを作成する方法

Select Component Symbolを開いて、電圧制御電圧源(E)を配置する

Select Component Symbolを開いて、電圧制御電圧源(E)を配置する
ツールバーにあるオペアンプのような図をクリックして、Select Component Symbolを開きます。その後、eを選択し、OKボタンを押すと、回路図上に電圧制御電圧源(E)を配置することができます。

左側の2本の端子が入手端子(制御端子)で、上下にあるのが出力端子となっています。今回、マイナス端子をGNDに、プラス端子をノード(Vcomp)に接続します。また、入力端子のノード(プラス側)をIN+、ノード(マイナス側)をIN-に設定します。

電圧制御電圧源(E)のValueを置き換える

電圧制御電圧源(E)のValueを置き換える
電圧制御電圧源(E)を右クリックすると、Component Attribute Editorが開きます。そこのValueにルックアップテーブルを記述します。ルックアップテーブルの構文は

Table = ((入力電圧1,出力電圧1),(入力電圧2,出力電圧2),…)

となっています。各点の間の値は線形補完されます。例えば、

Table = ((0,0),(2,10))

と記入した場合、2つの入力端子の電圧差(ノード電圧(IN+)―ノード電圧(IN-))が

  • マイナスの時(ノード電圧(IN-)の方が大きい時)
  • 出力電圧Vcompは0Vとなる。

  • 2V以上の時(ノード電圧(IN+)の方が2V以上大きい時)
  • 出力電圧Vcompは10Vとなる。

  • 1~2Vの時
  • 出力電圧Vcompは線形補完され、入力端子の電圧差を10/2=5倍した値となる。(例えば、入力端子の電圧差が1Vの時は出力電圧が5Vとなる)

となります。
なお、コンマ(,)と括弧は省略可能であり、

Table =0 0 2 10

と書いても良いですが、この記述だと見た目がわかりにくいので、コンマと括弧は用いた方が良いと思います。

比較したい電圧のノードをIN+とIN-にする

比較したい電圧のノードをIN+とIN-にする02
今回、一例として

  • ノード電圧(IN+)
  • 2sで5VになるPWL波形

  • ノード電圧(IN-)
  • 1Vの直流電圧

に設定しました。

シミュレーションで確かめてみる

電圧制御電圧源(E)でコンパレータを作成する方法01
ノード電圧(IN+)とノード電圧(IN-)を比較してみましょう。
ノード電圧(IN+)が

  • 1V以下の時
  • ノード電圧(IN-)の方が電圧が大きいため、出力電圧Vcompは0Vとなります。

  • 1〜3Vの時
  • 入力端子の電圧差(ノード電圧(IN+)―ノード電圧(IN-))が0V〜2Vとなるため、出力電圧は入力電圧を5倍(=10/2倍)した値になります。例えば、ノード電圧(IN+)が1.5Vの時は、入力端子の電圧差が0.5Vとなるため、出力電圧Vcompは2.5Vとなります。

  • 3V以上の時
  • 入力端子の電圧差が2Vを越えるため、出力電圧Vcompは10Vとなります。

このシミュレーションでは出力電圧Vcompに傾きがありますが、以下のようにルックアップテーブルを記述すると、理想的なコンパレータに近づきます。

Table = ((0,0),(0.001,10))

これは、ノード電圧(IN+)とノード電圧(IN-)の差が0.001Vを超えると10Vになるということです。この場合、入力端子の電圧差が0~0.001Vの時は線形補完されますが、立ち上がりが急なので、ほぼ理想的なコンパレータのように動作します。
電圧制御電圧源(E)でコンパレータを作成する方法02

【補足】コンパレータをシンボル化する

【補足】コンパレータをシンボル化する
上図のようにビヘイビア電源(BV)、電圧制御電圧源(E)で作成したコンパレータをシンボル化することもできます。
シンボル化の方法については以下の記事を参照してください。
【LTspice】サブサーキットの作成方法と使用方法について

スポンサーリンク