Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Алгоритм измерния RMS напряжения
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
Batman
Доброе время суток.

На схеме имеется 12-разряд АЦП MCP3204, Мега16, источник опорного напряжения 5 В.

Можно ли на словах описать алгоритм, как получить среднее значение синусоидального сигнала 50 Гц и только (источник которого уже имеет постоянное смещение 2,5 В). Мгновенное измеряется без проблем, а как получить среднее - 07.gif .Спасибо.
galjoen
Цитата(Batman @ May 6 2008, 15:18) *
Можно ли на словах описать алгоритм, как получить среднее значение синусоидального сигнала 50 Гц и только

Если точно известно, что там 50 Гц, то проще всего мерить за период 20 мс и делать, например, 200 замеров. Чтобы отстроится от постоянной составляющей (вам ведь это нужно?) надо найти среднее арифметическое, которое потом вычесть из каждого замера. После этого перевести все замеры в абсолютное значение и найти среднее арифметическое от него. Это и будет среднее значение синусоидального сигнала.
А причём здесь RMS? Или вам нужно среднеквадратическое значение?
Kuzmi4
2 Batman -
хм.. в вашем вопросе есть неоднозначность -
среднее например за период значение синуса или косинуса равно нулю....
Тобто в вашем случае как раз подставку в 2.5 вольта и намеряете...
gladov
Цитата(Batman @ May 6 2008, 15:18) *
Доброе время суток.

На схеме имеется 12-разряд АЦП MCP3204, Мега16, источник опорного напряжения 5 В.

Можно ли на словах описать алгоритм, как получить среднее значение синусоидального сигнала 50 Гц и только (источник которого уже имеет постоянное смещение 2,5 В). Мгновенное измеряется без проблем, а как получить среднее - 07.gif .Спасибо.


Если речь идет именно об алгоритмическом способе решения проблемы, то можно просто измерить 8-16 раз за полный период и потом усреднить.
Клим
Цитата(gladov @ May 6 2008, 14:38) *
Если речь идет именно об алгоритмическом способе решения проблемы, то можно просто измерить 8-16 раз за полный период и потом усреднить.

Нужно мерять и возводить в квадрат. А потом находить среднее и извлекать корень.
Для избавления от постоянной составляющей можно избавиться как описано было выше, путем вычитания среднего. Либо если смещение создано искусственно и является известной константой - просто вычитать его.
Batman
Да, речь действительно идет об алгоритмическом способе.
Я уж сам запутал вопрос, извините.
Измерять нужно ДЕЙСТВУЮЩЕЕ ЗНАЧЕНИЕ синуса, а не RMS.
Я час назад уже бился над подобным алгоритмом - сделать 200 измерений 100 мкс на каждое (ну как раз почти период). Но результат неудовлетворительный - это значение плавает ОЧЕНЬ сильно. Если делать 1000 измерений - стабильно, но у меня вопрос быстродействия токовой защиты - слишком много времени на усреднение.
Может можно математически как то? Есть мгновенное значение. Нужно действующее (амплитуда делить на корень из двух).

Постоянная составляющая вычитается сразу.
galjoen
Цитата(Batman @ May 6 2008, 15:58) *
...
Измерять нужно ДЕЙСТВУЮЩЕЕ ЗНАЧЕНИЕ синуса, а не RMS
...
Нужно действующее (амплитуда на корень из двух).
...

Что-то понятнее не становится...
Действующее это среднеквадратическое (сокращённо RMS или TrueRMS). "амплитуда на корень из двух" верно ТОЛЬКО ДЛЯ ЧИСТО СИНУСОИДАЛЬНЫХ сигналов. Чтоб посчитать действующее у не идеально синусоидального сигнала (TrueRMS) нужно вычислить корень из суммы квадратов (после вычитания постоянной составляющей).
Batman
Спасибо, сейчас пробую. А сколько нужно измерений сделать за период, чтобы более менее точно TrueRMS посчитать?

.(вздыхая) Плохо что нет AVR Mega16 Quad Core Extreme. smile.gif
Клим
Цитата(Batman @ May 6 2008, 15:30) *
Спасибо, сейчас пробую. А сколько нужно измерений сделать за период, чтобы более менее точно TrueRMS посчитать?

