Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Измерение переменных напряж-й/токов с помощью АЦП


Автор: Курсант 16.10.2015, 16:41
Доброго времени суток!

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

В связи с этим прошу помощи у более опытных специалистов. Пните пожалуйста в правильном направлении - есть ли готовые эффективные алгоритмы, позволяющие определить точки перехода через нуль синусоиды (при этом синусоида - понятие приближенное, т.к. реальный сигнал будет с искажениями. С вычислением действующего значения напряжения всё более или менее понятно - нужно проинтегрировать сигнал, т.е. действующее значение будет пропорционально сумме семплов за период. Но как отловить сам период? У меня есть некоторые свои соображения, но велосипед не хотелось бы изобретать... 

Автор: bass 2.11.2015, 21:54
Цитата(Курсант @ 16.10.2015,  16:41)
Доброго времени суток!

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

В связи с этим прошу помощи у более опытных специалистов. Пните пожалуйста в правильном направлении - есть ли готовые эффективные алгоритмы, позволяющие определить точки перехода через нуль синусоиды (при этом синусоида - понятие приближенное, т.к. реальный сигнал будет с искажениями. С вычислением действующего значения напряжения всё более или менее понятно - нужно проинтегрировать сигнал, т.е. действующее значение будет пропорционально сумме семплов за период. Но как отловить сам период? У меня есть некоторые свои соображения, но велосипед не хотелось бы изобретать...

Странная задача...

На ваш вопрос можно только ответить вопросами.  smile 

Если задача одноразовая возмите асцилограф, потребляемый ток правда не померияте но если изхитриться и взять некий датчик тока, например LEM все в ваших руках.

Если устройство нужно в колличестве 1 шт можно на датчиках тока и напряжения сделать (есть дорогие тарнсформаторные, хола и т.д).

вот статья про измерение переменки 
http://arduino.ru/forum/proekty/voltmetr-peremennogo-napryazheniya

Если устройство сирийное нужно подбирать детали по вопросу цены точности.

АЦП микроконтроллера не измеряет отрицательное напряжение, возможно через делитель и подтяжку к питанию вогнать синусойду в нужны пределы (но этот вариянт без гальванической развяки только для опытов).

При таком варианте программно определять пиковые значения .... Ну и по таймеру вычислять частоту ...

Автор: leocat3 25.9.2016, 08:30
Вариант без гальванической развязки используется практически во всех электросчетчиках...
Причем корпус прибора обычно на фазе.

Автор: Курсант 3.1.2017, 17:16
Цитата(bass @ 2.11.2015,  21:54)
Цитата(Курсант @ 16.10.2015,  16:41)
Доброго времени суток!

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

В связи с этим прошу помощи у более опытных специалистов. Пните пожалуйста в правильном направлении - есть ли готовые эффективные алгоритмы, позволяющие определить точки перехода через нуль синусоиды (при этом синусоида - понятие приближенное, т.к. реальный сигнал будет с искажениями. С вычислением действующего значения напряжения всё более или менее понятно - нужно проинтегрировать сигнал, т.е. действующее значение будет пропорционально сумме семплов за период. Но как отловить сам период? У меня есть некоторые свои соображения, но велосипед не хотелось бы изобретать...

Странная задача...

На ваш вопрос можно только ответить вопросами.  smile 

Если задача одноразовая возмите асцилограф, потребляемый ток правда не померияте но если изхитриться и взять некий датчик тока, например LEM все в ваших руках.

Если устройство нужно в колличестве 1 шт можно на датчиках тока и напряжения сделать (есть дорогие тарнсформаторные, хола и т.д).

вот статья про измерение переменки 
http://arduino.ru/forum/proekty/voltmetr-peremennogo-napryazheniya

Если устройство сирийное нужно подбирать детали по вопросу цены точности.

АЦП микроконтроллера не измеряет отрицательное напряжение, возможно через делитель и подтяжку к питанию вогнать синусойду в нужны пределы (но этот вариянт без гальванической развяки только для опытов).

При таком варианте программно определять пиковые значения .... Ну и по таймеру вычислять частоту ...

Спасибо за ответ. Простите, свой вопрос я задал слишком сумбурно.
Конечно, схемотехнические решения примерно оформились - развязывающий трансформатор с нужным коэффициентом трансформации, подтяжка вывода вторичной обмотки к 1,5 В питания через делитель. Т.е. на АЦП попадёт уже отмасштабированная синусоида, болтающаяся вокруг уровня 1.5 В. Проблема в другом - как её обрабатывать, особенно в условиях помех. Если бы синусоида была идеальная - никаких проблем бы не было. Но не исключены шумы. Что делать? Возможно, стоит применить ЦПОС. Но в них я пока не разбираюсь. Хотя разобраться могу. Но нужен пинок в правильном направлении - в какой книге какой пример посмотреть для начала.
Напряжение может быть с частотой, отличной от 50 Гц... Можно ли это сделать без знания частоты сигнала.
Задача уж точно не "разовая", я бы не мучился с осциллографом, а померил вольтметром. Устройство для себя, но подход перфекционистский - оно должно работать как можно точнее. Т.е. нужно применить инженерные решения, радиолюбительство не подходит.

Автор: baldman88 3.1.2017, 17:51
У ST есть http://www.st.com/content/ccc/resource/technical/document/application_note/1d/9e/30/10/62/a6/4c/38/CD00293110.pdf/files/CD00293110.pdf/jcr:content/translations/en.CD00293110.pdf. Там освещены некоторые моменты, которые Вас интересуют.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)