#1 Вчора 18:12:58

nickjust
Учасник
Зареєстрований: 2024-06-13
Повідомлень: 49

Термостанція для ребола BGA

Вітаю
Колега попросив зробити термостанцію на Arduino nano,2 max6675,2 ssr-40da
Проект Леоніда
В наявності є Плита(низ) 1500 вт
Прошив,спаяв...і така проблема : Не тримає температуру , пригає на 5-10 градусів.
Я так поняв проблема в PID коефіціентах.Вже 6 годин махаюсь і поки ніяк
Може хто таке робив?

https://forum.arduino.ua/img/members/3885/iralpha.zip

https://forum.arduino.ua/img/members/38 … rduino.zip

Остання редакція nickjust (Вчора 18:13:28)

Неактивний

#2 Вчора 23:41:26

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 829

Re: Термостанція для ребола BGA

nickjust пише:

Не тримає температуру , пригає на 5-10 градусів.

Як саме пригає?
Виведіть та збережіть діагностику: Input, Output та Setpoint для того канала, який налаштовуєте. Покажіть її тут. Бажано побудувати графік - по ньому буде видно, що там відбувається.
Якщо утворюються автоколивання, то або перерегуляція - завеликі коефіцієнти P або I, або недостатнє демпферування - замалий коефіцієнт D. Ще може бути завеликий період циклу, але у вас 250 мс - для нагрівача має бути ок.

nickjust пише:

Я так поняв проблема в PID коефіціентах.Вже 6 годин махаюсь і поки ніяк

У вас, наскільки бачу, коефіцієнти прямо в скетчі захардкоджені? І кожний раз перезбираєте і прошиваєте? Звісно, так підбирати - велика морока.
Перепишіть скетч, щоб задавати коефіцієнти з компа. Тоді підбирайте класичними методами.

Оффтопік порада.

if(Time>TimePidWork+250){

- ніколи не порівнюйте беззнакові таймпоінти без врахування переповнення типів. Або порівнюйте беззнакові тривалості, або зберігайте таймпоінти як числа зі знаком. Але коректне перетворення беззнакових типів у знакові в C++ не зовсім тривіальне, так що краще просто порівнюйте тривалість від початкового таймпоінта до поточного із константою.
Звісно, в цьому конкретному випадку це не критичний баг, але корисно мати звичку писати код без помилок.

Остання редакція dimich (Сьогодні 01:44:55)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму