Точний контроль температури води


9

У мене такі налаштування:

  • Ардуїно Дуеміланове
  • Невеликий водонагрівач, підключений до оптичного реле (ШІМ нормально)
  • Водонепроникний датчик температури DS18B20
  • Невідома кількість води (але датчик температури та нагрівач завжди під водою).

Як я можу точно контролювати температуру води на основі показань датчика температури? Точно я маю на увазі точність датчика температури (в даному випадку ± 0,5 ° C). Все повинно працювати на Arduino, тому додаткові можливості зберігання чи обробки даних не доступні. Для налагодження я можу використовувати комп'ютер.

Я спробував запустити PID, але це здається дуже важким

  1. Уникайте перенапруження - перебіг цільової температури спочатку або при додаванні (холодної) води
  2. Стабілізуйте належним чином після додавання холодної води.

Ви налаштували свій PID або просто використовували стандартні значення?
Пітер Блумфілд

Я намагався налаштувати параметри PID за допомогою різних посібників "як настроїти PID", не пощастивши. Я також спробував PIDAutotune , але нічого кращого не вдалося отримати. Я не кажу, що PID не може підходити до цього.
Оллі

З водяним опаленням у вас буде багато невідповідностей. Де знаходиться нагрівач у вашому баку щодо температурного зонда?
Метт Кларк

1
Вам, мабуть, доведеться додати щось, що змішує воду, щоб гомогенізувати температуру протягом усієї температури. Тоді вам доведеться враховувати теплові властивості вашого нагрівального елемента, скільки часу потрібно для охолодження після відключення тощо. Це залежить також від кількості води в системі. Якщо ви можете контролювати температуру нагрівального елемента, це піде довгим шляхом.
Даніель

Не є частиною вашого банкомату, але варто зазначити: не плутайте точність, точність та повторюваність. Точність означає, наскільки близька повідомлена температура до фактичної температури. Точність - це найменша різниця, яку пристрій може розрізнити (.0625 град.С для DS18b20). Повторюваність - це те, наскільки різні показники однієї температури змінюються один від одного. Останні два викликають більше занепокоєння, ніж перші. Навіть з точним датчиком +/- 0,5 градусів, ви все одно можете утримувати температуру (або принаймні розрізняти різниці, що є необхідною умовою) кількох 1/16 градусів ....
JRobert

Відповіді:


2

Вам потрібно знати час реакції вашої системи та повторюваність вимірювань, щоб охарактеризувати ваші дані (встановити довіру). Я пропоную взяти зразки та провести середнє значення, перш ніж увімкнути нагрівач.

Імхо, вода не буде щасливо перебувати в межах 0,5 ° C. Чи можете ви дозволити грубі та тонкі режими? Використовуйте більш високу ШІМ для великих відмінностей, а потім нижчу ШІМ, коли близька до цілі.

Потрапивши до своєї цілі, ви можете спробувати покращити стабільність температури. Хоча заздалегідь складені речі, такі як PID, працюють для багатьох, я звичайно реалізую такі функції вручну.


0

BrettAM, dE (швидкість зміни помилки) буде змінюватися в якості параметра керування, в цьому випадку ширина імпульсу сигналу нагрівального елемента модулюється, змінюється PID. Моє формулювання сказало, що швидкість зміни похибки температури була поганим вибором. Похідний термін також буде працювати над тим, щоб подбати про невеликі коливання питомої теплоти води з температурою (4,186 кДж / (кг К) при 20 ° С до 4,219 кДж / (кг К) при 100 ° С).

Маю на увазі, так, похідний термін обчислює швидкість зміни dE. Оскільки помилка тут - різниця між бажаною температурою та фактичною температурою, то похідна обчислює зміни швидкості нагрівання води.

Проблема полягає в тому, що часто важко створити стабільну систему з похідним терміном. Система PID повинна базуватися насамперед на пропорційному терміні. Коли ви змінюєте кількість води, на мою думку, ви створюєте більше нелінійності, ніж може компенсувати PID. З цієї причини необхідність PID бути дещо повторюваною, і якщо рівень води різко змінюється, його система вже не повторюється.

ДО ОП: У моїй подібній конструкції я намагаюся використовувати невеликий радіатор / вентилятор і компресор 12В постійного струму для подачі води в якості способу охолодження води назад. Я відчуваю, що це може працювати краще. У разі успіху я повідомляю вас.


Ласкаво просимо в Arduino SE! Це не відповідає безпосередньо на запитання (схоже, більше відповіді на інший коментар). Чи можете ви скористатися кнопкою редагування, щоб уточнити, як ця інформація відповідає на питання? Дякую!
Анонімний пінгвін

-2

Потрібно підтримувати постійну кількість води, що нагрівається. Швидкість, з якою зростає температура води, зміниться, коли ви зміните кількість води (додаючи холодну воду, як ви згадали). Пропорційно-інтегрально-похідний контролер (PID) працює відслідковуючи похідну (швидкість зміни) змінної, яку ви намагаєтеся контролювати. Ваш ПІД ніколи не буде працювати належним чином, якщо швидкість зміни температури не буде (розумно) постійною.

Погляньте на питому теплоту води, головним чином рівняння Q = c m dT. Q - додається тепло, яке, як я вважаю, є постійним у ваших налаштуваннях. m - маса речовини, що нагрівається (повинна бути постійною!). c - питома теплота води, яка становить 4,186 джоулів / грам * градус. Якщо Q, m і c постійні, то dT, швидкість, з якою піднімається ваша температура води, також буде постійною (насправді c трохи змінюється в залежності від температури, але я б сказав, що це можна ігнорувати, якщо ви працюєте з 0- 100С). Спробуйте налаштувати свій PID постійною кількістю води, і ви можете отримати кращі результати.

Який водонагрівач ви використовуєте? Зараз я роблю щось подібне, але намагаюся використати гарячу пластину з хімічної лабораторії і переживаю величезні переступи. Я думав перейти на нагрівач акваріума, але хотів би знати, що ви використовуєте?

-Матт


PID не передбачає, що швидкість змін є постійною. Якби dE (швидкість зміни помилки) була постійною, термін "D" не був би там. крім того, вода буде нагріватися повільніше при високій температурі, оскільки більше тепла втрачається на пару, скільки води. PID може бути ідеально налаштований на певну теплову масу, але він все одно повинен працювати для широкого діапазону рівнів води та зовнішніх температур / тиску.
BrettAM
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.