「出だしの助走区間」を読んでいるオペアンプ大全です。前回の反転増幅回路に続き、今回は差動増幅回路です。まだ概念的な説明部分。ただ読んでも端から忘れるので、説明されている抽象的な回路を勝手解釈でLTspiceシミュレーションし、出てくる式を端からMaxima関数として定義してみております。
※『OPアンプ大全を読む』投稿順indexはこちら
※「オペアンプ大全」はアナデバ様の以下のページからダウンロード可能です。これを読み切った暁には、オペアンプわかる人になれるんじゃないかという淡い期待のもと読み進めております。
OPアンプ回路の基本から応用まで、OPアンプ大全を無償提供中
原著はOp Amp Applicationsという書物だったらしいです。
差動増幅回路の回路例
今回は「OPアンプの基礎」の「差動増幅回路」です。
回路定数、部品指定等一切ない回路を題材に、subtractorとよばれるこの構成が説明されています。この回路抵抗値のマッチングこそすべてだとあります。
※左の式で ‘ がついている値は以下の回路図中では、Rf2、Rg2のようにあらわしてます。
そしてこの構成の回路の最大の特徴を1つ引用させていただきます。
V1やV2に共通に重畳している電圧を取り除く
オプアンプのコモンモード・リジェクション(CMR)は、抵抗値がマッチングしてなければダメなのよ、と。
勝手に定数やら入力波形を定義し、猪口才にも「コモンモード」での電圧波形も加えてみた回路が以下に。使用しておるオペアンプは伝統のOP07。ADALM2000にも同梱の汎用オぺアンプっす。
勝手な波形でシミュレーション(トランジェント解析)した結果が以下に。一番上のプレーンが入力信号です。黄緑がコモンモードの変動Vcmn(50Hz)、赤がV1(222Hz)、青がV2(111Hz)です。
真ん中のプレーンは2つの入力電圧の差分v1-v2を計算したもの。
一番したのプレーンは出力信号Voutのシミュレーション結果。
コモンモードの変動は消えてるのか?
Maxima用バッチファイルの追加と実行
さて、今回追加したMaxima関数は末尾の一行のみ。回路の抵抗値のマッチングがとれている状態でのサブトラクタのゲインを求める式。
algebraic:true$ /*-----------------------------------------------*/ log10(x) := log(x)/log(10)$ roundF(x, p) := float(round(x*10^p)/10^p)$ dB(Vout, Vin) := float(20*log10(Vout/Vin))$ /*-----------------------------------------------*/ Gvoltagefollower(Rf, Rg) := 1 + (Rf/Rg)$ βoltagefollower(Rg, Rf):= Rg /(Rf+Rg)$ /*-----------------------------------------------*/ Ginvamp(Rf, Rg) := -(Rf/Rg)$ /*-----------------------------------------------*/ Gsubtractor(Rf, Rg) := (Rf/Rg)$
5倍。何も誤差など含めていないSPICEだもの、ピタリ賞当たり前か。