Перейти к содержанию

Как измерять сетевое напряжение?


Рекомендуемые сообщения

Добрый вечер. Вот уже два дня пытаюсь понять алгоритм измерения напряжения сети. Замер делаю внешним четырехканальным АЦП, данные обрабатываю микроконтроллером mega8.

Двенадцатибитный код я получил, а что делать дальше не знаю. АЦП хочу опрашивать так:

-первый вход АЦП опрашивается n-количество раз в секунду для быстрого реагирования на изменение напряжения сети; один раз в секунду выводится на индикатор; при превышении определенного напряжения реагировать.

-второй вход АЦП опрашивается в другой точке сети с выводом показаний один раз в 1-2 секунды; используется только для индикации.

-третий вход измеряет постоянное напряжение от датчика тока 1 раз в секунду, с ним проблем не вижу.

 

Короче задача подобрать способ реагировать на резкое изменение напряжения сети и выводить в буффер индикатора с погрешностью +/- 3В. Пока на этом все.

Ссылка на комментарий
Поделиться на другие сайты

Задача упростилась. Сегодня разобрался с аналоговым компоратором, так что быстро реагироввать будет он на перенапряжение сети.

Теперь мне нужно пару раз в секунду измерять напряжение. Вот нашел такую формулу:

...деление на 1,41 эквивалентно умножению на 0,709 . Если перевести число 0,709 в беззнаковое целое приведенное к 65536 (0,709 * 65536 = 46479), то можно умножить входное значение на это число, получив в результате то что надо в старших байтах. Те к примеру входное значение 3160 умножаем на 46479 : 3160*46479 = 146873640(в хексе 8C11D28), старшие 2 байта 08С1, это 2241, что и требовалось
Правильно ли будет воспользоваться ей? На сколько она будет точна.
Ссылка на комментарий
Поделиться на другие сайты

Задача упростилась. Сегодня разобрался с аналоговым компоратором, так что быстро реагироввать будет он на перенапряжение сети.

Теперь мне нужно пару раз в секунду измерять напряжение. Вот нашел такую формулу:

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

Про измерение действующего значения сети: _https://arv.radioliga.com/content/view/107/43/

Цифровой вольтметр _https://radiokot.ru/circuit/digital/measure/23/

РЕгистратор напряжения _https://radiokot.ru/circuit/digital/measure/14/

Ссылки с Кота с исходниками.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Так, кажется начал отходить от праздника, покрайней мере голова заработала.

Про измерение действующего значения сети: _https://arv.radioliga.com/content/view/107/43/

Здесь был, этот сайт меня как раз и запутал.

Цифровой вольтметр _https://radiokot.ru/circuit/digital/measure/23/

В принципе , если я не ошибаюсь, алгоритм вычисления амплитудного значения у нас одинаков, только реализован по разному.

Мой код:

 z1=ADC;
 di=4;
 while(di){
	for(z2=1;z2<z1;z2=z1){
	   ADC_Data(ADDR);
	   ADC_bit();
	   z1=ADC;
	   };
		 z3=z3+z2;
		 z2=0;
		 di--;
 };
			z4=z3/4;

Здесь я сравниваю показание с предидущим и если оно меньше то предыдущее и есть результат, если наоборот то повторяем.

 

РЕгистратор напряжения _https://radiokot.ru/circuit/digital/measure/14/

Ссылки с Кота с исходниками.

Здесь я ни чего не понял.

На сайте _https://electronix.ru/forum/lofiversion/index.php/t77648.html нашел на мой взгляд более интересный алгоритм, но опять же из-за ,порой, жестоких споров запутался.

Если по простому:

1. Отсеките все отрицательные полупериоды - (схема будет проще - можно убрать смещение / выбросить мостик, оставить только делитель и отсекающий диод да и тот можно выбросить т.к. в МК уже есть).

2. Обеспечьте семплирование АЦП с постоянной частотой Fd напр. 4kHz.

3. Словите начало очередного положительного полупериода (текущее показание с АЦП >0, а предыдущее =0), и начните суммировать все, что приходит с АЦП, заодно запоминая сколько чисел просуммировали.

4. в квадрат ничего не нужно возводить и так все числа положительные, т.к. отрицательные отсекли в п.1. (соответственно потом и корень не надо будет брать).

5. По окончанию полупериода (предыдущее показание АЦП > 0, текущее =0) остановите суммирование, поделите сумму на количество просуммированных семплов.

6. Числа получаемые в результате деления в п.5 пропустите через КИХ/БИХ фильтр по вкусу. (напр скользящее среднее по 8-ми точкам с отбросом мин и макс значений).

7. Поделите отфильтрованное число из п.6 на "K" найденное в процессе калибровки ну и собсно все - результат готов...

 

калибровка:

 

8. Измерьте среднеквадратичное напряжение в сети эталонным прибором.

9. Поделите полученное отфильтрованное число из п.6, на показание эталонного прибора из п.8, в результате получите число "K" для п.7

 

 

Вы удивитесь насколько точно оно будет работать, и ведь без никаких квадратов и корней!

Правда способ будет работать только для правильного синуса.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...