Рассчитываю RMS. Использую mega328p. Для определения периода входного сигнала собран детектор нуля, который привязан на внешнее прерывание int0. Далее все измеренные значения за период помещаю в массив, потом соответственно считаю RMS по всем значениям массива, которые успел намерить МК. Вообщем-то измеренные значения близки к эталонным. Но есть погрешность. Пытаюсь разобраться, может ошибка в коде. Моделирую в протеусе, вывожу количество измеренных значений в терминал и есть несоответствия. Правильно ли я считаю теоретическое количество измеренных значений ADC? В таблице приведены расчеты для частот входного, измеряеряемого сигнала 25, 50 и 100Гц, и рассчитанное число измерений которое успевает сделать ADC для предделителя ADC 32, 64 и 128
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Ну дык самим контроллером и считайте сколько замеров реально выходит. Особенно это существенно, если используется внутренний тактовый генератор, он не самый точный.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Ну дык самим контроллером и считайте сколько замеров реально выходит. Особенно это существенно, если используется внутренний тактовый генератор, он не самый точный.
Я и говорю то, что насчитал контроллер не сходится с тем, что я рассчитываю выше. А вопрос в том правильно ли рассчитал я? и использую я внешний резонатор 4Мгц
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Скорость АЦП можно увеличитеь. У меня получалось до 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 раз.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6 кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
не лучше ли запускать АЦП на максимально приемлемой скорости по таймеру? тогда вы сможете уложить в 1 период сигнала заранее желаемое количество семплов, например, ровно 100, а не 98,6 кстати, для вычисления RMS нет необходимости в детекторе 0. если вы заранее знаете частоту измеряемого сигнала, достаточно снять заданное количество семплов в течение интервала времени, равного периоду частоты, и начать этот процесс можно в любой момент.
Частота входного заранее неизвестна, поэтому есть детектор и на да данном этапе интересует только правильность расчетов количества измерений Правильно ли я веду расчет измерений?
Последний раз редактировалось aen Пт июн 29, 2018 16:35:42, всего редактировалось 1 раз.
Может я не понимаю ответа вопрос в количестве измерений. Может и можно увеличить до 1Мгц, только зачем. В даташите написано для адекватного измерения надо частоту ADC 50-200kГц. Мой диапазон входного сигнала синус 40-65Гц. Но хочу спроектировать измерение в диапазоне по шире, где-нибудь 25-80Гц. Для этого большая скорость измерений не нужна. И так много данных хранить придется
Если сигнал боле-менее нормальной формы, то можно период определить по выбранным данным, но детектор самое удобное и проще с программой имхо.
главное в расчете RMS - это знать частоту сигнала, ну или период. если делать измеритель RMS в расчете на любую частоту - это будет очень непростой задачей. а для стандартной "сетевой" (или любой наперед известной) частоты можно и без детектора обойтись - хоть аппаратного, хоть по данным.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Я понял, что вы говорите. Видимо, я говорю не достаточно понятно. В бытовой сети более-менее нормальная синусоида. Так вот, определять её период вообще нет необходимости - ни по переходу через ноль, ни по массиву снятых данных - период УЖЕ известен.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Как выполнена схемотехника измерения синусоиды? То есть как измеряется двухполярный сигнал?
Да, измеряется двухполярный сигнал. Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512. Затем вывожу значения измерений в терминал по UART. Контроллер считает значения близкие к правде, но есть погрешность. На рисунке приведены эталонные сигналы, подаваемые на порты и те, что измерил контроллер. Измерение ведутся по шести портам ADC, последовательно опрашивая их. Как видно значения измерений близки к эталонным, но погрешность все же есть. Хочу разобраться в связи с чем. Заметил что вроде как неправильно производит количество измерений за период. Так как количество значений измеренных за период, которые рассчитываю я не сходятся с количеством измерений, которые производит контроллер. Для этого и прошу подсказать верны ли мои расчеты количества измерений, которые я привел выше
У Вас расхождение с расчетным и фактическим в какую сторону? Быть может Вы не успеваете вовремя считать результат АЦП?
Расхождение получается в разную сторону, Результаты после каждого прерывания ацп сохраняются в массив. Далее по внешнему прерыванию достаются, рассчитываются, затем передаются по uart
А время на включение АЦП? А время первого преобразования после включения? Время на старт АЦП?
Контроллер находится в режиме фриран и я так понимаю время включения и то что первое преобразование после включения 25тактов можно во внимание не брать?
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
DenChik87 писал(а):
Контроллер считает значения близкие к правде, но есть погрешность.
ПГ есть всегда. Термина близко не может существовать в измерениях. Вы сделали какие-то расчеты, определились с ПГ и в нее не укладываетесь? Какие критерии у Вас?
DenChik87 писал(а):
Расхождение получается в разную сторону,
Т.е. нет повторяемости? Тогда появляются вопросы к программе.
DenChik87 писал(а):
и то что первое преобразование после включения 25тактов можно во внимание не брать?
Если я правильно понимаю, если АЦП не выключается, то для последующих измерений такого времени не будет. Для фриран 2 такта на старт и 13.5 тактов АЦП на каждый замер.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Синусоида сдвинута на 2,5 вверх от нуля. В железе еще не делал, но будет именно так, пока только моделирую в протеусе. Для этого подаю на вход ADC сигнал синусоиды сдвинутый на 2.5В от нуля. Программно вычитаю эти 2.5В, т.е из измерений adc-512.
Это, скорее всего, не относится к нынешней ошибке, но в реальном железе Вы ее получите совершенно точно. Ноль не находится на 2,5 вольтах. Ни у АЦП контроллера при сдвиге на полшкалы, ни у ОУ и/или делителя, обеспечивающего сдвиг сигнала на полшкалы. Мало того, эти величины случайны для примененных экземпляров элементной базы, да еще и зависят от температуры. Поэтому, нужно НЕПРЕРЫВНО измерять ноль В ПРИХОДЯЩЕМ МАССИВЕ СИГНАЛА. Для чего нужно просто находить его среднее значение по интервалу значительно превышающему период сигнала. Чтобы не расходовать ОЗУ, можно сделать не КИХ (скользящее среднее), а БИХ фильтр НЧ. Сиречь простейший однозвенный рекурсивный фильтр.
Вопрос с несимметричным сигналом справедлив. Строго говоря, если предполагается смешанный сигнал с переменной и постоянной составляющей (в сети постоянной составляющей не может быть по определению, ибо мы все питаемся от ТП), то потребуется замер нулей на лету с отключением сигнала от входа (периодически и тоже через цифровой фильтр). Но в любом случае, формальный сдвиг на полшкалы АЦП - это ошибочное решение. ЗЫ. Визуальная несимметрия сигнала и присутствие в нем постоянной составляющей - это не связанные вещи.
Последний раз редактировалось КРАМ Сб июн 30, 2018 07:30:04, всего редактировалось 1 раз.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения