В этом примере показов, как настроить компоненты пассивного цикла фильтра, чтобы улучшить цикл полосу пропускания системы цикла с фазовой автоподстройкой (ФАП). Чтобы получить желаемую цикла частотную характеристику, этот пример вычисляет параметры цикла фильтра с помощью методов настройки с фиксированной структурой, предоставленных в Control System Toolbox™ программном обеспечении. Система PLL моделируется с помощью блока ссылки архитектуры из библиотеки Mixed-Signal Blockset™.
ФАПЧ является системой с обратной связью, которая формирует сигнал выхода, фаза которого зависит от фазы его входного сигнала. Следующая схема показывает простую модель с блоком эталонной архитектуры PLL (Integer N PLL с Single Modulus Prescaler (Mixed-Signal Blockset)) и блоком PLL Testbench (Mixed-Signal Blockset).
Архитектура замкнутого контура внутри блока ФАПЧ состоит из детектора фазовой частоты (PFD), насоса заряда, контурного фильтра, управляемого напряжением генератора (VCO) и прескалера.
Библиотека Mixed-Signal Blockset предоставляет несколько блоков эталонной архитектуры для проектирования и симуляции систем ФАПЛ в Simulink ®. Можно настроить компоненты блока Цикла Filter (Mixed-Signal Blockset), который является пассивным фильтром, чтобы получить желаемые разомкнутые контуры полоса пропускания и запас по фазе.
Используя программное обеспечение Control System Toolbox, можно задать форму нужного отклика цикла и настроить параметры контроллера с фиксированной структурой, чтобы аппроксимировать эту форму цикла. Для получения дополнительной информации об указании требуемой формы цикла см. Раздел Цикла Спецификаций формы и запаса устойчивости. В предыдущей модели архитектуры ФАПЛ циклический фильтр определяется как контроллер фиксированной структуры фиксированного порядка. Для достижения формы целевого цикла настраиваются значения сопротивлений и емкостей контурного фильтра. Это улучшает разомкнутый контур полосу пропускания системы и, как результат, сокращает измеренное время блокировки.
Откройте модель.
model = 'PLL_TuneLoopFilter';
open_system(model)
Блок PLL использует настройку, заданную в Design and Evaluate Simple PLL Model (Mixed-Signal Blockset) для PFD, насоса заряда, VCO и прескаляра в параметрах блока. Вкладка Loop Filter задает тип фильтра четвертого порядка и устанавливает пропускную способность цикла равной 100 кГц, а запас по фазе равным 60 степеням. Значения сопротивлений и емкостей вычисляются автоматически.
Чтобы наблюдать динамику текущего цикла ФАПЛ, в параметрах блоков, на вкладке Анализ, выберите Анализ разомкнутого контура и Анализ замкнутого контура. Частота усиления единства составляет 100 кГц. Система с обратной связью является стабильной, и ширина полосы 3-dB составляет 128,94 кГц.
Симулируйте модель. Блок PLL Testbench отображает метрики времени и фазового шума PLL-блокировки. Чтобы построить и проанализировать профиль фазы шума, в параметры блоков PlL Testbench, на вкладке Stimulus, выберите График фазы шум. Измеренное время блокировки составляет 2,30 микросекунд.
open_system([model,'/Scope'])
sim(model);
Определите параметры ФАПЛ, необходимые для создания системы с обратной связью в 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;
Используя эти настраиваемые параметры, создайте пользовательскую настраиваемую модель на основе контурного фильтра передаточной функции уравнения, заданного в разделе «Подробнее» блока страницы с описанием Loop Filter (Mixed-Signal Blockset). 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]);
Используйте представления передаточных функций, чтобы задать фиксированные блоки в архитектуре (насос заряда, VCO и прескалер), основываясь на их соответствующих характеристиках частотной характеристики [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 представляет функцию комплементарной чувствительности. По умолчанию графики Control System Toolbox используют рад/с в качестве модуля. Дополнительные сведения о том, как изменить частотный модуль на Гц, см. в разделе Редактор настроек тулбокса.
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')];
Запишите значения компонента фильтра настроенного цикла в блок ФАПЛ с помощью setLoopFilterValue
вспомогательная функция, поставляемая с примером.
blk = [model,'/Integer N PLL with Single Modulus Prescaler'];
setLoopFilterValue(blk,Rtuned,Ctuned);
Наблюдайте графики анализа разомкнутого контура и анализа замкнутого цикла с вкладки Анализ в Целочисленном N PLL с параметрами блоков Single Modulus Prescaler. Частота усиления единства и 3-dB полоса пропускания показа улучшением и теперь составляют 341,4 кГц и 511,72 кГц соответственно, в то время как цикл сохраняет одинаковый профиль фазы шума.
Симулируйте модель и получите измерения PlL Testbench и выход контурного фильтра с настроенными компонентами.
sim(model);
[1] Банерджи, Дин. Эффективность, симуляция и проект ФАПЛ. Индианаполис, IN: Dog Ear Publishing, 2006.