← Все публикации

🫖 Умный чайник тупее обычного

У меня стал барахлить в последнее время чайник — слишком долго не может понять что он уже закипел. Это не обычный нормальный чайник с биметаллической пластиной, а такой типа модный с контролем температуры и поддержанием её в нужном значении, если надо. Понятно что там скорее всего загрязнился какой-то сенсор, но я подумал что вообще там же как раз тот самый PID-регулятор, а чайник это отличный пример посведневного использования производных в быту, так сказать.

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

Допустим, мы убеждены что нам нужна вода температуры 85°C (кто-то нас убедил что такой чай, который мы завариваем, нельзя заваривать более горячей водой — чай "сгорит"). Кажется логичным такой наивный алгоритм: если температура меньше 85°C — включить нагреватель, если больше 85°C — выключить. Элементарная программа, две строчки кода:

если температура < 85:
    держи нагреватель включённым
иначе:
    выключай

С виду всё нормально, но на практике будет дичь. Система начинает дёргаться: включился нагреватель, температура поползла вверх, достигла 85°C — выключили. Вода продолжает нагреваться по инерции, становится ну пусть 86°C. Нагреватель молчит. Потом вода остывает до 84°C — он включается. И так далее. Получается износ, чайник щёлкает реле как кастаньетами, мощность скачет, температура прыгает. Непорядок. Плюс инерция эта ещё — пока нагреватель работает, тепло распространяется по воде с задержкой. Выключил нагрев при 85°C, а температура ещё минуту растёт до 87°C. Как если бы курсор мышки продолжал двигаться после того как мы перестали двигать мышкой, весьма не очень.

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

Этот же пост в Telegram ↗