サイトマップ

回路の素101 036 加減算回路 差動アンプ型

回路の素101 036 加減算回路 差動アンプ型

複数の信号を加算、減算できる
数十MHzまでの回路で使用

回路図作成

  • 基本的な構成

出力は下記になる

 V_{out} = \frac{R_P}{R_M} R_F \sum_i (\frac{V_{Pi}}{R_{Pi}}) - R_F \sum_j (\frac{V_{Mj}}{R_{Mj}})
 R_P :  R_{Pi} をすべて並列接続した抵抗値
 R_M :  R_{Mj} をすべて並列接続した抵抗値

応答性確認

シミュレーションを tranモード(デフォルト) で実行し、応答を見る

import matplotlib.pyplot as plt
import numpy as np

from PyLTSpice import RawRead

fig = plt.figure(figsize=(6, 4))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)

fname = 'PrimaryCircuit3-036.raw'
LTR = RawRead(fname)
x     = LTR.get_trace('time').get_time_axis(0)

tmp1  = LTR.get_trace('V(vin+1)').get_wave(0)
ax1.plot(x * 1000, tmp1, label='Vin+1')
tmp2  = LTR.get_trace('V(vin+2)').get_wave(0)
ax1.plot(x * 1000, tmp2, label='Vin+2')
tmp3  = LTR.get_trace('V(vin-1)').get_wave(0)
ax1.plot(x * 1000, tmp3, label='Vin-1')
tmp4  = LTR.get_trace('V(vin-2)').get_wave(0)
ax1.plot(x * 1000, tmp4, label='Vin-2')
tmp5  = LTR.get_trace('V(vout)').get_wave(0)
ax2.plot(x * 1000, tmp5, label='Vout')
ax2.plot(x * 1000, tmp1 + tmp2 - tmp3 - tmp4, label='Vout(offline)')

ax1.legend(); ax1.grid()
ax1.set_xlabel('[ms]'); ax1.set_ylabel('[V]')

ax2.legend(); ax2.grid()
ax2.set_xlabel('[ms]'); ax2.set_ylabel('[V]')

fig.tight_layout()

fig.savefig('PrimaryCircuit3-036_Graph1.png')

4つの信号が合成されて出力されている
オフラインで演算した結果と出力が一致している

参考文献

この記事は以下の書籍を参考にしましたが、
私の拙い知識で書いておりますので、誤り等ありましたらご指摘ください