Обсуждаем контроллеры компании Atmel.
Ответить

Нужна ясность с АЦП

Пт июн 29, 2018 03:46:54

Рассчитываю RMS. Использую mega328p. Для определения периода входного сигнала собран детектор нуля, который привязан на внешнее прерывание int0. Далее все измеренные значения за период помещаю в массив, потом соответственно считаю RMS по всем значениям массива, которые успел намерить МК. Вообщем-то измеренные значения близки к эталонным. Но есть погрешность. Пытаюсь разобраться, может ошибка в коде.
Моделирую в протеусе, вывожу количество измеренных значений в терминал и есть несоответствия.
Правильно ли я считаю теоретическое количество измеренных значений ADC? В таблице приведены расчеты для частот входного, измеряеряемого сигнала 25, 50 и 100Гц, и рассчитанное число измерений которое успевает сделать ADC для предделителя ADC 32, 64 и 128
Вложения
Расчет.png
(10.4 KiB) Скачиваний: 333

Re: Нужна ясность с АЦП

Пт июн 29, 2018 05:30:32

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

Re: Нужна ясность с АЦП

Пт июн 29, 2018 05:41:09

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

Я и говорю то, что насчитал контроллер не сходится с тем, что я рассчитываю выше. А вопрос в том правильно ли рассчитал я? и использую я внешний резонатор 4Мгц

Re: Нужна ясность с АЦП

Пт июн 29, 2018 08:38:07

Скорость АЦП можно увеличить. У меня получалось до 1 мгц. Разрешение только страдает.)

Re: Нужна ясность с АЦП

Пт июн 29, 2018 08:47:29

Скорость АЦП можно увеличитеь. У меня получалось до 1 мгц. Разрешение только страдает.)

Да это то тут причем?
Вопрос только в том, правильно ли я веду расчет. Повторюсь, есть детектор нуля, который определяет период входного сигнала, частота тактирования моего контроллера 4Мгц, допустим предделитель ADC выбран 32, допустим частота входного сигнала синус 50Гц, отсюда имеем:
Число измерений N=4000000/32/13/50=192, измерения
13-число тактов нормального преобразования.
А если например частота входного будет не 50, а 100Гц, то соответственно:
Число измерений N=4000000/32/13/100=96, измерений.
И если частота тактирования МК 4МГц, предделитель ADC=64, а частота входного сигнала 50Гц, то:
Число измерений N=4000000/64/13/50=96, измерений.
Правильно ли я рассчитываю число измерений?
Последний раз редактировалось DenChik87 Пт июн 29, 2018 09:05:52, всего редактировалось 1 раз.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 08:59:06

не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6
кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 09:12:32

не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6
кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.

Частота входного заранее неизвестна, поэтому есть детектор и на да данном этапе интересует только правильность расчетов количества измерений
Правильно ли я веду расчет измерений?
Последний раз редактировалось aen Пт июн 29, 2018 16:35:42, всего редактировалось 1 раз.
Причина: Нарушение Правил форума п. 2.7

Re: Нужна ясность с АЦП

Пт июн 29, 2018 10:32:44

Да это то тут причем?

Да так, Деньчик, для разговору, не?

Re: Нужна ясность с АЦП

Пт июн 29, 2018 12:43:31

Да так, Деньчик, для разговору, не?

Может я не понимаю ответа :dont_know: вопрос в количестве измерений. Может и можно увеличить до 1Мгц, только зачем. В даташите написано для адекватного измерения надо частоту ADC 50-200kГц. Мой диапазон входного сигнала синус 40-65Гц. Но хочу спроектировать измерение в диапазоне по шире, где-нибудь 25-80Гц. Для этого большая скорость измерений не нужна. И так много данных хранить придется

Re: Нужна ясность с АЦП

Пт июн 29, 2018 14:32:41

DenChik87 писал(а):Правильно ли я считаю теоретическое количество измеренных значений ADC?
У Вас расхождение с расчетным и фактическим в какую сторону? Быть может Вы не успеваете вовремя считать результат АЦП?

DenChik87 писал(а):13-число тактов нормального преобразования.
А время на включение АЦП? А время первого преобразования после включения? Время на старт АЦП?

ARV писал(а): для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала
Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным, но детектор самое удобное и проще с программой имхо.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 16:17:15

Z_h_e писал(а):Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным, но детектор самое удобное и проще с программой имхо.
главное в расчете RMS - это знать частоту сигнала, ну или период. если делать измеритель RMS в расчете на любую частоту - это будет очень непростой задачей. а для стандартной "сетевой" (или любой наперед известной) частоты можно и без детектора обойтись - хоть аппаратного, хоть по данным.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 17:08:01

ARV писал(а):это знать частоту сигнала, ну или период
Я и говорю
Z_h_e писал(а):Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным

Re: Нужна ясность с АЦП

Пт июн 29, 2018 17:09:43

Я понял, что вы говорите. Видимо, я говорю не достаточно понятно. В бытовой сети более-менее нормальная синусоида. Так вот, определять её период вообще нет необходимости - ни по переходу через ноль, ни по массиву снятых данных - период УЖЕ известен.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 17:16:56

У ТС период неизвестен.

Re: Нужна ясность с АЦП

Пт июн 29, 2018 17:26:08

Может я не понимаю ответа :dont_know:

Как выполнена схемотехника измерения синусоиды? То есть как измеряется двухполярный сигнал?

Re: Нужна ясность с АЦП

Сб июн 30, 2018 03:03:35

Как выполнена схемотехника измерения синусоиды? То есть как измеряется двухполярный сигнал?

Да, измеряется двухполярный сигнал. Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512. Затем вывожу значения измерений в терминал по UART. Контроллер считает значения близкие к правде, но есть погрешность.
На рисунке приведены эталонные сигналы, подаваемые на порты и те, что измерил контроллер. Измерение ведутся по шести портам ADC, последовательно опрашивая их. Как видно значения измерений близки к эталонным, но погрешность все же есть.
Хочу разобраться в связи с чем. Заметил что вроде как неправильно производит количество измерений за период. Так как количество значений измеренных за период, которые рассчитываю я не сходятся с количеством измерений, которые производит контроллер.
Для этого и прошу подсказать верны ли мои расчеты количества измерений, которые я привел выше
У Вас расхождение с расчетным и фактическим в какую сторону? Быть может Вы не успеваете вовремя считать результат АЦП?

Расхождение получается в разную сторону, Результаты после каждого прерывания ацп сохраняются в массив. Далее по внешнему прерыванию достаются, рассчитываются, затем передаются по uart
А время на включение АЦП? А время первого преобразования после включения? Время на старт АЦП?

Контроллер находится в режиме фриран и я так понимаю время включения и то что первое преобразование после включения 25тактов можно во внимание не брать?
Вложения
пример.png
(144.91 KiB) Скачиваний: 501

Re: Нужна ясность с АЦП

Сб июн 30, 2018 06:33:36

DenChik87 писал(а): Контроллер считает значения близкие к правде, но есть погрешность.
ПГ есть всегда. Термина близко не может существовать в измерениях. Вы сделали какие-то расчеты, определились с ПГ и в нее не укладываетесь? Какие критерии у Вас?

DenChik87 писал(а):Расхождение получается в разную сторону,
Т.е. нет повторяемости? Тогда появляются вопросы к программе.
DenChik87 писал(а):и то что первое преобразование после включения 25тактов можно во внимание не брать?
Если я правильно понимаю, если АЦП не выключается, то для последующих измерений такого времени не будет. Для фриран 2 такта на старт и 13.5 тактов АЦП на каждый замер.

Re: Нужна ясность с АЦП

Сб июн 30, 2018 06:40:51

Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512.

Это, скорее всего, не относится к нынешней ошибке, но в реальном железе Вы ее получите совершенно точно.
Ноль не находится на 2,5 вольтах. Ни у АЦП контроллера при сдвиге на полшкалы, ни у ОУ и/или делителя, обеспечивающего сдвиг сигнала на полшкалы. Мало того, эти величины случайны для примененных экземпляров элементной базы, да еще и зависят от температуры.
Поэтому, нужно НЕПРЕРЫВНО измерять ноль В ПРИХОДЯЩЕМ МАССИВЕ СИГНАЛА. Для чего нужно просто находить его среднее значение по интервалу значительно превышающему период сигнала. Чтобы не расходовать ОЗУ, можно сделать не КИХ (скользящее среднее), а БИХ фильтр НЧ. Сиречь простейший однозвенный рекурсивный фильтр.

Re: Нужна ясность с АЦП

Сб июн 30, 2018 06:49:06

КРАМ писал(а): Для чего нужно просто находить его среднее значение по интервалу значительно превышающему период сигнала.
А если сигнал не симметричный?

Re: Нужна ясность с АЦП

Сб июн 30, 2018 07:23:08

Вопрос с несимметричным сигналом справедлив. Строго говоря, если предполагается смешанный сигнал с переменной и постоянной составляющей (в сети постоянной составляющей не может быть по определению, ибо мы все питаемся от ТП), то потребуется замер нулей на лету с отключением сигнала от входа (периодически и тоже через цифровой фильтр).
Но в любом случае, формальный сдвиг на полшкалы АЦП - это ошибочное решение.
ЗЫ. Визуальная несимметрия сигнала и присутствие в нем постоянной составляющей - это не связанные вещи.
Последний раз редактировалось КРАМ Сб июн 30, 2018 07:30:04, всего редактировалось 1 раз.
Ответить