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

System Charging Basics (Юни 2019).

$config[ads_text] not found
Anonim

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


Колко точно е вашият сензор за влажност? Разберете с този проект.

Сензорите за влажност са често срещани, относително евтини и се предлагат в много различни сортове. Твърде често проверяваме листа с данни, използваме ги с интерфейс и (доколкото стойностите "изглеждат разумни") приемаме резултатите.

В този проект ние демонстрираме как да направим още една стъпка и да проверим точността на датчика за влажност. Ние също така илюстрираме общ метод за калибриране на сензора и прилагаме метода за калибриране на резултатите, за да подобрим точността на измерванията на влажността .

Тестова настройка, използвана в проекта (от ляво на дясно, микроконтролера Quark D2000, сензорен интерфейс, сензор HIH5030 в микро-среда).

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

За да се провери точността на сензора, получените стойности се сравняват с референтния стандарт. За да проверите точността на датчика за влажност, използваме метода "наситена сол", за да създадем стандартите. Просто казано, някои соли (т.е. йонни съединения, като например натриева сол или калиев хлорид), когато се разтварят във воден разтвор, създават атмосфера с известна влажност (вж.

Тези химични свойства се използват за създаване на микро-среди с известни проценти на относителна влажност (RH) (т.е. референтни стандарти), а сензорите се отчитат в микро-средата. По-конкретно, ще направим решение в запечатан съд, за да запазим атмосферата, и след това поставете свързания сензор в запечатания буркан. След това сензорът се чете многократно и се записват стойностите.

Чрез повтаряне на процедурата, използвайки няколко различни соли, всеки от които произвежда различна относителна влажност, можем да разработим профил на тествания сензор. Тъй като ние знаем каква е относителната влажност за всяка микро-среда, ние можем да оценим отклоненията на нашите сензорни показания от тези известни стойности и по този начин да оценим точността на датчика.

Ако отклоненията са значителни, но не непреодолими, можем да прилагаме математически процедури за калибриране в софтуера, за да увеличим точността на измерванията.

Една дума за безопасност

Преди да продължите, е важно да се справяте отговорно с химикалите, използвани в този проект.

  • Прочетете информационния лист за безопасност (SDS или понякога информационния лист за безопасност на материалите) за всеки от използваните химикали (връзки за SDS за всяка използвана сол са дадени по-долу и можете също така да проведете литературни проучвания за всяка сол и нейното безопасно процедури за обработка).
  • Не вдишвайте или поглъщайте химикалите.
  • Да не се допуска контактът на химикалите с кожата или очите (използвайте ръкавици и очила).
  • Не подготвяйте разтворите в същата област, в която се приготвя храната.
  • Съхранявайте правилно химикалите.
  • Правилно изхвърлете решенията и всички инструменти, използвани за приготвяне на разтворите, така че експозициите да не се случват случайно.
  • Преди да започнете, знайте какво да правите, ако се случи случайно излагане (вижте листа с данни за безопасност).

Използвани соли

Като цяло, колкото повече RH атмосфери можете да произвеждате за референтни стандарти, толкова по-добра ще бъде характеристиката на тествания сензор. Все пак винаги има ограничения за ресурсите в практически смисъл. В този проект бяха използвани четири референтни стандарта и солите, използвани за производството на референтните стандарти, бяха избрани да покрият редица възможни стойности на RH, но също така и с оглед на безопасността, наличността и разходите.

Избрани са солите по-долу. В случая на натриев хлорид (натриева сол), чиста кошерна сол се получава евтино в местния хранителен магазин. Ако тръгнете по този маршрут, избягвайте да използвате сол с добавки, като например йод или противослепващи агенти.

Соли, използвани в проекта
Сол % RH (при 25 ° С) източник Информационен лист за безопасност
Литиев хлорид11.30Начало Инструменти за наукаSDS за LiCl
Магнезиев хлорид32.78Начало Инструменти за наукаSDS за MgCl
Натриев хлорид75.29Различни (вижте текста)SDS за NaCl
Калиев хлорид84.34Начало Инструменти за наукаSDS за KCI

Създаване на микро-среда

Разполагаме със стандарти за почти всичко и има дори един за създаване на стабилна относителна влажност от воден разтвор (виж ASTM E104 - 02 (2012)). Докато моята пейка, а може би и ваша, не е официална лаборатория за тестване, е целесъобразно да следвате спецификациите в стандарта възможно най-близо.

Обърнете внимание, че резултатите, представени в този проект, макар и събрани внимателно, не трябва да се тълкуват като отразяващи или посочващи цялостно качествено изявление за точността на всяка марка сензор. Бяха тествани само малък брой сензори, а използваните бяха с различна възраст и различна история на употреба.

За всяка сол е създадена мека смес чрез добавяне на дестилирана вода до консистенция, подобна на много влажен пясък. Четири или пет супени лъжици химически и една супена лъжица дестилирана вода може да се опита, но може да се наложи малко да експериментирате.

Сместа е направена в малък буркан с плътно уплътнение. Стъклото или дори пластмасата трябва да работят добре, стига да запази атмосферата вътре. В горната част на буркана може да се направи малка дупка, за да се свържат проводниците към интерфейса на сензора и след това към микроконтролера. Свързаният сензор е поставен на около 0, 5-1, 0 инча над сместа. Внимавайте, че сензорът никога не влиза директно в разтвора или вероятно ще бъде повреден. За да задържат връзката на място и да запечатат дупката в капачката, може да се използва някаква лесно отстраняема контактна замазка.

Важно е да имате достатъчно време за уравновесяване, преди да вземете последното четене. Тествах този проблем емпирично, като взех четения на всяка минута до шест часа в избрани тестови случаи. Според моето преживяване това беше по-дълго от необходимото и аз се установих на 90-120 минути време за уравновесяване за всеки сензор и сол. Тогава средната стойност от последните пет показания беше използвана за крайната стойност. За всички случаи петте стойности показаха много малка разлика, ако има такава.

Освен това, всички отчитания са взети при около 25 ° С (± 1 °) околна температура и стойността на RH, използвана за всеки стандарт, е посочената за 25 ° C (вижте този PDF за стойностите).

HIH5030 сензор върху носеща плоча вътре в микро-среда, съдържаща натриев хлорид.

железария

микроконтролера

В този проект свързваме сензорите с помощта на микроконтролер Quark D2000. D2000 е 3V платка с I2C и аналогово-цифров интерфейс. За повече информация относно D2000, читателят е насочен към тези предишни статии за AAC:

  • Представяне на комплекта за разработване на микроконтролери Intel D2000 Quark
  • Съветът за развитие на Quark D2000: Преместване отвъд "Здравей свят"
  • Интерфейс Quark D2000 I2C: Добавете светлинен сензор и LCD
  • Интерфейс Quark D2000 I2C: Добавете цветен сензор и асинхронен режим

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

Сензорни интерфейси

Сензори, тествани в проекта; А) HIH8121, В) HIH5030, С) DHT-22 (AM2302), D) HIH6030 (върху носеща дъска).

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

  • DHT-22 е датчик за температура и влажност със собствен сериен изход (вижте тази статия в ААС за повече информация относно използвания сериен протокол).
  • HIH5030 е сензор за влажност с аналогов (напреженов) изход. Интерфейсът за този сензор използва оптичен усилвател в конфигурация за усилване на единицата за импедансно съвпадение.
  • HIH6030 и HIH8121 са сензори за температура и влажност, които използват протокола I2C (вижте тази статия в ААС за повече информация относно използваните процедури за комуникация I2C).

DHT-22 до D2000 интерфейс.

DHT-22 BOM: сензор U1, DHT-22; R1, 4.7kΩ резистор; C1, 0, 1 μF кондензатор.

Интерфейс HIH5030 до D2000.

HIH5030 BOM: сензор U1, HIH3050; U2, MCP601P op-amp; C1, 1, 0 μF кондензатор; C2, 0.1 μF кондензатор.

Интерфейс HIH6030 до D2000.

HIH6030 BOM: сензор U1, HIH6030; R1 и R2, 2, 2 kΩ резистор; C1, 0.22 μF кондензатор; C2, 0.1 μF кондензатор.

Интерфейс HIH8121 до D2000.

HIH8121 BOM: сензор U1, HIH8121; R1 и R2, 2, 2 kΩ резистор; C1, 0.22 μF кондензатор.

Сензорен софтуер

Всички програми за събиране на сензорни данни са написани на езика C и могат да бъдат изтеглени чрез кликване върху бутона "Код на проектния сензор за влажност". Всеки от тях е коментиран и ясно. За всеки датчик програмата просто чете сензора всяка минута и изпраща стойността на сериен монитор. Като такива, те трябва да бъдат лесни за адаптиране към вашето конкретно приложение.

Снимки от изхода от DHT22.c (вляво) и HIH5030.c (вдясно).

Програмните файлове за проекта могат да бъдат изтеглени, като кликнете върху връзката по-долу.

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

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

Таблицата по-долу съдържа данните от оценката на сензорите във всяка от четирите микро-среди.

Процент RH за тестовите сензори (OBS = наблюдавана стойност, ERR = грешка като разлика от стандартната, RMSE = средна квадратна грешка на root)
DHT # 1 DHT # 2 HIH5030 HIH6030 HIH8121
Референтна относителна влажностOBSERROBSERROBSERROBSERROBSERR
11.30 (LiCl)12.561.2616.294.9913.021.7220.799.4912.311.01
32.78 (MgCl)32.36-0, 4233.791.0133.460.6840.777.9932.43-0, 35
75.29 (NaCl)73.04-2, 2574.50-0, 7977.742.4583.838.5476.631.34
84.34 (КС1)82.30-2, 0482.15-2, 1985.841.5093.439.0985.010.67
RMSE1.6572.7991.7088.7960.920

След като сте събрали данните от производителността на датчика в стабилна среда с известна относителна влажност, можете да изчислите цифровата точност на датчика.

Обърнете внимание, че в таблицата изчислихме грешката за всеки датчик при всеки RH стандарт. Не можем обаче просто да осреднем тези стойности, за да оценим сензора, защото някои стойности са положителни и други стойности са отрицателни. Ако просто взехме средна стойност, получената стойност ще намали до минимум средната грешка, тъй като положителните и отрицателните стойности ще се отменят взаимно.

Вместо това изчисляваме средна квадратична грешка (RMSE), за да характеризираме точността на сензора. Формулата за RMSE е по-долу:

където O е наблюдаваната стойност на сензора и I е идеалната стойност на датчика (т.е. референтния стандарт). За да изчислим RMSE, ние квадрат всяка грешка (отклонението от референтния стандарт), след това изчисляваме средната аритметична стойност на тези стойности и накрая, вземаме корен квадратен от средната стойност.

След като сте определили точността на сензора, можете да използвате RMSE, за да решите дали е необходимо да калибрирате сензора. В някои случаи RMSE е малък и напълно приемлив за вашата кандидатура и можете разумно да решите, че не е необходимо калибриране.

Например, резултатите за HIH8121 са впечатляващи. RMSE е по-малко от 1%, а всички проби имат грешка по-малка от 2%.

От друга страна, в някои случаи може да откриете, че реакцията на сензора е толкова лоша и нередовна, че просто решавате, че друг сензор е необходим за вашето приложение.

Решението за калибриране винаги трябва да отчита степента на точност, необходима за задачата. Въпреки това можем да подобрим точността на отчитанията на сензорите чрез калибриране за всички сензори в таблицата.

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

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

Думата "линейна" в името на регресионната процедура не означава линейна функция. Вместо това терминът се отнася до линейна комбинация от променливи. Получената функция може да бъде линейна или криволинейна. И трите полиномиални функции по-долу представляват линейна регресия (забележете: пренебрегваме случай от 0 градуса, който не е полезен в този контекст).

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

В настоящия проект изчисляваме стойностите на сензорите, като използваме четири еталонни стандарта (т.е. n = 4). По този начин, полином от трета степен е полиномът с най-висока степен, който можем да изчислим. Винаги е възможно възможно най-високият полином да е n - 1, а в този случай това означава 3 (4 - 1).

Процедурите с най-малките квадрати обикновено се използват за линейна регресия. При тази процедура линията е пригодена така, че сумата от разстоянията от всяка точка до линията да е колкото е възможно по-малка. Има много програми, които използват най-малките квадрати, за да изпълняват линейна регресия. Можете дори да използвате Excel (кликнете тук за повече информация).

Трябва също така да се отбележи, че не е нужно да използваме линейна регресия. Можем да използваме нелинейна регресия. Примерите за нелинейна регресия водят до функция за захранване или функция на Фурие. Линейната регресия обаче е много подходяща за данните на нашия проект и освен това софтуерната корекция (калибриране) се изпълнява лесно. Всъщност в този проект не вярвам, че ще спечелите много от всичко, като използвате нелинейна регресия.

Избиране на полинома

На теория искаме да използваме полинома, който най-добре отговаря на данните. Това означава, че полиномът, който произвежда най-малкия коефициент на определяне, обозначава r 2 (или R 2, изразен "R квадрат"). Колкото по-близко r 2 е до 1, толкова по-добре е. При оценката на най-малките квадрати, винаги е така, че колкото по-висока е степента на използвания полином, толкова по-добре е да се побере.

Вие обаче не трябва автоматично да използвате възможно най-високия полином. Тъй като калибрирането ще се осъществи в софтуера, може да има случаи, при които използването на полином с по-ниска степен представлява предимство за скоростта и / или паметта, особено ако точността, която трябва да се постигне с използване на полином от по-висока степен, е много малка.

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

Използвайки данните от предишната таблица, първо правим процедурата за регресия на най-малките квадрати, за да определим коефициентите за всеки полином. Тези стойности ще идват от използвания софтуер за регресия. Резултатите са по-долу, включително стойностите r2.

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

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

HIH6030 Наблюдавани и калибрирани стойности, използващи полиноми
RAW Първа степен 2-ра степен 3 степен
Ref RH OBS ERR Коригирана ERR Коригирана ERR Коригирана ERR
11.3020.799.4911.930.6311.360.0611.300.00
32.7840.777.9931.95-0, 8332.830.0532.780.00
75.2983.838.5475.11-0, 1875.850.5575.290.00
84.3493.439.0984.730.3984.830.4984.340.00
RMSE8.7957360.5621460.3714780, 00212

Може да се види, че и трите полиноми са довели до значително намаляване на RMSE в сравнение с наблюдаваните мерки и затова калибрирате. Графиката по-долу илюстрира подобрението, използвайки полином от първи клас. Обърнете внимание, че калибрираните (коригирани) точки за данни сега са в близост до идеалния диагонал.

Scatter диаграма на изхода от сензор HIH6030.

Калибриране в софтуера

След като сме извършили калибриранията и сме избрали полинома, можем да модифицираме софтуера, за да включи корекциите в сензорните данни. Използвайки примера HIH6030.c, можем да променим програмния код, както следва:

Първоначално изчислената променлива е RH. В горните кодови линии сме създали три нови променливи, представляващи калибриране (RHCal1, RHCal2, RHCal3). За илюстрация, ние създадохме нови променливи, използвайки всеки от трите полиноми, докато на практика вероятно ще калибрирате стойността на сензора, използвайки само избрания полином.

Обобщен пример

За да се обобщят стъпките за проверка и калибриране на датчик за влажност, е представен краен пример, използвайки данни от сензора DHT-22 (# 2), който беше оценен.

  • Първата стъпка е да се оцени производителността на сензорите, като се използват референтни стандарти.

Това е направено чрез използване на солите в микро-среда, за да се произведат атмосфери с известни относителна влажност. Данните са събрани и са представени в таблица, представена по-рано. Можем да охарактеризираме точността на датчика, използвайки термина RMSE, който също се появява в таблицата. Въз основа на резултатите от първата стъпка можем да решим дали да извършим калибриране на датчика. Ако е така, преминете към втората и третата стъпка.

  • Втората стъпка е да се извърши линейна регресия, за да се определи функция, която свързва идеалната стойност на RH (от стандартите) с наблюдаваната стойност от показанията на датчика.

Тук ние избрахме кубичен полином (y = ax 3 + bx 2 + cx + d, където y е калибрираната стойност и x е сензора) и определихме, че коефициентите са a = 0.000091367, b = -0.01452993, 1.77623089 и d = -14.17403758.

  • Последната стъпка е да се променят стойностите на сензора, като се използва полином за изчисляване на калибрираните стойности.

Модификациите (калибриранията) се изпълняват в софтуера и превеждат показанията на датчиците към техните калибрирани еквиваленти.

Графиката по-долу илюстрира резултата от стъпките. Графиката включва наблюдаваните стойности, както и калибрираните стойности (за събраните данни), получени от калибрационния полином.

Scatter диаграма на изхода от сензор DHT-22.

Заключителни мисли

В този проект демонстрирахме метод за оценка на точността на сензорите за обща влажност. Това означава, че чрез използването на химични свойства за разработване на референтни стандарти, можем да сравним сензорните показания със стандартни стойности и да определим независимо точността на сензорите. Освен това, ние демонстрирахме софтуерна процедура за калибриране на показанията на сензора и по този начин да произведем по-точни измервания на относителната влажност.

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