Разработка соответствия с сетями (часть 2: одна тупиковые линии электропередачи)

В этом примере показано, как использовать RF Toolbox, чтобы определить сети соответствия ввода и вывода, которые максимизируют степень, поставленную загрузке на 50 Ом и системе. Разработка сетей соответствия ввода и вывода является важной частью проекта усилителя. Этот пример сначала вычисляет отражательные факторы для одновременного сопряженного соответствия и затем определяет размещение тупика шунта в каждой сети соответствия на заданной частоте. Наконец, пример располагает каскадом соответствующие сети с усилителем и строит результаты.

Создайте rfckt.amplifier Объект

Создайте rfckt.amplifier объект представлять усилитель, описанный измеренными зависимыми частотой данными S-параметра в файле samplebjt2.s2p. Затем extract зависимые частотой данные S-параметра из rfckt.amplifier объект.

amp = read(rfckt.amplifier,'samplebjt2.s2p');
[sparams,AllFreq] = extract(amp.AnalyzedResult,'S_Parameters');

Проверяйте на устойчивость усилителя

Перед продолжением проекта определите измеренные частоты, на которых усилитель безусловно устойчив. Используйте stabilitymu функция, чтобы вычислить mu и muprime на каждой частоте. Затем проверяйте что возвращенные значения на mu больше того. Это критерии является необходимым и достаточным условием для безусловной устойчивости. Если усилитель весьма условно устойчив, распечатайте соответствующее значение частоты.

[mu,muprime] = stabilitymu(sparams);
figure
plot(AllFreq/1e9,mu,'--',AllFreq/1e9,muprime,'r')
legend('MU',"MU'",'Location','Best') 
title("Stability Parameters MU and MU'")
xlabel('Frequency [GHz]')

disp('Measured Frequencies where the amplifier is not unconditionally stable:')
Measured Frequencies where the amplifier is not unconditionally stable:
fprintf('\tFrequency = %.1e\n',AllFreq(mu<=1))
	Frequency = 1.0e+09
	Frequency = 1.1e+09

В данном примере усилитель безусловно устойчив на всех измеренных частотах кроме 1,0 ГГц и 1,1 ГГц.

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

Начните проектировать сети соответствия ввода и вывода путем преобразования отражательных коэффициентов для одновременного сопряженного соответствия в интерфейсах усилителя в соответствующий источник и загрузите проводимость. Этот пример использует следующую схему соответствия линии электропередачи без потерь:

Расчетные параметры для этой одной схемы соответствия тупика являются местоположением тупиков со ссылкой на интерфейсы усилителя и тупиковые длины. Процедура использует следующие принципы разработки:

  • Центр графика Смита представляет нормированный источник или иммитанс загрузки.

  • Перемещение вдоль линии электропередачи эквивалентно пересечению круга, строившего в начале координат графика Смита с радиусом, равным отражательной содействующей величине.

  • Один тупик линии электропередачи может быть вставлен в точке на линии электропередачи, когда ее проводимость (линия электропередачи) пересекает круг проводимости единицы. В этом местоположении тупик инвертирует реактивную проводимость линии электропередачи, приводящую к проводимости, которая равняется исходные завершения или загрузка.

Этот пример использует график ИЗА Смита, потому что легче добавить тупик параллельно с линией электропередачи с помощью этого типа графика Смита.

Вычислите и постройте комплексные коэффициенты отражения загрузки и источника

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

AllGammaL = calculate(amp,'GammaML','none');
AllGammaS = calculate(amp,'GammaMS','none');
hsm = smithplot([AllGammaL{:} AllGammaS{:}]);
hsm.LegendLabels = {'#Gamma ML','#Gamma MS'};

Определите коэффициент отражения загрузки на одной частоте

Найдите коэффициент отражения загрузки, GammaL, для выходной сети соответствия на частоте проекта 1,9 ГГц.

freq = AllFreq(AllFreq == 1.9e9);
GammaL = AllGammaL{1}(AllFreq == 1.9e9)
GammaL = -0.0421 + 0.2931i

Нарисуйте постоянный круг величины для коэффициента отражения загрузки GammaL

Нарисуйте круг, который сосредоточен в нормированной проводимости источник графика Смита и чей радиус равняется величине GammaL. Точка на этом круге представляет отражательный коэффициент в конкретном местоположении на линии электропередачи. Отражательным коэффициентом для линии электропередачи в интерфейсе усилителя является GammaL, в то время как центр графика представляет нормированную проводимость загрузки, y_L. Пример использует circle метод, чтобы нарисовать все соответствующие круги на графике Смита.

