Як навчитися PID-контролю?


26

Я хочу навчитися PID (пропорційно-інтегральному – похідному) контролю головним чином щодо температури.

Я хотів би дізнатися бажано за допомогою легкого проекту.

Чи можете ви порадити щось, на що пішло б кілька тижнів?

Редагувати: Я хочу контролювати температуру резервуара для води. Нагрівання проводиться резистором.


Я намагався отримати базовий проект, з якого хтось міг навчитися, я думаю, що математика також цікава. Люди присвячують це своє життя.
Кортук

Що ви хочете контролювати температуру?
Дж. Полфер

3
Оскільки ви не можете відводити тепло, вам потрібно переконатися, що ваша система все одно охолоне, навіть якщо подавати невеликий струм, або у вашого піда може виникнути проблеми з регулюванням. Я б, можливо, додав вентилятор або лід, коли ви зробите свій експеримент. Ви хочете, щоб він піднімався вгору, коли ви перебуваєте на повному рівні, і знизився, коли ви виходите. У такому випадку зворотний зв'язок буде регулюватися для вас.
Рекс Логан

1
Це визначається необхідною температурою резервуара для води. Якщо він хоче 80С, то темп навколишнього середовища буде достатньо, якщо він хоче 25С, то у нього виникне проблема. PID при правильній настройці повинен мати змогу боротися з повільною втратою темпу.
Кортук

Відповіді:


27

Контролювати температуру (це залежить від вашого середовища) не дуже важко. Це був мій перший проект, коли я почав. Простите, якщо я повторюю речі, які ви вже знаєте.

Я припускаю, що у вас вже є спосіб управління системою (тобто нагрівач або охолоджуючий пристрій) і спосіб отримання зворотного зв'язку з системою (датчик температури, як термістор або щось подібне). Вам знадобиться і те, щоб реалізувати цикл PID, який є типом управління замкнутим циклом. Все, що вам потрібно зробити після цього - написати трохи програмного забезпечення для надсилання команд управління, читання зворотного зв'язку та прийняття рішень за цим зворотним зв'язком.

Я б почав з читання PID без кандидата наук . Це стаття, яку я використав, коли мені вперше довелося регулювати температуру в науковому експерименті. Він надає легкі для розуміння картинки та приємний зразок коду (основний цикл, який ви можете налаштувати, потребує лише 30 рядків), який пояснює, як керувати вашим "рослиною" - у цьому випадку, ви хочете контролювати температуру .

Суть PID - пропорційно-інтегрально-диференціального - управління полягає у використанні миттєвої, минулої та прогнозованої майбутньої роботи (відповідно) системи, щоб визначити, як керувати системою в даний момент часу для досягнення заданої заданої точки. У багатьох випадках вам доведеться налаштувати коефіцієнти посилення алгоритму, щоб отримати потрібну вам продуктивність - як швидко підніметься температура, наскільки ви хочете уникнути перегріву тощо. Можливо, ви навіть виявите, що вам не потрібен різниця або навіть цілісне управління, щоб дістатися там, де ви хочете бути!


не міг згадати, куди пішла ця посилання на PID без кандидата наук. Я забув про його назву і не міг пригадати те, що я читав так давно. +1 сер.
Кортук

3
PID без кандидата наук - чудова стаття! Однак добре, мій 8-бітовий мікроконтролер не сподобався арифметиці з плаваючою точкою ..
abdullah kahraman

Просто відмінно! PID без PHD ідеально. У мене є PHD, але я зробив усе можливе, щоб уникнути теорії управління :) Також люблю послідовник міні-рядків.

@Bistromath Будь ласка, не додайте "дякую" як відповідь. Коли у вас буде достатня репутація , ви зможете проголосувати питання та відповіді, які вам здаються корисними.
м.Алін

10

Так. Отримайте термістор і резистор. Підберіть опір, який може тягнути пристойно великий струм (> 100 мА).

