В этом примере показано, как настроить компоненты пассивного фильтра контура для улучшения полосы пропускания контура системы фазовой автоподстройки частоты (ФАПЧ). Для получения требуемой частотной характеристики контура в этом примере вычисляются параметры фильтра контура с использованием методов настройки фиксированной структуры, предусмотренных в программном обеспечении Toolbox™ системы управления. Система ФАПЧ моделируется с использованием блока эталонной архитектуры из библиотеки Blockset™ смешанных сигналов.
ФАПЧ представляет собой замкнутую систему, которая вырабатывает выходной сигнал, фаза которого зависит от фазы его входного сигнала. Следующая диаграмма показывает простую модель с блоком опорной архитектуры ФАПЧ (целое N-ФАПЧ с одним модулем Prescaler (блок смешанного сигнала)) и блоком тестирования ФАПЧ (блок смешанного сигнала).

Архитектура с замкнутым контуром внутри блока ФАПЧ состоит из детектора фазовой частоты (PFD), зарядного насоса, петлевого фильтра, генератора, управляемого напряжением (ГУН), и прескалора.

Библиотека блоков смешанного сигнала предоставляет несколько блоков эталонной архитектуры для проектирования и моделирования систем PLL в Simulink ®. Можно настроить компоненты блока фильтра петли (блок смешанного сигнала), который является пассивным фильтром, чтобы получить требуемую полосу пропускания и запас по фазе.
С помощью программного обеспечения Control System Toolbox можно задать форму требуемого отклика цикла и настроить параметры контроллера фиксированной структуры для аппроксимации этой формы цикла. Дополнительные сведения о задании требуемой формы контура см. в разделе Характеристики формы контура и запаса устойчивости. В предыдущей модели архитектуры ФАПЧ фильтр контура определяется как контроллер фиксированной структуры с фиксированным порядком. Для достижения целевой формы контура настраивают значения сопротивлений и емкостей фильтра контура. Это улучшает полосу пропускания системы с разомкнутым контуром и в результате уменьшает измеренное время блокировки.
Откройте модель.
model = 'PLL_TuneLoopFilter';
open_system(model)Блок ФАПЧ использует конфигурацию, заданную в разделе Проектирование и оценка простой модели ФАПЧ (блок смешанного сигнала) для вкладок PFD, Charge pump, VCO и Prescalar в параметрах блока. На вкладке «Loop Filter» указывается тип фильтра четвертого порядка, а ширина полосы пропускания контура равна 100 кГц, а запас по фазе - 60 градусов. Значения сопротивлений и емкостей вычисляются автоматически.
Чтобы наблюдать динамику текущего цикла PLL, в параметрах блока на вкладке Анализ (Analysis) выберите Анализ разомкнутого цикла (Open Loop Analysis) и Анализ замкнутого цикла (Closed Loop Analysis). Единичная частота усиления составляет 100 кГц. Система с замкнутым контуром стабильна, а ширина полосы пропускания 3-dB составляет 128,94 кГц.


Моделирование модели. Блок PLL Testbench отображает метрики времени блокировки PLL и фазового шума. Для построения графика и анализа профиля фазового шума в параметрах блока PLL Testbench на вкладке Стимул (Stimulus) выберите График фазового шума (Plot phase noise). Измеренное время блокировки составляет 2,30 микросекунды.
open_system([model,'/Scope'])
sim(model);


Определите параметры PLL, необходимые для построения системы с замкнутым контуром в MATLAB ®.
PllKphi = 5e-3; % Charge pump output current PllKvco = 1e8; % VCO sensitivity PllN = 70; % Prescaler ratio PllR2 = 88.3; % Loop filter resistance for second-order response (ohms) PllR3 = 253; % Loop filter resistance for third-order response (ohms) PllR4 = 642; % Loop filter resistance for fourth-order response (ohms) PllC1 = 8.13e-10; % Loop filter direct capacitance (F) PllC2 = 1.48e-7; % Loop filter capacitance for second-order response (F) PllC3 = 1.59e-10; % Loop filter capacitance for third-order response (F) PllC4 = 9.21e-11; % Loop filter capacitance for fourth-order response (F)
Чтобы смоделировать фильтр цикла как настраиваемый элемент, сначала создайте настраиваемые скалярные вещественные параметры (см. realp) для представления каждого компонента фильтра. Для каждого параметра определите начальное значение и границы. Кроме того, укажите, является ли параметр свободным для настройки.
В качестве начального числового значения перестраиваемых параметров используйте значения сопротивления и емкости фильтра токового контура.
% Resistances R2 = realp('R2',PllR2); R2.Minimum = 50; R2.Maximum = 2000; R2.Free = true; R3 = realp('R3',PllR3); R3.Minimum = 50; R3.Maximum = 2000; R3.Free = true; R4 = realp('R4',PllR4); R4.Minimum = 50; R4.Maximum = 2000; R4.Free = true; % Capacitances C1 = realp('C1',PllC1); C1.Minimum = 1e-12; C1.Maximum = 1e-7; C1.Free = true; C2 = realp('C2',PllC2); C2.Minimum = 1e-12; C2.Maximum = 1e-7; C2.Free = true; C3 = realp('C3',PllC3); C3.Minimum = 1e-12; C3.Maximum = 1e-7; C3.Free = true; C4 = realp('C4',PllC4); C4.Minimum = 1e-12; C4.Maximum = 1e-7; C4.Free = true;
Используя эти настраиваемые параметры, создайте настраиваемую модель на основе уравнения передаточной функции фильтра цикла, указанного в разделе «Подробнее» страницы ссылок на блок фильтра цикла (смешанный блок сигналов). loopFilterSys является genss модель, параметризованная R2, R3, R4, C1, C2, C3, and C4.
A4 = C1*C2*C3*C4*R2*R3*R4; A3 = C1*C2*R2*R3*(C3+C4)+C4*R4*(C2*C3*R3+C1*C3*R3+C1*C2*R2+C2*C3*R2); A2 = C2*R2*(C1+C3+C4)+R3*(C1+C2)*(C3+C4)+C4*R4*(C1+C2+C3); A1 = C1+C2+C3+C4; loopFilterSys = tf([R2*C2, 1],[A4, A3, A2, A1, 0]);
Представления передаточных функций используются для определения фиксированных блоков в архитектуре (зарядный насос, ГУН и прескалер) на основе их соответствующих характеристик частотной характеристики [1].
chargePumpSys = tf(PllKphi,1); % Linearized as a static gain vcoSys = tf(PllKvco,[1 0]); % Linearized as an integrator prescalerSys = tf(1/PllN,1); % Linearized as a static gain
Определите входные и выходные имена для каждого блока. Подсоедините элементы на основе названий сигналов (см. connect) для создания настраиваемой системы с замкнутым контуром (см. genss), представляющую архитектуру ФАПЧ, как показано.

chargePumpSys.InputName = 'pfd_out'; % Charge pump (fixed block) chargePumpSys.OutputName = 'cp_out'; loopFilterSys.InputName = 'cp_out'; % Loop filter (tunable block) loopFilterSys.OutputName = 'lf_x'; AP = AnalysisPoint('X'); % Analysis point does not change the architecture of closed-loop system AP.InputName = 'lf_x'; AP.OutputName = 'lf_out'; vcoSys.InputName = 'lf_out'; % VCO (fixed block) vcoSys.OutputName = 'vco_out'; prescalerSys.InputName = 'vco_out'; % Prescaler (fixed block) prescalerSys.OutputName = 'prescaler_out'; pfd = sumblk('pfd_out = ref - prescaler_out'); % Phase-frequency detector (sum block) % Create a genss model for the closed-loop architecture CL0 = connect(chargePumpSys,loopFilterSys,AP,vcoSys,prescalerSys,pfd,'ref','vco_out');
Определение коэффициента усиления контура как модели данных с частотным откликом (см. frd) путем обеспечения целевого выигрыша по крайней мере на два десятилетия ниже и на два десятилетия выше желаемой полосы пропускания с разомкнутым контуром. Желательное скатывание обычно выше, что приводит к более высокому ослаблению фазового шума.
Определение соответствующей формы целевого контура является критическим аспектом этой конструкции. Настраиваемый компенсатор представляет собой систему четвертого порядка с единственным интегратором и единым нулем, а установка представляет собой интегратор. Коэффициенты усиления контура должны быть допустимой целью для структуры с разомкнутым контуром.
Для настройки фильтра цикла создайте цель настройки, основанную на целевой форме цикла, определяющей интегральное действие, пересечении 3 МГц и требовании скатывания 40 дБ/декада. Цель выполняется в течение трех десятилетий ниже и выше желаемой полосы пропускания с разомкнутым контуром.
LoopGain = frd([100,10,1,1e-2,1e-4],2*pi*[1e4,1e5,3e6,3e7,3e8]); % frd uses response data and corresponding frequencies in rad/s LoopShapeGoal = TuningGoal.LoopShape('X',LoopGain); % Use AnalysisPoint as location where open-loop response shape is measured LoopShapeGoal.Focus = 2*pi*[1e3, 1e9]; % Enforce goal in frequency range (use rad/s) LoopShapeGoal.Name = 'Loop Shape Goal'; % Tuning goal name MarginsGoal = TuningGoal.Margins('X',7.6,60); MarginsGoal.Focus = [0 Inf]; MarginsGoal.Openings = {'X'}; MarginsGoal.Name = 'Margins Goal';
Проверьте текущую форму разомкнутого контура системы ФАПЧ со ссылкой на целевую форму контура. S представляет функцию обратной чувствительности, а T представляет функцию дополнительной чувствительности. По умолчанию на графиках панели инструментов системы управления в качестве единицы измерения частоты используется рад/с. Дополнительные сведения о том, как изменить единицу измерения частоты на Гц, см. в разделе Редактор настроек панели инструментов.
figure viewGoal(LoopShapeGoal,CL0)

Использовать systune для настройки контура обратной связи фиксированной структуры. При этом вычисляются значения сопротивления и емкости для достижения цели мягкой конструкции на основе формы целевого контура. Запустите алгоритм настройки с пятью различными наборами начальных значений в дополнение к начальным значениям, определенным при создании настраиваемых скалярных вещественных параметров.
Options = systuneOptions(); Options.SoftTol = 1e-5; % Relative tolerance for termination Options.MinDecay = 1e-12; % Minimum decay rate for closed-loop poles Options.MaxRadius = 1e12; % Maximum spectral radius for stabilized dynamics Options.RandomStart = 5; % Number of different random starting points [CL,fSoft,gHard,Info] = systune(CL0,[LoopShapeGoal; MarginsGoal],[],Options);
Final: Soft = 3.28, Hard = -Inf, Iterations = 64 Final: Failed to enforce closed-loop stability (max Re(s) = 3.1e+04) Final: Failed to enforce closed-loop stability (max Re(s) = 6.7e+04) Final: Failed to enforce closed-loop stability (max Re(s) = 6.3e+04) Final: Failed to enforce closed-loop stability (max Re(s) = 7.5e+04) Final: Failed to enforce closed-loop stability (max Re(s) = 4.9e+04)
systune возвращает настроенную систему с замкнутым циклом CL в обобщенной государственно-пространственной форме.
Алгоритм не сходится для случайных начальных значений и обеспечивает осуществимое решение только тогда, когда в качестве начальных условий выбраны текущие значения компонентов фильтра контура. Для менее сложных задач настройки, таких как фильтр цикла третьего порядка, алгоритм менее чувствителен к начальным условиям, и рандомизированные старты являются эффективным методом исследования пространства параметров и сходимости к выполнимому решению.
Осмотрите настроенную форму с разомкнутым контуром относительно формы целевого контура. Обратите внимание, что в то время как настроенная форма контура не соответствует цели, полоса пропускания разомкнутого контура увеличивается, в то время как контур сохраняет то же самое высокочастотное затухание.
figure viewGoal(LoopShapeGoal,CL)

Извлеките настроенные значения компонентов фильтра контура.
Rtuned = [getBlockValue(CL,'R2'),... getBlockValue(CL,'R3'),... getBlockValue(CL,'R4')]; Ctuned = [getBlockValue(CL,'C1'),... getBlockValue(CL,'C2'),... getBlockValue(CL,'C3'),... getBlockValue(CL,'C4')];
Запишите настроенные значения компонентов фильтра контура в блок PLL с помощью setLoopFilterValue вспомогательная функция, поставляемая с примером.
blk = [model,'/Integer N PLL with Single Modulus Prescaler'];
setLoopFilterValue(blk,Rtuned,Ctuned);Просмотрите графики анализа с разомкнутым контуром и анализа с замкнутым контуром на вкладке Анализ (Analysis) в блоке Целочисленное N PLL с параметрами блока Prescaler с одним модулем. Частота единичного усиления и полоса пропускания 3-dB показывают улучшение и теперь составляют 341,4 кГц и 511,72 кГц соответственно, в то время как контур сохраняет тот же профиль фазового шума.


Смоделировать модель и получить результаты измерений PLL Testbench и выходные данные фильтра контура с настроенными компонентами.
sim(model);



[1] Банерджи, Дин. Производительность, моделирование и проектирование PLL. Индианаполис, IN: Dog Ear Publishing, 2006.