Я намагаюся написати програму мікроконтролера для контролю температури в системі з такими характеристиками:
- вихід може бути увімкнено або вимкнено, з фіксованою частотою циклу (~ 2-10 на годину)
- Рослина повільно реагує (вимірювані зміни температури займають тривалий час> 10 хвилин).
- Рослина втрачає температуру, виходячи з умов навколишнього середовища.
- Задана величина може змінюватися великими кроками залежно від потреби користувача.
Я пишу контролер, який має на меті мінімізувати помилки, а також дотримуватися частоти циклу, наданої як вхід.
Це можна легко зробити за допомогою контролера PI, і його вихід перетворюється на робочий цикл. Проблема полягає в тому, що програмі потрібно автоматично налаштувати та вибрати правильні константи Kp, Ki та адаптуватися до різних умов навколишнього середовища та змін теплової потужності. Тому заздалегідь налаштування ПІ-контролера не надто корисна.
Використання фактичного PI або PID не є обов'язковою умовою. Я готовий використовувати Fuzzy-Logic, якщо це допомагає, також є алгоритм машинного навчання на мікросхемі, який моделює системну реакцію та втрати тепла (лінійний прибл.), Який підказує інформацію про виміряну ступінь відгуку . Просто не знаю, що робити з цією інформацією.
Кілька публікацій припускають, що я можу використати дані моделювання для налаштування PI в режимі он-лайн, а також посібник з перегляду лабораторії, який підказує, що я можу використовувати Fuzzy-Logic для налаштування PI.
Моє запитання полягає в тому, який найкращий підхід для подібного сценарію (наприклад, PID, нечіткий під, згортання тощо) і як би я міг реально реалізувати його в програмному забезпеченні / практиці.
Я не EE, тому будь-який внесок буде дуже вдячний.