Умный дом в котором я живу. Вентиляция. Автоматизируем по полной. ч2. Регулируем задание термостата

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

Вот этот

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Но шутки в  сторону. Для этих целей в 1900 лохматых годах люди изобрели ПИД-регулятор.

ДИСКЛАЙМЕР.

Далее будут страшные вещи. Ни каких красивостей и тонкого внутреннего мира. Только ТАУ (Теория автоматического управления) и чуток матана (Математический анализ).

Картинка для устрашения.

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Читаете дальше?  Ну  что ж. Я предупредил. На картинке выше  нарисован  ПИД регулятор во всей красе.

Для тех, кто не изучал  Теорию Автоматического Управления (ТАУ) поясню. Он  получает на вход  сигнал рассогласования, и выдает управляющий  сигнал, который собирается из  пропорциональной  компоненты P, т.е.  ошибки умноженной  на некоторое число.  Компоненты I - интегралу  ошибки за  некий промежуток времени, и компоненты D - производной  ошибки опять же помноженной  на некий коэффициент.

А нафига оно вообще?

П компонента вырабатывает сигнал  препятствующий отклонению от задания. Но при П управлении  у нас  всегда  будет  ошибка.

И компонента  эту ошибку помогает  устранить, но вот  беда - тут  возникают колебания. 
Д компонента - прогнозирует  изменения  ошибки и нивелирует  запаздывание  управления.


Итак, с теорией разобрались,  начинаем

Для этого даже сделан кастомный компонент https://github.com/fabiannydegger/custom_components. Одна проблема - он у меня при запуске настройки ругался на деление на ноль.


Ну, что-ж  будем  лепить ручками.

Итак, для простоты  пусть мы  управляем по  средней температуре в  жилых комнатах

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

далее  заводим  компонент  типа  input number  для формирования  задания.

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Вычисляем  ошибку

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

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

Суть в чем. Мы делаем П регулятор  и начинаем  задирать коэффициент пропорциональности до  тех пор пока не добьемся  колебаний.  Измеряем  период колебаний и коэффициент при котором нас начало колбасить. 

В моем случае Кu=40 и период колебаний Tu=2 часа

Теперь понятно  почему кастомный  компонент  ругался  - он то  надеялся  увидеть колебания в течении 15 минут.

Далее рассчитываем  компоненты

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост
Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Здесь  кроется  одна  подлая  штука.  Установка  не способна  выдать температуру  ниже температуры чистого  притока и выше температуры рекуперации (мы их  вычислили в 1-й части  нашего сериала), что бы  ПИД регулятор себе не фантазировал. И тут  кроется 1 засада. Пока  задание  от  регулятора  вне  пределов регулировки установки,  интегратор нам  такого  наинтегрирует, что колебаться будем долго  и несчастливо.  Поэтому  при входе в насыщение, мы обнулим  интегратору  ошибку. 

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

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

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

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

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Расслабились  интегрируя. Теперь напряженно  продифференцируем

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Все, собираем  расчет ПИД регулятора.

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

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

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

В качестве начального  задания (чтобы  не  отрабатывать  все  регулирование за счет  ошибки) я  беру и считаю  медианное  значение уставки за 12 часов.

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

И предпоследний  акт марлезонского балета -  выставить задание в  терморегулятор вентустановки

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

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

Умный дом в котором я живу. Вентиляция. Автоматизируем по  полной. ч2. Регулируем задание термостата Умный дом, Home assistant, Автоматизация, Вентиляция, Длиннопост

Все, грубая настройка  регулятора закончена. В следующей серии будет fine tuning имеющейся  конструкции для  более точного и  плавного  регулирования.


За сим наступило утро и Шахрезад прекратил дозволенные речи.

Умный дом

133 поста2.2K подписчика

Добавить пост