Використовуйте термопасту між ними і обклейте їх скотчем. Підключіть ланцюг термістора до мікроконтролера через АЦП. Використовуйте транзистор для управління резистором і керуйте цим за допомогою ШІМ.

Розробіть PID, який дозволяє керувати температурою за допомогою циферблату та практикувати виготовлення PID, який завищує та дзвонить температуру. Зробіть це завищеним і візьміть назавжди, щоб досягти температури, і намагайтеся критично затухати і досягати максимальної швидкості до температури.

Повідомте мене, чи допоможе детальніше.

Після того, як ви це зробите, зменшіть їх теплопровідність, спробуйте додати етап, який затримає поширення температури і спробуйте змусити її добре контролювати.

Це також можна зробити за допомогою світлодіода і фото-транзистора.


Це хороші пропозиції, щоб спробувати перешкодити поведінці циклів PID.
Дж. Полфер



1

Лише додав мої 2 центи до хороших відповідей.

Практичне використання PID для регулювання температури часто має нелінійне поведінку, якщо виявлення помилок температури обмежене (вихідний посилення посилення виходу) і потужність, доступна для регулювання температури, фіксована.

Розгляньте контролер увімкнення. Система матиме затримку з моменту подачі тепла та виявлення зміни температури. Що не має циклу PID, ця затримка створює нестабільний цикл, коливальний, і якщо є істериси, потужність цикли з шумом (On-Off-On) Однак дуже високий коефіцієнт посилення (наприклад, порівняльник) призводить до невеликої похибки залишкової температури. Затримка впливає на час циклу та перевищення часу.

Якщо виникли зовнішні порушення, такі як лампа бака, яка може додавати значне тепло, регулятор нагрівача повинен відреагувати, як тільки виявиться підвищення температури від нагрівання лампи. Якщо ваша лампа не є частиною циклу PID, вона не може "передбачити" ефект (посилення зворотного зв'язку з похідними). ​​Очевидно, якщо лампи виробляють занадто багато тепла, то температура не може бути регульована і перевищить задану температуру.

Ваш тепловий контроль з PID-регулятором, можливо, повинен мати вихід для стану лампового вимикача та регулювання виходу для регулювання потужності світла як вторинного джерела тепла, знову ж таки, якщо занадто багато.

Визначення ваших вимог до абсолютної помилки керування,% перебігу та часу відповіді - це деякі проектні введення, необхідні для оптимізації вашого циклу PID. Не менш важливим є визначення системних порушень та включення їх у систему управління для введення та виводу. напр. Теплова потужність лампи, вибір датчика та місця розташування.

Окрім досвіду.

Мій перший досвід використання водонагрівача був в епоху водяного ложа 70-х років, коли я був студентом, я створив власний темп-контролер, використовуючи термістор, керуючу ланцюг і нульовий перемикач триакулятора до обігрівача. Я почав з управління компаратором і знайшов незвичну відповідь від стрибків у ліжко. Тому я додав пропорційний контроль за допомогою нефільтрованого шуму на датчику, щоб дати мені пропорційні "пропущені цикли", коли триак ZCS був увімкнено біля порогу. Я міг регулювати температуру в межах 0,1 ° C. Відповідь була м'якішою, але результат був таким же.

Я виявив, що найбільша помилка була в розташуванні та крихітних змінах тиску води на датчику. (Тоді я був крихітним, лише 185 фунтів, але на водяному ложі 2000 фунтів <10% зміна тиску води була крихітною)

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

У моєму випадку, коли я стрибнув у ліжко, тепловий опір трохи знижувався від додаткового тиску, і індикатор живлення буде світитися тьмянішим протягом хвилини-двох, поки температура не знизиться на десяту частину градуса або не відповідає рівню очевидного підвищення температури від додаткової ваги та тиску водяний русло проти термостата.

(Урок засвоєний. Не нехтуйте джерелами збурень та їх впливом на помилку системи управління)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.