Интеграция сигнала

В моем доме у меня есть сигнал низкого напряжения переменного тока (0-10 В), который пропорционален количеству тока, которое нарисовано в любой момент (или как оно представлено: кВт) (Европа, 50 Гц). В настоящее время это просто показано как циферблат на моей кухне, конечно, я бы записал это. Я хочу исправить и интегрировать этот сингнал за соответствующий промежуток времени (возможно, минут). Насколько я вижу, у меня в основном есть два способа сделать это:

  1. Чистый подход к ардуину: использование делителя напряжения для его снижения до 0-5 В (после выпрямления) (и, возможно, для усиления стабилитрона в качестве дополнительной защиты). Затем используйте adc в arduino и измеряйте прямое напряжение. Проблема, которую я предвижу при таком подходе, заключается в том, что мне понадобится довольно высокая частота дискретизации, чтобы удостовериться, что я получаю пиковые значения. Если бы мне удалось пробовать на той же частоте, что и моя сеть, я мог бы просто откалибровать измеренное значение (если только мне не удастся скреститься), но я не думаю, что это было бы возможно. Поэтому мне кажется, что мне нужно, 500 Гц и выбрать максимальное значение с каждой 1/50 секунды.

  2. Используя opamp, несколько резисторов и capasitor для настройки аналоговой схемы интеграции, затем используйте arduino для считывания и сброса в соответствующие моменты времени. Настройка схемы интеграции для меня не проблема, но мне нужна некоторая обратная связь по схеме сброса. Я немного оглядывался, но я не нашел стандартного способа сброса схемы интегратора, похоже, идея заключается в том, что она должна интегрироваться до тех пор, пока она работает. Насколько я могу судить, поскольку пока он работает на <= 5 В, я мог бы использовать вход на ардуине для его слива? - Тогда мне нужно было бы сделать размеры таким образом, чтобы малый ток, который вводил вход arduino, позволял бы сбрасывать интегратор достаточно быстро.

Любые комментарии? Я что-то упустил? есть ли третий подход, о котором я не думал? Является ли первый подход более легким, чем я думаю?

2 голоса | спросил MortenSickel 3 MaramThu, 03 Mar 2016 10:17:39 +03002016-03-03T10:17:39+03:0010 2016, 10:17:39

3 ответа


3

Извините, но .. Зачем нужна интеграция? Просто используйте пиковый детектор, подобный этому:

 введите описание изображения здесь>> </a> </p>

<p> Выход будет «плавать» до максимального значения входного сигнала, минус падение напряжения на диоде: </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> Выход колеблется между 9,7 В и 9,2 В, что является максимальной ошибкой 5%. Если вы хотите уменьшить его, образец с частотой дискретизации не кратным 50 Гц и средним значениями. </p>

<p> Константа RC составляет 500 мс. Это означает, что для перехода от значения к нижнему требуется меньше секунды: </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> Здесь почти 500 мс он будет идти от 10 В до 5 В. </p>

<p> Если вы хотите уменьшить диодный эффект (9,7 В вместо 10 В), используйте диод Шоттки. Это, однако, не уменьшит эффект 9.2 В. </p>

<p> Вы должны разделить на 2 напряжение; вы можете либо </p>

<ol>
<li> разделите его перед диодом (но тогда эффект диода станет более очевидным - вы можете исправить его в программном обеспечении </li>
<li> разделите его после схемы (в этом случае замените резистор 500k двумя резисторами 250 кГц и возьмите напряжение в середине). </li>
</ol>
<p> Конечно, 500k и 250k не являются стандартными значениями, но вы можете использовать любое близкое значение, не влияя на поведение </p></body></html>

ответил frarugi87 3 MarpmThu, 03 Mar 2016 13:58:02 +03002016-03-03T13:58:02+03:0001 2016, 13:58:02
2

С Arduino Uno вы можете получить 9615 выборок в секунду от аналогового ввода и обработки данных одновременно. Это больше, чем достаточно, чтобы надежно обнаружить пик. Для этого вам необходимо установить АЦП «режим свободного запуска» и выполнить обработку в службе прерывания АЦП рутина. Se этот ответ для подробное объяснение и код.

О, а вместо пикового обнаружения вы можете просто интегрировать свой сигнал. Это должно быть проще, и простота хороша для данных, управляемых прерываниями обработка.

ответил Edgar Bonet 3 MarpmThu, 03 Mar 2016 13:02:06 +03002016-03-03T13:02:06+03:0001 2016, 13:02:06
0

Я не совсем понимаю, что такое «пиковое» обнаружение - это будет означать, что ваше чтение будет меняться несколько раз в секунду. Увеличивает ли ток в вашем доме столько раз в секунду? Я не думаю, что ваш счетчик электроэнергии в любом случае умный (должен быть сглаживающий эффект, я считаю). Например, если вы включили электрический чайник на 1/50 секунды, будет ли ваш внутренний счетчик точно записывать это (или сигнал 0-10V меняется)? Я лично сомневаюсь в этом, но я не дизайнер метров! Во всяком случае, вы также упоминаете, что хотите зайти через минуту? Я не понимаю, какие именно требования здесь.

В любом случае, если вы читаете ток «max» (например, вы можете точно рассчитать счета), я думаю, ваш первый подход будет работать - ведь частота выборки 50 Гц для Arduino очень низкая. Вам не понадобится частота дискретизации 500 Гц, поскольку данные не меняют , что часто в любом случае, не так ли?

Возможно, вы могли бы инициировать активность выборки, синхронизируясь с частотой сети (с которой вы ссылаетесь), а затем читаете? Используйте аналоговый вход для определения возрастающего цикла сетевого питания, а затем выполните чтение? Или используйте триггер Шмидта, чтобы вызвать Arduino (звучит немного перебор, я думаю, что Arduino мог бы все это сделать).

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

ответил Ralph S Bacon 3 MaramThu, 03 Mar 2016 11:09:14 +03002016-03-03T11:09:14+03:0011 2016, 11:09:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132