Продолжаем осваивать NGSPICE.
Операционный усилитель (ОУ) - это модульный многокаскадный усилитель с дифференциальным входом. Для простоты расчётов удобно оперировать понятием идеального ОУ - такого себе непрозрачного ящичка с магией внутри. Дифференциальный вход предполагает два входа - инвертирующий и неинвертирующий. Также у ОУ есть две ноги для питания и обычно один выход, уровень напряжения на котором является функцией от разности напряжений на входах. Под идеальным подразумевают:
-
бесконечное входное сопротивление
-
нулевое выходное сопротивление
-
бесконечная ширина полосы пропускания и отсутствие задержки при прохождении сигнала через усилитель
-
бесконечно большой коэффициент усиления по напряжению с разомкнутой петлей обратной связи
-
предположение о бесконечности коэффициента усиления идеального ОУ влечёт за собой предположение о том, что разность напряжений между входами стремится к нулю в активном режиме усиления
На текущий момент ngspice.js собран без флага --enable-xspice
, поэтому в следующих схемах использовалась SPICE модель операционного усилителя LT1007, а не более широко известных и часто используемых LM321 или uA741/К140УД7 т.к. для симуляции они требуют наличия расширения xspice - в таких случаях стоит использовать нативный ngspice:
~$ wget http://cds.linear.com/docs/en/software-and-simulation/LT1007CS.txt
схема ОУ без обратной связи | netlist | ngspice.js
ngspice 1 -> source basic.net
ngspice 2 -> alter vn 0.1m
ngspice 3 -> dc vp 60u 0.1m 50n
ngspice 4 -> plot v(out)
ngspice 5 -> alter vp 0.1m
ngspice 6 -> op
ngspice 7 -> print i(vp) i(vn)
Результаты команды op
следующие i(vp) = -8.96560e-09 | i(vn) = -2.09159e-08 из чего можно сделать вывод что входное сопротивление (10^-4)/(8.96560*10^-09) ≈ 10 кОм
| (10^-4)/(2.09159*10^-08) ≈ 5 кОм
что вобщем немного. Что интересно для более высоких напряжений Vp и Vn входное сопротивление оказывается на порядок больше - десятки мегаом:
ngspice 8 -> alter vp 1
ngspice 9 -> alter vn 1
ngspice 10 -> op
ngspice 11 -> print i(vp) i(vn)
Судя по документации LT1007 спроектирован на биполярных транзисторах, что возможно объясняет небольшое по меркам ОУ входное сопротивление.
На картинке пара микровольт активного режима ОУ на входе полностью переворачивают напряжение на выходе из нижнего режима а насыщения в верхний, что говорит об очень большом коэффициенте усиления по напряжению (8+8)/(2*10^-6) = 8 миллионов = 20*log(8*10^6)=20*l(8*10^6)/l(10) = 138 дБ
. Поэтому для нормальной работы ОУ вводят обратную связь - как правило отрицательную.
Далее неинвертирующий усилитель на ОУ.