NGSPICE.js - сумматоры напряжений на ОУ

Продолжаем осваивать NGSPICE вообще и ОУ в частности.

Наличие виртуальной земли в инвертирующем усилителе позволяет просто и элегантно решить задачу сложения напряжений входных сигналов от разных источников таким образом, чтобы они не оказывали взаимного влияния друг на друга. При этом для каждого из входных напряжений можно добавить свой коэффициент или как ещё говорят вес. Данная схема включения получила название инвертирующий сумматор и для идеального ОУ напряжение на выходе рассчитывается по простой формуле Vout = -Rf*((Vin1/Rf1)+(Vin2/Rf2)+...) в зависимости от количества суммируемых входов.

В следующих схемах использовалась SPICE модель операционного усилителя LT1007:

~$ wget http://cds.linear.com/docs/en/software-and-simulation/LT1007CS.txt

схема инвертирующего сумматора + тестовый сумматор без ОУ | netlist | ngspice.js

screenshot

ngspice 1 -> source inverting-summator.net
ngspice 2 -> dc vin1 -10 4 0.1
ngspice 3 -> plot v(out) (-v(test))

При Vin1=-10 алгебраическая сумма входных напряжений -10+3-5=-12 или 12 с инверсией и т.д. Как видно на картинке если бы мы не использовали ОУ а использовали обычные резисторы Rx то результат трудно назвать суммированием напряжений.

screenshot

Так как в основе инвертирующего сумматора лежит инвертирующего усилитель то для однополярного питания в принципе всё так же. Классический случай применения следующей схемы - качественный микшер аудио сигналов от нескольких источников.

инвертирующий сумматор с однополярным питанием | netlist | ngspice.js

screenshot

ngspice 1 -> source inverting-summator-single.net
ngspice 2 -> tran 1u 0.5m
ngspice 3 -> plot v(out) v(in1) v(in2) v(vgnd)

Коэффициент усиления подобран единице для красоты картинки - при желании его можно изменить.

screenshot

Далее триггер Шмидта на ОУ.

links

social