ардуино. Пид регулятор

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
Добрый день.
На основе библиотеки Алекса сделал регулятор для нагрева коробки на балконе(коробка небольшая и с термоизоляцией). Нагреватель не очень мощный, соответственно система весьма медлительна и инертна(после выключения греющего кабеля какое-то время нагрев ещё идёт, и новый разогрев не моментален)
Возникла пара сложностей.

Подобрал коэффициенты, но со временем происходит завышение температуры. и вместо 4.00 градусов постепенно температура вырастает до 4.8-4.9(далее по графикам видно что управляющий сигнал снижается и не допускает превышение температуры)
Не понимаю почему он не держится на уровне 4.00 а допускает повышение?
при этом значение с датчика и пороговое значение выводятся на дисплей
скетч собрал из примеров с библиотеки Алекса и уроков по использованию дисплеев. Возможно где-то криво перенёс сам код

скетч прилагаю

Большое спасибо
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,003
898
Схема подключения где? Как управляется нагреватель?
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@poty,


не умею рисовать схемы в ПО. накидал карандашами детскими :D
питается всё от блока на 12v. ардуинка даёт питание датчику и модулю с транзистором.

греющий кабель управляется через мосфет с помощью шим, управляет нагрузкой в те же 12
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,003
898
А что за MOSFET с 5-ю пинами? :) Допустим, минус 12В и GND на Ардуино - это одно и то же. pin11 на Ардуино это, скорее всего, ШИМ на MOSFET. Красная линия от MOSFET до +12В - это греющий кабель? А что такое +5В на MOSFET? Куда он там идёт?
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@poty, это модуль мосфета
у него +- и сигнал
ну и на нагрузку входы выходы. такой как на картинке ток с радиатором, а то греется когда шим максимальный
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,003
898
Так там VCC никуда не подключен, исходя из той информации, что есть в Интернете про этот модуль. Какую Ардуино плату используете?
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@poty, uno, как экран использую lcd shield(но его чисто как экран, кнопки не использую)

я раньше не думал об этом, но vcc на этом модуле действительно не нужен совершенно...забавно)
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@poty, для тюнинга?
хорошо. попробую
но вопрос в том почему температура поднимается выше установленного значения и удерживается регулятором, он остается
сейчас вот температуру держит 4.8-4.9 но как только выше 5 то управляющий сигнал начинает немного "прыгать"
 

poty

★★★★★★✩
19 Фев 2020
3,003
898
Надо смотреть, что выдаёт output при температуре 4 градуса. По идее он должен выдавать 0 ещё при подходе к этой температуре. И что поступает на input, возможно здесь проблема.
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@poty, на температуре в 4 градуса идут небольшие колебания, но со временем останавливается output на одном уровне(за чем и следует нагрев) а на инпут поступают данные с ds18 они же выводятся на экран. и пока 5 не стукнет сигнал не начинает уменьшаться для корректировки.

сначала думал что беда в количестве знаков после запятой. прописал 4.00 в скетче. сохраняется

но температуру выше 5 градусов не гонит и с задачей справляется) просто загадка почему именно так
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
334
104
@VladkoOladko,
Вы передаете измеренную температуру в целых числах. Все, что от 4 до 4.99 передается как 4
измените на pid.input = sensor.getTemp();
 

VladkoOladko

✩✩✩✩✩✩✩
5 Дек 2022
7
0
@Bruzzer, огромное спасибо. график стал рисоваться не "рывками"(сейчас понятно что это из-за того что только целые числа воспринимались) а обычной кривой. перезапустил систему, смотрю как стабилизироваться будет.

огромное спасибо!