.(вздыхая) Плохо что нет AVR Mega16 Quad Core Extreme. smile.gif

А какой уровень сигнала, какая нужна точность ?
Может обойтись встроенным меговским АЦП ?
А вообще по поводу измерения напряжения и тока в сети у атмела есть аппноут из которого можно основные принципы понять.
dENIM
у меня восьмая мега на встроенном 1МГц

делала порядка 5-6 замеров в секунду.
Для щитового вольтметра этого было с избытком
Motion
Цитата
делала порядка 5-6 замеров в секунду.


В секунду 5-6 замеров мгновенного значения и вычислялось значение RMS? Может за полупериод?
Batman
Датчик - петля Роговского. Сигнал - 5 В (амплитуда) на 4200 А максимум. Точность нужна - 5 %. Но хотелось бы выжать больше по возможности.

Пробую сейчас сумму квадратов - ресурсов жрет немеряно, а показания от АЦП - все время 171 при любом сигнале от датчика, 0 при нулевом. smile.gif) Где-то накосячил. Но думаю этот способ получше, чем просто усреднять. Буду разбираться.
Stanislav_S
Цитата(Batman @ May 6 2008, 17:49) *
Датчик - петля Роговского. Сигнал - 5 В (амплитуда) на 4200 А максимум. Точность нужна - 5 %. Но хотелось бы выжать больше по возможности.

Пробую сейчас сумму квадратов - ресурсов жрет немеряно, а показания от АЦП - все время 171 при любом сигнале от датчика, 0 при нулевом. smile.gif) Где-то накосячил. Но думаю этот способ получше, чем просто усреднять. Буду разбираться.

Ничего сложного там нет у меня обрабатывается четыре канала с датчиков тока, считается через сумму квадратов и все прекрасно работает, делаю 3 измеренич в секунду на каждый канал, поскольку у меня минимальное время срабатывания токовременной защиты 1с. Колличество измерений зависит от вида токовременной защиты, от этого в первую очередь и надо плясать, поскольку может и не надо вычислять именно действующего, а хватит обычного компаратора.
Batman
3 раза в секунду мало. У меня скорость срабатывания МТЗ должна быть в пределах 100 мс и это с контактором вместе. Я делаю порядка 150 измерений за период. А от компаратора отказались уже очень давно. Там с точностью задания уставки были проблемы.
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ. Еще пару корней - и побегу в магазин за жестким диском . smile.gif
Клим
Цитата(Stanislav_S @ May 6 2008, 16:17) *
Ничего сложного там нет у меня обрабатывается четыре канала с датчиков тока, считается через сумму квадратов и все прекрасно работает, делаю 3 измеренич в секунду на каждый канал, поскольку у меня минимальное время срабатывания токовременной защиты 1с. Колличество измерений зависит от вида токовременной защиты, от этого в первую очередь и надо плясать, поскольку может и не надо вычислять именно действующего, а хватит обычного компаратора.

Как можно делать только 3 измерения в секунду ?
Или меряется предварительно выпрямленное напряжение ?
Я думамаю, что тут лучше будет именно выпрямлять и усреднять аналоговым способом, а в ацп уже подвать постоянное напряжение.
Stanislav_S
Цитата(Batman @ May 6 2008, 18:39) *
3 раза в секунду мало. У меня скорость срабатывания МТЗ должна быть в пределах 100 мс и это с контактором вместе. Я делаю порядка 150 измерений за период. А от компаратора отказались уже очень давно. Там с точностью задания уставки были проблемы.
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ. Еще пару корней - и побегу в магазин за жестким диском . smile.gif

Ну 3 раза имелось в виду вычисление действующего, а так конечно на период порядка 200 измерений, на 100 мс я тоже делал по такому принципу, но там пришлось синхронизироваться с сетью.
dENIM
Цитата(Владимир_КПИ @ May 6 2008, 15:48) *
В секунду 5-6 замеров мгновенного значения и вычислялось значение RMS? Может за полупериод?


07.gif 5-6 вычислений RMS
при использовании встроенного АЦП
SSerge
Кстати, а зачем корень вычислять? Проще уставку возвести в квадрат и с этим значением и сравнивать насчитанное.
_Pasha
Цитата(Batman @ May 6 2008, 16:39) *
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ.


Дык и не пользуйтесь плавающей арифметикой. Возьмите fast integer square root
или вот такой, страшно математисский smile.gif
Kuzmi4
Цитата(_Pasha @ May 6 2008, 18:41) *
Дык и не пользуйтесь плавающей арифметикой. Возьмите fast integer square root
или вот такой, страшно математисский smile.gif


Касательно "fast integer square root" - может кто-то доступно объяснить подоплёку отого чЮда ?
Всмысле вроде метод нъютона - это где производные, а откуда там взялись эти махинации с битами ?? .....
smile3046.gif
Aleksandr Baranov
На первый взгляд - это просто метод последовательных приближений. Как будто в АЦП, только с квадратом внутри.
ReAl
Цитата(Kuzmi4 @ May 6 2008, 19:23) *
Касательно "fast integer square root" - может кто-то доступно объяснить подоплёку отого чЮда ?
Всмысле вроде метод нъютона - это где производные, а откуда там взялись эти махинации с битами ?? .....
smile3046.gif
Если махинации с битами - то это уже не Ньютона :-)
Вот, нашёл в гуглогрупсах старое
(там цитирования надо поразворачивать)
О, тут не вся тема, зато чистым текстом http://files.kpv.nnov.ru/sqrt16b.txt

А для компенсации постоянки отдельно вычислять среднее арифметическое и вычитать его из каждого отсчёта не нужно (заодно массив отсчётов пропадает, экономия ОЗУ).
Делается это так:
Накапиливается в двух накопителях - сумма квадратов и сумма отсчётов.
В конце цикла измерения вычисляем средний квадрат без компенсации постоянки и среднее значение (постоянку).
Из среднего квадрата вычитаем квадрат среднего.
Всё, получили среднее квадрата отклонения от постоянки.

Т.е. (тут нормально формулы не написать - нет ни тегов sup/sub, ни надчерка)
sqr() - это возведение в квадрат

average( sqr( x - average(x) ) ) = average( sqr(x) ) - sqr( average( x ) )

При необходимости из этого извлечь корень.


О, нашёл в RU.EMBEDDED ещё более старую тему, но там есть С-шный 8-битниковый вариант, писался под 8051.

И где-то в сети есть ассемблерный вариант для AVR, автор Александр Труш (тоже на грани тысячелетий в эхе/ньюсах где-то пробегало, я на паре сайтов видел вывешенное, но не помню где).
domowoj
Batman
Подскажите где взять инфу про "пояс Роговского"???
galjoen
Цитата(ReAl @ May 6 2008, 20:47) *
А для компенсации постоянки отдельно вычислять среднее арифметическое и вычитать его из каждого отсчёта не нужно (заодно массив отсчётов пропадает, экономия ОЗУ).
Делается это так:
Накапиливается в двух накопителях - сумма квадратов и сумма отсчётов.
В конце цикла измерения вычисляем средний квадрат без компенсации постоянки и среднее значение (постоянку).
Из среднего квадрата вычитаем квадрат среднего.
Всё, получили среднее квадрата отклонения от постоянки.

