Страница 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 писал(а):достаточно измерять амплитуду.... и умножить на корень из двух..
Поделить..

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

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

,сейчас буду разбираться.