Разработка широкополосных сетей соответствия (часть 1: антенна)

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

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

Рисунок 1: Импеданс, соответствующий антенны к источнику

Задайте частоту и импеданс

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

fc = 350e6;                           % Center Frequency (Hz)
BW = 110e6;                           % Bandwidth (Hz)

Здесь вы задаете исходный импеданс, ссылочный импеданс и нагрузочное сопротивление. В этом примере загрузка Zl моделируется как схема серии R-L. Вы могли вместо этого измерить импеданс загрузки и использования настолько непосредственно.

Zs = 50;                              % Source impedance (ohm)              
Z0 = 50;                              % Reference impedance (ohm)
Rl = 40;                              % Load resistance (ohm)
L = 12e-8;                            % Load inductance (Henry)

Задайте количество точек частоты, чтобы использовать в анализе и настроить вектор частоты.

nfreq = 256;                          % Number of frequency points
fLower = fc - (BW/2);                 % Lower band edge                 
fUpper = fc + (BW/2);                 % Upper band edge                
freq = linspace(fLower,fUpper,nfreq); % Frequency array for analysis
w = 2*pi*freq;                        % Frequency (radians/sec)

Изучите Поведение Загрузки с помощью Отражательного Усиления Коэффициента и Степени

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

Xl = w*L;                                   % Reactance (ohm)
Zl = Rl + 1i*Xl;                            % Load impedance (ohm)
GammaL = (Zl - Z0)./(Zl + Z0);              % Load reflection coefficient
unmatchedGt = 10*log10(1 - abs(GammaL).^2); % Power delivered to load

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

figure
hs = smithplot(GammaL);
hs.LegendLabels = {'#Gamma load'};

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

plot(freq.*1e-6,unmatchedGt,'r')
grid on
title('Power delivered to load - No matching network')
xlabel('Frequency (MHz)')
ylabel('Magnitude (decibels)')
legend('G_t','Location','Best')

Когда график показывает, существуют потери мощности на приблизительно 10 дБ вокруг желаемой области операции (295 - 405 МГц). В результате антенне нужна соответствующая сеть, которая управляет более чем пропускной способностью на 110 МГц, которая сосредоточена на уровне 350 МГц.

Спроектируйте соответствие с сетью

Соответствующая сеть должна действовать между 295 МГц и 405 МГц, таким образом, вы выбираете полосовую топологию для соответствующей сети, которую показывают здесь.

Введите - я: Серийный LC первый элемент, сопровождаемый LC шунта

Рисунок 2: Соответствие с сетевой топологией

Подход должен спроектировать нечетный порядок Чебышев на 0,5 дБ прототип lowpass и затем применить lowpass к полосовому преобразованию [1], чтобы получить первоначальный проект для соответствующей сети, показанной в фигуре 2. Теперь необходимо ввести желаемый заказ и связанные коэффициенты. Это - одна проблема соответствия [3], т.е. источник является чисто резистивным, в то время как загрузка является комбинацией R и L, таким образом, можно начать путем выбора пяти прототипных сетей элемента.

N = 5;                                          % Order of matching network
LCproto = [1.7058 1.2296 2.5408 1.2296 1.7058]; % Lowpass prototype values (Normalized)
wU = 2*pi*fUpper;                               % Upper band edge
wL = 2*pi*fLower;                               % Lower band edge
w0 = sqrt(wL*wU);                               % Geometric mean

Используйте lcladder возразите, чтобы создать полосовую сеть соответствия мишени. Преобразования импеданса и частоты включены в целях денормализации. Обратите внимание на то, что топология требует полосовой прототип мишени, который начинается с серийного индуктора. Если бы выбранная топология является пи полосы пропускания LC затем, вы начали бы с шунта C для прототипа lowpass.

Lvals = zeros(N,1);
Cvals = zeros(N,1);

Lvals(1:2:end) = LCproto(1:2:end).*Zs./(wU-wL);            % Series L's (H)
Cvals(1:2:end) = (wU-wL)./(Zs.*(w0^2).*LCproto(1:2:end));  % Series C's (F)

Lvals(2:2:end) = ((wU-wL)*Zs)./((w0^2).*LCproto(2:2:end)); % Shunt L's (H)
Cvals(2:2:end) = LCproto(2:2:end)./((wU-wL).*Zs);          % Shunt C's (F)

% Create the matching network
matchingNW = lcladder('bandpasstee',Lvals,Cvals);

% Copy initial values for comparison
L_initial = Lvals;

Оптимизируйте спроектированное соответствие с сетью

Существует несколько вопросов для рассмотрения до оптимизации

  • Целевая функция - целевая функция может быть создана по-разному в зависимости от проблемы под рукой. В данном примере целевую функцию показывают в файле ниже.

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

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

  • Метод оптимизации - прямой основанный на поиске метод, MATLAB® функционирует fminsearch, используется в этом примере, чтобы выполнить оптимизацию.

  • Количество итераций/вычислений функции - Определенный максимальный номер итераций и вычислений функции, чтобы выполнить, чтобы к компромиссу между скоростью и качеством соответствия.

Целевая функция используется во время процесса оптимизации fminsearch показан здесь.

type('antennaMatchObjectiveFun.m')
function output = antennaMatchObjectiveFun(matchingNW,Lvalues,freq,ZL,Z0)
%ANTENNAMATCHOBJECTIVEFUN is the objective function used by the example
% Designing Broadband Matching Networks (Part I: Antenna), which can be
% found in broadband_match_antenna.m.
%
% OUTPUT = ANTENNAMATCHOBJECTIVEFUN(MATCHINGNW,LVALUES,FREQ,Z0)
% returns the current value of the objective function stored in OUTPUT
% evaluated after updating the inductor values in the object, MATCHINGNW.
% The inductor values are stored in the variable LVALUES.
%
% ANTENNAMATCHOBJECTIVEFUN is an objective function of RF Toolbox demo:
% Designing Broadband Matching Networks (Part I: Antenna)