Это совершенно правильно. Но только в том случае, если нас устраивает получение значения только 1 раз за период (20 мс при 50 Гц). Чтобы получать значение вдвое чаще - придётся завести ещё 2 накопителя и вычислять всё это со сдвигом в 10 мс. И т.д., по 2 накопителя на каждое дополнительное получение значения за период. Если нужно вычислять значения с максимально возможной частотой (с частотой осчётов АЦП), то эффективнее использовать FIFO отсчётов, FIFO квадратов отсчётов, накопитель отсчётов и накопитель квадратов отсчётов.
При получении очередного отсчёта АЦП:
1. Прибавлять его к накопителю остчётов, квадрат его прибавлять к накопителю квадратов отсчётов.
2. Значения из хвостов соответствующих FIFO вычитать из соответствующих накопителей.
3. Заносить новые значения в головы соответствующих FIFO (при этом значения из хвостов FIFO затрутся).
Ну а дальше как у вас - из накопителя квадратов отсчётов вычитаем квадрат накопителя отсчётов.
Stanislav_S
Поскольку обычно постоянная составляющая подмешивается осознано, то куда проще ее завести на отдельный вход АЦП и мерять отдельно, а потом вычитать ее из сигнала.
rezident
Цитата(galjoen @ May 7 2008, 00:08) *
При получении очередного отсчёта АЦП:
1. Прибавлять его к накопителю остчётов, квадрат его прибавлять к накопителю квадратов отсчётов.
2. Значения из хвостов соответствующих FIFO вычитать из соответствующих накопителей.
3. Заносить новые значения в головы соответствующих FIFO (при этом значения из хвостов FIFO затрутся).
Ну а дальше как у вас - из накопителя квадратов отсчётов вычитаем квадрат накопителя отсчётов.
Хочу заметить/предупредить, что такой способ вычисления скользящего среднего пригоден только для случая целочисленных значений. При использовании плавучки быстро накапливаются ошибки округления.

Цитата(domowoj @ May 6 2008, 23:37) *
Batman
Подскажите где взять инфу про "пояс Роговского"???

Где, где... в ГуглЕ biggrin.gif Вот первая же ссылка http://www.phys.nsu.ru/electricity/Labwork4-3.html
etoja
Среднее значение синуса равно нулю.
alexander55
Цитата(Batman @ May 6 2008, 16:49) *
Датчик - петля Роговского.

Вы в курсе, что петля Роговского дифференцирует сигнал ?
Я эти проблемы уже решал, поэтому в курсе.

Цитата(Batman @ May 6 2008, 16:49) *
Точность нужна - 5 %. Но хотелось бы выжать больше по возможности.

Не иначе как блок защиты к автоматческому выключателю делаете.

Цитата(Batman @ May 6 2008, 16:49) *
Пробую сейчас сумму квадратов - ресурсов жрет немеряно, а показания от АЦП - все время 171 при любом сигнале от датчика, 0 при нулевом. smile.gif) Где-то накосячил. Но думаю этот способ получше, чем просто усреднять. Буду разбираться.

Без теории тут никак не обойтись. biggrin.gif

Цитата(Batman @ May 6 2008, 17:39) *
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ. Еще пару корней - и побегу в магазин за жестким диском . smile.gif

А если подумать, то корень не понадобится вообще. biggrin.gif

Цитата(SSerge @ May 6 2008, 19:01) *
Кстати, а зачем корень вычислять? Проще уставку возвести в квадрат и с этим значением и сравнивать насчитанное.

Точно.

Цитата(galjoen @ May 6 2008, 22:08) *
При получении очередного отсчёта АЦП:
1. Прибавлять его к накопителю остчётов, квадрат его прибавлять к накопителю квадратов отсчётов.
2. Значения из хвостов соответствующих FIFO вычитать из соответствующих накопителей.
3. Заносить новые значения в головы соответствующих FIFO (при этом значения из хвостов FIFO затрутся).
Ну а дальше как у вас - из накопителя квадратов отсчётов вычитаем квадрат накопителя отсчётов.

Все правильно.
Еще одна мысль. Можно RMS считать не за 20 мс, а на за 10 мс, как все нормальные люди делают.
Клим
Цитата(SSerge @ May 6 2008, 18:01) *
Кстати, а зачем корень вычислять? Проще уставку возвести в квадрат и с этим значением и сравнивать насчитанное.

Я тако понял, что нужно еще выводить текущее значение тока. Так что одним сравнением не обойтись.

Цитата(ReAl @ May 6 2008, 19:47) *
А для компенсации постоянки отдельно вычислять среднее арифметическое и вычитать его из каждого отсчёта не нужно (заодно массив отсчётов пропадает, экономия ОЗУ).
Делается это так:
Накапиливается в двух накопителях - сумма квадратов и сумма отсчётов.
В конце цикла измерения вычисляем средний квадрат без компенсации постоянки и среднее значение (постоянку).
Из среднего квадрата вычитаем квадрат среднего.
Всё, получили среднее квадрата отклонения от постоянки.


