Як встановити PID-контроль, якщо константи часу керованої системи є змінними?


9

Загальний опис для безперервного PID-контролера пишеться так:

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
Найкращий Значення констант Kp , Ki та Kd для даної керованої системи залежатиме від її постійної часу (я), будь то система PT1 , або PT2 система тощо.

Що ви робите, якщо константа часу такої системи є змінною. Скажімо, вона змінюється між Ta і Tb ( Ta<Tb ). Як ви проектуєте константи PID?

Відповіді:


8

Одним із способів було б впровадження якоїсь форми адаптивного контролю. Якщо ваш діапазон констант часу невеликий і відомий, ви можете використовувати щось, що називається "планування посилення", де ви визначаєте, перш ніж передавати всі постійні часу, з якими ви будете мати справу (сподіваємось, це кінцево) і використовувати логіку if / then для визначення PI і D. Це може бути складним, щоб переконатися, що ви охопили достатню мінливість, щоб забезпечити стабільність та продуктивність через діапазон. Гарною історією успіху для планування прибутку є вертоліт Chinook. Це можна зробити.

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

Або ви можете спробувати використовувати адаптаційний контролер ідентифікації моделі (MIAC). Тут схема управління здійснює ідентифікацію системи в режимі реального часу та використовує закон оновлення для вашого контролера. Цей вимагає найдосконалішої майстерності з трьох ідей.

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


чому б не динамічно вирівняти етапи часу шляхом проектування більшого часового кроку та створення програмного забезпечення в реальному часі, чекаючи під час кожної ітерації перед подачею команд виконавчого механізму?
Gürkan Çetin

@ GürkanÇetin, що чекає програмне забезпечення? Чи можете ви допомогти мені зрозуміти, що відбувається, коли програмне забезпечення навмисно затримує оновлення керування?
сила

Якщо я правильно розумію, існує невідома затримка часу в кожному циклі ітерацій обчислень (тобто через зв'язок вводу / виводу або інші завдання процесора.) Це загальна проблема в цілі, яка не є в реальному часі (ОС). Отже, налаштуйте контролер на заздалегідь заданий (довгий) delta_t (скажімо, 100msec), а потім при кожній ітерації, намагаючись підлаштувати загальний час циклу до цього delta_t (припустимо, алгоритми керування закінчені 80-м мсек, зачекайте додаткових 20msec ) подати команди управління; може працювати, якщо відомо, що всі інші завдання займають менше 100 мс (мінус час обчислення закону контролю).
Gürkan Çetin

@ GürkanÇetin, якщо я правильно розумію оригінальне запитання, питання полягає в тому, як контролювати, коли фізичні аспекти рослини з часом змінюються (тобто, ракета втрачає масу з часом), а не як боротися з часом виконання циклу, що працює в реальному часі. Я думаю, що ваша пропозиція може бути дійсною, з точки зору роботи з ОС у режимі реального часу, що працює з контролером.
сила

о, так. Я помилив питання. У цьому випадку, якщо рослина змінюється протягом часу (різко або поступово), я б сказав, що конфігурація - це ще одна можливість. Звичайно, працює лише в тому випадку, якщо ви знаєте зміну динаміки моделі. Як втрачаєш масу, витрачаєш пальне, виймаєш / витягуєш посадкові пристрої тощо
Gürkan Çetin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.