hsm = smithplot;
circle(amp,freq,'Gamma',abs(GammaL),hsm); 
hsm.GridType = 'yz';
hold all
plot(0,0,'k.','MarkerSize',16)                    
plot(GammaL,'k.','MarkerSize',16)
txtstr = sprintf('\\Gamma_{L}\\fontsize{8}\\bf=\\mid%s\\mid%s^\\circ', ...
    num2str(abs(GammaL),4),num2str((angle(GammaL)*180/pi),4));
text(real(GammaL),imag(GammaL)+.1,txtstr,'FontSize',10, ...
    'FontUnits','normalized');
plot(0,0,'r',0,0,'k.','LineWidth',2,'MarkerSize',16);
text(0.05,0,'y_L','FontSize',12,'FontUnits','normalized')

Чертите единицу постоянный круг проводимости и найдите точки пересечения

Чтобы определить тупиковую длину волны (реактивная проводимость) и ее местоположение относительно интерфейса согласования нагрузки усилителя, постройте нормированный круг проводимости единицы и постоянный круг величины и фигуру, где эти два круга пересекаются. Найдите точки пересечения в интерактивном режиме с помощью Data Cursor или аналитически с помощью функции помощника, find_circle_intersections_helper. Этот пример использует функцию помощника. Круги пересекаются в двух точках. Пример использует трех-квадрантную точку, которая помечена "A". Круг проводимости единицы сосредоточен в (-.5,0) с радиусом.5. Постоянный круг величины сосредоточен в (0,0) с радиусом, равным величине GammaL.

circle(amp,freq,'G',1,hsm);
hsm.ColorOrder(2,:) = [1 0 0];
[~,pt2] = imped_match_find_circle_intersections_helper([0 0], ...
    abs(GammaL),[-.5 0],.5);
GammaMagA = sqrt(pt2(1)^2 + pt2(2)^2);  
GammaAngA = atan2(pt2(2),pt2(1));
ax = hsm.Parent.CurrentAxes;
hold (ax,"on");
plot(ax, pt2(1),pt2(2),'k.','MarkerSize',16);
txtstr = sprintf('A=\\mid%s\\mid%s^\\circ',num2str(GammaMagA,4), ...
    num2str(GammaAngA*180/pi,4));
text(ax, pt2(1),pt2(2)-.07,txtstr,'FontSize',8,'FontUnits','normalized', ...
    'FontWeight','Bold')
container = hsm.Parent;
annotation(container,'textbox','VerticalAlignment','middle',...
    'String',{'Unity','Conductance','Circle'},...
    'HorizontalAlignment','center','FontSize',8,...
    'EdgeColor',[0.04314 0.5176 0.7804],...
    'BackgroundColor',[1 1 1],'Position',[0.1403 0.1608 0.1472 0.1396])
annotation(container,'arrow',[0.2786 0.3286],[0.2778 0.3310])
annotation(container,'textbox','VerticalAlignment','middle',...
    'String',{'Constant','Magnitude','Circle'},...
    'HorizontalAlignment','center','FontSize',8,...
    'EdgeColor',[0.04314 0.5176 0.7804],...
    'BackgroundColor',[1 1 1],'Position',[0.8107 0.3355 0.1286 0.1454])
annotation(container,'arrow',[0.8179 0.5761],[0.4301 0.4887]);

Вычислите тупиковое местоположение и тупиковую длину для Выходной сети соответствия

Местоположение тупика разомкнутой цепи в длинах волн от интерфейса загрузки усилителя является функцией по часовой стрелке углового различия между точкой "A" и GammaL. Когда точка "A" появляется в третьем квадранте и GammaL падения второго квадранта, тупиковое положение в длинах волн вычисляется можно следующим образом:

StubPositionOut = ((2*pi + GammaAngA) - angle(GammaL))/(4*pi)
StubPositionOut = 0.2147

Тупиковое значение является суммой реактивной проводимости, которая требуется, чтобы перемещать нормированную проводимость загрузки (центр графика Смита) к точке "A" на постоянном круге величины. Открытая тупиковая линия электропередачи может использоваться, чтобы предоставить это значение реактивной проводимости. Его длина волны задана объемом углового вращения от точки проводимости разомкнутой цепи на графике Смита (точка "M" на следующей фигуре) к необходимой точке "N" реактивной проводимости на внешнем крае графика. Точка "N" - то, где постоянный круг реактивной проводимости со значением, равным реактивной проводимости точки "A", пересекает модульный круг. Кроме того, StubLengthOut формула, используемая ниже, требует, чтобы "N" упал в третьем или четвертом квадранте.