Я бы предложил вести накопитель для среднего арифметического с обновлением через несколько полупериодов. И вычитать его из каждого измерения и возводить в квадрат. Насколько я понимаю, то тут постоянная составляющая будет достаточно "постоянна". Массивы тут по поределению не нужны.
GDI
RMS можно получить выполнив Дискретное Преобразование Фурье для первой гармоники входного сигнала и умножив ее на 0,7. Делая Фурье вы автоматом избавляетесь от постоянной составляющей, а получая амплитуду первой гармоники (50Гц) вы автоматом избавляетесь от влияния несинусоидальности входного сигнала и можете смело умножать на 0,7.

Кстати, есть еще и интегральное решение True RMS-to-DC Converter от Analog Devices, например AD636, AD737. На выходе дает RMS входного сигнала в виде постоянного напряжения.
Batman
Domowoj
По петле Роговского - прикрепил.

Только вот разобрал вольтметр переменки, щитовой Autonics корейский (у него точность обалденная). Так вот - там используется АЦП Mega 128 laughing.gif через усилитель OPA2227 wub.gif , и компаратор LM311. Просто синхронизируются с сетью - и за период меряют. Я подаю на вход эталонные 2 В (амплитуда) - он мне показует 1.414 среднего четко и стабильно.

GDI
А как делать БПФ на AVR? Он потянет? Это очень интересная тема. А можно немного подробнее?
GDI
Цитата
А как делать БПФ на AVR? Он потянет? Это очень интересная тема. А можно немного подробнее?

Все относительно, зависит от частоты дискретизации, от размера БПФ, но я то говорил не о быстром, а о простом преобразовании Фурье, потому что только его можно сделать для выборочных гармоник, в БПФ же вы можете посчитать только все гармоники. По другому это еще называется, если не ошибаюсь, косинусное преобразование и делается оно следующим образом: берется таблица синуса размером, например 128 точек, в таблице должен быть один период синуса, т.к. нам нужна первая гармоника, затем перемножаете и суммируете поточечно входные данные (которые тоже должны быть размером 128 точек на период) на данные из таблицы синусов и получаете мнимую часть гармоники, затем делаете тоже самое но перемножаете с суммированием входные данные на таблицу косинусов - получаете действительную часть гармоники, затем вычисляете квадратный корень от суммы квадратов вещественной и мнимой частей - получаете амплитуду гармоники. Таблица косинусов делается из таблицы синусов путем смещения на четверть периода.
Как все это будет работать на АВР, честно говоря, не пробовал, если писать на Си - наверное, не очень, надо писать эту функцию на асме. В приложенных файлах содержится функция вычисления 64 точечного ДПФ для АВР на асме, но я ее не пробовал, нашел где то в инете.
galjoen
Цитата(GDI @ May 7 2008, 15:05) *
Как все это будет работать на АВР, честно говоря, не пробовал, если писать на Си - наверное, не очень, надо писать эту функцию на асме.

Думаю, что на АВР всё это будет работать хорошо. По моему мнению, у АВР и команду умножения-то сделали именно для таких приложений. Т.е. для цифровой обработки сигналов (ЦОС).

ДПФ для определения срабатывания токовой защиты использовать можно. На эту тему написаны тома...
Но считать RMS по ДПФ таким способом, как написано здесь:
Цитата(GDI @ May 7 2008, 10:53) *
RMS можно получить выполнив Дискретное Преобразование Фурье для первой гармоники входного сигнала и умножив ее на 0,7. Делая Фурье вы автоматом избавляетесь от постоянной составляющей, а получая амплитуду первой гармоники (50Гц) вы автоматом избавляетесь от влияния несинусоидальности входного сигнала и можете смело умножать на 0,7.

Это неверно. В таком случае не учитывается мощность, потреблённая на всех гармониках кроме первой. Точнее учитывается, но неправильно. Ошибка в разы.

А вообще, в частности ДПФ, и, в общем ЦОС, на АВР - очень интересная тема. На мой взгляд тут младшие ATmega вполне конкурентноспособны.

