wim 6 21 ноября, 2018 Опубликовано 21 ноября, 2018 · Жалоба 27 minutes ago, Arlleex said: Такая схема позволяет мне измерять ток до 20А с точностью примерно 0.1А. Если без калибровки - не верю. Там погрешность коэффициента передачи 1,5%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 21 ноября, 2018 Опубликовано 21 ноября, 2018 · Жалоба С калибровкой по простой табличке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба On 11/21/2018 at 10:56 PM, Arlleex said: Частота семплирования у меня 60кГц, что дает 1200 выборок на один период 50Гц. После взятия текущего отсчета, возвожу его в квадрат и добавляю к предыдущему квадрату выборки и т.д. до конца. На 1200-й цикл вычисляю квадратный корень из этой суммы и делю на 1200, получаю RMS. Прошу любой критики... Скользящий (кольцевой) буфер нужно делать. И КАЖДЫЙ ОТСЧЕТ находить среднеквадратичное значение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба А кольцевой-то почему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба Зачем кольцевой буфер делать? У меня вообще нет буферов для отсчетов. Для каждого текущего отсчета я вычисляю добавку к RMS. В конце 1200-го сэмпла всего лишь вычисляю корень из получившейся суммы, деленной на 1200 (количество выборок). Получившееся значение RMS записываю в структуру сообщений блока измерения и отправляю нуждающимся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба 2 hours ago, Herz said: А кольцевой-то почему? Потому что скользящее окно. Пишем по кругу, считаем в любом порядке. Окно прямоугольное. 37 minutes ago, Arlleex said: У меня вообще нет буферов для отсчетов. Это я кагбэ понял. Фиксирование окна эквивалентно прореживанию выходных отсчетов. У Вас проблемы с потреблением и бОльшую часть времени МК спит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба 39 минут назад, my504 сказал: Потому что скользящее окно. Пишем по кругу, считаем в любом порядке. Окно прямоугольное. Это я кагбэ понял. Фиксирование окна эквивалентно прореживанию выходных отсчетов. У Вас проблемы с потреблением и бОльшую часть времени МК спит? Не совсем понимаю, как прореживаются отсчеты... Мой АЦП молотит на 60кГц, каждый отсчет я обрабатываю. Никаких проблем с потреблением - Вы это о чем? У меня параллельно работают 12 таких каналов оцифровки: - входное напряжение 220В, 50Гц; - потребляемые токи по 5 независимым каналам 220В, 50Гц; - фазные напряжения трехфазной сети 200В, 400Гц; - фазные токи этой трехфазной сети. Все прекрасно считается и никаких прореживаний. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба 50 minutes ago, Arlleex said: никаких прореживаний. Quote - Ты суслика видишь? - Нет! - А он ЕСТЬ!!! Количество отсчетов на входе в 1024 раза больше, чем на выходе. Это и есть прореживание. Но если скорость передачи данных не превышает 50 результатов в секунду, то прореживание не принципиально... Про потребление я говорил в связи с отказом от скользящего окна. Вычислительное время экономится. А значит и потребление. ЗЫ. Если не секрет, это расчет потребления силовой сети или чистый мониторинг токов и напряжений? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 25 ноября, 2018 Опубликовано 25 ноября, 2018 · Жалоба 8 минут назад, my504 сказал: Количество отсчетов на входе в 1024 раза больше, чем на выходе. Это и есть прореживание. ЗЫ. Если не секрет, это расчет потребления силовой сети или чистый мониторинг токов и напряжений? А, ну если с такого бока смотреть, то да, результаты выдаются реже, чем принимаются и обрабатываются отдельные выборки сигнала. Не секрет - это делалось для мониторинга питающих напряжений и токов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 25 ноября, 2018 Опубликовано 25 ноября, 2018 (изменено) · Жалоба Кстати, может подскажет кто: вопрос чисто для понимания сути происходящего. Есть АЦП. И в даташите вижу такое: В одной умной книжке написано(1), что условием монотонности передаточной функции АЦП/ЦАП, а также условием отсутствия пропуска кодов является |DNL| < 1 LSB. Вот и кому верить? Самое интересное, книгу писала та же компания, чья и микросхема АЦП, на которую выше приведена вырезка из даташита. (1)Книга "Проектирование систем цифровой и смешанной обработки сигналов" от Analog Devices, с. 26. Изменено 25 ноября, 2018 пользователем Arlleex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба 22 hours ago, my504 said: Потому что скользящее окно. Пишем по кругу, считаем в любом порядке. Окно прямоугольное. Если считать кумулятивное скользящее среднее, то достаточно одной ячейки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба On 11/26/2018 at 12:36 PM, Herz said: Если считать кумулятивное . Мы говорим о конкретной проблеме или вообще о чем то? Автор не считает среднее. Автор считает среднеквадратичное значение. И поскольку квадрат суммы не равен сумме квадратов, с кумулятивностью может и не сложиться... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба CurrentValue = CALCULATION_SAMPLE_CONVERSION(ADC.Group1.Data, EEPROM.ADC220C1.Zero, ADCTransferRatio.ADC220C1); // нормализуем отсчет Sample220C1 += CurrentValue*CurrentValue; // копим сумму квадратов if(ADCSampleCounter == (HW_ADC_50HZ_SAMPLE_QUANTITY - 1)) // по достижению нужного числа отсчетов RMS.RMS220C1 = sqrtf(Sample220C1/(float)HW_ADC_50HZ_SAMPLE_QUANTITY); // делим на количество отсчетов и извлекаем корень Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 ноября, 2018 Опубликовано 28 ноября, 2018 · Жалоба В 25.11.2018 в 16:02, Arlleex сказал: В одной умной книжке написано(1), что условием монотонности передаточной функции АЦП/ЦАП, а также условием отсутствия пропуска кодов является |DNL| < 1 LSB. Вот и кому верить? ... необходимым, но не достаточным условием. Если DNL < 1 LSB, пропуска кодов не будет. А если DNL = 1.5, монотонность и пропущенные коды можно иметь, а можно и не иметь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться