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

 
 
 
Reply to this topicStart new topic
> Измерить переменное напряжение микроконтроллером
megabuks
сообщение Jun 15 2013, 16:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 26-01-10
Из: Санкт-Петербург
Пользователь №: 55 080



Добрый день
Требуется измерить переменное напряжение 220в 50Гц с помощью микроконтроллера msp430.
Входной сигнал через делитель подается на вход встроеного в контролер АЦП.
Сейчас получается около 200 отсчетов на период. Если подаю постоянное напряжение, то
проблем нет, получаю код ацп соответствующий поданому напряжению.
Если переменное - то получаю оцифрованую синусоиду.
Вопрос в том, как дальше обрабатывать отсчеты, что-бы посчитать значение напряжения.
Где посмотреть алгоритмы как это делается, книжки формулы ....
Go to the top of the page
 
+Quote Post
Plain
сообщение Jun 15 2013, 17:34
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



http://www.google.ru/search?q=rms+algorithm
Go to the top of the page
 
+Quote Post
АндрейЦ
сообщение Jun 15 2013, 17:58
Сообщение #3


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

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



Цитата(Plain @ Jun 15 2013, 20:34) *


С десяток топовых ссылок рассказывают о Rate-monotonic scheduling. Совет в стиле.
Какое именно напряжение нужно получить? Амплитудное, действующее?

http://electronix.ru/forum/index.php?showt...=47367&st=0
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jun 15 2013, 18:02
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(megabuks @ Jun 15 2013, 20:55) *
Сейчас получается около 200 отсчетов на период.


Найдите среднеквадратичное значение этих отсчетов и дело в шляпе.
1. Находим среднее значение, как сумму всех 200 отчетов, деленную на 200. Должно получиться ноль, однако на него не зарекаемся, т.к. центр сигнала может быть смещен:
Uср = summa(Ui)/200
2. Находим сумму квадратов отклонений от среднего (дисперсию):
D = summa((Ui-Ucp)^2)
3. Находим средневадратичное значение:
U = sqrt(D/200);
Это и есть результат, который вам нужен.
А если вам аплитуда нужна, то умножьте еще на корень из двух.
http://tel-spb.ru/ac.html
Go to the top of the page
 
+Quote Post
_pv
сообщение Jun 15 2013, 18:09
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



http://www.ti.com/lsds/ti/microcontroller/...ing#electricity
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jun 15 2013, 18:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Что, взаправдашний синус после оцифровки? то есть у Вас оно сначала было сдвинуто относительно нуля вверх а потом оцифровано?
Тогда ничего нет сложного: размах от минимального до максимального есть удвоенная амплитуда, то есть 2A. Чтобы узнать RMS нужно A разделить на корень из двух.
То есть: находите максимальный и минимальный отсчеты, их разность делите на два корня из двух, это и будет RMS в приведенных единицах АЦП. Далее, зная опорное напряжение и коэффициент деления входного делителя, вычисляете реальное напряжение RMS в вольтах.
Go to the top of the page
 
+Quote Post
megabuks
сообщение Jun 15 2013, 19:11
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 26-01-10
Из: Санкт-Петербург
Пользователь №: 55 080



Цитата(АндрейЦ @ Jun 15 2013, 20:58) *
Какое именно напряжение нужно получить? Амплитудное, действующее?
http://electronix.ru/forum/index.php?showt...=47367&st=0


действующее

Всем спасибо, пошел читать....

Сообщение отредактировал megabuks - Jun 15 2013, 19:16
Go to the top of the page
 
+Quote Post
АндрейЦ
сообщение Jun 15 2013, 19:17
Сообщение #8


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

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



Цитата(megabuks @ Jun 15 2013, 22:11) *
действующее


Как уже советовали находите тем или иным способом двойную амплитуду и делите на корень из двух.
А уж просто ищите max и min или суму квадратов отклонений, как проще и удобнее.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 17 2013, 05:34
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Еще один метод вычисления максимума синусоидального сигнала.
Делаете два измерения имеющих относительный фазовый сдвиг в 90 градусов (или 270 градусов).
Благодаря этому получаете мгновенные синус и косинус. Далее квадратный корень от суммы их квадратов, это и будет амплитуда.
Я так когда-то вычислял амплитуду для 250-кГц сигнала (заодно и фазу) и для этого применял CORDIC...

И еще один, вдогонку, для 50Гц.
Вычисляем интервал времени между двумя минимумами. После прихода очередного минимума ждем половину от того что вычислили и делаем измерение, это и будет амплитуда синуса.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Jun 17 2013, 05:52
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(megabuks @ Jun 15 2013, 20:55) *
Добрый день
Требуется измерить переменное напряжение 220в 50Гц с помощью микроконтроллера msp430.


именно для MSP430 у TI есть референс дизайн счётчика электроэнергии вычисляющего кучу параметров (по току и напряжению). Ищите на их сайте. Там есть исходник проекта целиком и библиотека вычислительная открытая.
Go to the top of the page
 
+Quote Post

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

 


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


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