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

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

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

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

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

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

Этот пример принимает использование некомпенсированного операционного усилителя с 2 полюсами (на частотах w1, w2) и высоким усилением постоянного тока (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.

Сначала задайте переменную Laplace, 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.

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

h = bodeplot(a,'r');

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

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

Нормированные переходные характеристики a (s) можно просмотреть с помощью команд 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

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

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 = \frac{\delta A/A}{\delta a/a}= \frac{1}{1+a(s)b(s)}=\frac{1}{1+L(s)} $$

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

S = 1 / (1 + L);

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

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 o или более), таким образом уменьшая чрезмерное перерегулирование и звон.

Компенсация интереса к обратной связи

Обычно используемым методом компенсации в этом типе схемы является «компенсация вывода с обратной связью». Этот метод модифицирует 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 (s) и L (s):

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);

Теперь запасы по фазе можно построить как функцию 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 oC получается при C = 2pF (2e-12).

Модель, соответствующая C = 2pF, является шестой моделью в массиве LTI, b_array (ы). Можно построить график переходной характеристики системы цикла closed для этой модели, выбрав индекс 6 A_array (ов) массива LTI:

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 пФ.

  • Для получения усиления широкополосного усилителя 10 (20 дБ) выбирают сеть (R1,R2) с обратной связью сопротивления.

  • Компенсация интереса с обратной связью использовалась для настройки коэффициента усиления цикла около частоты среза. Значение для компенсирующего конденсатора C было оптимизировано, чтобы обеспечить максимальный запас по фазе около 58 степени.