реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Алгоритм измерния RMS напряжения
Batman
сообщение May 6 2008, 11:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Доброе время суток.

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

Можно ли на словах описать алгоритм, как получить среднее значение синусоидального сигнала 50 Гц и только (источник которого уже имеет постоянное смещение 2,5 В). Мгновенное измеряется без проблем, а как получить среднее - 07.gif .Спасибо.
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 6 2008, 11:35
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Batman @ May 6 2008, 15:18) *
Можно ли на словах описать алгоритм, как получить среднее значение синусоидального сигнала 50 Гц и только

Если точно известно, что там 50 Гц, то проще всего мерить за период 20 мс и делать, например, 200 замеров. Чтобы отстроится от постоянной составляющей (вам ведь это нужно?) надо найти среднее арифметическое, которое потом вычесть из каждого замера. После этого перевести все замеры в абсолютное значение и найти среднее арифметическое от него. Это и будет среднее значение синусоидального сигнала.
А причём здесь RMS? Или вам нужно среднеквадратическое значение?
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 6 2008, 11:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Batman -
хм.. в вашем вопросе есть неоднозначность -
среднее например за период значение синуса или косинуса равно нулю....
Тобто в вашем случае как раз подставку в 2.5 вольта и намеряете...
Go to the top of the page
 
+Quote Post
gladov
сообщение May 6 2008, 11:38
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(Batman @ May 6 2008, 15:18) *
Доброе время суток.

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

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


Если речь идет именно об алгоритмическом способе решения проблемы, то можно просто измерить 8-16 раз за полный период и потом усреднить.
Go to the top of the page
 
+Quote Post
Клим
сообщение May 6 2008, 11:52
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



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

Нужно мерять и возводить в квадрат. А потом находить среднее и извлекать корень.
Для избавления от постоянной составляющей можно избавиться как описано было выше, путем вычитания среднего. Либо если смещение создано искусственно и является известной константой - просто вычитать его.
Go to the top of the page
 
+Quote Post
Batman
сообщение May 6 2008, 11:58
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



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

Постоянная составляющая вычитается сразу.

Сообщение отредактировал Batman - May 6 2008, 12:05
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 6 2008, 12:19
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



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

Что-то понятнее не становится...
Действующее это среднеквадратическое (сокращённо RMS или TrueRMS). "амплитуда на корень из двух" верно ТОЛЬКО ДЛЯ ЧИСТО СИНУСОИДАЛЬНЫХ сигналов. Чтоб посчитать действующее у не идеально синусоидального сигнала (TrueRMS) нужно вычислить корень из суммы квадратов (после вычитания постоянной составляющей).
Go to the top of the page
 
+Quote Post
Batman
сообщение May 6 2008, 12:30
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



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

.(вздыхая) Плохо что нет AVR Mega16 Quad Core Extreme. smile.gif
Go to the top of the page
 
+Quote Post
Клим
сообщение May 6 2008, 12:39
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(Batman @ May 6 2008, 15:30) *
Спасибо, сейчас пробую. А сколько нужно измерений сделать за период, чтобы более менее точно TrueRMS посчитать?

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

А какой уровень сигнала, какая нужна точность ?
Может обойтись встроенным меговским АЦП ?
А вообще по поводу измерения напряжения и тока в сети у атмела есть аппноут из которого можно основные принципы понять.
Go to the top of the page
 
+Quote Post
dENIM
сообщение May 6 2008, 12:43
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



у меня восьмая мега на встроенном 1МГц

делала порядка 5-6 замеров в секунду.
Для щитового вольтметра этого было с избытком
Go to the top of the page
 
+Quote Post
Motion
сообщение May 6 2008, 12:48
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
делала порядка 5-6 замеров в секунду.


В секунду 5-6 замеров мгновенного значения и вычислялось значение RMS? Может за полупериод?
Go to the top of the page
 
+Quote Post
Batman
сообщение May 6 2008, 12:49
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



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

Пробую сейчас сумму квадратов - ресурсов жрет немеряно, а показания от АЦП - все время 171 при любом сигнале от датчика, 0 при нулевом. smile.gif) Где-то накосячил. Но думаю этот способ получше, чем просто усреднять. Буду разбираться.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 6 2008, 13:17
Сообщение #13


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



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

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

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


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Batman
сообщение May 6 2008, 13:39
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



3 раза в секунду мало. У меня скорость срабатывания МТЗ должна быть в пределах 100 мс и это с контактором вместе. Я делаю порядка 150 измерений за период. А от компаратора отказались уже очень давно. Там с точностью задания уставки были проблемы.
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ. Еще пару корней - и побегу в магазин за жестким диском . smile.gif
Go to the top of the page
 
+Quote Post
Клим
сообщение May 6 2008, 13:41
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(Stanislav_S @ May 6 2008, 16:17) *
Ничего сложного там нет у меня обрабатывается четыре канала с датчиков тока, считается через сумму квадратов и все прекрасно работает, делаю 3 измеренич в секунду на каждый канал, поскольку у меня минимальное время срабатывания токовременной защиты 1с. Колличество измерений зависит от вида токовременной защиты, от этого в первую очередь и надо плясать, поскольку может и не надо вычислять именно действующего, а хватит обычного компаратора.

Как можно делать только 3 измерения в секунду ?
Или меряется предварительно выпрямленное напряжение ?
Я думамаю, что тут лучше будет именно выпрямлять и усреднять аналоговым способом, а в ацп уже подвать постоянное напряжение.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 6 2008, 13:59
Сообщение #16


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



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

Ну 3 раза имелось в виду вычисление действующего, а так конечно на период порядка 200 измерений, на 100 мс я тоже делал по такому принципу, но там пришлось синхронизироваться с сетью.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
dENIM
сообщение May 6 2008, 14:38
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



Цитата(Владимир_КПИ @ May 6 2008, 15:48) *
В секунду 5-6 замеров мгновенного значения и вычислялось значение RMS? Может за полупериод?


07.gif 5-6 вычислений RMS
при использовании встроенного АЦП
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 6 2008, 15:01
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Кстати, а зачем корень вычислять? Проще уставку возвести в квадрат и с этим значением и сравнивать насчитанное.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 6 2008, 15:41
Сообщение #19


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Batman @ May 6 2008, 16:39) *
Кстати при использовании функции sqrt() (WinAvr) код из 3 КБ раскабанел до 8 КБ.


Дык и не пользуйтесь плавающей арифметикой. Возьмите fast integer square root
или вот такой, страшно математисский smile.gif
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 6 2008, 16:23
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



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


Касательно "fast integer square root" - может кто-то доступно объяснить подоплёку отого чЮда ?
Всмысле вроде метод нъютона - это где производные, а откуда там взялись эти махинации с битами ?? .....
smile3046.gif
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение May 6 2008, 16:40
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



На первый взгляд - это просто метод последовательных приближений. Как будто в АЦП, только с квадратом внутри.


--------------------
ASB
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 6 2008, 16:47
Сообщение #22


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(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, автор Александр Труш (тоже на грани тысячелетий в эхе/ньюсах где-то пробегало, я на паре сайтов видел вывешенное, но не помню где).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 6 2008, 17:37
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Batman
Подскажите где взять инфу про "пояс Роговского"???


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 6 2008, 18:08
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



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

Это совершенно правильно. Но только в том случае, если нас устраивает получение значения только 1 раз за период (20 мс при 50 Гц). Чтобы получать значение вдвое чаще - придётся завести ещё 2 накопителя и вычислять всё это со сдвигом в 10 мс. И т.д., по 2 накопителя на каждое дополнительное получение значения за период. Если нужно вычислять значения с максимально возможной частотой (с частотой осчётов АЦП), то эффективнее использовать FIFO отсчётов, FIFO квадратов отсчётов, накопитель отсчётов и накопитель квадратов отсчётов.
При получении очередного отсчёта АЦП:
1. Прибавлять его к накопителю остчётов, квадрат его прибавлять к накопителю квадратов отсчётов.
2. Значения из хвостов соответствующих FIFO вычитать из соответствующих накопителей.
3. Заносить новые значения в головы соответствующих FIFO (при этом значения из хвостов FIFO затрутся).
Ну а дальше как у вас - из накопителя квадратов отсчётов вычитаем квадрат накопителя отсчётов.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 6 2008, 19:06
Сообщение #25


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Поскольку обычно постоянная составляющая подмешивается осознано, то куда проще ее завести на отдельный вход АЦП и мерять отдельно, а потом вычитать ее из сигнала.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
rezident
сообщение May 6 2008, 19:41
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(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
Go to the top of the page
 
+Quote Post
etoja
сообщение May 7 2008, 04:01
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Среднее значение синуса равно нулю.
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 7 2008, 04:46
Сообщение #28


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(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 мс, как все нормальные люди делают.
Go to the top of the page
 
+Quote Post
Клим
сообщение May 7 2008, 06:12
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



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

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

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


Я бы предложил вести накопитель для среднего арифметического с обновлением через несколько полупериодов. И вычитать его из каждого измерения и возводить в квадрат. Насколько я понимаю, то тут постоянная составляющая будет достаточно "постоянна". Массивы тут по поределению не нужны.
Go to the top of the page
 
+Quote Post
GDI
сообщение May 7 2008, 06:53
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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

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


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Batman
сообщение May 7 2008, 07:42
Сообщение #31


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Domowoj
По петле Роговского - прикрепил.

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

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

Сообщение отредактировал Batman - May 7 2008, 07:55
Прикрепленные файлы
Прикрепленный файл  MB_APP27_Rogowski_Coil_AN.pdf ( 579.6 килобайт ) Кол-во скачиваний: 875
Прикрепленный файл  Labwork_electricity_4_3.pdf ( 146.78 килобайт ) Кол-во скачиваний: 84
Прикрепленный файл  252_argueso.pdf ( 407.34 килобайт ) Кол-во скачиваний: 164
 
Go to the top of the page
 
+Quote Post
GDI
сообщение May 7 2008, 11:05
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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

Все относительно, зависит от частоты дискретизации, от размера БПФ, но я то говорил не о быстром, а о простом преобразовании Фурье, потому что только его можно сделать для выборочных гармоник, в БПФ же вы можете посчитать только все гармоники. По другому это еще называется, если не ошибаюсь, косинусное преобразование и делается оно следующим образом: берется таблица синуса размером, например 128 точек, в таблице должен быть один период синуса, т.к. нам нужна первая гармоника, затем перемножаете и суммируете поточечно входные данные (которые тоже должны быть размером 128 точек на период) на данные из таблицы синусов и получаете мнимую часть гармоники, затем делаете тоже самое но перемножаете с суммированием входные данные на таблицу косинусов - получаете действительную часть гармоники, затем вычисляете квадратный корень от суммы квадратов вещественной и мнимой частей - получаете амплитуду гармоники. Таблица косинусов делается из таблицы синусов путем смещения на четверть периода.
Как все это будет работать на АВР, честно говоря, не пробовал, если писать на Си - наверное, не очень, надо писать эту функцию на асме. В приложенных файлах содержится функция вычисления 64 точечного ДПФ для АВР на асме, но я ее не пробовал, нашел где то в инете.
Прикрепленные файлы
Прикрепленный файл  DFT864V1.zip ( 3.6 килобайт ) Кол-во скачиваний: 86
Прикрепленный файл  GLOBDEFS.zip ( 6.32 килобайт ) Кол-во скачиваний: 78
Прикрепленный файл  MathCons.zip ( 2.45 килобайт ) Кол-во скачиваний: 74
 


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 7 2008, 13:32
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(GDI @ May 7 2008, 15:05) *
Как все это будет работать на АВР, честно говоря, не пробовал, если писать на Си - наверное, не очень, надо писать эту функцию на асме.

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

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

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

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

2 'Batman'
Вы используете MCP3204, который стоит дороже ATmega16. В вашем случае мне это кажется ненужной роскошью.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение May 7 2008, 13:52
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Что-то тут не сходится.
Если считать сигнал гармоническим, можно просто вычислить максимум, минимум вычесть, поделить на два и на корень из двух. Без всяких спектральных анализов.
Если форма сложная - надо действовать по теории: ограничить спектр, дискретизировать, взвесить и.т.д
Я так полагаю.


--------------------
ASB
Go to the top of the page
 
+Quote Post
GDI
сообщение May 7 2008, 13:56
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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

Зависит от сферы применения этого метода, имхо. Если измерять RMS в сети переменного тока 220/380 где борются с гармониками, вклад неосновных гармоник невелик, а если учесть что потребители тоже настроены на основную гармонику(там фильтры на входе стоят обычно) то вклад этот стремится к нулю, ну уж никак не "в разы".


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение May 7 2008, 14:04
Сообщение #36


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Так в чем сложность, если там чистый синус? Можно просто продетектировать и отградуировать в RMS.


--------------------
ASB
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 7 2008, 14:33
Сообщение #37


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Aleksandr Baranov @ May 7 2008, 19:04) *
Так в чем сложность, если там чистый синус? Можно просто продетектировать и отградуировать в RMS.

Сложность в том. что в сети нет "чистого" синуса, если напряжение еще как то похоже на синус, то вот ток зачастую может иметь довольно "странный" вид.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 7 2008, 14:38
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



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

Думаю, что ваши взгляды поменяются, если вы посмотрите осциллографом напряжение в сети на достаточно крупном промышленном предприятии. Чтобы так изуродовать напряжение, ток д.б. ДАЛЕКО не синусоидальным. Не говоря уж о тех предприятиях, где используюся дуговые печи, тиристорные частотники и т.п.
"В разы" - это я писал про потребление на высших гармониках, особенно на третьей.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение May 7 2008, 16:28
Сообщение #39


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



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

Я почему-то тоже это подозреваю. Ну, тогда надо все по науке и делать.


--------------------
ASB
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 8 2008, 04:33
Сообщение #40


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



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

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

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

Правильно. Если не делать халтуру, то только так.
Go to the top of the page
 
+Quote Post
GDI
сообщение May 8 2008, 06:50
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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

Все правильно, но опять повторюсь, все зависит от задачи. Ток по которому вы собираетесь защищать устройство порождается самим устройством, т.е. ток соседнего станка вам до лампочки когда вы защищаете, к примеру, ТЭН, у которого ток будет синус, вернее такой же как и напряжение.
А если говорить про науку, то и защищать надо не просто сравнивая RMS за период или пол-периода с некоей уставкой, а надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 8 2008, 08:12
Сообщение #42


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(GDI @ May 8 2008, 10:50) *
надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.

Это уже следующий вопрос.
А первичный - найти RMS при дифференцирующем датчике в условиях, когда продифференцированная неосновная гармоника соизмерима с сигналом основной гармоники.
Если вспомнить производные, то сразу все станет ясно. biggrin.gif
Go to the top of the page
 
+Quote Post
Batman
сообщение May 8 2008, 08:25
Сообщение #43


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Цитата
А если говорить про науку, то и защищать надо не просто сравнивая RMS за период или пол-периода с некоей уставкой, а надо работать с кривыми защиты и в зависимости от значения текущего RMS выставлять время до отключения нагрузки.


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

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


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

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

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

А можно уточнить людям без масла как влияет дифференцирование на измерение? smile.gif
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 8 2008, 08:46
Сообщение #44


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



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


y(t)=a*sin(k*t)
y'(t) = a*k*cos(k*t)
Вот и все дела.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 8 2008, 08:55
Сообщение #45


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Batman @ May 8 2008, 13:25) *
10-разрядного АЦП было недостаточно.

А почему вам нехватило 10 разрядного АЦП? Просто сам занимаюсь подобного рода защитами во и интересуюсь.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 8 2008, 09:05
Сообщение #46


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



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

Мне хватило. Только опору надо внешнюю обязательно и входные цепи делать правильно.
Go to the top of the page
 
+Quote Post
Batman
сообщение May 8 2008, 09:18
Сообщение #47


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Цитата
А почему вам нехватило 10 разрядного АЦП?


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

Для опоры использую REF195.

Сообщение отредактировал Batman - May 8 2008, 09:20
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 8 2008, 09:56
Сообщение #48


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(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 А так задача понятна, кстати я сам иногда использую такой АЦП, только в одноканальном варианте.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Клим
сообщение May 8 2008, 10:17
Сообщение #49


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



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

Не 4%,а 4А. А это уже точность в 0,1%. Пусть и в теории. Но исключительно за счет АЦП она на порядок не выростет.
Go to the top of the page
 
+Quote Post
Batman
сообщение May 8 2008, 10:28
Сообщение #50


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Да, crying.gif , что то я сдаю уже.

Так, а кто какую точность получает на встроенном АЦП для подобных задач?
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 8 2008, 10:44
Сообщение #51


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



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

Если не для защиты, а для измерения, то подход совершенно другой.
Можно за счет увеличения времени поднять разрешение за счет статистических методов.
ДПФ здесь уже в жилу.
PS. Для защиты нормальной считается погрешность меньше 10 %, поэтому подходит 10 разрядный АЦП (но обязательно с учетом нагрева, дрейфа, диапазона кратности измерения тока и даже закрытием некоторого ряда номинальных токов, например ряд 800, 1250, 1600, 2000, 2500 А при 15-кратной перегрузке).
Go to the top of the page
 
+Quote Post
Batman
сообщение May 8 2008, 10:51
Сообщение #52


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-04-07
Пользователь №: 26 732



Для защиты по ГОСТу погрешность срабатывания - 15 %. Но госты устарели уже. Поэтому моду диктуют заказчики. Почему я должен покупать это, а не то? Какие 15%? Это уже есть. Нафига платить больше.
Go to the top of the page
 
+Quote Post
Vic
сообщение May 8 2008, 10:53
Сообщение #53


Местный
***

Группа: Свой
Сообщений: 241
Регистрация: 22-11-04
Из: Санкт-Петербург
Пользователь №: 1 192



Цитата(Batman @ May 8 2008, 14:28) *
Да, crying.gif , что то я сдаю уже.

Так, а кто какую точность получает на встроенном АЦП для подобных задач?

Посмотрите тут, может свежие мысли появятся:
http://www.analog.com/en/subCat/0,2879,773...F0%255F,00.html
http://www.analog.com/en/content/0,2886,77...5F15010,00.html
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 8 2008, 11:55
Сообщение #54


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Vic @ May 8 2008, 15:53) *
Посмотрите тут, может свежие мысли появятся:
http://www.analog.com/en/subCat/0,2879,773...F0%255F,00.html
http://www.analog.com/en/content/0,2886,77...5F15010,00.html

Штуки хорошие - пробовал, но дорогие...


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th August 2025 - 18:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01883 секунд с 7
ELECTRONIX ©2004-2016