Проект усилителя обратной связи

Этот пример показывает проект схемы усилителя обратной связи неинвертирования с помощью Control System Toolbox™. Этот проект создается вокруг операционного усилителя (операционный усилитель), стандартный базовый блок электрических схем обратной связи.

Этот пример показывает, как действительная электрическая система может быть спроектирована, смоделирована и анализировала использование инструментов, обеспеченных Control System Toolbox.

Описание операционного усилителя

Стандартный базовый блок электрических схем обратной связи является операционным усилителем (операционный усилитель), дифференциальный усилитель напряжения, спроектированный, чтобы иметь чрезвычайно высокое усиление dc, часто в области значений 1e5 к 1e7.

Электрический символ для операционного усилителя показывают ниже.

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

Хотя полюса высшего порядка будут существовать в физическом операционном усилителе, он был принят в этом случае, что эти полюса лежат в частотном диапазоне, где величина понизилась значительно ниже единицы.

Передаточная функция разомкнутого контура:

$$ a(s)=\frac{a_0}{(1+s/\omega_1)(1+s/\omega_2)} $$

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

$$ a_0 = 1e5 $$

$$ \omega_1 = 1e4 $$

$$ \omega_2 = 1e6 $$

a0 = 1e5;
w1 = 1e4;
w2 = 1e6;

Затем вы хотите создать модель передаточной функции этой системы с помощью Control System Toolbox. Эта модель будет храниться в рабочей области MATLAB® как объект LTI.

Во-первых, задайте переменную Лапласа, s, с помощью команды TF. Затем используйте', чтобы создать передаточную функцию разомкнутого контура, (s):

s = tf('s');
a = a0/(1+s/w1)/(1+s/w2)
a =
 
           1e15
  ----------------------
  s^2 + 1.01e06 s + 1e10
 
Continuous-time transfer function.

Можно просмотреть частотную характеристику (s) с помощью команды BODEPLOT:

h = bodeplot(a,'r');

setoptions(h,'FreqUnits','rad/s','MagUnits','dB','PhaseUnits','deg',...
    'YLimMode','Manual','YLim',{[0,110],[-180,0]});

Щелкните правой кнопкой по графику получить доступ к меню свойств для этой диаграммы Боде. Щелкните левой кнопкой по кривым, чтобы создать подвижные маркеры данных, которые могут использоваться, чтобы получить детали ответа.

Можно просмотреть нормированный переходной процесс (s) с помощью STEPPLOT и команд DCGAIN:

a_norm = a / dcgain(a);
stepplot(a_norm,'r')

title('Normalized Open-Loop Step Response');
ylabel('Normalized Amplitude');

Щелкните правой кнопкой по графику и выберите "Characteristics-> Settling Time", чтобы отобразить время урегулирования. Держите мышь над маркером времени урегулирования, чтобы показать точное значение времени урегулирования.

Усилитель обратной связи

Теперь добавьте резистивную сеть обратной связи и соедините систему как усилитель неинвертирования.

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

     b  =  Vn / Vo  =  R1 / (R1 + R2)

Представление блок-схемы системы показывают ниже.

Решение для отношения Vo/Vp дает к усилению с обратной связью, (s):

     A  =  Vo / Vp  =  a / (1 + ab)

Если продукт 'ab' является достаточно большим (>> 1), то (s) может быть аппроксимирован как

     A  =  1 / b

Теперь примите, что необходимо спроектировать усилитель усиления dc (Vo/Vp) 10 и что R1 фиксируется на уровне 10 кОм. Решение для выражений R2:

A0 = 10;
b = 1 / A0;    % approximation for ab>>1
R1 = 10000;
R2 = R1 * (1/b - 1)
R2 =

       90000

Создайте систему с обратной связью с помощью команды FEEDBACK:

A = feedback(a,b);

Затем постройте частотные характеристики (s) и (s) вместе с помощью команды BODEMAG:

bodemag(a,'r',A,'b');

legend('Open-Loop Gain (a)','Closed-Loop Gain (A)')
ylim([0,110]);

% Annotations
opampdemo_annotate(1)

Использование отрицательной обратной связи, чтобы уменьшать низкочастотное (LF) усиление привело к соответствующему увеличению системной полосы пропускания (заданный как частота, где усиление опускается на 3 дБ ниже его максимального значения).

Это усиление / компромисс полосы пропускания является мощным инструментом в проекте схем усилителя обратной связи.

Поскольку усиление теперь во власти сети обратной связи, полезное отношение, чтобы рассмотреть является чувствительностью этого усиления к изменению операционного усилителя, естественного (разомкнутый контур) усиление.

Прежде, чем вывести системную чувствительность, однако, полезно задать усиление цикла, L (s) =a (s) b (s), который является общим доходом, сигнал испытывает перемещение вокруг цикла:

L = a * b;

Вы будете использовать это количество, чтобы оценить системную чувствительность и запасы устойчивости.

Системная чувствительность, S (s), представляет чувствительность (s) к изменению (s).

$$ S = \frac{\delta A/A}{\delta a/a}= \frac{1}{1+a(s)b(s)}=\frac{1}{1+L(s)} $$

Обратная связь между S (s) и L (s) показывает другое преимущество отрицательной обратной связи: "получите desensitivity".

S = 1 / (1 + L);

S (s) имеет ту же форму как уравнение обратной связи и, поэтому, может быть создан с помощью более - устойчивая команда FEEDBACK:

S = feedback(1,L);

Величины S (s) и (s) могут быть построены вместе с помощью команды BODEMAG:

bodemag(A,'b',S,'g')
legend('Closed-Loop Gain(A)', 'System Sensitivity(S)','Location','SouthEast')

Очень маленькая низкочастотная чувствительность (приблизительно-80 дБ) указывает на проект, чье усиление с обратной связью страдает минимально от изменения коэффициента усиления разомкнутого контура. Такое изменение (s) распространено из-за изменчивости производственного процесса, изменения температуры, и т.д.

Можно проверять переходной процесс (s) с помощью команды STEPPLOT:

stepplot(A)

% Annotation
opampdemo_annotate(2)

Обратите внимание на то, что использование обратной связи значительно уменьшало время урегулирования (приблизительно на 98%). Однако переходной процесс теперь отображает большой объем вызова, указывая на плохой запас устойчивости.

Можно анализировать запас устойчивости путем графического вывода усиления цикла, L (s), с ГРАНИЧНОЙ командой:

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 для (s) и L (s):

A_array = feedback(a,b_array);
L_array = a*b_array;

Можно построить переходной процесс всех моделей в массиве LTI, A_array (s), вместе с (s) с помощью команды 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 (s), найдены с помощью ГРАНИЧНОЙ команды:

[Gm,Pm,Wcg,Wcp] = margin(L_array);

Запасы по фазе могут теперь быть построены в зависимости от C.

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 (s). Можно построить переходной процесс системы замкнутого цикла для этой модели путем выбора индекса 6 массива LTI A_array (s):

A_comp = A_array(:,:,6);
stepplot(A,'b:',A_comp,'b')
legend('Uncompensated (0 pF)','Compensated (2 pF)')

Обратите внимание на то, что время урегулирования далее уменьшалось (на дополнительные 85%).

Мы можем наложить частотную характеристику всех трех моделей (разомкнутый контур, с обратной связью, компенсированный с обратной связью) использование команды BODE:

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 градусов.

Для просмотра документации необходимо авторизоваться на сайте