В этом примере показана конструкция схемы неинвертирующего усилителя с обратной связью с использованием системы управления Toolbox™. Эта конструкция построена вокруг операционного усилителя (ОУ), стандартного строительного блока электрических цепей обратной связи.
В этом учебном пособии показано, как можно проектировать, моделировать и анализировать реальную электрическую систему с помощью инструментов панели инструментов системы управления.
Стандартным строительным блоком электрических цепей обратной связи является операционный усилитель (ОУ), дифференциальный усилитель напряжения, предназначенный для чрезвычайно высокого усиления постоянного тока, часто в диапазоне от 1е5 до 1е7.
Электрический символ операционного усилителя показан ниже.

В этом примере предполагается использование некомпенсированного ОУ с 2 полюсами (на частотах w1, w2) и высоким коэффициентом усиления постоянного тока (a0). Если предположить, что этот операционный усилитель работает в линейном режиме (не насыщен), то его функция передачи с разомкнутым контуром может быть представлена в виде линейной инвариантной по времени (LTI) системы, как показано выше.
Хотя полюса более высокого порядка будут существовать в физическом ОУ, в этом случае предполагается, что эти полюса лежат в диапазоне частот, где величина упала значительно ниже единицы.
Функция передачи с разомкнутым контуром:

Предполагаются следующие системные параметры:



a0 = 1e5; w1 = 1e4; w2 = 1e6;
Затем необходимо создать модель передаточной функции этой системы с помощью панели инструментов системы управления. Эта модель будет храниться в рабочей области MATLAB ® как объект LTI.
Сначала определите переменную Лапласа s с помощью команды TF. Затем используйте «s» для построения функции передачи с разомкнутым контуром, a (s):
s = tf('s');
a = a0/(1+s/w1)/(1+s/w2)
a =
1e15
----------------------
s^2 + 1.01e06 s + 1e10
Continuous-time transfer function.
Частотную характеристику элементов можно просмотреть с помощью команды BODEPLOT:
h = bodeplot(a,'r'); setoptions(h,'FreqUnits','rad/s','MagUnits','dB','PhaseUnits','deg',... 'YLimMode','Manual','YLim',{[0,110],[-180,0]});

Щелкните правой кнопкой мыши на графике, чтобы получить доступ к меню свойств этой диаграммы. Нажмите левую кнопку мыши на кривых, чтобы создать подвижные маркеры данных, которые можно использовать для получения подробных данных ответа.
Нормализованный ответ шага можно просмотреть с помощью команд STEPPLOT и DCGAIN:
a_norm = a / dcgain(a); stepplot(a_norm,'r') title('Normalized Open-Loop Step Response'); ylabel('Normalized Amplitude');

Щелкните правой кнопкой мыши по графику и выберите «Признаки - > Время расчета» для просмотра времени расчета. Наведите указатель мыши на маркер времени установки, чтобы определить точное значение времени установки.
Теперь добавьте резистивную сеть обратной связи и подключите систему в качестве неинвертирующего усилителя.

Эта сеть обратной связи, b (s), является просто делителем напряжения с входом Vo и выходом Vn. Решение для отношения Vn/Vo дает передаточную функцию для b (s):
b = Vn / Vo = R1 / (R1 + R2)
Блок-схема системы показана ниже.

Решение для отношения Vo/Vp дает коэффициент усиления по замкнутому контуру, A (s):
A = Vo / Vp = a / (1 + ab)
Если произведение «ab» достаточно велико (> > 1), то A (s) может быть аппроксимирован как
A = 1 / b
Теперь предположим, что вам нужно сконструировать усилитель с коэффициентом усиления постоянного тока (Vo/Vp) 10 и что R1 зафиксирован на 10 кОм. Решение для R2 выходов:
A0 = 10;
b = 1 / A0; % approximation for ab>>1
R1 = 10000;
R2 = R1 * (1/b - 1)
R2 =
90000
Создайте систему с замкнутым контуром с помощью команды ОБРАТНАЯ СВЯЗЬ:
A = feedback(a,b);
Затем постройте график частотных характеристик a (s) и A (s) вместе с помощью команды BODEMAG:
bodemag(a,'r',A,'b'); legend('Open-Loop Gain (a)','Closed-Loop Gain (A)') ylim([0,110]); % Annotations opampdemo_annotate(1)

Использование отрицательной обратной связи для уменьшения низкочастотного (LF) усиления привело к соответствующему увеличению полосы пропускания системы (определяемой как частота, где усиление падает 3dB ниже своего максимального значения).
Этот компромисс между коэффициентом усиления и полосой пропускания является мощным инструментом при проектировании схем усилителя с обратной связью.
Поскольку усиление теперь доминирует в сети обратной связи, полезной зависимостью для рассмотрения является чувствительность этого усиления к изменению естественного (разомкнутого) усиления операционного усилителя.
Однако перед выводом чувствительности системы полезно определить коэффициент усиления контура L (s) = a (s) b (s), который представляет собой суммарный коэффициент усиления сигнала, проходящего по контуру:
L = a * b;
Эта величина используется для оценки чувствительности системы и полей стабильности.
Чувствительность системы S (s) представляет чувствительность A (s) к изменению в a (s).