2 'Batman'
Вы используете MCP3204, который стоит дороже ATmega16. В вашем случае мне это кажется ненужной роскошью.
Aleksandr Baranov
Что-то тут не сходится.
Если считать сигнал гармоническим, можно просто вычислить максимум, минимум вычесть, поделить на два и на корень из двух. Без всяких спектральных анализов.
Если форма сложная - надо действовать по теории: ограничить спектр, дискретизировать, взвесить и.т.д
Я так полагаю.
GDI
Цитата
Это неверно. В таком случае не учитывается мощность, потреблённая на всех гармониках кроме первой. Точнее учитывается, но неправильно. Ошибка в разы.

Зависит от сферы применения этого метода, имхо. Если измерять RMS в сети переменного тока 220/380 где борются с гармониками, вклад неосновных гармоник невелик, а если учесть что потребители тоже настроены на основную гармонику(там фильтры на входе стоят обычно) то вклад этот стремится к нулю, ну уж никак не "в разы".
Aleksandr Baranov
Так в чем сложность, если там чистый синус? Можно просто продетектировать и отградуировать в RMS.
Stanislav_S
Цитата(Aleksandr Baranov @ May 7 2008, 19:04) *
Так в чем сложность, если там чистый синус? Можно просто продетектировать и отградуировать в RMS.

Сложность в том. что в сети нет "чистого" синуса, если напряжение еще как то похоже на синус, то вот ток зачастую может иметь довольно "странный" вид.
galjoen
Цитата(GDI @ May 7 2008, 17:56) *
Зависит от сферы применения этого метода, имхо. Если измерять RMS в сети переменного тока 220/380 где борются с гармониками, вклад неосновных гармоник невелик, а если учесть что потребители тоже настроены на основную гармонику(там фильтры на входе стоят обычно) то вклад этот стремится к нулю, ну уж никак не "в разы".

Думаю, что ваши взгляды поменяются, если вы посмотрите осциллографом напряжение в сети на достаточно крупном промышленном предприятии. Чтобы так изуродовать напряжение, ток д.б. ДАЛЕКО не синусоидальным. Не говоря уж о тех предприятиях, где используюся дуговые печи, тиристорные частотники и т.п.
"В разы" - это я писал про потребление на высших гармониках, особенно на третьей.
Aleksandr Baranov
Цитата(Stanislav_S @ May 7 2008, 10:33) *
Сложность в том. что в сети нет "чистого" синуса, если напряжение еще как то похоже на синус, то вот ток зачастую может иметь довольно "странный" вид.

Я почему-то тоже это подозреваю. Ну, тогда надо все по науке и делать.
alexander55
Цитата(Stanislav_S @ May 7 2008, 18:33) *
в сети нет "чистого" синуса, если напряжение еще как то похоже на синус, то вот ток зачастую может иметь довольно "странный" вид.

Точно так. Когда работают тиристорные преобразователи, сварочные агрегаты, станки и т.д.
Есть ГОСТ на качество промышленной сети. Там нормируются гармоники аж до 17 или даже выше.
PS. Еще раз повторю. Датчик Роговского дифферинцирующий. У кого есть масло в голове, поймет о чем идет речь.
По поводу блоков защиты. Никто в мире не применяет ДПФ в них. Говорю это ответственно.

Цитата(Aleksandr Baranov @ May 7 2008, 20:28) *
надо все по науке и делать.

Правильно. Если не делать халтуру, то только так.
GDI
Цитата
Есть ГОСТ на качество промышленной сети. Там нормируются гармоники аж до 17 или даже выше.

Все правильно, но опять повторюсь, все зависит от задачи. Ток по которому вы собираетесь защищать устройство порождается самим устройством, т.е. ток соседнего станка вам до лампочки когда вы защищаете, к примеру, ТЭН, у которого ток будет синус, вернее такой же как и напряжение.
А если говорить про науку, то и защищать надо не просто сравнивая RMS за период или пол-периода с некоей уставкой, а надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.
alexander55
Цитата(GDI @ May 8 2008, 10:50) *
надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.