%   Copyright 2008-2015 The MathWorks, Inc.

% Ensure positive element values
if any(Lvalues <= 0)                                                       
    output = Inf;
    return
end

% Update the element values in the matching network
matchingNW.Inductances(1) = Lvalues(1);
matchingNW.Inductances(end) = Lvalues(end);

% Perform analysis on tuned matching network
S = sparameters(matchingNW,freq,Z0);

% Calculate input reflection coefficient 'gammaIn'
gIn = gammain(S,ZL);

% Cost function
output = mean(abs(gIn));

% Other possible choices for objective function could be : -
% output =  max(abs(gIn));
% output = -1*mean(Gt_pass);

% Animate
hs = smithplot(gIn);
% l.LegendLabels = 'Optimizing #Gamma in';
drawnow

Существует несколько способов выбрать функцию стоимости, и некоторые варианты показываются в целевой функции выше (в комментариях). Переменные оптимизации являются первыми и последними индукторами, L1 и L5 соответственно. Значения элемента хранятся в переменной L_Optimized.

niter = 125;
options = optimset('Display','iter','MaxIter',niter);  % Set options structure
L_Optimized = [Lvals(1) Lvals(end)];
L_Optimized = ...
    fminsearch(@(L_Optimized)antennaMatchObjectiveFun(matchingNW, ...
    L_Optimized,freq,Zl,Z0),L_Optimized,options);
 
 Iteration   Func-count     min f(x)         Procedure
     0            1         0.933981         
     1            3         0.933981         initial simplex
     2            5         0.920321         expand
     3            7         0.911351         expand
     4            9         0.853251         expand
     5           11         0.730432         expand
     6           13         0.526433         reflect
     7           15         0.526433         contract inside
     8           17         0.421086         reflect
     9           19         0.421086         contract inside
    10           20         0.421086         reflect
    11           22         0.421086         contract inside
    12           24         0.421086         contract inside
    13           26         0.339941         expand
    14           27         0.339941         reflect
    15           29         0.285288         reflect
    16           31         0.285288         contract inside
    17           32         0.285288         reflect
    18           34         0.283533         reflect
    19           36         0.283533         contract inside
    20           38         0.278945         contract inside
    21           40         0.278134         reflect
    22           41         0.278134         reflect
    23           43         0.276368         contract inside
    24           45         0.275793         contract inside
    25           47         0.275646         contract inside
    26           49         0.275509         reflect
    27           51         0.275292         contract inside
    28           52         0.275292         reflect
    29           54         0.275292         contract inside

    30           56         0.275292         contract inside
 
Optimization terminated:
 the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04 
 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-04 

Обновите соответствие с сетевыми элементами с оптимальными значениями

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

matchingNW.Inductances(1) = L_Optimized(1);     % Update the matching network inductor L1
matchingNW.Inductances(end) = L_Optimized(end); % Update the matching network inductor L5

Анализируйте и отобразите результаты оптимизации

Сравните и постройте входной коэффициент отражения совпадающих и несопоставленных результатов.

hold all
hs = smithplot(GammaL);
hs.LegendLabels = {'#Gamma in (Matched)','#Gamma in (Unmatched)'};
hold off

Оптимизированная сеть соответствия улучшает производительность схемы. В полосе пропускания (295 МГц к 405 МГц), входной коэффициент отражения ближе к центру графика Смита.

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

S = sparameters(matchingNW,freq,Z0);
matchedGt = powergain(S,Zs,Zl,'Gt');
figure;
plot(freq*1e-6,matchedGt)
hold all
plot(freq*1e-6,unmatchedGt,'r')
grid on
hold off
title('Power delivered to load')
legend('Optimized network','No matching network','Location','Best');

Степень, поставленная загрузке, составляет приблизительно 1 дБ вниз для оптимизированной сети соответствия.

Отобразите оптимизированные значения элемента

Следующий код показывает начальные и оптимизированные значения для индукторов L1 и L5.

L1_Initial = L_initial(1)
L1_Initial = 1.2340e-07
L1_Optimized = L_Optimized(1)
L1_Optimized = 1.2111e-07
L5_Initial = L_initial(end)
L5_Initial = 1.2340e-07
L5_Optimized = L_Optimized(end)
L5_Optimized = 1.7557e-09

Существует несколько вещей рассмотреть при подготовке оптимизации:

  • Выбор различной целевой функции изменил бы результат.

  • Можно использовать усовершенствованные прямые функции оптимизации поиска, такие как patternsearch и simulannealband в вашей оптимизации, но необходимо было установить Global Optimization Toolbox, чтобы получить доступ к ним.

Низкий шумовой пример проекта усилителя покрыт вторым примером, Проектируя Широкополосные Сети Соответствия (Часть 2: Усилитель).

Ссылки

[1] Проектирование схем РФ, Теория и Приложения, Райнхольд Людвиг и П. Бречко, стр 229-239, Prentice Hall, 2000.

[2] Микроволновая Разработка, Дэвид М. Позэр, 2-й редактор, John Wiley and Sons, 1999.

[3] Широкополосные согласующие радиочастотные цепи с непосредственной связью, Томас Р. Катберт, стр 31-33, TRCPEP, 1999.