Перший-порядковий об’єкт з несподіваною перешкодою
Динаміка руху автомобіля вздовж осі, для керування круїз-контролем, спрощується до одного простого рівняння балансу сил: маса помножена на прискорення дорівнює тязі двигуна мінус опором повітря мінус сила тяжіння, що діє на схил.
m v̇ = F_engine(u) - c·v² - m g sin(θ_hill) Опір повітря робить це дещо нелінійним, але найважливішим для проєктування контролера є простіший структурний факт: термін з ухилом схилу є немодельованою перешкодою, що входить до тієї ж задачі, що й вхідний сигнал керування. Контролер, який явно не враховує цей фактор, зазвичай досягає певної похибки швидкості, коли θ_hill ≠ 0 — і величина цієї похибки повністю залежить від обраного контролера.
m v̇ = F_engine(u) - c·v² - m g sin(θ_hill)
Чому лише пропорційне керування не дозволяє піднятися вгору пагорб
Чисте пропорційне керування встановлює газ на основі похибки швидкості: u = Kp * (v_set - v). На рівній поверхні це збігається до певної робочої точки. Додайте пагорб, і в стазі автомобіль потребує ненульового газу лише для протидії гравітації — але пропорційне керування може виробляти лише ненульовий вихід при ненульовій похибці. Таким чином, автомобіль опускається нижче v_set на величину, необхідну для генерації тяги, що потрібна пагорбу: постійний зсув, який іноді називають 'droop'. Збільшення Kp зменшує цей зсув, але ніколи його не усуває, а надмірне збільшення Kp обмінює зсув на коливання та шум в виконавчому механізмі.
Чому додавання інтегрального члена вирішує проблему структурно
Інтегральний член накопичує похибку з часом і продовжує збільшувати команду для газу трохи, поки будь-яка похибка не зникне: u = Kp·e + Ki·∫e dt. У справжньому стазі рівноваги команда управління повинна припинити змінюватися, і єдиний спосіб, яким інтегральний член перестає змінюватися, це коли сама похибка досягає точно нуля. Це структурна гарантія, яку надає PI-регулятор, чого не може забезпечити лише P-регулятор: нульова похибка стабільного режиму при постійному збуренні, незалежно від того, наскільки великий Kp або наскільки крутий підйом (за умови, що актуатор не перевантажений) – прямий наслідок того, що система має відсутній інтегратор, тому контролер повинен його забезпечити.
u(t) = Kp·e(t) + Ki·∫₀ᵗ e(τ) dτ, e = v_set - v
P only: settles with a nonzero offset proportional to disturbance size
PI: offset is driven to exactly zero, because only e = 0 lets
the integral term stop growing
Темрява інтегрального члена: перевантаження
Кожен реальний привід дроселя досягає своєї межі насичення – він не може повністю відкритися. Якщо підняти автомобіль вгору по крутому пагорбу, помилка залишається вперто позитивною навіть на повній швидкості, оскільки двигун просто не здатний забезпечити достатню силу. Інтегральний член, не враховуючи насичення, накопичує цю позитивну помилку протягом усього часу, поки привід зафіксований на межі. До того моменту, як автомобіль нарешті перекотиться над пагорбом і зникають порушення гравітацією, інтегральний член «перевантажується» до значення значно більшого, ніж потрібно – і йому доводиться розсіювати це значення повністю перед тим, як команда дроселя повернеться до необхідного для рівної дороги значення. Відомий симптом – великий, повільний перекос швидкості відразу після вершини пагорба: контролер продовжує командувати майже повним натисканням на педаль газу протягом помітного ділянки рівної дороги, виключно через накопичену історію помилок, яка нічого спільного з поточною помилкою не має.
Запобігання перевантаженню: повідомлення інтегратору про стан виконавчого механізму
Рішення завжди полягає в тому, щоб сповістити інтегратор про те, коли виконавчий механізм припинив реагувати. Три стандартні техніки, розташовані в порядку зростання прямого втручання:
Обмеження (умовна інтеграція) зупиняйте термін інтегрування, коли виконавчий механізм перевантажений І помилка змушує його ще більше перевантажуватися — найдешевше рішення, потребує лише прапор перевантаження, без додаткових знань про систему
Зворотне обчислення забезпечте різницю між заданим і фактично застосованим (перевантажений) керуючий сигнал інтегратору з його власною коефіцієнтом, щоб інтегрований стан активно тягнувся до того значення, яке воно мало б, враховуючи реальний обмежений вихід
Метод на основі спостереження / модельне запобігання перевантаженню відновлюйте стан, в якому би опинилася система, враховуючи перевантажений вхід, а не незаповнений, і інтегруйте з урахуванням цього стану — найточніше, але потребує прийнятної моделі системи, щоб це було виправдано. Зворотне обчислення є найбільш поширеною компромісною технікою в автомобільних та промислових системах управління: вона коштує однієї додаткової коефіцієнтності та одного додаткового каналу зворотного зв’язку, і дозволяє інтегратору відстежувати реальність – а саме, що система бачила лише обмежений командний сигнал дроселя – замість фантастичного команди, яку хотіла передати незаповнена математика.
clamping (conditional integration)
freeze the integral term whenever the actuator is saturated AND
the error would push it further into saturation — cheapest fix,
needs only a saturation flag, no extra plant knowledge
back-calculation
feed the difference between the commanded and the actually-applied
(saturated) control signal back into the integrator with its own
gain, so the integral state is actively pulled toward whatever
value it should have had given the real, clamped output
observer-based / model-based anti-windup
reconstruct what state the plant would be in given the saturated
input, rather than the unsaturated one, and integrate against that
— most accurate, but needs a decent plant model to be worth it
Де дизайн все ще потребує судження
Жодне з цього не є безкоштовним компромісом. Велике значення Ki прискорює усунення збурень, але також швидше перекручується (windup), коли досягаються обмеження, та взаємодіє з Kp для встановлення демпфування замкненої петлі — якщо обидва їх збільшити надмірно, той самий інтегральний ефект, який усував нахил, починає перекочуватися та резонувати навіть без досягнення обмежень. Реальна настройка контролю швидкості (cruise-control) проводиться з урахуванням сімейства впливів (зміни рельєфу, зустрічний вітер, навантаження), а не лише одного кроку, а коефіцієнти проти перекручування обираються таким чином, щоб відновлення після перегріву було швидким без того, щоб ненадовго не стабілізувалася чутлива реакція у звичайних умовах.
Часті запитання
Чому круїз-контроль лише на одному з зусиль ніколи не досягає заданої швидкості під час спуску вгору?
Це відбувається тому, що пропорційний регулятор може видавати лише ненульовий сигнал газу у відповідь на ненульову похибку швидкості, але підтримка постійної швидкості при підйомі вгору вимагає постійного ненульового сигналу газу для протидії гравітації. Регулятор встановлюється на рівні похибки швидкості, яка генерує саме цей газ – стабільний зсув, який зменшується, але ніколи не зникає, коли збільшено коефіцієнт зворотного зв’язку.
Що викликає інтегральне перекручування (windup)?
Це відбувається, коли похибка керування залишається постійно одного знаку протягом тривалого періоду часу, а виконавчий механізм (наприклад, повний газ під крутим підйомом) – насичений. Інтегральний термін продовжує накопичувати цю похибку, навіть якщо виконавчий механізм не може реагувати на додатковий сигнал, тому він росте далеко за межі необхідного значення, коли умови повертаються до норми, викликаючи повільне, мляве перекотування (overshoot) при його розкручуванні.
Як анти-перекручування усуває перекотування?
Призупиненням інтегрального терміну від накопичення похибки, на яку він не може вплинути. Обмеження просто заморожує інтегрування під час насичення; зворотний розрахунок активно передає проміжок між заданим і фактичним (насиченим) сигналом у інтегратор, притягуючи його внутрішній стан до того, що він повинен бути з огляду на реальний обмежений вихід виконавчого механізму.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Cruise Control PI і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Cruise Control PI