Это уже следующий вопрос.
А первичный - найти RMS при дифференцирующем датчике в условиях, когда продифференцированная неосновная гармоника соизмерима с сигналом основной гармоники.
Если вспомнить производные, то сразу все станет ясно. biggrin.gif
Batman
Цитата
А если говорить про науку, то и защищать надо не просто сравнивая RMS за период или пол-периода с некоей уставкой, а надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.


Кривые защиты - тоже есть, только это называется ТЗП - токовая защита от перегруза. В зависимости от превышения тока над номинальным - разрешает работать определенное время. А МТЗ - от токов к.з. (как рэпер уже smile.gif ) - вырубает все (так и хочется сказать ЙО) и сразу.
Защищаем мы электродвигатели.

Цитата
Вы используете MCP3204, который стоит дороже ATmega16. В вашем случае мне это кажется ненужной роскошью.


Простым усреднением за период я получил точность 0,5 % (для МТЗ), а показания - (усредняется за несколько периодов) - 0.1 %.
10-разрядного АЦП было недостаточно.
А колебания показаний было из-за того, что колебался период измерений. MCP3204 - самый дешевый, который мы смогли найти.

А насчет преобразования Фурье - это огромная тема, буду разбираться - старт дан, спасибо.

Цитата
У кого есть масло в голове, поймет о чем идет речь.

А можно уточнить людям без масла как влияет дифференцирование на измерение? smile.gif
alexander55
Цитата(Batman @ May 8 2008, 12:25) *
А можно уточнить людям без масла как влияет дифференцирование на измерение? smile.gif


y(t)=a*sin(k*t)
y'(t) = a*k*cos(k*t)
Вот и все дела.
Stanislav_S
Цитата(Batman @ May 8 2008, 13:25) *
10-разрядного АЦП было недостаточно.

А почему вам нехватило 10 разрядного АЦП? Просто сам занимаюсь подобного рода защитами во и интересуюсь.
alexander55
Цитата(Stanislav_S @ May 8 2008, 12:55) *
А почему вам нехватило 10 разрядного АЦП? Просто сам занимаюсь подобного рода защитами во и интересуюсь.

Мне хватило. Только опору надо внешнюю обязательно и входные цепи делать правильно.
Batman
Цитата
А почему вам нехватило 10 разрядного АЦП?


Пределы измерения - 0 - 4200 А (а то и 4500 А зарядят). Да поделить на 1024. Это 4 % точности только в теории. Задачу мне поставили - переплюнуть 1 % (не для защиты, а для просто измерения и вывода тока).
В общем смысл такой - есть разработка, использующая встроенный АЦП - не нравится, будет новая - должна понравиться (ну или страна найдет нового рэпера smile.gif ).

Для опоры использую REF195.
Stanislav_S
Цитата(alexander55 @ May 8 2008, 14:05) *
Мне хватило. Только опору надо внешнюю обязательно и входные цепи делать правильно.

Да мне тоже хватает smile.gif Опору обычно ставлю внешнюю МСР1541, не бог весть что, но для колхоза годится smile.gif

Цитата(Batman @ May 8 2008, 14:18) *
Пределы измерения - 0 - 4200 А (а то и 4500 А зарядят). Да поделить на 1024. Это 4 % точности только в теории. Задачу мне поставили - переплюнуть 1 % (не для защиты, а для просто измерения и вывода тока).
В общем смысл такой - есть разработка, использующая встроенный АЦП - не нравится, будет новая - должна понравиться (ну или страна найдет нового рэпера smile.gif ).
Для опоры использую REF195.

Ясно, просто меня удивили требования по точности измерения тока, для защиты это слишком smile.gif А так задача понятна, кстати я сам иногда использую такой АЦП, только в одноканальном варианте.
Клим
Цитата(Batman @ May 8 2008, 12:18) *
Пределы измерения - 0 - 4200 А (а то и 4500 А зарядят). Да поделить на 1024. Это 4 % точности только в теории. Задачу мне поставили - переплюнуть 1 % (не для защиты, а для просто измерения и вывода тока).

Не 4%,а 4А. А это уже точность в 0,1%. Пусть и в теории. Но исключительно за счет АЦП она на порядок не выростет.
Batman
Да, crying.gif , что то я сдаю уже.

Так, а кто какую точность получает на встроенном АЦП для подобных задач?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.