go2winner 0 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Доброго времени суток. На основе литературы я составил для начало простую модель ФАПЧ на нулевой частоте, зависающую только от расстройки ( разности частот генераторов ) Написал простую модель на matlab для закрепления теории и дальнейшего усложнения (см. приложение). Коротко о модели: модель построена на нулевой частоте и зависит только от разности частот и полосы удержания (входные параметры). При исследовании полос удержания и захвата появляется ошибка следующего вида. Исследую полосу удержания. Начальные условия - частоты генераторов равны (ГУН и эталонного т.е. расстройка по частоте 0 ). Меняю расстройку от малых значений до больших , пока система не выйдет из синхронизма. На графике 1 проиллюстрированы мгновенные значения частоты. Видно, что есть ошибка. Система вошла в синхроннизм, но графики частот не совпадают. и отличаются на некий коэффициент (наклон прямой на 2 ). Аналогичная картина, при исследовании полосы захвата. Меняя расстройку от больших к малым значениям , ищу точку входа системы в синхронизм. По графикам (см. прил. 2) частоты опять различны...и снова та же ошибка..если построить кривую с другим наклоном, то все хорошо . Откуда берется эта другая кривая....в идеале , как я думаю, около отсчета 8*10^4 частоты станут равными (синий график и красный) и после переходного процесса система в этой точке должна войти в синхронизм, а она входит в непонятной мне точке и выходит , хотя я моделирую до расстройки 0 , т.е. еще в полосе удержания. Мне не понятно, где я так косячу...может кто-то заметит ошибку? код .....Комменты есть... %> @brief ФАПЧ с передаточной характеристикой фильтра равной 1 %> @param [in] - inputArray, разность частот в герцах, вектор %> @param [in] - pass , полоса удержания системы ФАПЧ в герцах %> @details тестовая программная модель исследования ФАПЧ первого %> порядка. Допущены следующие упрощения. Коэффициент передачи %> фильтра равен 1, ФД реализован без перемножения %> @return frq - частота круговая в радианах %> @return nco - фаза ГУН %> @return control - выход с управляющего элемента %> @return filter - вместо фильтра усилитель компенсирующий 1/2 ФД %> @note Пример вызова %> [frq,nco, control, filter, match] = test_frst (ones( 1 , 80000) * 502, 7); function [frq,control, filter, match] = test_frst_p ( inputArray, pass) Fs = 1E4; % частота дискретизации Ts = 1/Fs; % период дискретизации Fnco= 0; % Частота Генератора % коэффициенты Kf = 2; % Коэффициент передачи ФД Scu = ( pass )*2*pi % Коэфициент передачи управляющего элемента F = Ts/2; % Коэфф.интегратора % Начальные условия phaseDetector(1) = 0; filter(1) = 0; control(1) = 0; match(1) = 0; % for n = 2 : length( inputArray ) phaseDetector(n) = Kf* 1/2 * cos ( 2*pi*inputArray(n)*(n)*Ts - control( n -1 ) ); %фазовый детектор filter(n) = phaseDetector(n); %фильтр control(n) = F*Scu*2*( filter(n) )+control(n-1); % интегратор (управляющий элемент) %------------ для графиков переменные match(n) = 2*pi*inputArray(n)*(n)*Ts - control(n -1); % разность частот %эталонного и частоты генератора + управляющего расстройка frq(n) = Fnco*2*pi + Scu*filter (n); %частота ГУН end вызов функции в командной строке: [frq, control, filter, match] = test_frst_p ( -10:0.0001:0, 2 ); % -10:0.0001:0 - вектор частот в герцах %2 полоса в герцах т.е. ошибка такая. Система входит синхронизм не в тех точках и так же выходит ..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Видно, что есть ошибка. Система вошла в синхроннизм, но графики частот не совпадают. и отличаются на некий коэффициент (наклон прямой на 2 ). Не очень наглядно, в матлаб получше инструменты есть. Если ФАПЧ 1-го порядка с одним интегратором, то она без ошибки может отслеживать лишь ступенчатое воздействие, т. е. скачёк фазы, скачёк частоты - линейное воздействие будет с константной ошибкой, изменение частоты - квадратичное воздействие будет отслеживаться c линейной ошибкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Написал простую модель на matlab для закрепления теории и дальнейшего усложнения (см. приложение). Коротко о модели: модель построена на нулевой частоте и зависит только от разности частот и полосы удержания (входные параметры). При исследовании полос удержания и захвата появляется ошибка следующего вида. Исследую полосу удержания. Начальные условия - частоты генераторов равны (ГУН и эталонного т.е. расстройка по частоте 0 ). Меняю расстройку от малых значений до больших , пока система не выйдет из синхронизма. На графике 1 проиллюстрированы мгновенные значения частоты. Видно, что есть ошибка. Система вошла в синхроннизм, но графики частот не совпадают. и отличаются на некий коэффициент (наклон прямой на 2 ). лень код смотреть. Порядок петли какой? Разберитесь сначала почему есть ошибка при наличии синхронизации. Уберите движение частоты, пусть будет статический режим, но введите начальную ошибку (по фазе только, если ФАПЧ 1 го порядка, по частоте, если 2го). Через время, определяемой полосой должен настать синхронизм. Оценка частоты в петле совпадает с той частотой что в сигнале? Если нет - проблема. Что при этом в дискриминаторе? Должен быть 0. Апдейт. Судя по комментариям ФАПЧ первого порядка. Она следит за частотой с постоянной ошибкой. Она не отслеживает частоту, она отслеживает фазу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться