1 2 3 4 5 6 7 8 9 10 6.5/10 6,40оценок: 5

Контроллер для теплицы на Arduino - 2

Тема в разделе "Теплицы и парники", создана пользователем Cofessor, 27.04.18.

  1. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Спасибо, вспомнил, что и сам встречал такое.
    В принципе, готов использовать всё, что сделано уже кем-то, если подойдёт, зачем изобретать велосипед.
     
  2. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Если что, я этих пидов понаписал. Есть и хитрым диффом. Обычный дергается на скорость изменения в любую сторону. Например отслеживание осевой линии. А если все время ведет влево к примеру? Или правая нога короче? Или дрова быстрее разгораются, чем тухнут?
    Интересная тема. Как и любая другая.
    У Гайвера про ПИД на ардуино грамотно и кратко. Да много чего у него есть. К примеру библиотека под 18в20 намного проще, чем оригинальная. Классно работало, пока зима не настала. Оказалось она минуса не считает. Чисто ознакомительная для песочницы. А мужики то не знали!
     
    Последнее редактирование: 25.04.25
  3. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Заметил, что интегрирующее звено вообще ни разу отдельно не упомянул - редко требуется?
     
  4. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    На старте интеграл нулевой. Но он аккумулирует ошибку и вскоре становится главным рулевым. Подменяет роль пропорциональной. То есть на старте большая пропорциональная ведет. К цели она уходит в ноль. Ну раз ошибка уменьшаетмя при подходе в ней. Но накапливается интегральная и берет управление в свои руки. А пропорционал уже только подруливает на дискретах датчика. А основной вклад уже у созревшего интеграла. Буйвол и лань.
     
  5. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    ВУЗов ни по программированию, ни по автоматизации я не кончал, поэтому, прости, требуется разжевать.
    Ну с диф вопросов нет - скорая помощь при всплесках (дунул ветер, солнышко спряталось за тучку). А вот как работает связка пропорциональное-интегральное регулирование? Правильно я понимаю, что мера пропорционального ответа на возмущения неизвестна и принимается на основе либо расчёта, либо из пальчика? В результате, не попадаем в точку - либо больше, либо меньше. Тогда кумекаем: с пропорциональным регулированием не угадали, надо увеличить или уменьшить меру воздействия - как бы выполняем функции интегрального регулятора?
    Т. е. у регулятора должен быть запас мощности, чтобы при необходимости увеличить корректирующее воздействие. Но на практике, я смотрю, тут тему долго вели - там вопрос достижения даже не рассматривался, мол, всё равно свести рассогласование к нулю невозможно, так уменьшить бы отклонение хоть на сколько - смех да и только. А кипежу было!
     
  6. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Ну если упомянули ПИД один из вариантов
    if (millis()-mil_pid>100){/ строб
    mil_pid = millis();/каждые 100 мс вычисление. Не суть. По месту.
    Int=Int+ (Set_T-T)*Ki_T; /накопление интеграла. Разница задания и действительной на коэфф. Который по месту. На глаз должен насобираться за время до первого выбега. Перебор приводит к автоколебаниям.

    if (Int>cons|Int<-cons){Int = 0; rep=POW;}
    /cons границы интеграла. Обычно в пределах диапазона работы. Допустим 100. Ну что бы не заныривал глубоко, что бы потом долго выныривать. Эта строка нетипична. Позволяет динамично двигать эти границы если прижмет. Точнее перестааляет точку отсчета rep. Некой заранее выставленной крейсерской мощи для облегчения работы ПИДа

    Dif= (Set_T-T) - prevErr;
    prevErr = (Set_T-T);/ расчет дифффа. Потом умножится на свой коэфф.

    }

    POW= (Set_T-T)*Kp_T +Dif*Kd_T+Int+rep;
    POW= constrain (POW,0,100); /Ну и сам ПИД и ограничение в рамках дозволеного. В данном случае 0-100%. Kp_T коэфф пропорционала.
    По Николасу остальные в ноль, его подкидываешь до появления автоколебаний. И выставляешь 0,63 от него. По другому: не должен дотягивать до задания что бы не получалось перерегулирования и провокации автоколебаний. Если выставить достаточно большой, получится обычный позиционный регулятор. Выбор других описан в литературе. Я делаю на глаз в зависимости от исполнителя. Допустим тен можно дергать хоть мильен раз в секунду. А клапан разобьет при том же качестве регулирования.
     
  7. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Я тоже академий не кончал. Самоучка можно сказать. Вот гифка одного из вариантов работы коэффициентов.
    Имхо не совсем так с пропорционалом. Он не должен заскакивать за задание. Но для наглядности пойдет.
    Картинка. Если проскочит. Не проскакивает. Тогда в вики пид регулятор. Там гифка графика.
     
  8. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
  9. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Продолжение. Как это виртуально работало вчера. Была использована автоматика, заточенная под самогон. Конкретно выставлено задание 35,6 цельсия (давно написана и это соответствует 356 для экономии памяти на дробных. Не суть.) И Кр 50 на глаз. При деиятвительной температуре на градуснике 35,78 ардуина выбрала скорость дымососа 41%. Черное на графике.
     

    Вложения:

    • IMG_20250426_082702.jpg
    • Screenshot_2025-04-25-21-08-31-456_com.emrctn.BluetoothGraphics.jpg
  10. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Сейчас в теплице 33. Скорость дымососа выставилась100%. То есть (35,6-33) *50 (Кр) + 50 (rep) =180. Ограничена до 100%
    Это виртуально. Дымосос не подключен, так как дрова еще не горят. Все дела после завтрака.
     
  11. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    Так ведь заранее неизвестно значение коэффициента. Естественно, заметив перерегулирование, вы его уменьшите.
    Да, мне только Николаса не хватало. :)
    Я пока вообще не пойму, зачем в теплице ПИД-регулятор. Он для очень точного регулирования, а на практике, невзирая на сложную автоматику, регулирование параметров у многих, гордящихся сложностью своих систем, никакое. Т. е., если посмотреть на графики, кривые, в лучшем случае, лишь несколько приближаются к оптимальным значениям (Зачем? - Взял, расширил диапазон допустимых значений на плюс минус километр - и ничего из допустимого диапазона не выходит. :)]).

    Температура и влажность воздуха - самые изменчивые параметры в теплице и это самая большая проблема. Какой диапазон температуры воздуха удерживаете с помощью ПИД?
    Грунт - да, если утеплить стенки и дно, можно поддерживать с точностью 1*С даже без П-регулятора. Ну, с грунтом понятно - он сам теплоизолятор, тепло не разбазаривает.
     
  12. Cofessor
    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482

    Cofessor

    Виталий

    Cofessor

    Виталий

    Регистрация:
    23.06.13
    Сообщения:
    9.323
    Благодарности:
    8.482
    Адрес:
    Брянск
    И ещё. Такое впечатление, что влажности для вас вообще не существует. Не знаю, как в вашей теплице, а в моей в летнюю жару она порой опускается до 8-10% - растения просто ссыхаются. Ладно, что помидоры - растения феноменальной живучести, у меня обычно в конце лета они снова начинают бурно отрастать и цвести, а вот огурцы не выдерживают.

    Вопрос - как с помощью ПИД регулятора одновременно регулировать и температуру и влажность, зная, что изменение одного вызывает изменение другого, и при этом надо выдерживать между ними определённое соотношение, как вы выдерживаете диапазон каждого в отдельности?

    Регулирование каждого параметра по отдельности бессмысленно - например, температура идеальная (25*С), а влажность 8% - всё в теплице загибается.
    Или ночью - теплица закрыта, температура в норме, а влажность 90% - на листьях роса, с росой споры грибков плывут по листу, попадают в устьица и заражают растения изнутри, к осени все растения пожухлые.
     
  13. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Вот пример как ардуина считает насколько открыть заслонку буржуйки, что бы в комнате было 24 цельсия двое суток, пока закладка не прогорит. Это финишь. Серая заслонка уперлась в полное открытие. С одной стороны и нафик это не надо, трубу открыл, зажег. Прогорело, закрыл. Если не забыл и не перепутал. Но если есть процессор, пусть соображает. А не только дисплеем моргает. Правильно только задание выдать. Вот в чем вопрос.
    Красное цель. И ход танцев.
     

    Вложения:

    • IMG_20250425_230904.jpg
  14. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.511
    Благодарности:
    1.442
    Кстати студентом налаживал испытательные климатические камеры Немо. Тропики под оборонный ззаказ.
    Температура и влажность в жестких пределах. 76 год прошлого века. Тогда тиристоры были вдиковинку. Ртутные клизмы на механике с моторчиком от немцев.
    Я ваще балдел. Моторчик крутит рамку. Если рамка попадает в стрелку прибора, идет пробуксовка и клизма не опрокидывается. А не попадает, полный цикл и клизма опрокидывается. И ртуть замыкает контакт. Тосность показаний 0,5%.Точность срабатывания1%. Одно слово немцы.
     
  15. kivik71
    Регистрация:
    28.10.13
    Сообщения:
    3.860
    Благодарности:
    2.275

    kivik71

    Живу здесь

    kivik71

    Живу здесь

    Регистрация:
    28.10.13
    Сообщения:
    3.860
    Благодарности:
    2.275
    Адрес:
    Екатеринбург
    Не .. это Ваше наблюдение за не основным фактором .. основной фактор другой - это внешние условия: температура, облачность, солнце, ветер.
    Погодозависимая автоматика вот что нужно для теплицы, а не управление второстепенными параметрами.