Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подстройка частоты и фазы
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
AST
Доброго времени суток!
Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд?
Кол-во отсчетов на период пока также не выбрано.
dimka76
Цитата(AST @ Dec 19 2006, 12:11) *
Доброго времени суток!
Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд?
Кол-во отсчетов на период пока также не выбрано.


можно попробовать так. запоминай первое измерение и интегрируй пока очередное измерение не станет второй раз примерно (или точно) равно первоме, полученный результат измерения дели на количество отсчетов. и будет вам счастье.
DuHast
Цитата(AST @ Dec 19 2006, 12:11) *
Доброго времени суток!
Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд?
Кол-во отсчетов на период пока также не выбрано.


привязываться надо к смене знака (переходу сигнала через ноль).
vladv
Для измереня RMS (я так понимаю, речь идет о синусоидальном сигнале) можно вообще не подстраиваться под фазу и частоту. Метод зависит от времени и точности определения RMS
и зашумленности сигнала.

В простейшем случае достаточно трех отсчетов через, скажем, ~1/12 периода периода, а дальше
решение системы из 3-х уравнений - можно будет определить и амлитуду, и частоту, и фазу.
Точность будет порядка уровня шумов/помех. Для подавления последних, можно предварительно пофильтровать сигнал.
AST
Цитата(vladv @ Dec 23 2006, 13:47) *
Для измереня RMS (я так понимаю, речь идет о синусоидальном сигнале) можно вообще не подстраиваться под фазу и частоту. Метод зависит от времени и точности определения RMS
и зашумленности сигнала.

В простейшем случае достаточно трех отсчетов через, скажем, ~1/12 периода периода, а дальше
решение системы из 3-х уравнений - можно будет определить и амлитуду, и частоту, и фазу.
Точность будет порядка уровня шумов/помех. Для подавления последних, можно предварительно пофильтровать сигнал.

К сожалению чистый синус вряд ли будет, всегда есть какое-то искажение. Поэтому IMHO этот метод даст большую погрешность.

Цитата(DuHast @ Dec 22 2006, 19:08) *
привязываться надо к смене знака (переходу сигнала через ноль)

Да, этой пожалуй будет проще всего. Около нуля и погрешность будет минимальной, если ошибемся на один отсчет.

Спасибо всем откликнувшимся!
SM
Цитата(AST @ Dec 19 2006, 12:11) *
Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд?


Никаким. Считайте за десяток периодов 50-герцовых, обоконенных например Блэкмен-Харрисом, и все будет ОК.
_artem_
autocorrelation?
alex_os
Цитата(AST @ Dec 19 2006, 12:11) *
Доброго времени суток!
Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд?
Кол-во отсчетов на период пока также не выбрано.

А почему бы на выборку наложить какое-нибудь окно и далее напрямую подсчитать среднеквадратическое значение? Странно почему никто такой метод не предоложил...

Код
N = 20;
Fs = 500;  
fi0 = randn(1,1);
w = 2*pi*50/Fs;

sig = 10*sin( w*(1:N)+fi0 );
W = hann(N);
K = sqrt(N/sum(W.^2));

rms = K*sqrt(sum((sig.*W.').^2)/N)
plot(sig)
AST
Мне стыдно, не знаю элементарных понятий, а изучать и разбираться похоже все же придется.
Понимаю, что разъяснять никто здесь ничего не будет, но плиз ткните в какой-нибудь букварь по ЦОС (лучше если доступный в электронном виде), здесь уже два раза упомянулась оконная функция, а что это такое и что она дает въехать не могу.

Цитата(alex_os @ Dec 27 2006, 18:24) *
А почему бы на выборку наложить какое-нибудь окно и далее напрямую подсчитать среднеквадратическое значение? Странно почему никто такой метод не предоложил...

Код
N = 20;
Fs = 500;  
fi0 = randn(1,1);
w = 2*pi*50/Fs;

sig = 10*sin( w*(1:N)+fi0 );
W = hann(N);
K = sqrt(N/sum(W.^2));

rms = K*sqrt(sum((sig.*W.').^2)/N)
plot(sig)

Если я правильно понял размер выборки может быть произвольным и не привязанным к фазе и периоду входного сигнала?
jam
Недавно делал подобное на pic18f , думаю и Вам подойдёт-
выделяется переход через ноль, от его падающего фронта пускается capture, беру полученное значение
делёное на два (вместо этого можно capture затактировать от половинной частоты,)и по прерыванию пускаю compare , что бы не было сдвига фазы , или установить желаемую, таймер compare надо пускать не с нуля (я например пускаю с 0xF0) - таким образом формируется удвоенная частота (у меня увосьмерённая) - по прерыванию compare пускаем АЦП - и дело улажено.
Сергей.
nsemenoff
Господа, если время измерения не критично, то я бы рекомендовал поставить диодный мостик и интегратор. Выход этого интегратора и есть искомое RMS. Время интергирования должно быть много больше периода колебания. Самый простой и дешевый способ. И главное, никаких вычислительных ресурсов типа квадратов и полиномов smile.gif
SM
Цитата(Nick Semenoff @ Feb 13 2007, 17:06) *
Господа, если время измерения не критично, то я бы рекомендовал поставить диодный мостик и интегратор. Выход этого интегратора и есть искомое RMS.


Между прочим средневыпрямленное (то что Вы предлагаете) и среднеквадратичное (RMS) это две огромные разницы.
nsemenoff
Цитата(SM @ Feb 13 2007, 18:34) *
Между прочим средневыпрямленное (то что Вы предлагаете) и среднеквадратичное (RMS) это две огромные разницы.


Согласен. Нужно сначала возводить в квадрат, а потом усреднять. Но это тоже выполнимая задача в аналоговой схемотехнике на одном операционнике. В тогда для микроконтроллера нужно будет только время от времени брать готовое значение на АЦП. Заметная экономия вычислительных затрат и электроэнергии (микроконтроллер в IDLE потребляет намного меньше, чем скушает работающий в качестве квадратора операционник).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.