exponenta event banner

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

В этом примере показано, как настроить компоненты пассивного фильтра контура для улучшения полосы пропускания контура системы фазовой автоподстройки частоты (ФАПЧ). Для получения требуемой частотной характеристики контура в этом примере вычисляются параметры фильтра контура с использованием методов настройки фиксированной структуры, предусмотренных в программном обеспечении 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.

Z (s) = R2C2s + 1s (A4s3 + A3s2 + A2s + A1) A4 = C1C2C3C4R2R3R4A3 = C1C2R2R3 (C3 + C4) + C4R4 (C2c

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 (Control System Toolbox)), обеспечивая целевой прирост по крайней мере на два десятилетия ниже и на два десятилетия выше желаемой полосы пропускания с разомкнутым контуром. Желательное скатывание обычно выше, что приводит к более высокому ослаблению фазового шума.

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

Для настройки фильтра цикла создайте цель настройки, основанную на целевой форме цикла, определяющей интегральное действие, пересечении 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 = 2.61, Hard = -Inf, Iterations = 80
Final: Failed to enforce closed-loop stability (max Re(s) = 3.1e+04)
Final: Failed to enforce closed-loop stability (max Re(s) = 6.8e+04)
Final: Failed to enforce closed-loop stability (max Re(s) = 6.2e+04)
Final: Failed to enforce closed-loop stability (max Re(s) = 8e+04)
Final: Failed to enforce closed-loop stability (max Re(s) = 4.9e+04)

systune возвращает настроенную систему с замкнутым циклом CL в обобщенной государственно-пространственной форме.

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

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

figure 
viewGoal(LoopShapeGoal,CL)

Экспорт результатов в модель Simulink

Извлеките настроенные значения компонентов фильтра контура.

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.