Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Проверка и калибровка датчика влажности для точных измерений

Насколько точен ваш датчик влажности? Узнайте с этим проектом.

Датчики влажности обычны, относительно недороги и бывают самых разных типов. Слишком часто мы смотрим в даташит, используем их с интерфейсом и (пока значения «выглядят разумно») принимаем результаты.

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

Используемая тестовая установка (слева направо: плата микроконтроллера Quark D2000, интерфейс датчика, датчик HIH5030 в микросреде).

Основы проекта

Для проверки точности датчика полученные значения сравнивают с эталонным стандартом. Для проверки датчика влажности используем «метод насыщенных солей» для производства стандартов. Простыми словами, определенные соли (ионные соединения, такие как поваренная соль или хлорид калия), растворенные в водном растворе, создают атмосферу с известной влажностью (см. справочный PDF).

Эти химические свойства используются для создания микросред с известными процентами относительной влажности (RH) (эталонными стандартами), и датчики считываются внутри микросреды. Конкретно, мы готовим раствор в герметичной банке для сохранения атмосферы, затем помещаем подключенный датчик в герметичную банку. После этого датчик считывается многократно и значения записываются.

Повторяя процедуру с несколькими разными солями, каждая из которых производит разную относительную влажность, мы можем разработать профиль тестируемого датчика. Поскольку мы знаем RH для каждой микросреды, можем оценить отклонения показаний датчика от известных значений и тем самым оценить точность датчика.

Если отклонения существенны, но не непреодолимы, можно применить математические процедуры калибровки в ПО для повышения точности измерений.

О безопасности

Прежде чем идти дальше, необходимо ответственно обращаться с химикатами, используемыми в этом проекте.

Используемые соли

В общем, чем больше RH-атмосфер вы можете произвести для эталонных стандартов, тем лучше характеристика тестируемого датчика. Однако всегда есть практический предел ресурсов. В этом проекте использовано четыре эталонных стандарта, соли выбраны для покрытия диапазона возможных значений RH, а также с учетом безопасности, доступности и стоимости.

Ниже перечислены соли. В случае хлорида натрия (поваренная соль) использовалась чистая кошерная соль, купленная дешево в местном магазине. Если идете этим путем, избегайте соли с добавками, такими как йод или антикомпоненты.

Соли, использованные в проекте
Соль % RH (при 25°C) Источник Лист данных безопасности
Хлорид лития 11.30 Home Science Tools SDS для LiCl
Хлорид магния 32.78 Home Science Tools SDS для MgCl
Хлорид натрия 75.29 Разные (см. текст) SDS для NaCl
Хлорид калия 84.34 Home Science Tools SDS для KCl

Создание микросреды

Существуют стандарты почти для всего, и есть даже стандарт для создания стабильной RH из водного раствора (см. ASTM E104 – 02(2012)). Хотя моя верстак, и, вероятно, ваша, не официальная тестовая лаборатория, полезно следовать спецификациям стандарта максимально близко.

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

Для каждой соли создавалась кашицеобразная смесь добавлением дистиллированной воды до консистенции очень мокрого песка. Можно попробовать 4–5 столовых ложек химиката и 1 столовую ложку дистиллированной воды, но может потребоваться экспериментирование.

Смесь готовилась в небольшой банке с герметичной крышкой. Стекло или пластик подойдут, если они удерживают атмосферу внутри. В крышке можно сделать небольшое отверстие для пропуска проводов к интерфейсу датчика и микроконтроллеру. Подключенный датчик позиционируется примерно в 0,5–1,0 дюйма над смесью. Берегитесь, чтобы датчик не контактировал напрямую с раствором — он может быть поврежден. Для фиксации соединения и загерметизирования отверстия в крышке можно использовать легко удаляемую контактную пасту.

Важно дать достаточно времени на равновесие перед финальным чтением. Я проверял это эмпирически, делая замеры каждую минуту до шести часов в выбранных случаях. По моему опыту, это дольше, чем нужно, и я остановился на 90–120 минутах равновесия для каждого датчика и соли. Затем среднее последних пяти показаний использовалось как итоговое значение. Во всех случаях пять значений показывали очень малое, если вообще, различие.

Кроме того, все замеры проводились при ~25° C (± 1°) окружающей температуры, и значение RH для каждого стандарта бралось при 25° C (см. этот PDF для значений).

Датчик HIH5030 на плате-носителе внутри микросреды с хлоридом натрия.

Железо

Микроконтроллер

В этом проекте мы взаимодействуем с датчиками через микроконтроллер Quark D2000. D2000 — 3V плата с интерфейсами I2C и аналого-цифровым.

Имейте в виду, что практически любой другой микроконтроллер с подходящими интерфейсами может быть использован.

Интерфейсы датчиков

Тестируемые датчики в проекте: A) HIH8121, B) HIH5030, C) DHT-22 (AM2302), D) HIH6030 (на плате-носителе).

Тестировались четыре типа датчиков влажности: DHT-22 (два использовались), HIH5030, HIH6030 и HIH8121. Схемы ниже иллюстрируют простые интерфейсы для каждого типа, а консультация с даташитами даст фон для схем.

Интерфейс DHT-22 к D2000.

DHT-22 BOM: U1, датчик DHT-22; R1, 4,7кОм резистор; C1, 0,1 мкФ конденсатор.

Интерфейс HIH5030 к D2000.

HIH5030 BOM: U1, датчик HIH3050; U2, оп-амп MCP601P; C1, 1,0 мкФ конденсатор; C2, 0,1 мкФ конденсатор.

Интерфейс HIH6030 к D2000.

HIH6030 BOM: U1, датчик HIH6030; R1 и R2, резисторы 2,2 кОм; C1, 0,22 мкФ конденсатор; C2, 0,1 мкФ конденсатор.

Интерфейс HIH8121 к D2000.

HIH8121 BOM: U1, датчик HIH8121; R1 и R2, резисторы 2,2 кОм; C1, 0,22 мкФ конденсатор.

Программное обеспечение датчиков

Все программы для сбора данных датчиков написаны на языке C и доступны для скачивания кнопкой «Humidity Sensor Project Code». Каждая прокомментирована и проста. Для каждого датчика программа просто читает датчик каждую минуту и отправляет значение на серийный монитор. Таким образом, их легко адаптировать к вашему приложению.

Скриншоты вывода DHT22.c (слева) и HIH5030.c (справа).

Процедура оценки датчика

Таблица ниже содержит данные оценки датчиков в каждой из четырех микросред.

Процент RH для тестовых датчиков (OBS = наблюдаемое значение, ERR = ошибка как разница от стандарта, RMSE = среднеквадратичная ошибка)
DHT #1 DHT #2 HIH5030 HIH6030 HIH8121
Эталон RH OBS ERR OBS ERR OBS ERR OBS ERR OBS ERR
11.30 (LiCl) 12.56 1.26 16.29 4.99 13.02 1.72 20.79 9.49 12.31 1.01
32.78 (MgCl) 32.36 -0.42 33.79 1.01 33.46 0.68 40.77 7.99 32.43 -0.35
75.29 (NaCl) 73.04 -2.25 74.50 -0.79 77.74 2.45 83.83 8.54 76.63 1.34
84.34 (KCl) 82.30 -2.04 82.15 -2.19 85.84 1.50 93.43 9.09 85.01 0.67
RMSE 1.657 2.799 1.708 8.796 0.920

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

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

Вместо этого вычисляем среднеквадратичную ошибку (RMSE) для характеристики точности датчика. Формула RMSE:

где O — наблюдаемое значение датчика, I — идеальное значение датчика (эталонный стандарт). Для расчета RMSE возводим в квадрат каждую ошибку (отклонение от эталона), вычисляем арифметическое среднее этих значений и извлекаем квадратный корень из среднего.

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

Например, результаты для HIH8121 впечатляют. RMSE менее 1%, все точки выборки имеют ошибку менее 2%.

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

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

Процедура калибровки датчика

Для калибровки датчика нужно сначала математически определить функцию, связывающую идеальные значения с наблюдаемыми. Можно использовать процедуру линейной регрессии для определения этой функции.

Слово «линейная» в названии регрессии не означает линейную функцию. Термин относится к линейной комбинации переменных. Результирующая функция может быть линейной или криволинейной. Все три полиномиальные функции ниже представляют линейную регрессию (примечание: мы игнорируем случай 0-й степени, бесполезный в этом контексте).

  1. y = ax + b (первая степень, линейная)
  2. y = ax2 + bx + c (вторая степень, квадратичная)
  3. y = ax3 + bx2 + cx + d (третья степень, кубическая)

В текущем проекте мы вычисляем значения датчика, используя четыре эталонных стандарта (n = 4). Таким образом, полином третьей степени — максимальной возможной степени. Всегда верно, что максимальная степень полинома — n – 1, здесь 3 (4 – 1).

Процедуры наименьших квадратов обычно используются для линейной регрессии. В этой процедуре линия подгоняется так, чтобы сумма расстояний от каждого датума до линии была минимальной. Много программ используют наименьшие квадраты для линейной регрессии. Можно даже использовать Excel (кликните для информации).

Также стоит отметить, что не обязательно использовать линейную регрессию. Можно использовать нелинейную регрессию. Примеры нелинейной регрессии дают степенную или Фурье-функцию. Линейная регрессия, однако, хорошо подходит для данных нашего проекта, и программная коррекция (калибровка) легко реализуется. На самом деле, в этом проекте я не верю, что нелинейная регрессия даст какой-то выигрыш.

Выбор полинома

Теоретически мы хотим использовать полином, который лучше подходит к данным. То есть полином, дающий наименьший коэффициент детерминации, обозначаемый r2 (или R2, «R squared»). Чем ближе r2 к 1, тем лучше подгонка. При оценке наименьших квадратов всегда верно: чем выше степень полинома, тем лучше подгонка.

Однако не обязательно автоматически использовать полином максимальной степени. Поскольку калибровка происходит в ПО, могут быть случаи, когда использование полинома низшей степени дает преимущество в скорости и/или памяти, особенно если точность, приобретаемая высшей степенью, очень мала.

Ниже мы демонстрируем процедуры калибровки для датчика HIH6030, используя полиномы разной степени, и тем самым иллюстрируем общую процедуру, применимую к любой выбранной степени полинома.

Используя данные из предыдущей таблицы, сначала выполняем процедуру регрессии наименьших квадратов для определения коэффициентов каждого полинома. Эти значения приходят из пакета регрессионного ПО. Результаты ниже, включая значения r2.

  1. Линейный: y = ax + b; a = 1.0022287, b = -8.9105659, r2 = 0.9996498
  2. Квадратичный: y = ax2 + bx + c; a = -0.0012638, b = 1.1484601, c = -12.0009745, r2 = 0.9999944
  3. Кубический: y = ax3 + bx2 + cx + d; a = 0.0000076, b = -2.4906103, c = 1.2061971, d = -12.7681425, r2 = 0.9999999

Наблюдаемые значения теперь можно модифицировать, используя вычисленные функции. То есть показания датчика можно калибровать, как показано в таблице ниже (OBS, Corrected, ERR округлены до двух знаков).

Наблюдаемые и калиброванные значения HIH6030 с использованием полиномов
RAW 1-я степень 2-я степень 3-я степень
Ref RH OBS ERR Corrected ERR Corrected ERR Corrected ERR
11.30 20.79 9.49 11.93 0.63 11.36 0.06 11.30 0.00
32.78 40.77 7.99 31.95 -0.83 32.83 0.05 32.78 0.00
75.29 83.83 8.54 75.11 -0.18 75.85 0.55 75.29 0.00
84.34 93.43 9.09 84.73 0.39 84.83 0.49 84.34 0.00
RMSE 8.795736 0.562146 0.371478 0.00212

Видно, что все три полинома дали значительное снижение RMSE по сравнению с наблюдаемыми мерами, и именно поэтому калибруют. График ниже иллюстрирует улучшение с полиномом 1-й степени. Обратите внимание, как калиброванные (исправленные) точки теперь лежат около идеальной диагонали.

Читать подробнее…

Как проверить и откалибровать датчик влажности

Текущий проект / пост также можно найти по:


Производственный процесс

  1. Датчики влажности: принцип работы и ключевые применения
  2. Датчик DHT11: принцип работы и ключевые применения
  3. Raspberry Pi и HDC2010: полное руководство по настройке I2C датчика температуры и влажности
  4. Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
  5. Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
  6. Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
  7. Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
  8. Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
  9. Точный мониторинг температуры и влажности с SHT15 на Windows 10 IoT Core
  10. Пошаговое руководство по инспекции и диагностике неисправностей двигателей постоянного тока