Страница 1 из 1

Как померять переменное напряжение

Добавлено: Ср фев 22, 2012 23:12:19
elf
Доброго времени суток уважаемые Коты!
В программировании не силен так что прошу сильно не пинать)
У меня есть следующая задача- нужно мерять среднее значение переменного напряжения.теоретически я понимаю как это должно быть:
1. Получить через равные промежутки N отсчетов АЦП в течение одного периода измеряемого напряжения.
2. Возвести результаты в квадрат и просуммировать.
3. Извлечь квадратный корень из полученной суммы.
4. Умножить полученный результат на масштабирующий коэффициент и вывести результат на индикатор.

А практически долбусь уже второй день ниче не получается.Прошу Вашей помощи

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 05:21:37
wws63
А вы не пробывали использовать схему прецизионного выпрямителя на ОУ, с последующей подачей сигнала на АЦП МК.
ИтМХО только так, а всё программные уловки - пустая трата времени :))

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 08:41:18
borys
Обычно именно так и делается в промышленных приборах.

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 08:56:50
urry
1 int i; должна быть статик или volatile, кстати, где обнуление суммы результата измерения long int r, когда i=0 ?
2. Зачем там массив, так и не понял.
3. все долгоиграющие процессы выполнять в основном цикле, в прерывании ставится флаг готовности, который в этом же цикле и анализируется. У Вас же в основном цикле идет вывод непонятно чего. Вывод должен идти после того, как все посчитано.
4. Выражение long int r; с точки зрения си правильное, но зачем там знак, у Вас же только положительные числа.
Просто пишите unsigned long r , кстати, оно тоже volatile
http://www.pic24.ru/doku.php/osa/articl ... r_chainiks
5. Приведение типов - "m+=ADCW*ADCW;//возводим в квадрат и записуем в массив"
Посмотрите отладчиком, что будет, если 1000 умножить на 1000 - удивитесь наверняка. Может, и нет - я плохо знаю кодевижин. :) Пробуйте приводить числа к разрядности результата -(unsigned long)ADCW*(unsigned long)ADCW
6. Где извлечение квадратного корня, деление на количество градаций и умножение на младший разряд, тоже не увидел.
7. Данный вариант подходит для измерения выпрямленного переменного напряжения, для не выпрямленного чуть по-другому.
8.Слово реле пишется с одним л , простите за занудство.

Это что в глаза бросилось, детально не анализировал.

--------------------------------------------------------------------------------------------
С праздником 23 февраля, мужики !!!!

--------------------------------------------------------------------------------------------

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 15:31:22
Jack_A
urry писал(а): 7. Данный вариант подходит для измерения выпрямленного переменного напряжения, для не выпрямленного чуть по-другому.
А именно : вычисляется среднее арифметическое N отсчетов, и в квадрат возводится разность Ui - Uср. Тут уж массив как бы и нужен. Или разве что использовать среднее от предыдущих N отсчетов.

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 17:01:23
Alexeyslav
И еще важно взять целое число периодов, иначе результат будет значительно "прыгать" либо выборку придется выполнять на огромных интервалах.

И кстати, это не СРЕДНЕЕ значение, а СРЕДНЕКВАДРАТИЧНОЕ. Все же, понятия сильно отличаются.
Среднее значение синусоидального переменного напряжения равно нулю, среднеквадратичное - корень из двух помноженный на амплитуду.

Кстати, если сигнал строгой синусоидальной формы, достаточно измерять амплитуду(ищем максимальное значение среди выборок на интервале равном 2-м периодам исследуемого сигнала) и умножить на корень из двух...

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 17:10:16
МитяРа
Alexeyslav писал(а):достаточно измерять амплитуду.... и умножить на корень из двух..
Поделить.. :tea:

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 21:33:45
urry
в эпоху импульсных БП о красивой синусоиде можно забыть.
Ну имхо, конечно.
2 ТС
чуток поправил Ваш код...
Оппозиция должна быть конструктивной :)

Re: Как померять переменное напряжение

Добавлено: Чт фев 23, 2012 21:55:12
elf
Огромное спасибо всем - за помощь, узнал много интересного.Отдельная благодарность urry
за подправленный код :)) ,сейчас буду разбираться.