Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
11.01.2009, 00:51
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Помогите с измерением переменного напряжения ATMega,ADC,RMS
Доброй ночи. Столкнулся с проблемой, вычисляю значение переменного тока следующим образом:
MCU - ATmega16
Измеряется положительный полупериод.
АЦП закручен чере прерывание, по приходу следующего прерывания инициализируется новое измерение.
Считаются суммы квадратов не нулевых значений ADCW а также количество этих значений между двумя нулевыми значениями. Далее извлекается квадратный корень из суммы деленой на кол-во отчетов. Количество отчетов находиться в районе 312-315 за полупериод.
Проблемы - Крайне не стабильные показания, проблемы на низких значениях входного напряжения.
Посоветуйте если что не так длаю...
|
|
|
|
11.01.2009, 03:49
|
|
Прописка
Регистрация: 30.06.2006
Сообщений: 147
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
|
вот те числа 315 шт нужно сразу возводить в квадрат
и только потом интегрировать. Вообще этот промежуток должен определяться временем интегрирования.
Я делал так- возводил в квадрат, делил на 16,
интегрировал 24 разр., извлекал корень 24 разряда,
умножал на 2 опять интегрировал, переводил в BCD и
дальше выводил на индикатор.
выпрямитель аппаратный на операционниках.
|
|
|
|
11.01.2009, 12:20
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Так я так и делаю, в прерывании:
sum - 32 битная глобальная переменная
sum+= adc_value * adc_value;
count++;
после нахождения второго нуля -
rms = sqrt(sum/count)
может проблема во входной части?
у меня обычный делитель с защитным стабилитроном и конденсатор для фильтрации высших гармоник
|
|
|
|
11.01.2009, 18:19
|
|
Прописка
Регистрация: 30.06.2006
Сообщений: 147
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
|
думаю проблема в том, что схема слижком привязана
к нулям. думаю в промежутке от одного нуля ко второму
будет проблематично мерять. а если частота возрастет,
получается число интегрирования завязано за входной сигнал а оно должно быть точным.
у меня интеграторы получаются 200мс, посчитай сколько там полупериодов (хотя на 50гц) отсюда и точность.
|
|
|
|
11.01.2009, 18:20
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
дано - 50 Герц +- 1%
|
|
|
|
11.01.2009, 19:17
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Произвел замеры непосредственно всех значенийвыборок АЦП
(Приложен экселовский Файл), увидил странную задержку на 176 выборке при Prescaller-6 @ 12MHz. в симуляторе (Proteus) такого не наблюдается...
Прикрепленный файл: 431176.rar
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:35.
|
|