Разработка соответствия с сетями (часть 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\prime','Location','Best')
title('Stability Parameters MU and MU\prime')
xlabel('Frequency [GHz]')
disp('Measured Frequencies where the amplifier is not unconditionally stable:')
fprintf('\tFrequency = %.1e\n',AllFreq(mu<=1))
Measured Frequencies where the amplifier is not unconditionally stable:
	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));
plot(pt2(1),pt2(2),'k.','MarkerSize',16);
txtstr = sprintf('A=\\mid%s\\mid%s^\\circ',num2str(GammaMagA,4), ...
    num2str(GammaAngA*180/pi,4));
text(pt2(1),pt2(2)-.07,txtstr,'FontSize',8,'FontUnits','normalized', ...
    'FontWeight','Bold')
annotation('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('arrow',[0.2786 0.3286],[0.2778 0.3310])
annotation('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('arrow',[0.8179 0.5761],[0.4301 0.4887]);
hold off

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

Местоположение тупика разомкнутой цепи в длинах волн от интерфейса загрузки усилителя является функцией по часовой стрелке углового различия между точкой "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 ГГц.

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