Обратная зависимость между S (ами) и L (ами) выявляет еще одно преимущество отрицательной обратной связи: «усиление нечувствительности».
S = 1 / (1 + L);
S (s) имеет ту же форму, что и уравнение обратной связи, и, следовательно, может быть сконструировано с использованием более надежной команды ОБРАТНАЯ СВЯЗЬ:
S = feedback(1,L);
Величины S (s) и A (s) могут быть нанесены вместе с помощью команды BODEMAG:
bodemag(A,'b',S,'g') legend('Closed-Loop Gain(A)', 'System Sensitivity(S)','Location','SouthEast')

Очень малая низкочастотная чувствительность (около -80 дБ) указывает на конструкцию, усиление в замкнутом контуре которой минимально страдает от изменения усиления в разомкнутом контуре. Такое изменение в a (s) является обычным из-за изменчивости производства, изменения температуры и т.д.
Можно проверить ответ шага A (s) с помощью команды STEPPLOT:
stepplot(A)
% Annotation
opampdemo_annotate(2)

Следует отметить, что использование обратной связи значительно сократило время оседания (примерно на 98%). Однако отклик шага теперь отображает большое количество вызывных сигналов, указывая на плохой запас устойчивости.
Можно проанализировать запас устойчивости, построив график усиления контура, L (s), с помощью команды MARGIN:
margin(L)

Результирующий график показывает запас фазы менее 6 градусов. Вам нужно будет компенсировать этот усилитель, чтобы поднять запас по фазе до приемлемого уровня (как правило, 45 ° или более), тем самым уменьшая чрезмерное превышение и звон.
Обычно используемым способом компенсации в схеме этого типа является «компенсация выводов обратной связи». Этот метод изменяет b (s) путем добавления конденсатора C параллельно резистору обратной связи R2.

Значение конденсатора выбирают таким образом, чтобы ввести фазовый вывод в b (s) вблизи перекрестной частоты, увеличивая, таким образом, запас по фазе усилителя.
Новая функция передачи обратной связи показана ниже.

Можно аппроксимировать значение для C, поместив ноль b (s) на 0dB частоте пересечения L (s):
[Gm,Pm,Wcg,Wcp] = margin(L); C = 1/(R2*Wcp)
C = 1.1139e-12
Чтобы изучить влияние C на отклик усилителя, создайте массив модели LTI b (s) для нескольких значений C вокруг вашего первоначального предположения:

K = R1/(R1+R2); C = [1:.2:3]*1e-12; for n = 1:length(C) b_array(:,:,n) = tf([K*R2*C(n) K],[K*R2*C(n) 1]); end
Теперь можно создавать массивы LTI для A и L:
A_array = feedback(a,b_array); L_array = a*b_array;
Пошаговый отклик всех моделей в массиве LTI, A_array и A, можно построить с помощью команды STEPPLOT:
stepplot(A,'b:',A_array,'b',[0:.005:1]*1.5e-6); title('Closed-Loop Step Response (Compensated)'); % Plot Annotations opampdemo_annotate(3)

Поля фаз для массива усиления контура, L_array (ы), определяются с помощью команды MARGIN:
[Gm,Pm,Wcg,Wcp] = margin(L_array);
Поля фаз теперь могут быть нанесены на график как функция С.
plot(C*1e12,Pm,'g'); ax = gca; xlim([0.8 3.6]); ylim([45 60]); ax.Box = 'on'; xlabel('Compensation Capacitor, C (pF)'); ylabel('Phase Margin (deg)') % Plot Annotations opampdemo_annotate(4)

Максимальный запас по фазе составляет 58 °, когда C = 2pF (2e-12).
Модель, соответствующая C = 2pF, является шестой моделью в массиве LTI, b_array (ы). Можно построить график ответа на шаг системы замкнутого цикла для этой модели, выбрав индекс 6 A_array массива LTI:
A_comp = A_array(:,:,6); stepplot(A,'b:',A_comp,'b') legend('Uncompensated (0 pF)','Compensated (2 pF)')

Следует отметить, что время отстаивания было дополнительно сокращено (дополнительно на 85%).
Можно наложить частотную характеристику всех трех моделей (с разомкнутым контуром, с замкнутым контуром, с компенсацией с замкнутым контуром) с помощью команды БОДЕ:
bodeplot(a,'r',A,'b:',A_comp,'b') legend('a(s)','A(s)','A\_comp(s)');

Обратите внимание на то, как добавление компенсационного конденсатора устраняет пик усиления с обратной связью, а также значительно увеличивает запас по фазе.
Краткое описание выбора значений составляющих в конструкции этой неинвертирующей схемы усилителя обратной связи:
Конечные значения компонентов: R1 = 10 кОм, R2 = 90 кОм, C = 2 пФ.
Сеть резистивной обратной связи (R1,R2) была выбрана для получения коэффициента усиления широкополосного усилителя 10 (20 дБ).
Компенсация выводов обратной связи использовалась для настройки усиления контура вблизи частоты пересечения. Значение компенсационного конденсатора, C, было оптимизировано для обеспечения максимального запаса фазы около 58 градусов.