GammaA = GammaMagA*exp(1j*GammaAngA);
bA = imag((1 - GammaA)/(1 + GammaA));
StubLengthOut = -atan2(-2*bA/(1 + bA^2),(1 - bA^2)/(1 + bA^2))/(4*pi)
StubLengthOut = 0.0883

Вычислите тупиковое местоположение и тупиковую длину для входной сети соответствия

В предыдущих разделах пример вычислил необходимые длины и размещения, в длинах волн, для выходной сети связи соответствия. После того же подхода вычисляются длины линии для входной сети соответствия:

GammaS = AllGammaS{1}(AllFreq == 1.9e9)
GammaS = -0.0099 + 0.2501i
[pt1,pt2] = imped_match_find_circle_intersections_helper([0 0], ...
    abs(GammaS),[-.5 0],.5);
GammaMagA = sqrt(pt2(1)^2 + pt2(2)^2);
GammaAngA = atan2(pt2(2),pt2(1));
GammaA = GammaMagA*exp(1j*GammaAngA);
bA = imag((1 - GammaA)/(1 + GammaA));
StubPositionIn = ((2*pi + GammaAngA) - angle(GammaS))/(4*pi)
StubPositionIn = 0.2267
StubLengthIn = -atan2(-2*bA/(1 + bA^2),(1 - bA^2)/(1 + bA^2))/(4*pi)
StubLengthIn = 0.0759

Проверьте проект

Чтобы проверить проект, соберите схему с помощью микрополосковых линий электропередачи на 50 Ом для соответствующих сетей. Во-первых, определите, является ли микрополосковая линия подходящим выбором путем анализа микрополосковой линии электропередачи по умолчанию на частоте проекта 1,9 ГГц.

stubTL4 = rfckt.microstrip;
analyze(stubTL4,freq);
Z0 = stubTL4.Z0;

Этот характеристический импеданс близко к желаемому импедансу на 50 Ом, таким образом, пример может возобновить проект с помощью этих микрополосковых линий.

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

phase_vel = stubTL4.PV;

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

TL2 = rfckt.microstrip('LineLength',phase_vel/freq*StubPositionIn);
TL3 = rfckt.microstrip('LineLength',phase_vel/freq*StubPositionOut);

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

stubTL1 = rfckt.microstrip('LineLength',phase_vel/freq*StubLengthIn, ...
    'StubMode','shunt','Termination','open');
set(stubTL4,'LineLength',phase_vel/freq*StubLengthOut, ...
    'StubMode','shunt','Termination','open')

Теперь расположите каскадом элементы схемы и анализируйте усилитель с и без соответствующих сетей по частотному диапазону 1,5 к 2,3 ГГц.

matched_amp = rfckt.cascade('Ckts',{stubTL1,TL2,amp,TL3,stubTL4});
analyze(matched_amp,1.5e9:1e7:2.3e9);
analyze(amp,1.5e9:1e7:2.3e9);

Чтобы проверить одновременное сопряженное соответствие во входе усилителя, постройте S11 параметры в дБ и для совпадающих и для несопоставленных схем.

clf
plot(amp,'S11','dB')
hold all
hline = plot(matched_amp,'S11','dB');
hline.Color = 'r';
legend('S_{11} - Original Amplifier', 'S_{11} - Matched Amplifier')
legend('Location','SouthEast')
hold off

Чтобы проверить одновременное сопряженное соответствие при выходе усилителя, постройте S22 параметры в дБ и для совпадающих и для несопоставленных схем.

plot(amp,'S22','dB')
hold all
hline = plot(matched_amp,'S22','dB');
hline.Color = 'r';
legend('S_{22} - Original Amplifier', 'S_{22} - Matched Amplifier')
legend('Location','SouthEast')
hold off

Наконец, постройте усиление преобразователя (Gt) и максимальное доступное усиление (Gmag) в дБ для совпадающей схемы.

hlines = plot(matched_amp,'Gt','Gmag','dB');
hlines(2).Color = 'r';

Вы видите, что усиление преобразователя и максимальное доступное усиление очень друг близко к другу на уровне 1,9 ГГц.