В этом примере показано, как спроектировать широкополосную сеть соответствия между резистивным источником и индуктивной нагрузкой с помощью оптимизации с прямыми методами поиска.
В любой системе, которая использует схемы РФ, соответствующая сеть необходима, чтобы передать максимальное количество энергии между источником и загрузкой. В большинстве систем, таких как беспроводные устройства, существует пропускная способность заданной операции. В результате цель соответствующей сети состоит в том, чтобы обеспечить передачу максимальной мощности в области значений частот. В то время как подход соответствия раздела 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.